jfl 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +30 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/ide.d.ts +2 -1
- package/dist/commands/ide.d.ts.map +1 -1
- package/dist/commands/ide.js +60 -1
- package/dist/commands/ide.js.map +1 -1
- package/dist/commands/init-from-service.d.ts +15 -0
- package/dist/commands/init-from-service.d.ts.map +1 -0
- package/dist/commands/init-from-service.js +541 -0
- package/dist/commands/init-from-service.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +32 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/kanban.d.ts.map +1 -1
- package/dist/commands/kanban.js +13 -4
- package/dist/commands/kanban.js.map +1 -1
- package/dist/commands/linear.d.ts +41 -0
- package/dist/commands/linear.d.ts.map +1 -0
- package/dist/commands/linear.js +715 -0
- package/dist/commands/linear.js.map +1 -0
- package/dist/commands/peter.d.ts.map +1 -1
- package/dist/commands/peter.js +232 -25
- package/dist/commands/peter.js.map +1 -1
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +146 -0
- package/dist/commands/services.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +173 -13
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/telemetry-monitor.d.ts +11 -0
- package/dist/commands/telemetry-monitor.d.ts.map +1 -0
- package/dist/commands/telemetry-monitor.js +224 -0
- package/dist/commands/telemetry-monitor.js.map +1 -0
- package/dist/commands/telemetry-test.d.ts +11 -0
- package/dist/commands/telemetry-test.d.ts.map +1 -0
- package/dist/commands/telemetry-test.js +67 -0
- package/dist/commands/telemetry-test.js.map +1 -0
- package/dist/commands/tenet-agents.d.ts +13 -0
- package/dist/commands/tenet-agents.d.ts.map +1 -0
- package/dist/commands/tenet-agents.js +191 -0
- package/dist/commands/tenet-agents.js.map +1 -0
- package/dist/commands/tenet-setup.d.ts +19 -0
- package/dist/commands/tenet-setup.d.ts.map +1 -0
- package/dist/commands/tenet-setup.js +131 -0
- package/dist/commands/tenet-setup.js.map +1 -0
- package/dist/commands/train.d.ts +18 -0
- package/dist/commands/train.d.ts.map +1 -1
- package/dist/commands/train.js +182 -0
- package/dist/commands/train.js.map +1 -1
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +24 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.js +159 -10
- package/dist/index.js.map +1 -1
- package/dist/lib/advanced-setup.d.ts +78 -0
- package/dist/lib/advanced-setup.d.ts.map +1 -0
- package/dist/lib/advanced-setup.js +433 -0
- package/dist/lib/advanced-setup.js.map +1 -0
- package/dist/lib/agent-config.d.ts +33 -0
- package/dist/lib/agent-config.d.ts.map +1 -1
- package/dist/lib/agent-config.js +26 -0
- package/dist/lib/agent-config.js.map +1 -1
- package/dist/lib/counterfactual-training-bridge.d.ts +114 -0
- package/dist/lib/counterfactual-training-bridge.d.ts.map +1 -0
- package/dist/lib/counterfactual-training-bridge.js +322 -0
- package/dist/lib/counterfactual-training-bridge.js.map +1 -0
- package/dist/lib/discovery-agent.d.ts +48 -0
- package/dist/lib/discovery-agent.d.ts.map +1 -0
- package/dist/lib/discovery-agent.js +111 -0
- package/dist/lib/discovery-agent.js.map +1 -0
- package/dist/lib/flow-engine.d.ts.map +1 -1
- package/dist/lib/flow-engine.js +46 -8
- package/dist/lib/flow-engine.js.map +1 -1
- package/dist/lib/gtm-generator.d.ts +29 -0
- package/dist/lib/gtm-generator.d.ts.map +1 -0
- package/dist/lib/gtm-generator.js +252 -0
- package/dist/lib/gtm-generator.js.map +1 -0
- package/dist/lib/hub-health.d.ts +40 -0
- package/dist/lib/hub-health.d.ts.map +1 -0
- package/dist/lib/hub-health.js +89 -0
- package/dist/lib/hub-health.js.map +1 -0
- package/dist/lib/invariant-monitor.d.ts +6 -2
- package/dist/lib/invariant-monitor.d.ts.map +1 -1
- package/dist/lib/invariant-monitor.js +89 -2
- package/dist/lib/invariant-monitor.js.map +1 -1
- package/dist/lib/journal-analyzer.d.ts +71 -0
- package/dist/lib/journal-analyzer.d.ts.map +1 -0
- package/dist/lib/journal-analyzer.js +306 -0
- package/dist/lib/journal-analyzer.js.map +1 -0
- package/dist/lib/linear-client.d.ts +73 -0
- package/dist/lib/linear-client.d.ts.map +1 -0
- package/dist/lib/linear-client.js +112 -0
- package/dist/lib/linear-client.js.map +1 -0
- package/dist/lib/linear-id-map.d.ts +20 -0
- package/dist/lib/linear-id-map.d.ts.map +1 -0
- package/dist/lib/linear-id-map.js +57 -0
- package/dist/lib/linear-id-map.js.map +1 -0
- package/dist/lib/linear-kanban.d.ts +66 -0
- package/dist/lib/linear-kanban.d.ts.map +1 -0
- package/dist/lib/linear-kanban.js +175 -0
- package/dist/lib/linear-kanban.js.map +1 -0
- package/dist/lib/onboarding.d.ts +40 -0
- package/dist/lib/onboarding.d.ts.map +1 -0
- package/dist/lib/onboarding.js +213 -0
- package/dist/lib/onboarding.js.map +1 -0
- package/dist/lib/physical-world-model.d.ts +50 -0
- package/dist/lib/physical-world-model.d.ts.map +1 -0
- package/dist/lib/physical-world-model.js +251 -0
- package/dist/lib/physical-world-model.js.map +1 -0
- package/dist/lib/planning-loop.d.ts +157 -0
- package/dist/lib/planning-loop.d.ts.map +1 -0
- package/dist/lib/planning-loop.js +537 -0
- package/dist/lib/planning-loop.js.map +1 -0
- package/dist/lib/policy-head.d.ts +13 -0
- package/dist/lib/policy-head.d.ts.map +1 -1
- package/dist/lib/policy-head.js +168 -2
- package/dist/lib/policy-head.js.map +1 -1
- package/dist/lib/resource-optimizer-middleware.d.ts +39 -0
- package/dist/lib/resource-optimizer-middleware.d.ts.map +1 -0
- package/dist/lib/resource-optimizer-middleware.js +222 -0
- package/dist/lib/resource-optimizer-middleware.js.map +1 -0
- package/dist/lib/resource-optimizer.d.ts +71 -0
- package/dist/lib/resource-optimizer.d.ts.map +1 -0
- package/dist/lib/resource-optimizer.js +228 -0
- package/dist/lib/resource-optimizer.js.map +1 -0
- package/dist/lib/rl-manager.d.ts +74 -0
- package/dist/lib/rl-manager.d.ts.map +1 -0
- package/dist/lib/rl-manager.js +244 -0
- package/dist/lib/rl-manager.js.map +1 -0
- package/dist/lib/service-analyzer.d.ts +76 -0
- package/dist/lib/service-analyzer.d.ts.map +1 -0
- package/dist/lib/service-analyzer.js +704 -0
- package/dist/lib/service-analyzer.js.map +1 -0
- package/dist/lib/service-gtm.js +2 -2
- package/dist/lib/service-gtm.js.map +1 -1
- package/dist/lib/service-questionnaire.d.ts +11 -0
- package/dist/lib/service-questionnaire.d.ts.map +1 -0
- package/dist/lib/service-questionnaire.js +89 -0
- package/dist/lib/service-questionnaire.js.map +1 -0
- package/dist/lib/setup/agent-generator.d.ts +2 -0
- package/dist/lib/setup/agent-generator.d.ts.map +1 -1
- package/dist/lib/setup/agent-generator.js +128 -4
- package/dist/lib/setup/agent-generator.js.map +1 -1
- package/dist/lib/setup/flow-generator.d.ts +10 -0
- package/dist/lib/setup/flow-generator.d.ts.map +1 -0
- package/dist/lib/setup/flow-generator.js +113 -0
- package/dist/lib/setup/flow-generator.js.map +1 -0
- package/dist/lib/setup/invariant-bridge.d.ts +91 -0
- package/dist/lib/setup/invariant-bridge.d.ts.map +1 -0
- package/dist/lib/setup/invariant-bridge.js +384 -0
- package/dist/lib/setup/invariant-bridge.js.map +1 -0
- package/dist/lib/setup/spec-generator.d.ts +41 -5
- package/dist/lib/setup/spec-generator.d.ts.map +1 -1
- package/dist/lib/setup/spec-generator.js +503 -29
- package/dist/lib/setup/spec-generator.js.map +1 -1
- package/dist/lib/stratus-client.js +1 -1
- package/dist/lib/stratus-client.js.map +1 -1
- package/dist/lib/surface-agent.d.ts +78 -0
- package/dist/lib/surface-agent.d.ts.map +1 -0
- package/dist/lib/surface-agent.js +105 -0
- package/dist/lib/surface-agent.js.map +1 -0
- package/dist/lib/surface-coordination-example.d.ts +30 -0
- package/dist/lib/surface-coordination-example.d.ts.map +1 -0
- package/dist/lib/surface-coordination-example.js +164 -0
- package/dist/lib/surface-coordination-example.js.map +1 -0
- package/dist/lib/telemetry/physical-world-collector.d.ts +15 -0
- package/dist/lib/telemetry/physical-world-collector.d.ts.map +1 -0
- package/dist/lib/telemetry/physical-world-collector.js +177 -0
- package/dist/lib/telemetry/physical-world-collector.js.map +1 -0
- package/dist/lib/telemetry/training-bridge.d.ts +51 -0
- package/dist/lib/telemetry/training-bridge.d.ts.map +1 -0
- package/dist/lib/telemetry/training-bridge.js +185 -0
- package/dist/lib/telemetry/training-bridge.js.map +1 -0
- package/dist/lib/telemetry.d.ts +2 -1
- package/dist/lib/telemetry.d.ts.map +1 -1
- package/dist/lib/telemetry.js +23 -2
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/tenet-board-agent.d.ts +52 -0
- package/dist/lib/tenet-board-agent.d.ts.map +1 -0
- package/dist/lib/tenet-board-agent.js +226 -0
- package/dist/lib/tenet-board-agent.js.map +1 -0
- package/dist/lib/tenet-ide-agent.d.ts +40 -0
- package/dist/lib/tenet-ide-agent.d.ts.map +1 -0
- package/dist/lib/tenet-ide-agent.js +199 -0
- package/dist/lib/tenet-ide-agent.js.map +1 -0
- package/dist/lib/workspace/data-pipeline.d.ts.map +1 -1
- package/dist/lib/workspace/data-pipeline.js +27 -5
- package/dist/lib/workspace/data-pipeline.js.map +1 -1
- package/dist/lib/workspace/sidebar-runner.d.ts +13 -0
- package/dist/lib/workspace/sidebar-runner.d.ts.map +1 -0
- package/dist/lib/workspace/sidebar-runner.js +419 -0
- package/dist/lib/workspace/sidebar-runner.js.map +1 -0
- package/dist/lib/workspace/surface-registry.d.ts.map +1 -1
- package/dist/lib/workspace/surface-registry.js +4 -1
- package/dist/lib/workspace/surface-registry.js.map +1 -1
- package/dist/lib/workspace/surfaces/agent-overview.d.ts +3 -3
- package/dist/lib/workspace/surfaces/agent-overview.d.ts.map +1 -1
- package/dist/lib/workspace/surfaces/agent-overview.js +3 -3
- package/dist/lib/workspace/surfaces/agent-overview.js.map +1 -1
- package/dist/lib/workspace/surfaces/index.d.ts +3 -0
- package/dist/lib/workspace/surfaces/index.d.ts.map +1 -1
- package/dist/lib/workspace/surfaces/index.js +3 -0
- package/dist/lib/workspace/surfaces/index.js.map +1 -1
- package/dist/lib/workspace/surfaces/kanban.d.ts +15 -0
- package/dist/lib/workspace/surfaces/kanban.d.ts.map +1 -0
- package/dist/lib/workspace/surfaces/kanban.js +43 -0
- package/dist/lib/workspace/surfaces/kanban.js.map +1 -0
- package/dist/lib/workspace/surfaces/physical-world.d.ts +15 -0
- package/dist/lib/workspace/surfaces/physical-world.d.ts.map +1 -0
- package/dist/lib/workspace/surfaces/physical-world.js +37 -0
- package/dist/lib/workspace/surfaces/physical-world.js.map +1 -0
- package/dist/lib/workspace/surfaces/sidebar.d.ts +22 -0
- package/dist/lib/workspace/surfaces/sidebar.d.ts.map +1 -0
- package/dist/lib/workspace/surfaces/sidebar.js +90 -0
- package/dist/lib/workspace/surfaces/sidebar.js.map +1 -0
- package/dist/types/flows.d.ts +2 -1
- package/dist/types/flows.d.ts.map +1 -1
- package/dist/types/physical-world-model.d.ts +65 -0
- package/dist/types/physical-world-model.d.ts.map +1 -0
- package/dist/types/physical-world-model.js +43 -0
- package/dist/types/physical-world-model.js.map +1 -0
- package/dist/types/telemetry.d.ts +37 -0
- package/dist/types/telemetry.d.ts.map +1 -1
- package/dist/types/world-model.d.ts.map +1 -1
- package/dist/types/world-model.js +14 -7
- package/dist/types/world-model.js.map +1 -1
- package/dist/utils/context-hub-port.d.ts.map +1 -1
- package/dist/utils/context-hub-port.js +6 -1
- package/dist/utils/context-hub-port.js.map +1 -1
- package/package.json +3 -2
- package/packages/pi/extensions/index.ts +34 -6
- package/scripts/telemetry-dashboard.sh +44 -0
- package/scripts/test-planning-loop-e2e.ts +181 -0
- package/scripts/test-server-inference.ts +49 -0
- package/scripts/test-state-sensitivity.ts +32 -0
- package/scripts/train/v2/benchmark.py +661 -0
- package/scripts/train/v2/generate_balanced.py +439 -0
- package/scripts/train/v2/generate_hard_negatives.py +219 -0
- package/scripts/train/v2/infer.py +149 -36
- package/scripts/train/v2/infer_server.py +224 -0
- package/scripts/train/v2/online_train.py +576 -0
- package/scripts/train/v2/precompute.py +24 -6
- package/template/CLAUDE.md +74 -132
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-runner.d.ts","sourceRoot":"","sources":["../../../src/lib/workspace/sidebar-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sidebar Runner
|
|
3
|
+
*
|
|
4
|
+
* Standalone TUI process that renders in a narrow tmux pane.
|
|
5
|
+
* Shows all child GTMs, their agent status, and accumulated notifications.
|
|
6
|
+
* Accepts keypress input for session switching and launching.
|
|
7
|
+
*
|
|
8
|
+
* Usage: node --import tsx/esm sidebar-runner.ts /path/to/portfolio
|
|
9
|
+
*
|
|
10
|
+
* @purpose Render the sidebar TUI — portfolio status, notifications, switching
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, readFileSync } from "fs";
|
|
13
|
+
import { join } from "path";
|
|
14
|
+
import { execSync } from "child_process";
|
|
15
|
+
import WebSocket from "ws";
|
|
16
|
+
// ─── ANSI Helpers ────────────────────────────────────────────────────────────
|
|
17
|
+
const ESC = "\x1b[";
|
|
18
|
+
const CLEAR = `${ESC}2J${ESC}H`;
|
|
19
|
+
const HIDE_CURSOR = `${ESC}?25l`;
|
|
20
|
+
const SHOW_CURSOR = `${ESC}?25h`;
|
|
21
|
+
const colors = {
|
|
22
|
+
reset: `${ESC}0m`,
|
|
23
|
+
bold: `${ESC}1m`,
|
|
24
|
+
dim: `${ESC}2m`,
|
|
25
|
+
green: `${ESC}32m`,
|
|
26
|
+
red: `${ESC}31m`,
|
|
27
|
+
yellow: `${ESC}33m`,
|
|
28
|
+
cyan: `${ESC}36m`,
|
|
29
|
+
gray: `${ESC}90m`,
|
|
30
|
+
white: `${ESC}37m`,
|
|
31
|
+
bgGray: `${ESC}100m`,
|
|
32
|
+
};
|
|
33
|
+
function c(color, text) {
|
|
34
|
+
return `${colors[color]}${text}${colors.reset}`;
|
|
35
|
+
}
|
|
36
|
+
function createSubwayClient(bridgeUrl, agentName, onBroadcast) {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
const ws = new WebSocket(bridgeUrl);
|
|
39
|
+
let registered = false;
|
|
40
|
+
ws.on("open", () => {
|
|
41
|
+
// Register with the relay
|
|
42
|
+
ws.send(JSON.stringify({
|
|
43
|
+
action: "register",
|
|
44
|
+
name: agentName,
|
|
45
|
+
}));
|
|
46
|
+
});
|
|
47
|
+
ws.on("message", (data) => {
|
|
48
|
+
try {
|
|
49
|
+
const msg = JSON.parse(data.toString());
|
|
50
|
+
if (msg.type === "registered") {
|
|
51
|
+
registered = true;
|
|
52
|
+
resolve({
|
|
53
|
+
close: () => ws.close(),
|
|
54
|
+
subscribe: (topic) => {
|
|
55
|
+
ws.send(JSON.stringify({
|
|
56
|
+
action: "subscribe",
|
|
57
|
+
topic,
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else if (msg.type === "broadcast_message" && msg.topic && msg.payload) {
|
|
63
|
+
try {
|
|
64
|
+
const payload = JSON.parse(msg.payload);
|
|
65
|
+
onBroadcast(msg.topic, payload);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Invalid JSON payload, ignore
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// Invalid JSON message, ignore
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
ws.on("error", (err) => {
|
|
77
|
+
if (!registered)
|
|
78
|
+
reject(err);
|
|
79
|
+
});
|
|
80
|
+
ws.on("close", () => {
|
|
81
|
+
if (!registered)
|
|
82
|
+
reject(new Error("Connection closed before registration"));
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// ─── Box Drawing ─────────────────────────────────────────────────────────────
|
|
87
|
+
function horizontalLine(width) {
|
|
88
|
+
return "─".repeat(width);
|
|
89
|
+
}
|
|
90
|
+
function header(title, width) {
|
|
91
|
+
const padded = ` ${title} `;
|
|
92
|
+
const remaining = width - padded.length - 2;
|
|
93
|
+
const left = Math.floor(remaining / 2);
|
|
94
|
+
const right = remaining - left;
|
|
95
|
+
return `├${"─".repeat(left)}${padded}${"─".repeat(right)}┤`;
|
|
96
|
+
}
|
|
97
|
+
// ─── Portfolio Discovery ─────────────────────────────────────────────────────
|
|
98
|
+
function discoverGtms(portfolioRoot) {
|
|
99
|
+
const configPath = join(portfolioRoot, ".jfl", "config.json");
|
|
100
|
+
if (!existsSync(configPath))
|
|
101
|
+
return [];
|
|
102
|
+
try {
|
|
103
|
+
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
104
|
+
const services = config.registered_services || [];
|
|
105
|
+
return services.map((s) => {
|
|
106
|
+
const svcPath = s.path
|
|
107
|
+
? (s.path.startsWith("/") ? s.path : join(portfolioRoot, s.path))
|
|
108
|
+
: "";
|
|
109
|
+
const entry = {
|
|
110
|
+
name: s.name,
|
|
111
|
+
path: svcPath,
|
|
112
|
+
type: s.type || "service",
|
|
113
|
+
status: "idle",
|
|
114
|
+
};
|
|
115
|
+
// Check if Context Hub is running for this GTM
|
|
116
|
+
if (svcPath && existsSync(join(svcPath, ".jfl", "config.json"))) {
|
|
117
|
+
try {
|
|
118
|
+
const childConfig = JSON.parse(readFileSync(join(svcPath, ".jfl", "config.json"), "utf-8"));
|
|
119
|
+
entry.hubPort = childConfig.hub_port || childConfig.context_hub?.port;
|
|
120
|
+
}
|
|
121
|
+
catch { }
|
|
122
|
+
}
|
|
123
|
+
return entry;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async function checkGtmStatus(entry) {
|
|
131
|
+
if (!entry.hubPort) {
|
|
132
|
+
entry.status = "idle";
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const resp = await fetch(`http://localhost:${entry.hubPort}/api/health`, {
|
|
137
|
+
signal: AbortSignal.timeout(2000),
|
|
138
|
+
});
|
|
139
|
+
if (resp.ok) {
|
|
140
|
+
entry.status = "active";
|
|
141
|
+
// Try to get agent status
|
|
142
|
+
try {
|
|
143
|
+
const eventsResp = await fetch(`http://localhost:${entry.hubPort}/api/events?pattern=agent:health&limit=5`, { signal: AbortSignal.timeout(2000) });
|
|
144
|
+
if (eventsResp.ok) {
|
|
145
|
+
const data = await eventsResp.json();
|
|
146
|
+
const agents = data.events || [];
|
|
147
|
+
entry.agentCount = agents.length;
|
|
148
|
+
if (agents.length > 0 && agents[0].data) {
|
|
149
|
+
const latest = agents[0].data;
|
|
150
|
+
entry.currentRound = latest.round ? `R${latest.round}` : undefined;
|
|
151
|
+
entry.metric = latest.metric;
|
|
152
|
+
entry.delta = latest.delta;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch { }
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
entry.status = "idle";
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
entry.status = "idle";
|
|
164
|
+
}
|
|
165
|
+
// Check last activity from journal
|
|
166
|
+
if (entry.status === "idle" && entry.path) {
|
|
167
|
+
try {
|
|
168
|
+
const journalDir = join(entry.path, ".jfl", "journal");
|
|
169
|
+
if (existsSync(journalDir)) {
|
|
170
|
+
const stat = execSync(`ls -t "${journalDir}" | head -1`, { encoding: "utf-8" }).trim();
|
|
171
|
+
if (stat) {
|
|
172
|
+
const fileStat = execSync(`stat -f %m "${join(journalDir, stat)}"`, { encoding: "utf-8" }).trim();
|
|
173
|
+
entry.lastActivity = parseInt(fileStat, 10) * 1000;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch { }
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// ─── Remote Heartbeat Handling ──────────────────────────────────────────────
|
|
181
|
+
function handleRemoteHeartbeat(data, remoteGtms, notifications) {
|
|
182
|
+
if (data.schema !== "jfl.agent.heartbeat.v1" || !data.gtm_id)
|
|
183
|
+
return;
|
|
184
|
+
const gtmName = data.gtm_id;
|
|
185
|
+
const status = data.health?.overall === "healthy" ? "active"
|
|
186
|
+
: data.health?.overall === "degraded" ? "error"
|
|
187
|
+
: data.health?.overall === "unhealthy" ? "error"
|
|
188
|
+
: "idle";
|
|
189
|
+
remoteGtms.set(gtmName, {
|
|
190
|
+
name: gtmName,
|
|
191
|
+
machine_id: data.machine_id || "unknown",
|
|
192
|
+
status,
|
|
193
|
+
agents: data.agents || [],
|
|
194
|
+
health: data.health || {},
|
|
195
|
+
lastHeartbeat: Date.now(),
|
|
196
|
+
});
|
|
197
|
+
// Add notification for new heartbeat
|
|
198
|
+
const activeAgents = (data.agents || []).filter((a) => a.status === "active");
|
|
199
|
+
if (activeAgents.length > 0) {
|
|
200
|
+
const agent = activeAgents[0];
|
|
201
|
+
const task = agent.current_task || agent.status;
|
|
202
|
+
notifications.push({
|
|
203
|
+
time: Date.now(),
|
|
204
|
+
title: `${gtmName}: ${agent.name}: ${task}`,
|
|
205
|
+
type: "info",
|
|
206
|
+
});
|
|
207
|
+
// Keep only last 10 notifications
|
|
208
|
+
if (notifications.length > 10) {
|
|
209
|
+
notifications.shift();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// ─── Rendering ───────────────────────────────────────────────────────────────
|
|
214
|
+
function formatTimeSince(ms) {
|
|
215
|
+
const diff = Date.now() - ms;
|
|
216
|
+
const minutes = Math.floor(diff / 60000);
|
|
217
|
+
if (minutes < 60)
|
|
218
|
+
return `${minutes}m`;
|
|
219
|
+
const hours = Math.floor(minutes / 60);
|
|
220
|
+
if (hours < 24)
|
|
221
|
+
return `${hours}h`;
|
|
222
|
+
const days = Math.floor(hours / 24);
|
|
223
|
+
return `${days}d`;
|
|
224
|
+
}
|
|
225
|
+
function render(gtms, remoteGtms, notifications, width) {
|
|
226
|
+
const lines = [];
|
|
227
|
+
const innerWidth = width - 2;
|
|
228
|
+
// Top border
|
|
229
|
+
lines.push(`┌${horizontalLine(innerWidth)}┐`);
|
|
230
|
+
// Title
|
|
231
|
+
lines.push(`│${c("bold", c("cyan", " PORTFOLIO")).padEnd(innerWidth + colors.bold.length + colors.cyan.length + colors.reset.length * 2)}│`);
|
|
232
|
+
lines.push(`├${horizontalLine(innerWidth)}┤`);
|
|
233
|
+
// Local GTMs
|
|
234
|
+
let idx = 1;
|
|
235
|
+
gtms.forEach((gtm) => {
|
|
236
|
+
const num = `[${idx}]`;
|
|
237
|
+
let icon;
|
|
238
|
+
let statusText;
|
|
239
|
+
let statusColor;
|
|
240
|
+
switch (gtm.status) {
|
|
241
|
+
case "active":
|
|
242
|
+
icon = "●";
|
|
243
|
+
statusColor = "green";
|
|
244
|
+
statusText = "";
|
|
245
|
+
if (gtm.agentCount)
|
|
246
|
+
statusText += `${gtm.agentCount}ag`;
|
|
247
|
+
if (gtm.currentRound)
|
|
248
|
+
statusText += ` ${gtm.currentRound}`;
|
|
249
|
+
if (gtm.metric)
|
|
250
|
+
statusText += ` ${gtm.metric}`;
|
|
251
|
+
if (gtm.delta !== undefined) {
|
|
252
|
+
statusText += ` ${gtm.delta > 0 ? "+" : ""}${gtm.delta.toFixed(3)}`;
|
|
253
|
+
}
|
|
254
|
+
if (!statusText)
|
|
255
|
+
statusText = "running";
|
|
256
|
+
break;
|
|
257
|
+
case "needs_input":
|
|
258
|
+
icon = "●";
|
|
259
|
+
statusColor = "red";
|
|
260
|
+
statusText = "needs input";
|
|
261
|
+
break;
|
|
262
|
+
case "error":
|
|
263
|
+
icon = "●";
|
|
264
|
+
statusColor = "red";
|
|
265
|
+
statusText = "error";
|
|
266
|
+
break;
|
|
267
|
+
default:
|
|
268
|
+
icon = "○";
|
|
269
|
+
statusColor = "gray";
|
|
270
|
+
statusText = "idle";
|
|
271
|
+
if (gtm.lastActivity) {
|
|
272
|
+
statusText += ` (${formatTimeSince(gtm.lastActivity)})`;
|
|
273
|
+
}
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
const nameLine = ` ${c(statusColor, icon)} ${c("bold", gtm.name)}`;
|
|
277
|
+
const detailLine = ` ${c("gray", num)} ${c(statusColor, statusText)}`;
|
|
278
|
+
// Pad lines to fit the box
|
|
279
|
+
const nameRaw = ` ${icon} ${gtm.name}`;
|
|
280
|
+
const detailRaw = ` ${num} ${statusText}`;
|
|
281
|
+
lines.push(`│${nameLine}${" ".repeat(Math.max(0, innerWidth - nameRaw.length))}│`);
|
|
282
|
+
lines.push(`│${detailLine}${" ".repeat(Math.max(0, innerWidth - detailRaw.length))}│`);
|
|
283
|
+
idx++;
|
|
284
|
+
});
|
|
285
|
+
// Remote GTMs
|
|
286
|
+
remoteGtms.forEach((remote) => {
|
|
287
|
+
const num = `[${idx}]`;
|
|
288
|
+
const icon = remote.status === "active" ? "●" : remote.status === "error" ? "●" : "○";
|
|
289
|
+
const statusColor = remote.status === "active" ? "cyan" : remote.status === "error" ? "red" : "gray";
|
|
290
|
+
const activeAgents = remote.agents.filter(a => a.status === "active");
|
|
291
|
+
let statusText = "";
|
|
292
|
+
if (activeAgents.length > 0) {
|
|
293
|
+
const agent = activeAgents[0];
|
|
294
|
+
statusText = agent.current_task || `${activeAgents.length}ag`;
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
statusText = "remote";
|
|
298
|
+
}
|
|
299
|
+
if (remote.health.relay_latency_p50_ms) {
|
|
300
|
+
statusText += ` ${remote.health.relay_latency_p50_ms}ms`;
|
|
301
|
+
}
|
|
302
|
+
const nameLine = ` ${c(statusColor, icon)} ${c("bold", remote.name)} ${c("dim", "(remote)")}`;
|
|
303
|
+
const detailLine = ` ${c("gray", num)} ${c(statusColor, statusText)}`;
|
|
304
|
+
// Pad lines to fit the box
|
|
305
|
+
const nameRaw = ` ${icon} ${remote.name} (remote)`;
|
|
306
|
+
const detailRaw = ` ${num} ${statusText}`;
|
|
307
|
+
lines.push(`│${nameLine}${" ".repeat(Math.max(0, innerWidth - nameRaw.length))}│`);
|
|
308
|
+
lines.push(`│${detailLine}${" ".repeat(Math.max(0, innerWidth - detailRaw.length))}│`);
|
|
309
|
+
idx++;
|
|
310
|
+
});
|
|
311
|
+
if (gtms.length === 0 && remoteGtms.size === 0) {
|
|
312
|
+
const msg = " No GTMs found";
|
|
313
|
+
lines.push(`│${c("gray", msg)}${" ".repeat(Math.max(0, innerWidth - msg.length))}│`);
|
|
314
|
+
}
|
|
315
|
+
// Notifications section
|
|
316
|
+
if (notifications.length > 0) {
|
|
317
|
+
lines.push(`├${horizontalLine(innerWidth)}┤`);
|
|
318
|
+
const notifTitle = ` 📬 ${notifications.length} notification${notifications.length > 1 ? "s" : ""}`;
|
|
319
|
+
lines.push(`│${c("yellow", notifTitle)}${" ".repeat(Math.max(0, innerWidth - notifTitle.length + 1))}│`);
|
|
320
|
+
const recent = notifications.slice(-5);
|
|
321
|
+
for (const n of recent) {
|
|
322
|
+
const ago = formatTimeSince(n.time);
|
|
323
|
+
const text = ` ${c("gray", ago)} ${n.title}`;
|
|
324
|
+
const rawText = ` ${ago} ${n.title}`;
|
|
325
|
+
lines.push(`│${text}${" ".repeat(Math.max(0, innerWidth - rawText.length))}│`);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// Bottom border
|
|
329
|
+
lines.push(`└${horizontalLine(innerWidth)}┘`);
|
|
330
|
+
// Help
|
|
331
|
+
lines.push("");
|
|
332
|
+
lines.push(c("gray", " [n] switch [Enter] launch"));
|
|
333
|
+
return CLEAR + HIDE_CURSOR + lines.join("\n");
|
|
334
|
+
}
|
|
335
|
+
// ─── Input Handling ──────────────────────────────────────────────────────────
|
|
336
|
+
function handleKey(key, gtms) {
|
|
337
|
+
const num = parseInt(key, 10);
|
|
338
|
+
if (num >= 1 && num <= gtms.length) {
|
|
339
|
+
const gtm = gtms[num - 1];
|
|
340
|
+
if (gtm.status === "active") {
|
|
341
|
+
// Switch to that pane (try to find it by name)
|
|
342
|
+
try {
|
|
343
|
+
execSync(`tmux select-window -t "${gtm.name}" 2>/dev/null || tmux select-pane -t ${num} 2>/dev/null`, {
|
|
344
|
+
stdio: "pipe",
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
catch { }
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
// Launch a new session for this GTM
|
|
351
|
+
try {
|
|
352
|
+
execSync(`tmux split-window -h -p 80 "cd '${gtm.path}' && jfl ide 2>/dev/null || bash"`, { stdio: "pipe" });
|
|
353
|
+
}
|
|
354
|
+
catch { }
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// ─── Main Loop ───────────────────────────────────────────────────────────────
|
|
359
|
+
async function main() {
|
|
360
|
+
const portfolioRoot = process.argv[2] || process.cwd();
|
|
361
|
+
const notifications = [];
|
|
362
|
+
const remoteGtms = new Map();
|
|
363
|
+
const width = Math.min(process.stdout.columns || 30, 30);
|
|
364
|
+
// Enable raw mode for keypress
|
|
365
|
+
if (process.stdin.isTTY) {
|
|
366
|
+
process.stdin.setRawMode(true);
|
|
367
|
+
process.stdin.resume();
|
|
368
|
+
process.stdin.setEncoding("utf-8");
|
|
369
|
+
}
|
|
370
|
+
let gtms = discoverGtms(portfolioRoot);
|
|
371
|
+
// Connect to Subway mesh
|
|
372
|
+
try {
|
|
373
|
+
const subway = await createSubwayClient("wss://subway-relay.fly.dev/ws", "sidebar.relay", (topic, data) => {
|
|
374
|
+
if (topic.startsWith("gtm:") && topic.endsWith(":heartbeat")) {
|
|
375
|
+
handleRemoteHeartbeat(data, remoteGtms, notifications);
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
// Subscribe to heartbeat topics
|
|
379
|
+
subway.subscribe("gtm:subway-dev:heartbeat");
|
|
380
|
+
}
|
|
381
|
+
catch (err) {
|
|
382
|
+
// Subway connection failed, continue with local-only mode
|
|
383
|
+
}
|
|
384
|
+
// Initial status check
|
|
385
|
+
await Promise.all(gtms.map(checkGtmStatus));
|
|
386
|
+
// Render
|
|
387
|
+
process.stdout.write(render(gtms, remoteGtms, notifications, width));
|
|
388
|
+
// Handle input
|
|
389
|
+
process.stdin.on("data", (data) => {
|
|
390
|
+
const key = data.toString();
|
|
391
|
+
// Ctrl+C or q to quit
|
|
392
|
+
if (key === "\x03" || key === "q") {
|
|
393
|
+
process.stdout.write(SHOW_CURSOR);
|
|
394
|
+
process.exit(0);
|
|
395
|
+
}
|
|
396
|
+
handleKey(key, gtms);
|
|
397
|
+
});
|
|
398
|
+
// Refresh loop
|
|
399
|
+
setInterval(async () => {
|
|
400
|
+
gtms = discoverGtms(portfolioRoot);
|
|
401
|
+
await Promise.all(gtms.map(checkGtmStatus));
|
|
402
|
+
const newWidth = Math.min(process.stdout.columns || 30, 30);
|
|
403
|
+
process.stdout.write(render(gtms, remoteGtms, notifications, newWidth));
|
|
404
|
+
}, 5000);
|
|
405
|
+
// Handle resize
|
|
406
|
+
process.stdout.on("resize", () => {
|
|
407
|
+
const newWidth = Math.min(process.stdout.columns || 30, 30);
|
|
408
|
+
process.stdout.write(render(gtms, remoteGtms, notifications, newWidth));
|
|
409
|
+
});
|
|
410
|
+
// Cleanup on exit
|
|
411
|
+
process.on("exit", () => {
|
|
412
|
+
process.stdout.write(SHOW_CURSOR);
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
main().catch((err) => {
|
|
416
|
+
console.error("Sidebar error:", err);
|
|
417
|
+
process.exit(1);
|
|
418
|
+
});
|
|
419
|
+
//# sourceMappingURL=sidebar-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-runner.js","sourceRoot":"","sources":["../../../src/lib/workspace/sidebar-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-registry.d.ts","sourceRoot":"","sources":["../../../src/lib/workspace/surface-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"surface-registry.d.ts","sourceRoot":"","sources":["../../../src/lib/workspace/surface-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAmB9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAoBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAE/D;AAED,wBAAgB,kBAAkB,IAAI,WAAW,EAAE,CAElD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAUrD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAcvH;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CA8BrE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CA4DrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuC5K;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAsC1F"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { existsSync, readFileSync, readdirSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
6
|
-
import { ClaudeSurface, ShellSurface, EventStreamSurface, EvalSurface, FlowSurface, AgentSurface, AgentOverviewSurface, ServiceSurface, TelemetrySurface, PortfolioSurface, TopologySurface, TrainingSurface, } from "./surfaces/index.js";
|
|
6
|
+
import { ClaudeSurface, ShellSurface, EventStreamSurface, EvalSurface, FlowSurface, AgentSurface, AgentOverviewSurface, ServiceSurface, TelemetrySurface, PortfolioSurface, TopologySurface, TrainingSurface, SidebarSurface, PhysicalWorldSurface, KanbanSurface, } from "./surfaces/index.js";
|
|
7
7
|
const BUILTIN_TYPES = [
|
|
8
8
|
new ClaudeSurface(),
|
|
9
9
|
new ShellSurface(),
|
|
@@ -17,6 +17,9 @@ const BUILTIN_TYPES = [
|
|
|
17
17
|
new PortfolioSurface(),
|
|
18
18
|
new TopologySurface(),
|
|
19
19
|
new TrainingSurface(),
|
|
20
|
+
new SidebarSurface(),
|
|
21
|
+
new PhysicalWorldSurface(),
|
|
22
|
+
new KanbanSurface(),
|
|
20
23
|
];
|
|
21
24
|
export function getSurfaceType(type) {
|
|
22
25
|
return BUILTIN_TYPES.find((t) => t.type === type) || null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-registry.js","sourceRoot":"","sources":["../../../src/lib/workspace/surface-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"surface-registry.js","sourceRoot":"","sources":["../../../src/lib/workspace/surface-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @purpose
|
|
2
|
+
* @purpose Project automation surface — shows intelligent assistants working on your project tasks and improvements
|
|
3
3
|
*/
|
|
4
4
|
import type { StatusEntry } from "../backend.js";
|
|
5
5
|
import { SurfaceType } from "../surface-type.js";
|
|
6
6
|
import type { SurfaceContext, LiveData, NotificationRule } from "../surface-type.js";
|
|
7
7
|
export declare class AgentOverviewSurface extends SurfaceType {
|
|
8
8
|
readonly type = "agents";
|
|
9
|
-
readonly title = "
|
|
10
|
-
readonly description = "
|
|
9
|
+
readonly title = "Project Automation";
|
|
10
|
+
readonly description = "AI assistants working on your project: active tasks, improvements, and progress";
|
|
11
11
|
getCommand(ctx: SurfaceContext): string;
|
|
12
12
|
getStatusEntries(_ctx: SurfaceContext, data: LiveData): StatusEntry[];
|
|
13
13
|
getNotificationRules(): NotificationRule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-overview.d.ts","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/agent-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,YAAW;IACxB,QAAQ,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"agent-overview.d.ts","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/agent-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,YAAW;IACxB,QAAQ,CAAC,KAAK,wBAAuB;IACrC,QAAQ,CAAC,WAAW,qFAAoF;IAExG,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;IAIvC,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE;IAyDrE,oBAAoB,IAAI,gBAAgB,EAAE;IAgC1C,iBAAiB,IAAI,MAAM;CAG5B"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @purpose
|
|
2
|
+
* @purpose Project automation surface — shows intelligent assistants working on your project tasks and improvements
|
|
3
3
|
*/
|
|
4
4
|
import { SurfaceType } from "../surface-type.js";
|
|
5
5
|
export class AgentOverviewSurface extends SurfaceType {
|
|
6
6
|
type = "agents";
|
|
7
|
-
title = "
|
|
8
|
-
description = "
|
|
7
|
+
title = "Project Automation";
|
|
8
|
+
description = "AI assistants working on your project: active tasks, improvements, and progress";
|
|
9
9
|
getCommand(ctx) {
|
|
10
10
|
return `watch -n 5 "jfl peter status 2>/dev/null || jfl eval list --compact 2>/dev/null || echo 'No agent data yet'"`;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-overview.js","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/agent-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAC1C,IAAI,GAAG,QAAQ,CAAA;IACf,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"agent-overview.js","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/agent-overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,4 +13,7 @@ export { TelemetrySurface } from "./telemetry.js";
|
|
|
13
13
|
export { PortfolioSurface } from "./portfolio.js";
|
|
14
14
|
export { TopologySurface } from "./topology.js";
|
|
15
15
|
export { TrainingSurface } from "./training.js";
|
|
16
|
+
export { SidebarSurface } from "./sidebar.js";
|
|
17
|
+
export { PhysicalWorldSurface } from "./physical-world.js";
|
|
18
|
+
export { KanbanSurface } from "./kanban.js";
|
|
16
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -13,4 +13,7 @@ export { TelemetrySurface } from "./telemetry.js";
|
|
|
13
13
|
export { PortfolioSurface } from "./portfolio.js";
|
|
14
14
|
export { TopologySurface } from "./topology.js";
|
|
15
15
|
export { TrainingSurface } from "./training.js";
|
|
16
|
+
export { SidebarSurface } from "./sidebar.js";
|
|
17
|
+
export { PhysicalWorldSurface } from "./physical-world.js";
|
|
18
|
+
export { KanbanSurface } from "./kanban.js";
|
|
16
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Smart Project Management Surface — AI-enhanced project tracking with automated issue resolution
|
|
3
|
+
*/
|
|
4
|
+
import type { StatusEntry } from "../backend.js";
|
|
5
|
+
import { SurfaceType } from "../surface-type.js";
|
|
6
|
+
import type { SurfaceContext, LiveData, NotificationRule } from "../surface-type.js";
|
|
7
|
+
export declare class KanbanSurface extends SurfaceType {
|
|
8
|
+
readonly type = "kanban";
|
|
9
|
+
readonly title = "Smart Project Management";
|
|
10
|
+
readonly description = "AI-enhanced project tracking \u2014 tasks automatically move from backlog to completion";
|
|
11
|
+
getCommand(ctx: SurfaceContext): string;
|
|
12
|
+
getStatusEntries(ctx: SurfaceContext, data: LiveData): StatusEntry[];
|
|
13
|
+
getNotificationRules(): NotificationRule[];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=kanban.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../../../../src/lib/workspace/surfaces/kanban.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,YAAW;IACxB,QAAQ,CAAC,KAAK,8BAA6B;IAC3C,QAAQ,CAAC,WAAW,6FAAuF;IAE3G,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;IAKvC,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE;IAepE,oBAAoB,IAAI,gBAAgB,EAAE;CAkB3C"}
|