sleev 0.0.13 → 0.0.15

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.
Files changed (133) hide show
  1. package/README.md +9 -8
  2. package/bin/sleev.js +84 -0
  3. package/package.json +37 -55
  4. package/postinstall.mjs +66 -0
  5. package/dist/auth/browser.d.ts +0 -12
  6. package/dist/auth/browser.js +0 -89
  7. package/dist/auth/browser.js.map +0 -1
  8. package/dist/auth/firebase-tokens.d.ts +0 -39
  9. package/dist/auth/firebase-tokens.js +0 -173
  10. package/dist/auth/firebase-tokens.js.map +0 -1
  11. package/dist/auth/firebase.d.ts +0 -17
  12. package/dist/auth/firebase.js +0 -55
  13. package/dist/auth/firebase.js.map +0 -1
  14. package/dist/auth/login.d.ts +0 -22
  15. package/dist/auth/login.js +0 -58
  16. package/dist/auth/login.js.map +0 -1
  17. package/dist/auth/loopback.d.ts +0 -19
  18. package/dist/auth/loopback.js +0 -204
  19. package/dist/auth/loopback.js.map +0 -1
  20. package/dist/auth/schema.d.ts +0 -26
  21. package/dist/auth/schema.js +0 -88
  22. package/dist/auth/schema.js.map +0 -1
  23. package/dist/auth/token.d.ts +0 -19
  24. package/dist/auth/token.js +0 -53
  25. package/dist/auth/token.js.map +0 -1
  26. package/dist/auth/verify.d.ts +0 -6
  27. package/dist/auth/verify.js +0 -22
  28. package/dist/auth/verify.js.map +0 -1
  29. package/dist/cli.d.ts +0 -8
  30. package/dist/cli.js +0 -255
  31. package/dist/cli.js.map +0 -1
  32. package/dist/config/paths.d.ts +0 -12
  33. package/dist/config/paths.js +0 -34
  34. package/dist/config/paths.js.map +0 -1
  35. package/dist/config/store.d.ts +0 -63
  36. package/dist/config/store.js +0 -270
  37. package/dist/config/store.js.map +0 -1
  38. package/dist/control/local-installations.d.ts +0 -13
  39. package/dist/control/local-installations.js +0 -37
  40. package/dist/control/local-installations.js.map +0 -1
  41. package/dist/daemon/config.d.ts +0 -10
  42. package/dist/daemon/config.js +0 -52
  43. package/dist/daemon/config.js.map +0 -1
  44. package/dist/daemon/controller.d.ts +0 -29
  45. package/dist/daemon/controller.js +0 -34
  46. package/dist/daemon/controller.js.map +0 -1
  47. package/dist/daemon/health.d.ts +0 -8
  48. package/dist/daemon/health.js +0 -47
  49. package/dist/daemon/health.js.map +0 -1
  50. package/dist/daemon/start.d.ts +0 -5
  51. package/dist/daemon/start.js +0 -24
  52. package/dist/daemon/start.js.map +0 -1
  53. package/dist/daemon/systemd.d.ts +0 -35
  54. package/dist/daemon/systemd.js +0 -181
  55. package/dist/daemon/systemd.js.map +0 -1
  56. package/dist/gateway/acquire.d.ts +0 -14
  57. package/dist/gateway/acquire.js +0 -112
  58. package/dist/gateway/acquire.js.map +0 -1
  59. package/dist/gateway/manifest.d.ts +0 -26
  60. package/dist/gateway/manifest.js +0 -98
  61. package/dist/gateway/manifest.js.map +0 -1
  62. package/dist/gateway/platform.d.ts +0 -5
  63. package/dist/gateway/platform.js +0 -27
  64. package/dist/gateway/platform.js.map +0 -1
  65. package/dist/harness/claude.d.ts +0 -8
  66. package/dist/harness/claude.js +0 -151
  67. package/dist/harness/claude.js.map +0 -1
  68. package/dist/harness/codex.d.ts +0 -10
  69. package/dist/harness/codex.js +0 -213
  70. package/dist/harness/codex.js.map +0 -1
  71. package/dist/harness/index.d.ts +0 -13
  72. package/dist/harness/index.js +0 -63
  73. package/dist/harness/index.js.map +0 -1
  74. package/dist/harness/opencode-config.d.ts +0 -8
  75. package/dist/harness/opencode-config.js +0 -301
  76. package/dist/harness/opencode-config.js.map +0 -1
  77. package/dist/harness/opencode.d.ts +0 -14
  78. package/dist/harness/opencode.js +0 -50
  79. package/dist/harness/opencode.js.map +0 -1
  80. package/dist/harness/providers.d.ts +0 -8
  81. package/dist/harness/providers.js +0 -30
  82. package/dist/harness/providers.js.map +0 -1
  83. package/dist/harness/types.d.ts +0 -14
  84. package/dist/harness/types.js +0 -2
  85. package/dist/harness/types.js.map +0 -1
  86. package/dist/product.d.ts +0 -12
  87. package/dist/product.js +0 -70
  88. package/dist/product.js.map +0 -1
  89. package/dist/tui/clipboard.d.ts +0 -1
  90. package/dist/tui/clipboard.js +0 -48
  91. package/dist/tui/clipboard.js.map +0 -1
  92. package/dist/tui/openTuiApp.d.ts +0 -1
  93. package/dist/tui/openTuiApp.js +0 -1436
  94. package/dist/tui/openTuiApp.js.map +0 -1
  95. package/dist/tui/pages/flow-screen.d.ts +0 -50
  96. package/dist/tui/pages/flow-screen.js +0 -435
  97. package/dist/tui/pages/flow-screen.js.map +0 -1
  98. package/dist/tui/pages/footer.d.ts +0 -7
  99. package/dist/tui/pages/footer.js +0 -14
  100. package/dist/tui/pages/footer.js.map +0 -1
  101. package/dist/tui/pages/home-screen.d.ts +0 -19
  102. package/dist/tui/pages/home-screen.js +0 -89
  103. package/dist/tui/pages/home-screen.js.map +0 -1
  104. package/dist/tui/pages/index.d.ts +0 -17
  105. package/dist/tui/pages/index.js +0 -11
  106. package/dist/tui/pages/index.js.map +0 -1
  107. package/dist/tui/pages/local-setup-screen.d.ts +0 -23
  108. package/dist/tui/pages/local-setup-screen.js +0 -134
  109. package/dist/tui/pages/local-setup-screen.js.map +0 -1
  110. package/dist/tui/pages/location-card.d.ts +0 -19
  111. package/dist/tui/pages/location-card.js +0 -116
  112. package/dist/tui/pages/location-card.js.map +0 -1
  113. package/dist/tui/pages/menu-screen.d.ts +0 -24
  114. package/dist/tui/pages/menu-screen.js +0 -117
  115. package/dist/tui/pages/menu-screen.js.map +0 -1
  116. package/dist/tui/pages/session-grid.d.ts +0 -23
  117. package/dist/tui/pages/session-grid.js +0 -552
  118. package/dist/tui/pages/session-grid.js.map +0 -1
  119. package/dist/tui/pages/setup-screen.d.ts +0 -15
  120. package/dist/tui/pages/setup-screen.js +0 -80
  121. package/dist/tui/pages/setup-screen.js.map +0 -1
  122. package/dist/tui/pages/terminal-log.d.ts +0 -14
  123. package/dist/tui/pages/terminal-log.js +0 -104
  124. package/dist/tui/pages/terminal-log.js.map +0 -1
  125. package/dist/tui/pages/welcome-screen.d.ts +0 -16
  126. package/dist/tui/pages/welcome-screen.js +0 -80
  127. package/dist/tui/pages/welcome-screen.js.map +0 -1
  128. package/dist/tui/saved-tokens.d.ts +0 -10
  129. package/dist/tui/saved-tokens.js +0 -104
  130. package/dist/tui/saved-tokens.js.map +0 -1
  131. package/dist/tui/theme.d.ts +0 -25
  132. package/dist/tui/theme.js +0 -27
  133. package/dist/tui/theme.js.map +0 -1
@@ -1,80 +0,0 @@
1
- // Holds the post-location setup placeholder until config controls are defined.
2
- import { theme } from "../theme.js";
3
- import { Footer } from "./footer.js";
4
- import { TerminalLog, terminalLogHeight } from "./terminal-log.js";
5
- export function SetupScreen(core, props) {
6
- const layout = setupLayout(props.columns, props.rows);
7
- return core.Box({
8
- backgroundColor: theme.color.app,
9
- width: "100%",
10
- height: "100%",
11
- flexDirection: "column",
12
- }, core.Box({
13
- width: "100%",
14
- flexGrow: 1,
15
- flexDirection: "column",
16
- alignItems: "center",
17
- justifyContent: "center",
18
- paddingLeft: layout.pad,
19
- paddingRight: layout.pad,
20
- }, core.Box({
21
- width: layout.cardWidth,
22
- flexDirection: "column",
23
- backgroundColor: theme.color.card,
24
- paddingLeft: 3,
25
- paddingRight: 3,
26
- paddingTop: 2,
27
- paddingBottom: 2,
28
- gap: 1,
29
- }, core.Text({
30
- content: "Setup / Config",
31
- fg: theme.color.text,
32
- attributes: core.TextAttributes.BOLD,
33
- }), core.Text({
34
- content: `${label(props.mode)} service selected. Setup controls are next.`,
35
- fg: theme.color.muted,
36
- }))), TerminalLog(core, {
37
- lines: props.logs,
38
- width: layout.logWidth,
39
- height: layout.logHeight,
40
- offset: props.logOffset,
41
- notice: props.logNotice,
42
- onScroll: props.onLogScroll,
43
- onLinkClick: props.onLogLink,
44
- }), Footer(core, {
45
- pad: layout.pad,
46
- }));
47
- }
48
- function setupLayout(columns, rows) {
49
- const pad = sidePad(columns);
50
- const usable = Math.max(1, columns - pad * 2);
51
- const cardWidth = clamp(usable, 30, 58);
52
- const logWidth = columns;
53
- const logHeight = terminalLogHeight(rows);
54
- return {
55
- pad,
56
- cardWidth,
57
- logWidth,
58
- logHeight,
59
- };
60
- }
61
- function label(mode) {
62
- if (mode === "local")
63
- return "Local";
64
- return "Cloud";
65
- }
66
- function sidePad(columns) {
67
- if (columns >= 120)
68
- return 8;
69
- if (columns >= 96)
70
- return 6;
71
- if (columns >= 70)
72
- return 4;
73
- if (columns >= 48)
74
- return 3;
75
- return 2;
76
- }
77
- function clamp(value, min, max) {
78
- return Math.min(Math.max(value, min), max);
79
- }
80
- //# sourceMappingURL=setup-screen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-screen.js","sourceRoot":"","sources":["../../../src/tui/pages/setup-screen.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- type OpenTuiCore = typeof import("@opentui/core");
2
- type LogCore = Pick<OpenTuiCore, "Box" | "Text" | "TextAttributes">;
3
- export type TerminalLogProps = {
4
- lines: string[];
5
- width: number;
6
- height: number;
7
- offset: number;
8
- notice?: string | null;
9
- onScroll: (delta: number) => void;
10
- onLinkClick: (url: string) => void;
11
- };
12
- export declare function TerminalLog(core: LogCore, props: TerminalLogProps): import("@opentui/core").ProxiedVNode<typeof import("@opentui/core").BoxRenderable>;
13
- export declare function terminalLogHeight(rows: number): number;
14
- export {};
@@ -1,104 +0,0 @@
1
- // Renders the shared console/log panel visible on every TUI page.
2
- import { theme } from "../theme.js";
3
- export function TerminalLog(core, props) {
4
- const max = Math.max(0, props.lines.length - props.height);
5
- const offset = clamp(props.offset, 0, max);
6
- const start = Math.max(0, props.lines.length - props.height - offset);
7
- const rows = props.lines.slice(start, start + props.height);
8
- return core.Box({
9
- id: "terminal-log",
10
- width: props.width,
11
- height: props.height,
12
- backgroundColor: theme.color.footer,
13
- flexDirection: "column",
14
- onMouseScroll: (event) => {
15
- event.stopPropagation();
16
- event.preventDefault();
17
- props.onScroll(scrollDelta(event));
18
- },
19
- }, ...rows.map((line, index) => {
20
- const url = link(line);
21
- const latest = start + index === props.lines.length - 1;
22
- if (url) {
23
- const gap = line.length - line.trimStart().length;
24
- return core.Box({
25
- width: "100%",
26
- paddingLeft: gap,
27
- flexDirection: "column",
28
- onMouseDown: (event) => {
29
- event.preventDefault();
30
- event.stopPropagation();
31
- props.onLinkClick(url);
32
- },
33
- }, core.Text({
34
- content: url,
35
- fg: theme.color.accent,
36
- attributes: core.TextAttributes.UNDERLINE,
37
- wrapMode: "char",
38
- }));
39
- }
40
- const item = core.Text({
41
- content: line,
42
- fg: latest ? theme.color.text : theme.color.muted,
43
- wrapMode: "char",
44
- });
45
- return item;
46
- }), props.notice
47
- ? core.Box({
48
- position: "absolute",
49
- top: 0,
50
- right: 2,
51
- height: 1,
52
- paddingLeft: 1,
53
- paddingRight: 1,
54
- backgroundColor: theme.color.cardActive,
55
- }, core.Text({
56
- content: props.notice,
57
- fg: theme.color.text,
58
- }))
59
- : null);
60
- }
61
- export function terminalLogHeight(rows) {
62
- const available = Math.max(1, rows);
63
- const max = Math.max(1, available - 4);
64
- const min = Math.min(3, max);
65
- const target = Math.floor((available / 3) * 0.6);
66
- return clamp(target, min, max);
67
- }
68
- function scrollDelta(event) {
69
- if (event.scroll?.direction === "up")
70
- return 3;
71
- if (event.scroll?.direction === "down")
72
- return -3;
73
- if (event.scroll?.direction === "left" ||
74
- event.scroll?.direction === "right")
75
- return 0;
76
- const data = event;
77
- const direction = data.direction ?? data.scrollDirection ?? data.button ?? data.name;
78
- if (direction === 4)
79
- return 3;
80
- if (direction === 5)
81
- return -3;
82
- if (direction === "up" ||
83
- direction === "wheelup" ||
84
- direction === "scrollup")
85
- return 3;
86
- if (direction === "down" ||
87
- direction === "wheeldown" ||
88
- direction === "scrolldown")
89
- return -3;
90
- const value = data.deltaY ?? data.scrollY ?? data.delta ?? data.amount;
91
- if (typeof value !== "number")
92
- return 3;
93
- if (value === 0)
94
- return 0;
95
- return value > 0 ? -3 : 3;
96
- }
97
- function link(line) {
98
- const match = line.match(/^\s*(https?:\/\/\S+)\s*$/);
99
- return match?.[1] ?? null;
100
- }
101
- function clamp(value, min, max) {
102
- return Math.min(Math.max(value, min), max);
103
- }
104
- //# sourceMappingURL=terminal-log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-log.js","sourceRoot":"","sources":["../../../src/tui/pages/terminal-log.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- type OpenTuiCore = typeof import("@opentui/core");
2
- type WelcomeCore = Pick<OpenTuiCore, "Box" | "Text" | "TextAttributes">;
3
- export type WelcomeScreenProps = {
4
- columns: number;
5
- rows: number;
6
- logs: string[];
7
- logOffset: number;
8
- logNotice: string | null;
9
- busy: boolean;
10
- spinner: string;
11
- onLogScroll: (delta: number) => void;
12
- onLogLink: (url: string) => void;
13
- onSignIn: () => void;
14
- };
15
- export declare function WelcomeScreen(core: WelcomeCore, props: WelcomeScreenProps): import("@opentui/core").ProxiedVNode<typeof import("@opentui/core").BoxRenderable>;
16
- export {};
@@ -1,80 +0,0 @@
1
- // Owns the unauthenticated onboarding page and browser handoff entry point.
2
- import { theme } from "../theme.js";
3
- import { Footer } from "./footer.js";
4
- import { TerminalLog, terminalLogHeight } from "./terminal-log.js";
5
- export function WelcomeScreen(core, props) {
6
- const layout = welcomeLayout(props.columns, props.rows);
7
- const buttonText = props.busy
8
- ? `${props.spinner} waiting for browser`
9
- : "Sign In";
10
- return core.Box({
11
- backgroundColor: theme.color.app,
12
- width: "100%",
13
- height: "100%",
14
- flexDirection: "column",
15
- }, core.Box({
16
- width: "100%",
17
- flexGrow: 1,
18
- flexDirection: "column",
19
- alignItems: "center",
20
- justifyContent: "center",
21
- paddingLeft: layout.pad,
22
- paddingRight: layout.pad,
23
- }, core.Box({
24
- width: layout.buttonWidth,
25
- height: 3,
26
- alignItems: "center",
27
- justifyContent: "center",
28
- backgroundColor: props.busy
29
- ? theme.color.accentDim
30
- : theme.color.cardActive,
31
- onMouseDown: (event) => {
32
- event.preventDefault();
33
- event.stopPropagation();
34
- if (!props.busy)
35
- props.onSignIn();
36
- },
37
- }, core.Text({
38
- content: buttonText,
39
- fg: theme.color.text,
40
- attributes: core.TextAttributes.BOLD,
41
- }))), TerminalLog(core, {
42
- lines: props.logs,
43
- width: layout.logWidth,
44
- height: layout.logHeight,
45
- offset: props.logOffset,
46
- notice: props.logNotice,
47
- onScroll: props.onLogScroll,
48
- onLinkClick: props.onLogLink,
49
- }), Footer(core, {
50
- pad: layout.pad,
51
- }));
52
- }
53
- function welcomeLayout(columns, rows) {
54
- const pad = sidePad(columns);
55
- const usable = Math.max(1, columns - pad * 2);
56
- const buttonWidth = clamp(usable, 18, 30);
57
- const logWidth = columns;
58
- const logHeight = terminalLogHeight(rows);
59
- return {
60
- pad,
61
- buttonWidth,
62
- logWidth,
63
- logHeight,
64
- };
65
- }
66
- function sidePad(columns) {
67
- if (columns >= 120)
68
- return 8;
69
- if (columns >= 96)
70
- return 6;
71
- if (columns >= 70)
72
- return 4;
73
- if (columns >= 48)
74
- return 3;
75
- return 2;
76
- }
77
- function clamp(value, min, max) {
78
- return Math.min(Math.max(value, min), max);
79
- }
80
- //# sourceMappingURL=welcome-screen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"welcome-screen.js","sourceRoot":"","sources":["../../../src/tui/pages/welcome-screen.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAmBnE,MAAM,UAAU,aAAa,CAAC,IAAiB,EAAE,KAAyB;IACtE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI;QACzB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,sBAAsB;QACxC,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,IAAI,CAAC,GAAG,CACX;QACI,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;QAChC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,QAAQ;KAC1B,EACD,IAAI,CAAC,GAAG,CACJ;QACI,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,MAAM,CAAC,GAAG;QACvB,YAAY,EAAE,MAAM,CAAC,GAAG;KAC3B,EACD,IAAI,CAAC,GAAG,CACJ;QACI,KAAK,EAAE,MAAM,CAAC,WAAW;QACzB,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,eAAe,EAAE,KAAK,CAAC,IAAI;YACvB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;YACvB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,CAAC,KAAiB,EAAE,EAAE;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;KACJ,EACD,IAAI,CAAC,IAAI,CAAC;QACN,OAAO,EAAE,UAAU;QACnB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QACpB,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;KACvC,CAAC,CACL,CACJ,EACD,WAAW,CAAC,IAAI,EAAE;QACd,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,MAAM,EAAE,MAAM,CAAC,SAAS;QACxB,MAAM,EAAE,KAAK,CAAC,SAAS;QACvB,MAAM,EAAE,KAAK,CAAC,SAAS;QACvB,QAAQ,EAAE,KAAK,CAAC,WAAW;QAC3B,WAAW,EAAE,KAAK,CAAC,SAAS;KAC/B,CAAC,EACF,MAAM,CAAC,IAAI,EAAE;QACT,GAAG,EAAE,MAAM,CAAC,GAAG;KAClB,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,IAAY;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO;QACH,GAAG;QACH,WAAW;QACX,QAAQ;QACR,SAAS;KACZ,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC5B,IAAI,OAAO,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC"}
@@ -1,10 +0,0 @@
1
- export type SavedTokens = {
2
- total: number;
3
- observed: number;
4
- rate: number;
5
- window: number;
6
- };
7
- export declare function readCachedSavedTokens(): Promise<SavedTokens | null>;
8
- export declare function refreshSavedTokens(signal?: AbortSignal): Promise<SavedTokens | null>;
9
- export declare function formatSavedTokens(value: number): string;
10
- export declare function projectSavedTokens(snap: SavedTokens, now?: number): number;
@@ -1,104 +0,0 @@
1
- // Reads the public saved-token counter with a local file cache for TUI startup.
2
- import fs from "node:fs/promises";
3
- import path from "node:path";
4
- import { resolveSleevedPaths } from "../config/paths.js";
5
- const api = "https://api.sleev.ai";
6
- const cache = "total-saved-tokens.json";
7
- const fallbackWindow = 20 * 60;
8
- const projectionCap = 120;
9
- export async function readCachedSavedTokens() {
10
- return cached();
11
- }
12
- export async function refreshSavedTokens(signal) {
13
- const response = await fetch(`${api}/api/usage/total-saved-tokens`, signal ? { signal } : undefined);
14
- if (!response.ok)
15
- return null;
16
- const snap = snapshot(await response.json());
17
- if (snap === null)
18
- return null;
19
- await store(snap);
20
- return snap;
21
- }
22
- export function formatSavedTokens(value) {
23
- return Math.trunc(value)
24
- .toString()
25
- .replace(/\B(?=(\d{3})+(?!\d))/g, " ");
26
- }
27
- export function projectSavedTokens(snap, now = Date.now()) {
28
- const age = Math.min(Math.max((now - snap.observed) / 1000, 0), projectionCap);
29
- return snap.total + snap.rate * age;
30
- }
31
- async function cached() {
32
- try {
33
- const raw = await fs.readFile(file(), "utf8");
34
- const legacy = integer(Number(raw));
35
- if (legacy !== null) {
36
- return {
37
- total: legacy,
38
- observed: Date.now(),
39
- rate: 0,
40
- window: fallbackWindow,
41
- };
42
- }
43
- return snapshot(JSON.parse(raw));
44
- }
45
- catch (error) {
46
- if (isNotFoundError(error))
47
- return null;
48
- return null;
49
- }
50
- }
51
- async function store(snap) {
52
- const record = {
53
- total_saved_tokens: snap.total,
54
- observed_at: new Date(snap.observed).toISOString(),
55
- tokens_per_second: snap.rate,
56
- window_seconds: snap.window,
57
- };
58
- await fs.mkdir(path.dirname(file()), { recursive: true });
59
- await fs.writeFile(file(), `${JSON.stringify(record)}\n`, { mode: 0o600 });
60
- }
61
- function snapshot(data) {
62
- if (!data || typeof data !== "object" || Array.isArray(data))
63
- return null;
64
- const record = data;
65
- const total = integer(record.total_saved_tokens);
66
- if (total === null)
67
- return null;
68
- const observed = typeof record.observed_at === "string"
69
- ? Date.parse(record.observed_at)
70
- : Date.now();
71
- if (!Number.isFinite(observed))
72
- return null;
73
- const rate = record.tokens_per_second === undefined
74
- ? 0
75
- : number(record.tokens_per_second);
76
- if (rate === null)
77
- return null;
78
- const window = record.window_seconds === undefined
79
- ? fallbackWindow
80
- : integer(record.window_seconds);
81
- if (window === null || window <= 0)
82
- return null;
83
- return { total, observed, rate, window };
84
- }
85
- function number(value) {
86
- if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
87
- return null;
88
- return value;
89
- }
90
- function integer(value) {
91
- const next = number(value);
92
- if (next === null || !Number.isInteger(next))
93
- return null;
94
- return next;
95
- }
96
- function file() {
97
- return path.join(resolveSleevedPaths().stateDir, cache);
98
- }
99
- function isNotFoundError(error) {
100
- return (error instanceof Error &&
101
- "code" in error &&
102
- error.code === "ENOENT");
103
- }
104
- //# sourceMappingURL=saved-tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"saved-tokens.js","sourceRoot":"","sources":["../../src/tui/saved-tokens.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- export declare const theme: {
2
- readonly color: {
3
- readonly app: "#0b1117";
4
- readonly card: "#121a23";
5
- readonly cardActive: "#1a2530";
6
- readonly footer: "#0e151d";
7
- readonly accent: "#9fb4c8";
8
- readonly accentDim: "#263544";
9
- readonly text: "#eef3f7";
10
- readonly muted: "#a5b0ba";
11
- readonly quiet: "#66717c";
12
- readonly ghost: "#33404c";
13
- readonly shadow: "#1a2530";
14
- };
15
- readonly gradient: {
16
- readonly top: "#0b1117";
17
- readonly right: "#354b60";
18
- readonly bottom: "#0e151d";
19
- readonly glow: "#2c4052";
20
- };
21
- readonly size: {
22
- readonly locationCardWidth: 42;
23
- readonly tabHeight: 3;
24
- };
25
- };
package/dist/tui/theme.js DELETED
@@ -1,27 +0,0 @@
1
- // Centralizes TUI visual tokens so pages share one small design system.
2
- export const theme = {
3
- color: {
4
- app: "#0b1117",
5
- card: "#121a23",
6
- cardActive: "#1a2530",
7
- footer: "#0e151d",
8
- accent: "#9fb4c8",
9
- accentDim: "#263544",
10
- text: "#eef3f7",
11
- muted: "#a5b0ba",
12
- quiet: "#66717c",
13
- ghost: "#33404c",
14
- shadow: "#1a2530",
15
- },
16
- gradient: {
17
- top: "#0b1117",
18
- right: "#354b60",
19
- bottom: "#0e151d",
20
- glow: "#2c4052",
21
- },
22
- size: {
23
- locationCardWidth: 42,
24
- tabHeight: 3,
25
- },
26
- };
27
- //# sourceMappingURL=theme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,KAAK,EAAE;QACH,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;KACpB;IACD,QAAQ,EAAE;QACN,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;KAClB;IACD,IAAI,EAAE;QACF,iBAAiB,EAAE,EAAE;QACrB,SAAS,EAAE,CAAC;KACf;CACK,CAAC"}