fleetlens 0.16.7 → 0.16.9
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/app/apps/web/.next/BUILD_ID +1 -1
- package/app/apps/web/.next/build-manifest.json +3 -3
- package/app/apps/web/.next/prerender-manifest.json +3 -3
- package/app/apps/web/.next/server/app/_global-error.html +1 -1
- package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/agent/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/mcp/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/suggestions/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/events/route.js +1 -1
- package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/projects/open-folder/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/settings/credentials/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/onboarding/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/team/onboarding/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/chunks/{[externals]__0rv9ct5._.js → [externals]__0vj7dsg._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02petpy._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0_nle98._.js +1 -1
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_02bw8.n.js +2 -2
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__01wj6p0._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_0epqfet._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_0~aj0~u._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
- package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/app/apps/web/.next/server/middleware-manifest.json +5 -5
- package/app/apps/web/.next/server/pages/500.html +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/app/apps/web/.next/static/chunks/{0~opjw4gew2-w.js → 0e0bk6.-dirdy.js} +1 -1
- package/app/apps/web/.next/static/chunks/0i0ydeh8ks76..js +14 -0
- package/app/apps/web/app/api/events/route.ts +2 -0
- package/app/apps/web/app/settings/page.tsx +1 -1
- package/app/apps/web/app/usage/page.tsx +44 -34
- package/app/apps/web/components/menubar-install.tsx +1 -1
- package/app/apps/web/lib/changelog-data.generated.ts +1 -1
- package/app/apps/web/lib/daemon-lifecycle.test.ts +62 -0
- package/app/apps/web/lib/daemon-lifecycle.ts +50 -0
- package/app/apps/web/lib/menubar-data.ts +1 -1
- package/app/apps/web/lib/usage-data.ts +2 -0
- package/app/apps/web/lib/usage-display.test.ts +79 -0
- package/app/apps/web/lib/usage-display.ts +59 -0
- package/app/apps/web/package.json +1 -1
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/dist/daemon-worker.js +4 -4
- package/dist/index.js +44 -26
- package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/Info.plist +4 -4
- package/menubar/Fleetlens.app/Contents/MacOS/FleetlensMenubar +0 -0
- package/menubar/Fleetlens.app/Contents/Resources/Fleetlens.icns +0 -0
- package/menubar/Fleetlens.app/Contents/Resources/fleetlens-mark.svg +7 -0
- package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/_CodeSignature/CodeResources +22 -0
- package/package.json +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__123tfcb._.js +0 -3
- package/app/apps/web/.next/static/chunks/0guxw7.w8n21l.js +0 -14
- package/menubar/FleetlensMenubar.app/Contents/MacOS/FleetlensMenubar +0 -0
- /package/app/apps/web/.next/static/{Zna-9B0LUDyz-sTA_YAsM → pyul3PDbGo5QnjdZr6ZIg}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{Zna-9B0LUDyz-sTA_YAsM → pyul3PDbGo5QnjdZr6ZIg}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{Zna-9B0LUDyz-sTA_YAsM → pyul3PDbGo5QnjdZr6ZIg}/_ssgManifest.js +0 -0
- /package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/Resources/claude.svg +0 -0
- /package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/Resources/codex.svg +0 -0
- /package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/Resources/grok.svg +0 -0
- /package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/Resources/zai.svg +0 -0
package/dist/daemon-worker.js
CHANGED
|
@@ -9104,7 +9104,7 @@ function buildIngestPayload(inputs) {
|
|
|
9104
9104
|
return {
|
|
9105
9105
|
ingestId: randomUUID(),
|
|
9106
9106
|
observedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
9107
|
-
cliVersion: "0.16.
|
|
9107
|
+
cliVersion: "0.16.9",
|
|
9108
9108
|
...richRollup || inputs.enrichedExtras || inputs.artifactSignals ? { schemaVersion: RICH_ROLLUP_SCHEMA_VERSION } : {},
|
|
9109
9109
|
...inputs.rollup ? { dailyRollup: inputs.rollup } : {},
|
|
9110
9110
|
...richRollup ? { richRollup } : {},
|
|
@@ -18038,14 +18038,14 @@ async function getUpdateAvailability() {
|
|
|
18038
18038
|
if (isDevMode()) return null;
|
|
18039
18039
|
const latest = await fetchLatestVersion();
|
|
18040
18040
|
if (latest === null) return {
|
|
18041
|
-
current: "0.16.
|
|
18041
|
+
current: "0.16.9",
|
|
18042
18042
|
latest: null,
|
|
18043
18043
|
updateAvailable: false
|
|
18044
18044
|
};
|
|
18045
18045
|
return {
|
|
18046
|
-
current: "0.16.
|
|
18046
|
+
current: "0.16.9",
|
|
18047
18047
|
latest,
|
|
18048
|
-
updateAvailable: shouldUpdate("0.16.
|
|
18048
|
+
updateAvailable: shouldUpdate("0.16.9", latest)
|
|
18049
18049
|
};
|
|
18050
18050
|
}
|
|
18051
18051
|
|
package/dist/index.js
CHANGED
|
@@ -6241,9 +6241,9 @@ function onDiskVersion() {
|
|
|
6241
6241
|
try {
|
|
6242
6242
|
const here = dirname3(fileURLToPath(import.meta.url));
|
|
6243
6243
|
const pkg = JSON.parse(readFileSync5(join3(here, "..", "package.json"), "utf8"));
|
|
6244
|
-
return pkg.version ?? "0.16.
|
|
6244
|
+
return pkg.version ?? "0.16.9";
|
|
6245
6245
|
} catch {
|
|
6246
|
-
return "0.16.
|
|
6246
|
+
return "0.16.9";
|
|
6247
6247
|
}
|
|
6248
6248
|
}
|
|
6249
6249
|
function getServerStatus() {
|
|
@@ -6255,7 +6255,7 @@ function getServerStatus() {
|
|
|
6255
6255
|
return { running: false };
|
|
6256
6256
|
}
|
|
6257
6257
|
function isServerStale(status2) {
|
|
6258
|
-
return status2.running === true && status2.version !== "0.16.
|
|
6258
|
+
return status2.running === true && status2.version !== "0.16.9";
|
|
6259
6259
|
}
|
|
6260
6260
|
async function ensureCurrentServer(opts = {}) {
|
|
6261
6261
|
const status2 = getServerStatus();
|
|
@@ -6263,7 +6263,7 @@ async function ensureCurrentServer(opts = {}) {
|
|
|
6263
6263
|
return { pid: status2.pid, port: status2.port, restarted: false };
|
|
6264
6264
|
}
|
|
6265
6265
|
if (!status2.running) {
|
|
6266
|
-
const result = await startServer(
|
|
6266
|
+
const result = await startServer(opts);
|
|
6267
6267
|
return { ...result, restarted: false };
|
|
6268
6268
|
}
|
|
6269
6269
|
const previousVersion = status2.version;
|
|
@@ -6279,7 +6279,7 @@ async function ensureCurrentServer(opts = {}) {
|
|
|
6279
6279
|
await waitForPortFree(port, 3e3);
|
|
6280
6280
|
}
|
|
6281
6281
|
try {
|
|
6282
|
-
const result = await startServer({ port });
|
|
6282
|
+
const result = await startServer({ port, autoStartDaemon: opts.autoStartDaemon });
|
|
6283
6283
|
return { ...result, restarted: true, previousVersion };
|
|
6284
6284
|
} catch (err) {
|
|
6285
6285
|
if (isProcessAlive(oldPid, SERVER_MARKERS)) writePid(PID_FILE, oldPid, port, previousVersion);
|
|
@@ -6305,7 +6305,8 @@ async function startServer(opts = {}) {
|
|
|
6305
6305
|
PORT: String(port),
|
|
6306
6306
|
HOSTNAME: "localhost",
|
|
6307
6307
|
CCLENS_DATA_DIR: dataDir,
|
|
6308
|
-
FLEETLENS_CLI_BIN: cliBinRealPath()
|
|
6308
|
+
FLEETLENS_CLI_BIN: cliBinRealPath(),
|
|
6309
|
+
FLEETLENS_WEB_START_DAEMON: opts.autoStartDaemon === false ? "0" : "1"
|
|
6309
6310
|
},
|
|
6310
6311
|
cwd: appDir()
|
|
6311
6312
|
});
|
|
@@ -6694,9 +6695,9 @@ Installed: ${PACKAGE_NAME}@${verify.installedVersion} at ${verify.installedPath
|
|
|
6694
6695
|
console.warn(
|
|
6695
6696
|
` \u2022 reinstall in the correct Node env: 'npm install -g ${PACKAGE_NAME}@latest'`
|
|
6696
6697
|
);
|
|
6697
|
-
} else if (verify.installedVersion !== "0.16.
|
|
6698
|
+
} else if (verify.installedVersion !== "0.16.9") {
|
|
6698
6699
|
console.log(
|
|
6699
|
-
` \u2192 This process is still running ${"0.16.
|
|
6700
|
+
` \u2192 This process is still running ${"0.16.9"}. Next invocation will use ${verify.installedVersion}.`
|
|
6700
6701
|
);
|
|
6701
6702
|
}
|
|
6702
6703
|
}
|
|
@@ -6731,14 +6732,14 @@ async function getUpdateAvailability() {
|
|
|
6731
6732
|
if (isDevMode()) return null;
|
|
6732
6733
|
const latest = await fetchLatestVersion();
|
|
6733
6734
|
if (latest === null) return {
|
|
6734
|
-
current: "0.16.
|
|
6735
|
+
current: "0.16.9",
|
|
6735
6736
|
latest: null,
|
|
6736
6737
|
updateAvailable: false
|
|
6737
6738
|
};
|
|
6738
6739
|
return {
|
|
6739
|
-
current: "0.16.
|
|
6740
|
+
current: "0.16.9",
|
|
6740
6741
|
latest,
|
|
6741
|
-
updateAvailable: shouldUpdate("0.16.
|
|
6742
|
+
updateAvailable: shouldUpdate("0.16.9", latest)
|
|
6742
6743
|
};
|
|
6743
6744
|
}
|
|
6744
6745
|
async function checkForUpdate() {
|
|
@@ -6828,7 +6829,7 @@ async function restartServices(state) {
|
|
|
6828
6829
|
}
|
|
6829
6830
|
async function forceUpdate() {
|
|
6830
6831
|
const latest = await fetchLatestVersion();
|
|
6831
|
-
const current = "0.16.
|
|
6832
|
+
const current = "0.16.9";
|
|
6832
6833
|
if (latest === null) {
|
|
6833
6834
|
console.error("Could not reach npm registry. Check your network.");
|
|
6834
6835
|
process.exit(1);
|
|
@@ -7147,7 +7148,7 @@ async function start(args2) {
|
|
|
7147
7148
|
let serverPid;
|
|
7148
7149
|
try {
|
|
7149
7150
|
console.log("Starting Fleetlens...");
|
|
7150
|
-
const result = await ensureCurrentServer({ port });
|
|
7151
|
+
const result = await ensureCurrentServer({ port, autoStartDaemon: !noDaemon });
|
|
7151
7152
|
serverUrl = `http://localhost:${result.port}`;
|
|
7152
7153
|
serverPid = result.pid;
|
|
7153
7154
|
if (result.restarted) {
|
|
@@ -7241,7 +7242,7 @@ async function status() {
|
|
|
7241
7242
|
console.log(`Server: running on ${url} (PID ${server.pid}, v${ver})`);
|
|
7242
7243
|
if (isServerStale(server)) {
|
|
7243
7244
|
console.log(
|
|
7244
|
-
` \u26A0 serving stale ${ver} (CLI is ${"0.16.
|
|
7245
|
+
` \u26A0 serving stale ${ver} (CLI is ${"0.16.9"}) \u2014 run 'fleetlens start' to restart on the current version`
|
|
7245
7246
|
);
|
|
7246
7247
|
}
|
|
7247
7248
|
} else {
|
|
@@ -19442,6 +19443,9 @@ function writeCliLaunchFile() {
|
|
|
19442
19443
|
function installedAppPath() {
|
|
19443
19444
|
return join13(homedir6(), "Applications", APP_BUNDLE);
|
|
19444
19445
|
}
|
|
19446
|
+
function legacyInstalledAppPath() {
|
|
19447
|
+
return join13(homedir6(), "Applications", LEGACY_APP_BUNDLE);
|
|
19448
|
+
}
|
|
19445
19449
|
async function isRunning() {
|
|
19446
19450
|
try {
|
|
19447
19451
|
const { stdout } = await execFileAsync2("pgrep", ["-x", BUNDLE_EXEC]);
|
|
@@ -19461,11 +19465,18 @@ async function quitApp() {
|
|
|
19461
19465
|
await execFileAsync2("pkill", ["-x", BUNDLE_EXEC]).catch(() => {
|
|
19462
19466
|
});
|
|
19463
19467
|
}
|
|
19464
|
-
async function
|
|
19465
|
-
const script =
|
|
19468
|
+
async function addLoginItem(appPath) {
|
|
19469
|
+
const script = `tell application "System Events" to make login item at end with properties {path:"${appPath}", hidden:false}`;
|
|
19466
19470
|
await execFileAsync2("osascript", ["-e", script]).catch(() => {
|
|
19467
19471
|
});
|
|
19468
19472
|
}
|
|
19473
|
+
async function removeLoginItem(name) {
|
|
19474
|
+
await execFileAsync2("osascript", [
|
|
19475
|
+
"-e",
|
|
19476
|
+
`tell application "System Events" to delete login item "${name}"`
|
|
19477
|
+
]).catch(() => {
|
|
19478
|
+
});
|
|
19479
|
+
}
|
|
19469
19480
|
async function installMenubar(opts) {
|
|
19470
19481
|
if (!isMac2()) {
|
|
19471
19482
|
console.log(NON_MAC_MSG2);
|
|
@@ -19475,7 +19486,7 @@ async function installMenubar(opts) {
|
|
|
19475
19486
|
if (!existsSync19(src)) {
|
|
19476
19487
|
console.error(
|
|
19477
19488
|
`Bundled widget not found at ${src}.
|
|
19478
|
-
This install was probably built without the menubar artifact. Run \`
|
|
19489
|
+
This install was probably built without the menubar artifact. Run \`bash apps/menubar/build-app.sh && cp -R apps/menubar/dist/Fleetlens.app packages/cli/menubar/\` and rebuild.`
|
|
19479
19490
|
);
|
|
19480
19491
|
process.exit(1);
|
|
19481
19492
|
}
|
|
@@ -19488,11 +19499,14 @@ This install was probably built without the menubar artifact. Run \`node apps/me
|
|
|
19488
19499
|
await new Promise((r) => setTimeout(r, 400));
|
|
19489
19500
|
}
|
|
19490
19501
|
rmSync2(dest, { recursive: true, force: true });
|
|
19502
|
+
rmSync2(legacyInstalledAppPath(), { recursive: true, force: true });
|
|
19491
19503
|
cpSync(src, dest, { recursive: true });
|
|
19492
19504
|
writeCliLaunchFile();
|
|
19493
19505
|
console.log(`Installed \u2192 ${dest}`);
|
|
19506
|
+
await removeLoginItem(APP_BUNDLE.replace(".app", ""));
|
|
19507
|
+
await removeLoginItem(LEGACY_APP_BUNDLE.replace(".app", ""));
|
|
19494
19508
|
if (opts.login) {
|
|
19495
|
-
await
|
|
19509
|
+
await addLoginItem(dest);
|
|
19496
19510
|
console.log("Login item enabled (launches at login).");
|
|
19497
19511
|
}
|
|
19498
19512
|
if (opts.open) {
|
|
@@ -19507,7 +19521,8 @@ async function uninstallMenubar() {
|
|
|
19507
19521
|
console.log(NON_MAC_MSG2);
|
|
19508
19522
|
return;
|
|
19509
19523
|
}
|
|
19510
|
-
await
|
|
19524
|
+
await removeLoginItem(APP_BUNDLE.replace(".app", ""));
|
|
19525
|
+
await removeLoginItem(LEGACY_APP_BUNDLE.replace(".app", ""));
|
|
19511
19526
|
if (await isRunning()) {
|
|
19512
19527
|
console.log("Quitting the running widget\u2026");
|
|
19513
19528
|
await quitApp();
|
|
@@ -19520,6 +19535,7 @@ async function uninstallMenubar() {
|
|
|
19520
19535
|
} else {
|
|
19521
19536
|
console.log("Widget is not installed \u2014 nothing to remove.");
|
|
19522
19537
|
}
|
|
19538
|
+
rmSync2(legacyInstalledAppPath(), { recursive: true, force: true });
|
|
19523
19539
|
console.log("Login item cleared (if it was set).");
|
|
19524
19540
|
}
|
|
19525
19541
|
async function openMenubar() {
|
|
@@ -19604,8 +19620,9 @@ async function menubar(args2) {
|
|
|
19604
19620
|
status Show install/running/bundled state.
|
|
19605
19621
|
|
|
19606
19622
|
The widget tails ~/.cclens/usage.jsonl and shows live Claude Code / Codex
|
|
19607
|
-
plan utilization in the menu bar.
|
|
19608
|
-
open
|
|
19623
|
+
plan utilization in the menu bar. It starts the usage daemon when launched
|
|
19624
|
+
and re-checks it whenever you open the popover or usage data becomes more
|
|
19625
|
+
than five minutes stale. Click "Dashboard" to open http://localhost:3321.`);
|
|
19609
19626
|
break;
|
|
19610
19627
|
default:
|
|
19611
19628
|
console.error(
|
|
@@ -19615,13 +19632,14 @@ Usage: fleetlens menubar <install|uninstall|open|stop|status>`
|
|
|
19615
19632
|
process.exit(1);
|
|
19616
19633
|
}
|
|
19617
19634
|
}
|
|
19618
|
-
var execFileAsync2, APP_BUNDLE, BUNDLE_EXEC, NON_MAC_MSG2;
|
|
19635
|
+
var execFileAsync2, APP_BUNDLE, LEGACY_APP_BUNDLE, BUNDLE_EXEC, NON_MAC_MSG2;
|
|
19619
19636
|
var init_menubar = __esm({
|
|
19620
19637
|
"src/commands/menubar.ts"() {
|
|
19621
19638
|
"use strict";
|
|
19622
19639
|
init_fs();
|
|
19623
19640
|
execFileAsync2 = promisify2(execFile2);
|
|
19624
|
-
APP_BUNDLE = "
|
|
19641
|
+
APP_BUNDLE = "Fleetlens.app";
|
|
19642
|
+
LEGACY_APP_BUNDLE = "FleetlensMenubar.app";
|
|
19625
19643
|
BUNDLE_EXEC = "FleetlensMenubar";
|
|
19626
19644
|
NON_MAC_MSG2 = "The Fleetlens menu bar widget is a native macOS app and is macOS-only. On Linux/Windows, keep using the dashboard at the printed URL.";
|
|
19627
19645
|
}
|
|
@@ -19911,7 +19929,7 @@ function buildIngestPayload(inputs) {
|
|
|
19911
19929
|
return {
|
|
19912
19930
|
ingestId: randomUUID2(),
|
|
19913
19931
|
observedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
19914
|
-
cliVersion: "0.16.
|
|
19932
|
+
cliVersion: "0.16.9",
|
|
19915
19933
|
...richRollup || inputs.enrichedExtras || inputs.artifactSignals ? { schemaVersion: RICH_ROLLUP_SCHEMA_VERSION } : {},
|
|
19916
19934
|
...inputs.rollup ? { dailyRollup: inputs.rollup } : {},
|
|
19917
19935
|
...richRollup ? { richRollup } : {},
|
|
@@ -21954,7 +21972,7 @@ async function main() {
|
|
|
21954
21972
|
case "version":
|
|
21955
21973
|
case "--version":
|
|
21956
21974
|
case "-v":
|
|
21957
|
-
console.log(`fleetlens ${"0.16.
|
|
21975
|
+
console.log(`fleetlens ${"0.16.9"}`);
|
|
21958
21976
|
break;
|
|
21959
21977
|
case "help":
|
|
21960
21978
|
case "--help":
|
|
@@ -21977,7 +21995,7 @@ Terminal:
|
|
|
21977
21995
|
runs [--watch] [--json] [--since 24h] Live LLM call activity + token spend
|
|
21978
21996
|
|
|
21979
21997
|
Advanced:
|
|
21980
|
-
web [page] [--open] Print dashboard URL
|
|
21998
|
+
web [page] [--open] Print dashboard URL; opening it also recovers a stopped daemon
|
|
21981
21999
|
start --no-daemon Start only the web server (no daemon)
|
|
21982
22000
|
daemon <start|stop|status|logs> Manage the usage daemon by itself
|
|
21983
22001
|
autostart <install|uninstall|status> Run the usage daemon at login (macOS launchd)
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
<dict>
|
|
5
5
|
<key>CFBundleDevelopmentRegion</key><string>en</string>
|
|
6
6
|
<key>CFBundleExecutable</key><string>FleetlensMenubar</string>
|
|
7
|
-
<key>CFBundleIconFile</key><string
|
|
7
|
+
<key>CFBundleIconFile</key><string>Fleetlens.icns</string>
|
|
8
8
|
<key>CFBundleIdentifier</key><string>ai.fleetlens.menubar</string>
|
|
9
9
|
<key>CFBundleInfoDictionaryVersion</key><string>6.0</string>
|
|
10
10
|
<key>CFBundleName</key><string>Fleetlens</string>
|
|
11
|
-
<key>CFBundleDisplayName</key><string>Fleetlens
|
|
11
|
+
<key>CFBundleDisplayName</key><string>Fleetlens</string>
|
|
12
12
|
<key>CFBundlePackageType</key><string>APPL</string>
|
|
13
|
-
<key>CFBundleShortVersionString</key><string>0.16.
|
|
14
|
-
<key>CFBundleVersion</key><string>0.16.
|
|
13
|
+
<key>CFBundleShortVersionString</key><string>0.16.9</string>
|
|
14
|
+
<key>CFBundleVersion</key><string>0.16.9</string>
|
|
15
15
|
<key>LSApplicationCategoryType</key><string>public.app-category.developer-tools</string>
|
|
16
16
|
<key>LSMinimumSystemVersion</key><string>14.0</string>
|
|
17
17
|
<key>LSUIElement</key><true/>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
|
|
2
|
+
<rect width="32" height="32" rx="9" fill="#0D9488"/>
|
|
3
|
+
<path d="M7.5 8.5h2.75c5.1 0 5.1 6.5 9.3 6.5H22v2h-2.45c-5.2 0-5.2-6.5-9.3-6.5H7.5z" fill="white"/>
|
|
4
|
+
<path d="M7.5 15H22v2H7.5z" fill="white"/>
|
|
5
|
+
<path d="M7.5 21.5h2.75c4.1 0 4.1-6.5 9.3-6.5H22v2h-2.45c-4.2 0-4.2 6.5-9.3 6.5H7.5z" fill="white"/>
|
|
6
|
+
<circle cx="24.5" cy="16" r="2.5" fill="white"/>
|
|
7
|
+
</svg>
|
package/menubar/{FleetlensMenubar.app → Fleetlens.app}/Contents/_CodeSignature/CodeResources
RENAMED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
<dict>
|
|
5
5
|
<key>files</key>
|
|
6
6
|
<dict>
|
|
7
|
+
<key>Resources/Fleetlens.icns</key>
|
|
8
|
+
<data>
|
|
9
|
+
NKrSPxjCjw0xmOgvoG31OeMS5Po=
|
|
10
|
+
</data>
|
|
7
11
|
<key>Resources/claude.svg</key>
|
|
8
12
|
<data>
|
|
9
13
|
sZ+BX4Qhp59/FCvfW2wJIwiH6Yo=
|
|
@@ -12,6 +16,10 @@
|
|
|
12
16
|
<data>
|
|
13
17
|
r+rHIJooRcD9VUSTGH3DzUbLfz0=
|
|
14
18
|
</data>
|
|
19
|
+
<key>Resources/fleetlens-mark.svg</key>
|
|
20
|
+
<data>
|
|
21
|
+
uZIkTH/r4Jkr05rGOmWHVhc2UPc=
|
|
22
|
+
</data>
|
|
15
23
|
<key>Resources/grok.svg</key>
|
|
16
24
|
<data>
|
|
17
25
|
ag5AkUKYKo/2vBhrhvxr8vFjYtg=
|
|
@@ -23,6 +31,13 @@
|
|
|
23
31
|
</dict>
|
|
24
32
|
<key>files2</key>
|
|
25
33
|
<dict>
|
|
34
|
+
<key>Resources/Fleetlens.icns</key>
|
|
35
|
+
<dict>
|
|
36
|
+
<key>hash2</key>
|
|
37
|
+
<data>
|
|
38
|
+
jJthY0bxZLSwOOTOyKo77d76HDWcPdRXAsYhEylUgDg=
|
|
39
|
+
</data>
|
|
40
|
+
</dict>
|
|
26
41
|
<key>Resources/claude.svg</key>
|
|
27
42
|
<dict>
|
|
28
43
|
<key>hash2</key>
|
|
@@ -37,6 +52,13 @@
|
|
|
37
52
|
cYTye5ig9uIFRuJYr2R7kkGXfzthdp7f+T8NdbSzZP0=
|
|
38
53
|
</data>
|
|
39
54
|
</dict>
|
|
55
|
+
<key>Resources/fleetlens-mark.svg</key>
|
|
56
|
+
<dict>
|
|
57
|
+
<key>hash2</key>
|
|
58
|
+
<data>
|
|
59
|
+
xE+n+OmsiW4chf9QqmkT2QjGqCdwmt8qBPR98pU2s+4=
|
|
60
|
+
</data>
|
|
61
|
+
</dict>
|
|
40
62
|
<key>Resources/grok.svg</key>
|
|
41
63
|
<dict>
|
|
42
64
|
<key>hash2</key>
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},27174,e=>{"use strict";e.i(39587),e.s([])},30212,e=>{"use strict";var t=e.i(79357);function r(e){return(0,t.toLocalDay)(e.getTime())}function n(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=t.getDay(),a=new Date(t);a.setDate(t.getDate()-(r+6)%7);let o=new Date(a);return o.setDate(a.getDate()+6),{start:a,end:o}}e.s(["aggregateConcurrency",0,function(e,t){let n,a=function(e,t){let r=[],n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;n.getTime()<=a.getTime();)r.push(new Date(n)),n.setDate(n.getDate()+1);return r}(t.start,t.end),o=new Map;for(let e of a)o.set(r(e),{peak:0,has_cross_project:!1});for(let t of e){let e=r(new Date(t.startMs)),n=o.get(e);n&&(t.peak>n.peak&&(n.peak=t.peak),t.crossProject&&(n.has_cross_project=!0))}let s=a.map(e=>{let t=r(e),n=o.get(t);return{date:t,peak:n.peak,has_cross_project:n.has_cross_project}}),i=0,p=0,l=0;for(let e of s)e.peak>i&&(i=e.peak,n=e.date),e.peak>=3&&p++,e.has_cross_project&&l++;return{by_day:s,peak:i,peak_day:n,multi_agent_days:p,cross_project_days:l}},"calendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth(),1),end:new Date(e.getFullYear(),e.getMonth()+1,0)}},"calendarWeek",0,n,"priorCalendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth()-1,1),end:new Date(e.getFullYear(),e.getMonth(),0)}},"priorCalendarWeek",0,function(e=new Date){let t=n(e),r=new Date(t.start);r.setDate(t.start.getDate()-1);let a=new Date(r);return a.setDate(r.getDate()-6),{start:a,end:r}}])},75169,e=>{"use strict";function t(e){let t=new Date(e),r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${r}-${n}-${a}`}function r(e=Date.now()){return t(e)}e.i(5737);let n=/^\d{4}-\d{2}-\d{2}$/;function a(e){return n.test(e)}let o=/^\d{4}-\d{2}$/;e.s(["asMonday",0,function(e){return a(e)&&1===new Date(`${e}T00:00:00`).getDay()?e:null},"currentWeekMonday",0,function(e=Date.now()){var n;let a,o;return n=r(e),o=(a=new Date(`${n}T00:00:00`)).getDay(),a.setDate(a.getDate()+(0===o?-6:1-o)),t(a.getTime())},"currentYearMonth",0,function(e=Date.now()){return r(e).slice(0,7)},"isValidDate",0,a,"isValidYearMonth",0,function(e){return o.test(e)},"todayLocal",0,r])},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__123tfcb._.js.map
|