oc2token 0.1.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.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +399 -0
  3. package/dist/src/accounting/index.d.ts +1 -0
  4. package/dist/src/accounting/index.js +2 -0
  5. package/dist/src/accounting/index.js.map +1 -0
  6. package/dist/src/accounting/reducer.d.ts +21 -0
  7. package/dist/src/accounting/reducer.js +105 -0
  8. package/dist/src/accounting/reducer.js.map +1 -0
  9. package/dist/src/antigravity/discovery.d.ts +18 -0
  10. package/dist/src/antigravity/discovery.js +95 -0
  11. package/dist/src/antigravity/discovery.js.map +1 -0
  12. package/dist/src/antigravity/doctor.d.ts +6 -0
  13. package/dist/src/antigravity/doctor.js +78 -0
  14. package/dist/src/antigravity/doctor.js.map +1 -0
  15. package/dist/src/antigravity/index.d.ts +3 -0
  16. package/dist/src/antigravity/index.js +4 -0
  17. package/dist/src/antigravity/index.js.map +1 -0
  18. package/dist/src/antigravity/proto.d.ts +73 -0
  19. package/dist/src/antigravity/proto.js +259 -0
  20. package/dist/src/antigravity/proto.js.map +1 -0
  21. package/dist/src/antigravity/scanner.d.ts +8 -0
  22. package/dist/src/antigravity/scanner.js +552 -0
  23. package/dist/src/antigravity/scanner.js.map +1 -0
  24. package/dist/src/application.d.ts +73 -0
  25. package/dist/src/application.js +657 -0
  26. package/dist/src/application.js.map +1 -0
  27. package/dist/src/cache/filesystem.d.ts +8 -0
  28. package/dist/src/cache/filesystem.js +70 -0
  29. package/dist/src/cache/filesystem.js.map +1 -0
  30. package/dist/src/cache/index.d.ts +5 -0
  31. package/dist/src/cache/index.js +6 -0
  32. package/dist/src/cache/index.js.map +1 -0
  33. package/dist/src/cache/lock.d.ts +40 -0
  34. package/dist/src/cache/lock.js +227 -0
  35. package/dist/src/cache/lock.js.map +1 -0
  36. package/dist/src/cache/schema.d.ts +45 -0
  37. package/dist/src/cache/schema.js +308 -0
  38. package/dist/src/cache/schema.js.map +1 -0
  39. package/dist/src/cache/store.d.ts +46 -0
  40. package/dist/src/cache/store.js +396 -0
  41. package/dist/src/cache/store.js.map +1 -0
  42. package/dist/src/cache/types.d.ts +130 -0
  43. package/dist/src/cache/types.js +6 -0
  44. package/dist/src/cache/types.js.map +1 -0
  45. package/dist/src/cli.d.ts +8 -0
  46. package/dist/src/cli.js +874 -0
  47. package/dist/src/cli.js.map +1 -0
  48. package/dist/src/codex/discovery.d.ts +6 -0
  49. package/dist/src/codex/discovery.js +88 -0
  50. package/dist/src/codex/discovery.js.map +1 -0
  51. package/dist/src/codex/doctor.d.ts +6 -0
  52. package/dist/src/codex/doctor.js +52 -0
  53. package/dist/src/codex/doctor.js.map +1 -0
  54. package/dist/src/codex/index.d.ts +3 -0
  55. package/dist/src/codex/index.js +3 -0
  56. package/dist/src/codex/index.js.map +1 -0
  57. package/dist/src/codex/scanner.d.ts +6 -0
  58. package/dist/src/codex/scanner.js +487 -0
  59. package/dist/src/codex/scanner.js.map +1 -0
  60. package/dist/src/codex/types.d.ts +31 -0
  61. package/dist/src/codex/types.js +5 -0
  62. package/dist/src/codex/types.js.map +1 -0
  63. package/dist/src/collector/collector.d.ts +15 -0
  64. package/dist/src/collector/collector.js +597 -0
  65. package/dist/src/collector/collector.js.map +1 -0
  66. package/dist/src/collector/index.d.ts +3 -0
  67. package/dist/src/collector/index.js +3 -0
  68. package/dist/src/collector/index.js.map +1 -0
  69. package/dist/src/collector/types.d.ts +55 -0
  70. package/dist/src/collector/types.js +18 -0
  71. package/dist/src/collector/types.js.map +1 -0
  72. package/dist/src/dashboard/render/ansi.d.ts +53 -0
  73. package/dist/src/dashboard/render/ansi.js +106 -0
  74. package/dist/src/dashboard/render/ansi.js.map +1 -0
  75. package/dist/src/dashboard/render/dashboard.d.ts +13 -0
  76. package/dist/src/dashboard/render/dashboard.js +750 -0
  77. package/dist/src/dashboard/render/dashboard.js.map +1 -0
  78. package/dist/src/dashboard/render/format.d.ts +23 -0
  79. package/dist/src/dashboard/render/format.js +169 -0
  80. package/dist/src/dashboard/render/format.js.map +1 -0
  81. package/dist/src/dashboard/render/redraw.d.ts +13 -0
  82. package/dist/src/dashboard/render/redraw.js +24 -0
  83. package/dist/src/dashboard/render/redraw.js.map +1 -0
  84. package/dist/src/dashboard/render/types.d.ts +83 -0
  85. package/dist/src/dashboard/render/types.js +528 -0
  86. package/dist/src/dashboard/render/types.js.map +1 -0
  87. package/dist/src/dashboard/scheduler/index.d.ts +1 -0
  88. package/dist/src/dashboard/scheduler/index.js +2 -0
  89. package/dist/src/dashboard/scheduler/index.js.map +1 -0
  90. package/dist/src/dashboard/scheduler/refresh-scheduler.d.ts +46 -0
  91. package/dist/src/dashboard/scheduler/refresh-scheduler.js +137 -0
  92. package/dist/src/dashboard/scheduler/refresh-scheduler.js.map +1 -0
  93. package/dist/src/dashboard/settings/index.d.ts +25 -0
  94. package/dist/src/dashboard/settings/index.js +162 -0
  95. package/dist/src/dashboard/settings/index.js.map +1 -0
  96. package/dist/src/dashboard/state/index.d.ts +2 -0
  97. package/dist/src/dashboard/state/index.js +3 -0
  98. package/dist/src/dashboard/state/index.js.map +1 -0
  99. package/dist/src/dashboard/state/refresh-coordinator.d.ts +72 -0
  100. package/dist/src/dashboard/state/refresh-coordinator.js +346 -0
  101. package/dist/src/dashboard/state/refresh-coordinator.js.map +1 -0
  102. package/dist/src/dashboard/state/types.d.ts +68 -0
  103. package/dist/src/dashboard/state/types.js +2 -0
  104. package/dist/src/dashboard/state/types.js.map +1 -0
  105. package/dist/src/domain/contracts.d.ts +219 -0
  106. package/dist/src/domain/contracts.js +2 -0
  107. package/dist/src/domain/contracts.js.map +1 -0
  108. package/dist/src/domain/errors.d.ts +25 -0
  109. package/dist/src/domain/errors.js +65 -0
  110. package/dist/src/domain/errors.js.map +1 -0
  111. package/dist/src/domain/index.d.ts +5 -0
  112. package/dist/src/domain/index.js +6 -0
  113. package/dist/src/domain/index.js.map +1 -0
  114. package/dist/src/domain/records.d.ts +59 -0
  115. package/dist/src/domain/records.js +141 -0
  116. package/dist/src/domain/records.js.map +1 -0
  117. package/dist/src/domain/tokens.d.ts +51 -0
  118. package/dist/src/domain/tokens.js +93 -0
  119. package/dist/src/domain/tokens.js.map +1 -0
  120. package/dist/src/domain/windows.d.ts +59 -0
  121. package/dist/src/domain/windows.js +272 -0
  122. package/dist/src/domain/windows.js.map +1 -0
  123. package/dist/src/index.d.ts +9 -0
  124. package/dist/src/index.js +9 -0
  125. package/dist/src/index.js.map +1 -0
  126. package/dist/src/opencode/adapter.d.ts +47 -0
  127. package/dist/src/opencode/adapter.js +118 -0
  128. package/dist/src/opencode/adapter.js.map +1 -0
  129. package/dist/src/opencode/client.d.ts +64 -0
  130. package/dist/src/opencode/client.js +118 -0
  131. package/dist/src/opencode/client.js.map +1 -0
  132. package/dist/src/opencode/doctor.d.ts +28 -0
  133. package/dist/src/opencode/doctor.js +82 -0
  134. package/dist/src/opencode/doctor.js.map +1 -0
  135. package/dist/src/opencode/index.d.ts +5 -0
  136. package/dist/src/opencode/index.js +6 -0
  137. package/dist/src/opencode/index.js.map +1 -0
  138. package/dist/src/opencode/stats.d.ts +8 -0
  139. package/dist/src/opencode/stats.js +174 -0
  140. package/dist/src/opencode/stats.js.map +1 -0
  141. package/dist/src/opencode/transport.d.ts +54 -0
  142. package/dist/src/opencode/transport.js +621 -0
  143. package/dist/src/opencode/transport.js.map +1 -0
  144. package/dist/src/output/index.d.ts +20 -0
  145. package/dist/src/output/index.js +46 -0
  146. package/dist/src/output/index.js.map +1 -0
  147. package/dist/src/output/json.d.ts +72 -0
  148. package/dist/src/output/json.js +133 -0
  149. package/dist/src/output/json.js.map +1 -0
  150. package/dist/src/output/table.d.ts +4 -0
  151. package/dist/src/output/table.js +81 -0
  152. package/dist/src/output/table.js.map +1 -0
  153. package/dist/src/pricing/index.d.ts +1 -0
  154. package/dist/src/pricing/index.js +2 -0
  155. package/dist/src/pricing/index.js.map +1 -0
  156. package/dist/src/pricing/pricing.d.ts +19 -0
  157. package/dist/src/pricing/pricing.js +441 -0
  158. package/dist/src/pricing/pricing.js.map +1 -0
  159. package/package.json +27 -0
@@ -0,0 +1,55 @@
1
+ import type { CollectionError, CollectionRequest, CollectionResult, Coverage, MessageListRequest, MessagePage as DomainMessagePage, OpenCodeAssistantMessage, OpenCodeSession, OpenCodeTransport, SessionListRequest, SessionPage as DomainSessionPage, UsageWindow } from "../domain/index.js";
2
+ export type { CollectionError, CollectionRequest, CollectionResult, Coverage, MessageListRequest as ListMessagesRequest, OpenCodeAssistantMessage, OpenCodeSession, OpenCodeTransport, SessionListRequest as ListSessionsRequest, UsageWindow, };
3
+ export interface UsageInterval {
4
+ readonly from: Date;
5
+ readonly to: Date;
6
+ }
7
+ /**
8
+ * The collector accepts the normalized domain DTOs from the OpenCode adapter,
9
+ * while retaining optional raw aliases for deterministic transport fixtures.
10
+ */
11
+ export interface AssistantMessage {
12
+ readonly sessionID?: string;
13
+ readonly id?: string;
14
+ readonly messageID?: string;
15
+ readonly type?: string;
16
+ readonly role?: string;
17
+ readonly time?: {
18
+ readonly created?: Date | number | string;
19
+ readonly completed?: Date | number | string;
20
+ readonly [key: string]: unknown;
21
+ };
22
+ readonly createdAt?: Date | number | string;
23
+ readonly model?: string | {
24
+ readonly providerID?: string;
25
+ readonly id?: string;
26
+ readonly [key: string]: unknown;
27
+ };
28
+ readonly tokens?: OpenCodeAssistantMessage["tokens"] | null;
29
+ readonly tokenRevision?: string | number;
30
+ readonly revision?: string | number;
31
+ readonly version?: string | number;
32
+ readonly provisional?: boolean;
33
+ readonly status?: string;
34
+ readonly finish?: string;
35
+ readonly [key: string]: unknown;
36
+ }
37
+ export interface SessionSummary extends Partial<OpenCodeSession> {
38
+ readonly id?: string;
39
+ readonly sessionID?: string;
40
+ readonly parentID?: string | null;
41
+ readonly [key: string]: unknown;
42
+ }
43
+ export type SessionPage = DomainSessionPage;
44
+ export type MessagePage = DomainMessagePage;
45
+ export interface CursorEnvelope {
46
+ readonly next?: string | null;
47
+ readonly [key: string]: unknown;
48
+ }
49
+ export interface CollectorOptions {
50
+ readonly pageLimit?: number;
51
+ readonly maxRetries?: number;
52
+ readonly retryDelayMs?: number;
53
+ readonly maxWorkers?: number;
54
+ }
55
+ export declare function intervalUnion(windows: ReadonlyArray<UsageWindow | UsageInterval>): UsageInterval;
@@ -0,0 +1,18 @@
1
+ export function intervalUnion(windows) {
2
+ if (windows.length === 0) {
3
+ throw new RangeError("At least one interval is required");
4
+ }
5
+ let from = Number.POSITIVE_INFINITY;
6
+ let to = Number.NEGATIVE_INFINITY;
7
+ for (const interval of windows) {
8
+ const start = interval.from.getTime();
9
+ const end = interval.to.getTime();
10
+ if (!Number.isFinite(start) || !Number.isFinite(end) || start >= end) {
11
+ throw new RangeError("Every interval must have valid from < to instants");
12
+ }
13
+ from = Math.min(from, start);
14
+ to = Math.max(to, end);
15
+ }
16
+ return { from: new Date(from), to: new Date(to) };
17
+ }
18
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/collector/types.ts"],"names":[],"mappings":"AAsFA,MAAM,UAAU,aAAa,CAC3B,OAAmD;IAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpC,IAAI,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACrE,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,53 @@
1
+ export declare const ANSI: Readonly<{
2
+ reset: "\u001B[0m";
3
+ bold: "\u001B[1m";
4
+ dim: "\u001B[2m";
5
+ underline: "\u001B[4m";
6
+ underlineOff: "\u001B[24m";
7
+ mouseEnable: "\u001B[?1000h\u001B[?1006h";
8
+ mouseDisable: "\u001B[?1006l\u001B[?1000l";
9
+ purple: "\u001B[38;5;141m";
10
+ purpleDeep: "\u001B[38;5;99m";
11
+ purpleBright: "\u001B[38;5;183m";
12
+ purpleDim: "\u001B[38;5;103m";
13
+ orange: "\u001B[38;5;208m";
14
+ orangeBright: "\u001B[38;5;214m";
15
+ cyan: "\u001B[36m";
16
+ blue: "\u001B[34m";
17
+ green: "\u001B[32m";
18
+ yellow: "\u001B[33m";
19
+ red: "\u001B[31m";
20
+ white: "\u001B[37m";
21
+ clearLine: "\u001B[2K";
22
+ cursorHome: "\u001B[H";
23
+ cursorHide: "\u001B[?25l";
24
+ cursorShow: "\u001B[?25h";
25
+ }>;
26
+ export interface AnsiOptions {
27
+ readonly isTTY?: boolean;
28
+ readonly ansi?: boolean;
29
+ readonly color?: boolean;
30
+ }
31
+ export declare function ansiEnabled(options?: AnsiOptions): boolean;
32
+ export declare function colorEnabled(options?: AnsiOptions): boolean;
33
+ export declare function paint(value: string, code: string, enabled: boolean): string;
34
+ export declare function emphasis(value: string, enabled: boolean): string;
35
+ export declare function themePurple(value: string, enabled: boolean, bright?: boolean): string;
36
+ export declare function themeOrange(value: string, enabled: boolean, bright?: boolean): string;
37
+ export declare function themeCyan(value: string, enabled: boolean, bright?: boolean): string;
38
+ export declare function themeIn(value: string, enabled: boolean): string;
39
+ export declare function themeOut(value: string, enabled: boolean): string;
40
+ export declare function themeCache(value: string, enabled: boolean): string;
41
+ export declare function underline(value: string, enabled: boolean): string;
42
+ export declare function themeInUnderline(value: string, enabled: boolean): string;
43
+ export declare function themeOutUnderline(value: string, enabled: boolean): string;
44
+ export declare function themeCacheUnderline(value: string, enabled: boolean): string;
45
+ export declare function themeCost(value: string, enabled: boolean): string;
46
+ export declare function themeYellow(value: string, enabled: boolean): string;
47
+ export declare function statusColor(value: string, state: "complete" | "partial" | "stale", enabled: boolean): string;
48
+ /**
49
+ * Return an in-place frame. It homes the cursor and erases each rendered line,
50
+ * so redraws do not append stale content or require a full terminal clear.
51
+ */
52
+ export declare function renderInPlace(content: string, previousLineCount?: number, options?: AnsiOptions): string;
53
+ export declare function terminalCleanup(options?: AnsiOptions): string;
@@ -0,0 +1,106 @@
1
+ export const ANSI = Object.freeze({
2
+ reset: "\u001b[0m",
3
+ bold: "\u001b[1m",
4
+ dim: "\u001b[2m",
5
+ underline: "\u001b[4m",
6
+ underlineOff: "\u001b[24m",
7
+ mouseEnable: "\u001b[?1000h\u001b[?1006h",
8
+ mouseDisable: "\u001b[?1006l\u001b[?1000l",
9
+ // CodeBurn-inspired terminal palette: violet carries structure, orange
10
+ // carries focus and activity. 256-color escapes work in Terminal.app,
11
+ // iTerm2, and modern CI TTYs without requiring a background color.
12
+ purple: "\u001b[38;5;141m",
13
+ purpleDeep: "\u001b[38;5;99m",
14
+ purpleBright: "\u001b[38;5;183m",
15
+ purpleDim: "\u001b[38;5;103m",
16
+ orange: "\u001b[38;5;208m",
17
+ orangeBright: "\u001b[38;5;214m",
18
+ cyan: "\u001b[36m",
19
+ blue: "\u001b[34m",
20
+ green: "\u001b[32m",
21
+ yellow: "\u001b[33m",
22
+ red: "\u001b[31m",
23
+ white: "\u001b[37m",
24
+ clearLine: "\u001b[2K",
25
+ cursorHome: "\u001b[H",
26
+ cursorHide: "\u001b[?25l",
27
+ cursorShow: "\u001b[?25h",
28
+ });
29
+ export function ansiEnabled(options = {}) {
30
+ if (options.isTTY !== true)
31
+ return false;
32
+ return options.ansi !== false;
33
+ }
34
+ export function colorEnabled(options = {}) {
35
+ if (!ansiEnabled(options) || options.color === false)
36
+ return false;
37
+ if (typeof process !== "undefined" && process.env.NO_COLOR !== undefined)
38
+ return false;
39
+ return true;
40
+ }
41
+ export function paint(value, code, enabled) {
42
+ return enabled ? code + value + ANSI.reset : value;
43
+ }
44
+ export function emphasis(value, enabled) {
45
+ return paint(value, ANSI.bold, enabled);
46
+ }
47
+ export function themePurple(value, enabled, bright = false) {
48
+ return paint(value, bright ? ANSI.purpleBright : ANSI.purple, enabled);
49
+ }
50
+ export function themeOrange(value, enabled, bright = false) {
51
+ return paint(value, bright ? ANSI.orangeBright : ANSI.orange, enabled);
52
+ }
53
+ export function themeCyan(value, enabled, bright = false) {
54
+ return paint(value, ANSI.cyan, enabled);
55
+ }
56
+ export function themeIn(value, enabled) {
57
+ return paint(value, ANSI.cyan, enabled);
58
+ }
59
+ export function themeOut(value, enabled) {
60
+ return paint(value, ANSI.orange, enabled);
61
+ }
62
+ export function themeCache(value, enabled) {
63
+ return paint(value, ANSI.green, enabled);
64
+ }
65
+ function paintUnderline(value, code, enabled) {
66
+ return enabled ? ANSI.underline + code + value + ANSI.reset : value;
67
+ }
68
+ export function underline(value, enabled) {
69
+ return paint(value, ANSI.underline, enabled);
70
+ }
71
+ export function themeInUnderline(value, enabled) {
72
+ return paintUnderline(value, ANSI.cyan, enabled);
73
+ }
74
+ export function themeOutUnderline(value, enabled) {
75
+ return paintUnderline(value, ANSI.orange, enabled);
76
+ }
77
+ export function themeCacheUnderline(value, enabled) {
78
+ return paintUnderline(value, ANSI.green, enabled);
79
+ }
80
+ export function themeCost(value, enabled) {
81
+ return paint(value, ANSI.yellow, enabled);
82
+ }
83
+ export function themeYellow(value, enabled) {
84
+ return paint(value, ANSI.yellow, enabled);
85
+ }
86
+ export function statusColor(value, state, enabled) {
87
+ const code = state === "complete" ? ANSI.green : state === "partial" ? ANSI.yellow : ANSI.red;
88
+ return paint(value, code, enabled);
89
+ }
90
+ /**
91
+ * Return an in-place frame. It homes the cursor and erases each rendered line,
92
+ * so redraws do not append stale content or require a full terminal clear.
93
+ */
94
+ export function renderInPlace(content, previousLineCount = 0, options = {}) {
95
+ if (!ansiEnabled(options))
96
+ return content;
97
+ const lines = content.split("\n");
98
+ const lineCountToErase = Math.max(previousLineCount, lines.length);
99
+ const frame = lines.map((line) => ANSI.clearLine + line).join("\n");
100
+ const trailing = Array.from({ length: Math.max(0, lineCountToErase - lines.length) }, () => ANSI.clearLine).join("\n");
101
+ return ANSI.cursorHome + frame + (trailing ? "\n" + trailing : "");
102
+ }
103
+ export function terminalCleanup(options = {}) {
104
+ return ansiEnabled(options) ? ANSI.cursorShow + ANSI.reset : "";
105
+ }
106
+ //# sourceMappingURL=ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../../../src/dashboard/render/ansi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { UsageWindowKind } from "../../domain/index.js";
2
+ import { type DashboardRenderOptions, type DashboardSnapshotInput } from "./types.js";
3
+ export interface CardHitRegion {
4
+ readonly kind: UsageWindowKind;
5
+ readonly x1: number;
6
+ readonly y1: number;
7
+ readonly x2: number;
8
+ readonly y2: number;
9
+ }
10
+ export declare function getCardHitRegions(width: number): ReadonlyArray<CardHitRegion>;
11
+ export declare function renderDashboard(input: DashboardSnapshotInput, options?: DashboardRenderOptions): string;
12
+ export declare const renderTUI: typeof renderDashboard;
13
+ export declare const renderTerminalDashboard: typeof renderDashboard;