fleetlens 0.6.1 → 0.6.3
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/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/jobs/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/route.js.nft.json +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/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/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/node_modules_next_036my~r._.js +6 -6
- package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +12 -12
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-1_njm._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wwa6gh._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0xu2pvc._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_settings_ai-features-form_tsx_01p699p._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/packages_entries_dist_node_0_271yr.js +1 -1
- package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
- 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/04m3slg_5ph02.js +1 -0
- package/app/apps/web/.next/static/chunks/0wfbj5zr~az.z.css +1 -0
- package/app/apps/web/app/api/settings/route.ts +8 -3
- package/app/apps/web/app/insights/page.tsx +5 -3
- package/app/apps/web/app/settings/ai-features-form.tsx +19 -1
- package/app/apps/web/app/settings/page.tsx +4 -1
- package/app/apps/web/lib/validate-settings.ts +4 -1
- package/app/apps/web/package.json +1 -1
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/dist/daemon-worker.js +7495 -74
- package/dist/index.js +31 -10
- package/package.json +1 -1
- package/app/apps/web/.next/static/chunks/0-yc2_pjxwwuq.js +0 -1
- package/app/apps/web/.next/static/chunks/0fs3gxea5h0s3.css +0 -1
- package/app/apps/web/lib/auto-week-fire.ts +0 -37
- /package/app/apps/web/.next/static/{fm3KE6Y_UOzhf_27jAYYK → YT0fi8TIPXu7nZyww-N2v}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{fm3KE6Y_UOzhf_27jAYYK → YT0fi8TIPXu7nZyww-N2v}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{fm3KE6Y_UOzhf_27jAYYK → YT0fi8TIPXu7nZyww-N2v}/_ssgManifest.js +0 -0
package/dist/index.js
CHANGED
|
@@ -454,9 +454,9 @@ Installed: ${PACKAGE_NAME}@${verify.installedVersion} at ${verify.installedPath
|
|
|
454
454
|
console.warn(
|
|
455
455
|
` \u2022 reinstall in the correct Node env: 'npm install -g ${PACKAGE_NAME}@latest'`
|
|
456
456
|
);
|
|
457
|
-
} else if (verify.installedVersion !== "0.6.
|
|
457
|
+
} else if (verify.installedVersion !== "0.6.3") {
|
|
458
458
|
console.log(
|
|
459
|
-
` \u2192 This process is still running ${"0.6.
|
|
459
|
+
` \u2192 This process is still running ${"0.6.3"}. Next invocation will use ${verify.installedVersion}.`
|
|
460
460
|
);
|
|
461
461
|
}
|
|
462
462
|
}
|
|
@@ -492,7 +492,7 @@ async function checkForUpdate() {
|
|
|
492
492
|
if (process.env.__FLEETLENS_UPDATED === "1" || process.env.__CCLENS_UPDATED === "1") return;
|
|
493
493
|
const latest = await fetchLatestVersion();
|
|
494
494
|
if (latest === null) return;
|
|
495
|
-
const current = "0.6.
|
|
495
|
+
const current = "0.6.3";
|
|
496
496
|
if (!shouldUpdate(current, latest)) return;
|
|
497
497
|
console.log(`Updating ${PACKAGE_NAME} ${current} \u2192 ${latest}...`);
|
|
498
498
|
await stopRunningServices();
|
|
@@ -574,7 +574,7 @@ async function restartServices(state) {
|
|
|
574
574
|
}
|
|
575
575
|
async function forceUpdate() {
|
|
576
576
|
const latest = await fetchLatestVersion();
|
|
577
|
-
const current = "0.6.
|
|
577
|
+
const current = "0.6.3";
|
|
578
578
|
if (latest === null) {
|
|
579
579
|
console.error("Could not reach npm registry. Check your network.");
|
|
580
580
|
process.exit(1);
|
|
@@ -8552,10 +8552,26 @@ function lockPath() {
|
|
|
8552
8552
|
function __setInteractiveLockPathForTest(path2) {
|
|
8553
8553
|
lockPathCached = path2;
|
|
8554
8554
|
}
|
|
8555
|
-
function
|
|
8555
|
+
function touchLock() {
|
|
8556
8556
|
writeFileSync5(lockPath(), String(process.pid), "utf8");
|
|
8557
8557
|
}
|
|
8558
|
+
function writeInteractiveLock() {
|
|
8559
|
+
touchLock();
|
|
8560
|
+
if (heartbeat)
|
|
8561
|
+
clearInterval(heartbeat);
|
|
8562
|
+
heartbeat = setInterval(() => {
|
|
8563
|
+
try {
|
|
8564
|
+
touchLock();
|
|
8565
|
+
} catch {
|
|
8566
|
+
}
|
|
8567
|
+
}, HEARTBEAT_MS);
|
|
8568
|
+
heartbeat.unref?.();
|
|
8569
|
+
}
|
|
8558
8570
|
function removeInteractiveLock() {
|
|
8571
|
+
if (heartbeat) {
|
|
8572
|
+
clearInterval(heartbeat);
|
|
8573
|
+
heartbeat = null;
|
|
8574
|
+
}
|
|
8559
8575
|
try {
|
|
8560
8576
|
unlinkSync2(lockPath());
|
|
8561
8577
|
} catch {
|
|
@@ -8587,12 +8603,14 @@ function interactiveLockFresh(nowMs) {
|
|
|
8587
8603
|
return false;
|
|
8588
8604
|
}
|
|
8589
8605
|
}
|
|
8590
|
-
var STALE_MS, lockPathCached;
|
|
8606
|
+
var STALE_MS, HEARTBEAT_MS, lockPathCached, heartbeat;
|
|
8591
8607
|
var init_pipeline_lock = __esm({
|
|
8592
8608
|
"../entries/dist/pipeline-lock.js"() {
|
|
8593
8609
|
"use strict";
|
|
8594
8610
|
STALE_MS = 60 * 1e3;
|
|
8611
|
+
HEARTBEAT_MS = 30 * 1e3;
|
|
8595
8612
|
lockPathCached = null;
|
|
8613
|
+
heartbeat = null;
|
|
8596
8614
|
}
|
|
8597
8615
|
});
|
|
8598
8616
|
|
|
@@ -8697,7 +8715,8 @@ function toDisk(s) {
|
|
|
8697
8715
|
ai_features: {
|
|
8698
8716
|
enabled: s.ai_features.enabled,
|
|
8699
8717
|
model: s.ai_features.model,
|
|
8700
|
-
monthly_budget_usd: s.ai_features.monthlyBudgetUsd
|
|
8718
|
+
monthly_budget_usd: s.ai_features.monthlyBudgetUsd,
|
|
8719
|
+
auto_backfill_last_week: s.ai_features.autoBackfillLastWeek
|
|
8701
8720
|
}
|
|
8702
8721
|
};
|
|
8703
8722
|
}
|
|
@@ -8707,7 +8726,8 @@ function fromDisk(d) {
|
|
|
8707
8726
|
ai_features: {
|
|
8708
8727
|
enabled: af.enabled ?? DEFAULT_SETTINGS.ai_features.enabled,
|
|
8709
8728
|
model: af.model ?? DEFAULT_SETTINGS.ai_features.model,
|
|
8710
|
-
monthlyBudgetUsd: af.monthly_budget_usd ?? null
|
|
8729
|
+
monthlyBudgetUsd: af.monthly_budget_usd ?? null,
|
|
8730
|
+
autoBackfillLastWeek: af.auto_backfill_last_week ?? DEFAULT_SETTINGS.ai_features.autoBackfillLastWeek
|
|
8711
8731
|
}
|
|
8712
8732
|
};
|
|
8713
8733
|
}
|
|
@@ -8740,7 +8760,8 @@ var init_settings = __esm({
|
|
|
8740
8760
|
ai_features: {
|
|
8741
8761
|
enabled: true,
|
|
8742
8762
|
model: "sonnet",
|
|
8743
|
-
monthlyBudgetUsd: null
|
|
8763
|
+
monthlyBudgetUsd: null,
|
|
8764
|
+
autoBackfillLastWeek: true
|
|
8744
8765
|
}
|
|
8745
8766
|
};
|
|
8746
8767
|
settingsPathCached = null;
|
|
@@ -14027,7 +14048,7 @@ async function main() {
|
|
|
14027
14048
|
case "version":
|
|
14028
14049
|
case "--version":
|
|
14029
14050
|
case "-v":
|
|
14030
|
-
console.log(`fleetlens ${"0.6.
|
|
14051
|
+
console.log(`fleetlens ${"0.6.3"}`);
|
|
14031
14052
|
break;
|
|
14032
14053
|
case "help":
|
|
14033
14054
|
case "--help":
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55700,e=>{"use strict";var t=e.i(18050),s=e.i(71645);e.s(["AiFeaturesForm",0,function({initial:e}){let[a,n]=(0,s.useState)(e.enabled),[i,c]=(0,s.useState)(!1),[l,r]=(0,s.useState)(null);async function o(e){e.preventDefault(),c(!0),r(null);let t=await fetch("/api/settings",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({ai_features:{enabled:a}})});c(!1),r(t.ok?"Saved.":`Error: ${t.status}`)}return(0,t.jsxs)("form",{onSubmit:o,className:"space-y-4",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:a,onChange:e=>n(e.target.checked)}),(0,t.jsx)("span",{children:"Enable AI digests and enrichment"})]}),(0,t.jsx)("button",{type:"submit",disabled:i,className:"px-3 py-1 border rounded bg-black text-white disabled:opacity-60",children:i?"Saving…":"Save"}),l&&(0,t.jsx)("p",{className:"text-sm",children:l})]})}])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Fira Code", "JetBrains Mono", "Cascadia Code", monospace;--color-gray-500:#6a7282;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--default-mono-font-family:"SF Mono", "Fira Code", "JetBrains Mono", "Cascadia Code", monospace}@supports (color:lab(0% 0 0)){:root,:host{--color-gray-500:lab(47.7841% -.393182 -10.0268)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.max-w-2xl{max-width:var(--container-2xl)}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.items-baseline{align-items:baseline}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-black{background-color:var(--color-black)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:calc(var(--spacing) * 1)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-all{word-break:break-all}.text-gray-500{color:var(--color-gray-500)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.disabled\:opacity-60:disabled{opacity:.6}}:root,[data-theme=dark]{--background:#1a1a1f;--foreground:#e8e8f0;--af-accent:#2dd4bf;--af-accent-hover:#5eead4;--af-accent-subtle:#2dd4bf1f;--af-success:#34d399;--af-success-subtle:#34d3991f;--af-warning:#fbbf24;--af-warning-subtle:#fbbf241a;--af-danger:#f87171;--af-danger-subtle:#f871711f;--af-info:#a78bfa;--af-info-subtle:#a78bfa1f;--af-surface:#2c2c33;--af-surface-hover:#333340;--af-surface-elevated:#38384a;--af-border-subtle:#2f2f38;--af-text:#e8e8f0;--af-text-secondary:#9090a0;--af-text-tertiary:#707078;--af-heatmap-0:#2f2f38;--af-heatmap-1:#2dd4bf2e;--af-heatmap-2:#2dd4bf59;--af-heatmap-3:#2dd4bf99;--af-heatmap-4:#2dd4bfe6}[data-theme=light]{--background:#fdfbf9;--foreground:#1a1a1a;--af-accent:#14b8a6;--af-accent-hover:#0d9488;--af-accent-subtle:#14b8a61f;--af-success:#059669;--af-success-subtle:#0596691f;--af-warning:#d97706;--af-warning-subtle:#d977061f;--af-danger:#c53030;--af-danger-subtle:#c530301f;--af-info:#8168e0;--af-info-subtle:#8168e01f;--af-surface:#f5f1ec;--af-surface-hover:#ede8e0;--af-surface-elevated:#e8e2da;--af-border-subtle:#e8e2da;--af-text:#1a1a1a;--af-text-secondary:#5a544e;--af-text-tertiary:#8a8580;--af-heatmap-0:#ede8e0;--af-heatmap-1:#14b8a638;--af-heatmap-2:#14b8a666;--af-heatmap-3:#14b8a6a6;--af-heatmap-4:#14b8a6f2}html,body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.6}body{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--background);border:1px solid var(--af-border-subtle);color:var(--af-text);border-radius:8px;outline:none;padding:9px 12px;font-size:13px;transition:border-color .15s}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--af-accent);box-shadow:0 0 0 3px var(--af-accent-subtle)}input::placeholder{color:var(--af-text-tertiary)}.sl-compact-select{border-radius:6px!important;height:32px!important;padding:4px 28px 4px 10px!important;font-size:12px!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--af-border-subtle);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--af-surface-elevated)}.af-panel{background:var(--af-surface);border:1px solid var(--af-border-subtle);border-radius:12px;overflow:hidden}.af-panel-header{border-bottom:1px solid var(--af-border-subtle);align-items:center;gap:6px;padding:14px 18px;font-size:13px;font-weight:600;display:flex}.af-tag{border:none;border-radius:100px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}.af-tag-default{background:var(--af-border-subtle);color:var(--af-text-secondary)}.af-tag-accent{background:var(--af-accent-subtle);color:var(--af-accent)}.af-tag-success{background:var(--af-success-subtle);color:var(--af-success)}.af-tag-warning{background:var(--af-warning-subtle);color:var(--af-warning)}.af-tag-danger{background:var(--af-danger-subtle);color:var(--af-danger)}.af-empty{text-align:center;color:var(--af-text-tertiary);padding:48px 32px;font-size:13px}.af-tabs{background:var(--background);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.af-tab-btn{color:var(--af-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 18px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.af-tab-btn:hover{color:var(--af-text)}.af-tab-btn.active{background:var(--af-surface-elevated);color:var(--af-text);box-shadow:0 1px 3px #0003}.flex{display:flex}.items-center{align-items:center}.items-baseline{align-items:baseline}.af-card{background:var(--af-surface);border:1px solid var(--af-border-subtle);border-radius:12px;padding:18px 20px;transition:border-color .12s}.af-card:hover{border-color:var(--af-surface-elevated)}.sl-prose{color:var(--af-text);word-break:break-word;font-size:13.5px;line-height:1.65}.sl-prose>:first-child{margin-top:0}.sl-prose>:last-child{margin-bottom:0}.sl-prose h1,.sl-prose h2,.sl-prose h3,.sl-prose h4{letter-spacing:-.01em;color:var(--af-text);margin:18px 0 8px;font-weight:700;line-height:1.25}.sl-prose h1{border-bottom:1px solid var(--af-border-subtle);padding-bottom:6px;font-size:20px}.sl-prose h2{font-size:16px}.sl-prose h3{font-size:14px}.sl-prose h4{color:var(--af-text-secondary);font-size:13px}.sl-prose p{margin:10px 0}.sl-prose strong{color:var(--af-text);font-weight:600}.sl-prose em{color:var(--af-text);font-style:italic}.sl-prose ul,.sl-prose ol{margin:10px 0;padding-left:22px}.sl-prose ul{list-style-type:disc}.sl-prose ol{list-style-type:decimal}.sl-prose li,.sl-prose li>p{margin:4px 0}.sl-prose blockquote{border-left:3px solid var(--af-accent);color:var(--af-text-secondary);background:var(--af-accent-subtle);border-radius:0 6px 6px 0;margin:12px 0;padding:4px 14px}.sl-prose code{font-family:var(--font-mono);background:var(--af-border-subtle);color:var(--af-text);border-radius:4px;padding:1px 5px;font-size:12px}.sl-prose pre{background:var(--background);border:1px solid var(--af-border-subtle);border-radius:8px;margin:12px 0;padding:12px 14px;font-size:12px;line-height:1.55;overflow-x:auto}.sl-prose pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.sl-prose table{border-collapse:collapse;width:100%;margin:12px 0;font-size:12px}.sl-prose th,.sl-prose td{border:1px solid var(--af-border-subtle);text-align:left;padding:6px 10px}.sl-prose th{background:var(--af-surface-hover);font-weight:600}.sl-prose hr{border:none;border-top:1px solid var(--af-border-subtle);margin:16px 0}.sl-prose a{color:var(--af-accent);text-underline-offset:2px;text-decoration:underline}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import "server-only";
|
|
2
|
-
import { existsSync, readFileSync, mkdirSync, renameSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { join, dirname } from "node:path";
|
|
4
|
-
import { homedir } from "node:os";
|
|
5
|
-
|
|
6
|
-
function autoFireFile(): string {
|
|
7
|
-
return process.env.CCLENS_AUTO_WEEK_FILE
|
|
8
|
-
?? join(homedir(), ".cclens", "auto-week-fired-at");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const MONDAY_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Returns true if this call is the one that should trigger auto-fire for `monday`.
|
|
15
|
-
* Atomically updates the on-disk record so subsequent calls in the same ISO week
|
|
16
|
-
* return false. Idempotent across server restarts.
|
|
17
|
-
*
|
|
18
|
-
* Corrupt/unreadable file is treated as "absent" — the caller will fire and
|
|
19
|
-
* the file will be rewritten with a clean Monday line.
|
|
20
|
-
*/
|
|
21
|
-
export function shouldAutoFireWeek(monday: string): boolean {
|
|
22
|
-
const file = autoFireFile();
|
|
23
|
-
let prev: string | null = null;
|
|
24
|
-
if (existsSync(file)) {
|
|
25
|
-
try {
|
|
26
|
-
const raw = readFileSync(file, "utf8").trim();
|
|
27
|
-
if (MONDAY_RE.test(raw)) prev = raw;
|
|
28
|
-
} catch { /* corrupt — treat as absent */ }
|
|
29
|
-
}
|
|
30
|
-
if (prev === monday) return false;
|
|
31
|
-
|
|
32
|
-
mkdirSync(dirname(file), { recursive: true });
|
|
33
|
-
const tmp = `${file}.tmp`;
|
|
34
|
-
writeFileSync(tmp, monday + "\n", "utf8");
|
|
35
|
-
renameSync(tmp, file);
|
|
36
|
-
return true;
|
|
37
|
-
}
|
/package/app/apps/web/.next/static/{fm3KE6Y_UOzhf_27jAYYK → YT0fi8TIPXu7nZyww-N2v}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/app/apps/web/.next/static/{fm3KE6Y_UOzhf_27jAYYK → YT0fi8TIPXu7nZyww-N2v}/_ssgManifest.js
RENAMED
|
File without changes
|