@hoox-sh/hoox-shared 1.2.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 (161) hide show
  1. package/README.md +44 -0
  2. package/dist/agent-config-fields.d.ts +32 -0
  3. package/dist/agent-config-fields.d.ts.map +1 -0
  4. package/dist/agent-config-fields.js +220 -0
  5. package/dist/analytics.d.ts +47 -0
  6. package/dist/analytics.d.ts.map +1 -0
  7. package/dist/analytics.js +45 -0
  8. package/dist/api-client.d.ts +48 -0
  9. package/dist/api-client.d.ts.map +1 -0
  10. package/dist/api-client.js +191 -0
  11. package/dist/colors.d.ts +76 -0
  12. package/dist/colors.d.ts.map +1 -0
  13. package/dist/colors.js +82 -0
  14. package/dist/config.d.ts +61 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +146 -0
  17. package/dist/cron-handler.d.ts +38 -0
  18. package/dist/cron-handler.d.ts.map +1 -0
  19. package/dist/cron-handler.js +48 -0
  20. package/dist/d1/index.d.ts +9 -0
  21. package/dist/d1/index.d.ts.map +1 -0
  22. package/dist/d1/index.js +360 -0
  23. package/dist/d1/repository.d.ts +86 -0
  24. package/dist/d1/repository.d.ts.map +1 -0
  25. package/dist/d1/repository.js +297 -0
  26. package/dist/d1/schemas.d.ts +89 -0
  27. package/dist/d1/schemas.d.ts.map +1 -0
  28. package/dist/d1/schemas.js +81 -0
  29. package/dist/dashboard-manifest.d.ts +135 -0
  30. package/dist/dashboard-manifest.d.ts.map +1 -0
  31. package/dist/dashboard-manifest.js +401 -0
  32. package/dist/errors.d.ts +44 -0
  33. package/dist/errors.d.ts.map +1 -0
  34. package/dist/errors.js +149 -0
  35. package/dist/exchange-client.d.ts +98 -0
  36. package/dist/exchange-client.d.ts.map +1 -0
  37. package/dist/exchange-client.js +107 -0
  38. package/dist/exchanges/base-exchange-client.d.ts +81 -0
  39. package/dist/exchanges/base-exchange-client.d.ts.map +1 -0
  40. package/dist/exchanges/base-exchange-client.js +123 -0
  41. package/dist/exchanges/index.d.ts +7 -0
  42. package/dist/exchanges/index.d.ts.map +1 -0
  43. package/dist/exchanges/index.js +123 -0
  44. package/dist/exchanges/types.d.ts +23 -0
  45. package/dist/exchanges/types.d.ts.map +1 -0
  46. package/dist/exchanges/types.js +1 -0
  47. package/dist/format-time.d.ts +28 -0
  48. package/dist/format-time.d.ts.map +1 -0
  49. package/dist/format-time.js +57 -0
  50. package/dist/formatters.d.ts +36 -0
  51. package/dist/formatters.d.ts.map +1 -0
  52. package/dist/formatters.js +155 -0
  53. package/dist/health.d.ts +19 -0
  54. package/dist/health.d.ts.map +1 -0
  55. package/dist/health.js +160 -0
  56. package/dist/index.d.ts +72 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +4198 -0
  59. package/dist/kvKeys.d.ts +76 -0
  60. package/dist/kvKeys.d.ts.map +1 -0
  61. package/dist/kvKeys.js +107 -0
  62. package/dist/kvUtils.d.ts +30 -0
  63. package/dist/kvUtils.d.ts.map +1 -0
  64. package/dist/kvUtils.js +170 -0
  65. package/dist/legal.d.ts +15 -0
  66. package/dist/legal.d.ts.map +1 -0
  67. package/dist/legal.js +40 -0
  68. package/dist/middleware/auth.d.ts +102 -0
  69. package/dist/middleware/auth.d.ts.map +1 -0
  70. package/dist/middleware/auth.js +151 -0
  71. package/dist/middleware/cors.d.ts +58 -0
  72. package/dist/middleware/cors.d.ts.map +1 -0
  73. package/dist/middleware/cors.js +77 -0
  74. package/dist/middleware/index.d.ts +14 -0
  75. package/dist/middleware/index.d.ts.map +1 -0
  76. package/dist/middleware/index.js +635 -0
  77. package/dist/middleware/logger.d.ts +17 -0
  78. package/dist/middleware/logger.d.ts.map +1 -0
  79. package/dist/middleware/logger.js +202 -0
  80. package/dist/middleware/rate-limit.d.ts +30 -0
  81. package/dist/middleware/rate-limit.d.ts.map +1 -0
  82. package/dist/middleware/rate-limit.js +181 -0
  83. package/dist/middleware/security-headers.d.ts +43 -0
  84. package/dist/middleware/security-headers.d.ts.map +1 -0
  85. package/dist/middleware/security-headers.js +58 -0
  86. package/dist/middleware/validate.d.ts +25 -0
  87. package/dist/middleware/validate.d.ts.map +1 -0
  88. package/dist/middleware/validate.js +56 -0
  89. package/dist/operator-transport.d.ts +65 -0
  90. package/dist/operator-transport.d.ts.map +1 -0
  91. package/dist/operator-transport.js +87 -0
  92. package/dist/path-utils.d.ts +190 -0
  93. package/dist/path-utils.d.ts.map +1 -0
  94. package/dist/path-utils.js +188 -0
  95. package/dist/queue-handler.d.ts +47 -0
  96. package/dist/queue-handler.d.ts.map +1 -0
  97. package/dist/queue-handler.js +46 -0
  98. package/dist/router.d.ts +15 -0
  99. package/dist/router.d.ts.map +1 -0
  100. package/dist/router.js +130 -0
  101. package/dist/schemas/index.d.ts +8 -0
  102. package/dist/schemas/index.d.ts.map +1 -0
  103. package/dist/schemas/index.js +705 -0
  104. package/dist/schemas/registry.d.ts +12 -0
  105. package/dist/schemas/registry.d.ts.map +1 -0
  106. package/dist/schemas/registry.js +433 -0
  107. package/dist/schemas/types.d.ts +83 -0
  108. package/dist/schemas/types.d.ts.map +1 -0
  109. package/dist/schemas/types.js +1 -0
  110. package/dist/schemas/validators.d.ts +39 -0
  111. package/dist/schemas/validators.d.ts.map +1 -0
  112. package/dist/schemas/validators.js +290 -0
  113. package/dist/service-bindings.d.ts +78 -0
  114. package/dist/service-bindings.d.ts.map +1 -0
  115. package/dist/service-bindings.js +248 -0
  116. package/dist/session.d.ts +39 -0
  117. package/dist/session.d.ts.map +1 -0
  118. package/dist/session.js +261 -0
  119. package/dist/sse.d.ts +39 -0
  120. package/dist/sse.d.ts.map +1 -0
  121. package/dist/sse.js +154 -0
  122. package/dist/stores/config-store.d.ts +91 -0
  123. package/dist/stores/config-store.d.ts.map +1 -0
  124. package/dist/stores/config-store.js +255 -0
  125. package/dist/stores/service-store.d.ts +266 -0
  126. package/dist/stores/service-store.d.ts.map +1 -0
  127. package/dist/stores/service-store.js +516 -0
  128. package/dist/stores/ui-store.d.ts +67 -0
  129. package/dist/stores/ui-store.d.ts.map +1 -0
  130. package/dist/stores/ui-store.js +62 -0
  131. package/dist/test-utils.d.ts +136 -0
  132. package/dist/test-utils.d.ts.map +1 -0
  133. package/dist/test-utils.js +128 -0
  134. package/dist/types/errors.d.ts +20 -0
  135. package/dist/types/errors.d.ts.map +1 -0
  136. package/dist/types/errors.js +1 -0
  137. package/dist/types/router.d.ts +36 -0
  138. package/dist/types/router.d.ts.map +1 -0
  139. package/dist/types/router.js +1 -0
  140. package/dist/types.d.ts +442 -0
  141. package/dist/types.d.ts.map +1 -0
  142. package/dist/types.js +83 -0
  143. package/dist/wizard/engine.d.ts +46 -0
  144. package/dist/wizard/engine.d.ts.map +1 -0
  145. package/dist/wizard/engine.js +525 -0
  146. package/dist/wizard/index.d.ts +11 -0
  147. package/dist/wizard/index.d.ts.map +1 -0
  148. package/dist/wizard/index.js +544 -0
  149. package/dist/wizard/persistence.d.ts +18 -0
  150. package/dist/wizard/persistence.d.ts.map +1 -0
  151. package/dist/wizard/persistence.js +31 -0
  152. package/dist/wizard/presets.d.ts +38 -0
  153. package/dist/wizard/presets.d.ts.map +1 -0
  154. package/dist/wizard/presets.js +223 -0
  155. package/dist/wizard/provisioner.d.ts +15 -0
  156. package/dist/wizard/provisioner.d.ts.map +1 -0
  157. package/dist/wizard/provisioner.js +1 -0
  158. package/dist/wizard/types.d.ts +76 -0
  159. package/dist/wizard/types.d.ts.map +1 -0
  160. package/dist/wizard/types.js +1 -0
  161. package/package.json +117 -0
@@ -0,0 +1,155 @@
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
17
+
18
+ // src/formatters.ts
19
+ function formatNumber(n) {
20
+ if (!isFinite(n))
21
+ return "\u2014";
22
+ if (Math.abs(n) >= 1e9)
23
+ return `${(n / 1e9).toFixed(1)}B`;
24
+ if (Math.abs(n) >= 1e6)
25
+ return `${(n / 1e6).toFixed(1)}M`;
26
+ if (Math.abs(n) >= 1000)
27
+ return `${(n / 1000).toFixed(1)}K`;
28
+ return n.toLocaleString();
29
+ }
30
+ function formatCurrency(n) {
31
+ if (!isFinite(n))
32
+ return "\u2014";
33
+ const sign = n >= 0 ? "+" : "-";
34
+ const abs = Math.abs(n);
35
+ if (abs >= 1e6)
36
+ return `${sign}$${(abs / 1e6).toFixed(2)}M`;
37
+ if (abs >= 1000)
38
+ return `${sign}$${(abs / 1000).toFixed(2)}K`;
39
+ return `${sign}$${abs.toFixed(2)}`;
40
+ }
41
+ function formatCompactCurrency(n) {
42
+ if (!isFinite(n))
43
+ return "\u2014";
44
+ const abs = Math.abs(n);
45
+ const sign = n < 0 ? "-" : "";
46
+ if (abs >= 1e6)
47
+ return `${sign}$${(abs / 1e6).toFixed(2)}M`;
48
+ if (abs >= 1000)
49
+ return `${sign}$${(abs / 1000).toFixed(2)}K`;
50
+ return `${sign}$${abs.toFixed(2)}`;
51
+ }
52
+ function formatDuration(seconds) {
53
+ if (!isFinite(seconds) || seconds < 0)
54
+ return "\u2014";
55
+ const d = Math.floor(seconds / 86400);
56
+ const h = Math.floor(seconds % 86400 / 3600);
57
+ const m = Math.floor(seconds % 3600 / 60);
58
+ const s = Math.floor(seconds % 60);
59
+ const parts = [];
60
+ if (d > 0)
61
+ parts.push(`${d}d`);
62
+ if (h > 0 || d > 0)
63
+ parts.push(`${h}h`);
64
+ if (m > 0 || h > 0 || d > 0)
65
+ parts.push(`${m}m`);
66
+ parts.push(`${s}s`);
67
+ return parts.join(" ");
68
+ }
69
+ function formatDurationCompact(seconds) {
70
+ if (!isFinite(seconds) || seconds < 0)
71
+ return "\u2014";
72
+ const d = Math.floor(seconds / 86400);
73
+ const h = Math.floor(seconds % 86400 / 3600);
74
+ const m = Math.floor(seconds % 3600 / 60);
75
+ if (d > 0)
76
+ return `${d}d ${h}h`;
77
+ if (h > 0)
78
+ return `${h}h ${m}m`;
79
+ if (m > 0)
80
+ return `${m}m`;
81
+ return `${Math.floor(seconds)}s`;
82
+ }
83
+ function formatTimestamp(iso) {
84
+ try {
85
+ const d = new Date(iso);
86
+ if (isNaN(d.getTime()))
87
+ return iso;
88
+ return d.toLocaleTimeString("en-US", { hour12: false });
89
+ } catch {
90
+ return iso;
91
+ }
92
+ }
93
+ function formatRelativeTime(timestamp) {
94
+ const now = Date.now();
95
+ const diff = now - timestamp;
96
+ if (diff < 0)
97
+ return "just now";
98
+ const seconds = Math.floor(diff / 1000);
99
+ if (seconds < 60)
100
+ return `${seconds}s ago`;
101
+ const minutes = Math.floor(seconds / 60);
102
+ if (minutes < 60)
103
+ return `${minutes}m ago`;
104
+ const hours = Math.floor(minutes / 60);
105
+ if (hours < 24)
106
+ return `${hours}h ago`;
107
+ const days = Math.floor(hours / 24);
108
+ return `${days}d ago`;
109
+ }
110
+ function formatPercent(n, decimals = 2) {
111
+ if (!isFinite(n))
112
+ return "\u2014";
113
+ const sign = n >= 0 ? "+" : "";
114
+ return `${sign}${n.toFixed(decimals)}%`;
115
+ }
116
+ function formatUptime(seconds) {
117
+ return formatDuration(seconds);
118
+ }
119
+ function formatLatency(ms) {
120
+ if (!isFinite(ms))
121
+ return "\u2014";
122
+ if (ms < 1)
123
+ return "<1ms";
124
+ if (ms < 1000)
125
+ return `${Math.round(ms)}ms`;
126
+ return `${(ms / 1000).toFixed(1)}s`;
127
+ }
128
+ function formatRequests(n) {
129
+ return formatNumber(n);
130
+ }
131
+ function formatMemory(usedMB, limitMB) {
132
+ const u = usedMB.toFixed(0);
133
+ const l = limitMB.toFixed(0);
134
+ return `${u}/${l} MB`;
135
+ }
136
+ function formatCpu(ms) {
137
+ if (!isFinite(ms))
138
+ return "\u2014";
139
+ return `${ms.toFixed(1)}ms`;
140
+ }
141
+ export {
142
+ formatUptime,
143
+ formatTimestamp,
144
+ formatRequests,
145
+ formatRelativeTime,
146
+ formatPercent,
147
+ formatNumber,
148
+ formatMemory,
149
+ formatLatency,
150
+ formatDurationCompact,
151
+ formatDuration,
152
+ formatCurrency,
153
+ formatCpu,
154
+ formatCompactCurrency
155
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) 2026 HOOX · HOOX · jango-blockchained (hoox-sh)
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export interface HealthCheckOptions {
6
+ /** Worker/service name included in the response */
7
+ worker?: string;
8
+ /** Version string included in the response */
9
+ version?: string;
10
+ /** Additional details to include */
11
+ details?: Record<string, unknown>;
12
+ }
13
+ /**
14
+ * Create a standardized health check response.
15
+ * Returns a JSON response with success status and health metadata.
16
+ * Format: { success: true, result: { status: 'ok', timestamp, worker, version, details } }
17
+ */
18
+ export declare function healthCheck(options?: HealthCheckOptions): Response;
19
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,QAAQ,CAalE"}
package/dist/health.js ADDED
@@ -0,0 +1,160 @@
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
17
+
18
+ // src/errors.ts
19
+ function toError(err, fallback = "Unknown error") {
20
+ if (err instanceof Error)
21
+ return err.message;
22
+ if (typeof err === "string")
23
+ return err;
24
+ if (err && typeof err === "object" && "message" in err && typeof err.message === "string") {
25
+ return err.message;
26
+ }
27
+ if (err === null || err === undefined)
28
+ return fallback;
29
+ try {
30
+ return JSON.stringify(err) || fallback;
31
+ } catch {
32
+ return fallback;
33
+ }
34
+ }
35
+ var SENSITIVE_FIELDS = new Set([
36
+ "password",
37
+ "token",
38
+ "secret",
39
+ "api_key",
40
+ "apiKey",
41
+ "authorization"
42
+ ]);
43
+ function hasSensitiveFields(obj) {
44
+ for (const key of Object.keys(obj)) {
45
+ if (SENSITIVE_FIELDS.has(key))
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ function hasErrorValues(obj) {
51
+ for (const v of Object.values(obj)) {
52
+ if (v instanceof Error)
53
+ return true;
54
+ }
55
+ return false;
56
+ }
57
+ function sanitizeOutput(data) {
58
+ if (data === null || data === undefined)
59
+ return data;
60
+ const t = typeof data;
61
+ if (t === "string" || t === "number" || t === "boolean")
62
+ return data;
63
+ if (data instanceof Error) {
64
+ return { name: data.name, message: data.message };
65
+ }
66
+ if (Array.isArray(data)) {
67
+ return data.map(sanitizeOutput);
68
+ }
69
+ if (t === "object") {
70
+ const obj = data;
71
+ const keys = Object.keys(obj);
72
+ if (keys.length < 10) {
73
+ const sanitized2 = {};
74
+ for (const k of keys) {
75
+ if (k === "stack" || k === "cause")
76
+ continue;
77
+ const v = obj[k];
78
+ sanitized2[k] = v instanceof Error ? { name: v.name, message: v.message } : sanitizeOutput(v);
79
+ }
80
+ return sanitized2;
81
+ }
82
+ if (!hasSensitiveFields(obj) && !hasErrorValues(obj)) {
83
+ return obj;
84
+ }
85
+ const sanitized = {};
86
+ for (const k of keys) {
87
+ if (k === "stack" || k === "cause")
88
+ continue;
89
+ const v = obj[k];
90
+ sanitized[k] = v instanceof Error ? { name: v.name, message: v.message } : sanitizeOutput(v);
91
+ }
92
+ return sanitized;
93
+ }
94
+ return data;
95
+ }
96
+ function createJsonResponse(data, status = 200) {
97
+ return new Response(JSON.stringify(sanitizeOutput(data)), {
98
+ status,
99
+ headers: { "Content-Type": "application/json" }
100
+ });
101
+ }
102
+ function createSuccessResponse(result) {
103
+ return createJsonResponse({ success: true, result }, 200);
104
+ }
105
+ function createErrorResponse(error, status) {
106
+ const message = typeof error === "string" ? error : error.message;
107
+ const statusCode = typeof error === "string" ? status ?? 500 : error.status ?? 500;
108
+ const body = { success: false, error: message };
109
+ if (typeof error !== "string" && error.code)
110
+ body.code = error.code;
111
+ if (typeof error !== "string" && error.details !== undefined)
112
+ body.details = error.details;
113
+ return new Response(JSON.stringify(body), {
114
+ status: statusCode,
115
+ headers: { "Content-Type": "application/json" }
116
+ });
117
+ }
118
+ var Errors = {
119
+ badRequest: (message) => createErrorResponse({ message, status: 400, code: "BAD_REQUEST" }),
120
+ unauthorized: (message = "Unauthorized") => createErrorResponse({ message, status: 401, code: "UNAUTHORIZED" }),
121
+ forbidden: (message = "Forbidden") => createErrorResponse({ message, status: 403, code: "FORBIDDEN" }),
122
+ notFound: (message = "Not found") => createErrorResponse({ message, status: 404, code: "NOT_FOUND" }),
123
+ methodNotAllowed: (message = "Method not allowed") => createErrorResponse({ message, status: 405, code: "METHOD_NOT_ALLOWED" }),
124
+ rateLimited: (retryAfter) => {
125
+ const res = createErrorResponse({
126
+ message: "Rate limit exceeded",
127
+ status: 429,
128
+ code: "RATE_LIMITED"
129
+ });
130
+ if (retryAfter)
131
+ res.headers.set("Retry-After", String(retryAfter));
132
+ return res;
133
+ },
134
+ internal: (err) => {
135
+ const message = err ? toError(err, "Internal server error") : "Internal server error";
136
+ return createErrorResponse({
137
+ message,
138
+ status: 500,
139
+ code: "INTERNAL_ERROR"
140
+ });
141
+ }
142
+ };
143
+
144
+ // src/health.ts
145
+ function healthCheck(options) {
146
+ const result = {
147
+ status: "ok",
148
+ timestamp: new Date().toISOString()
149
+ };
150
+ if (options?.worker !== undefined && options?.worker !== null)
151
+ result.service = options.worker;
152
+ if (options?.version !== undefined && options?.version !== null)
153
+ result.version = options.version;
154
+ if (options?.details)
155
+ result.details = options.details;
156
+ return createSuccessResponse(result);
157
+ }
158
+ export {
159
+ healthCheck
160
+ };
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Copyright (c) 2026 HOOX · HOOX · jango-blockchained (hoox-sh)
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ /**
6
+ * @hoox/shared — Shared module for HOOX (Open Core)
7
+ *
8
+ * Barrel export: re-exports all shared utilities, types, stores, and TUI helpers.
9
+ *
10
+ * This package is part of the **Open Core**.
11
+ * Enterprise-only extensions (advanced multi-tenancy, billing, proprietary features)
12
+ * live in a separate closed-source repository.
13
+ *
14
+ * See: /OPEN_CORE.md and /OPEN_CORE_FEATURE_SPLIT.md
15
+ */
16
+ export { COPYRIGHT, TRADEMARKS, TRADEMARK_NOTICE, DISCLAIMER, FULL_LEGAL_NOTICE, DISCLAIMER_HEADER, } from "./legal";
17
+ export type { StandardResponse, ApiSuccessResponse, ApiErrorResponse, ApiResponse, WorkerServiceBinding, WorkerD1Binding, WorkerSecretsStoreBinding, WorkerQueueConfig, HousekeepingCheck, HousekeepingPayload, HousekeepingSummary, SettingsPayload, ProcessRequestBody, BaseEnv, Result, } from "./types";
18
+ export { TradeActionSchema, WebhookPayloadSchema, TradeQueueMessageSchema, TradeSignalSchema, PositionSchema, BalanceSchema, } from "./types";
19
+ export type { TradeAction, WebhookPayload, TradeQueueMessage, TradeSignal, } from "./types";
20
+ export { KVKeys } from "./kvKeys";
21
+ export { toError, Errors, createJsonResponse, createSuccessResponse, createErrorResponse, } from "./errors";
22
+ export { ExchangeRouter } from "./exchange-client";
23
+ export type { ExchangeName, ExchangeConfig, TradeParams, OrderResponse, Position, IExchangeProvider, ClientCreateOptions, } from "./exchange-client";
24
+ export { BaseExchangeClient } from "./exchanges";
25
+ export type { SupportedExchange } from "./exchanges";
26
+ export { logKvTimestamp, headersToObject } from "./kvUtils";
27
+ export type { EnvWithKV } from "./kvUtils";
28
+ export { trackAnalytics } from "./analytics";
29
+ export type { AnalyticsEnv } from "./analytics";
30
+ export { healthCheck } from "./health";
31
+ export type { HealthCheckOptions } from "./health";
32
+ export { createQueueHandler } from "./queue-handler";
33
+ export type { QueueHandlerOptions } from "./queue-handler";
34
+ export { createCronHandler } from "./cron-handler";
35
+ export type { CronHandlerOptions } from "./cron-handler";
36
+ export { D1Repository } from "./d1/index";
37
+ export { serviceFetch, authenticatedServiceFetch, ServiceAuthError, InternalAuthKeyFields, D1_READ_AUTH_KEY_FIELDS, D1_WRITE_AUTH_KEY_FIELDS, TRADE_EXECUTE_AUTH_KEY_FIELDS, TRADE_READ_AUTH_KEY_FIELDS, TELEGRAM_ALERT_AUTH_KEY_FIELDS, WALLET_EXECUTE_AUTH_KEY_FIELDS, DASHBOARD_D1_READ_AUTH_KEY_FIELDS, DASHBOARD_TRADE_EXECUTE_AUTH_KEY_FIELDS, DASHBOARD_TELEGRAM_ALERT_AUTH_KEY_FIELDS, resolveInternalAuthKey, } from "./service-bindings";
38
+ export type { AuthenticatedServiceEnv } from "./service-bindings";
39
+ export type { TradeRecord, PositionRecord, BalanceRecord, SystemLogRecord, TradeSignalRecord, D1QueryResult, BatchStatement, } from "./d1/index";
40
+ export * from "./test-utils";
41
+ export { Colors, CoolBracketPalette, ConnectionStatusColor, WorkerStatusColor, LogLevelColor, AlertSeverityColor, } from "./colors";
42
+ export type { ColorKey, CoolBracketColor, ConnectionStatusKey, WorkerStatusKey, LogLevelColorKey, AlertSeverityColorKey, } from "./colors";
43
+ export { formatNumber, formatCurrency, formatCompactCurrency, formatDuration, formatDurationCompact, formatTimestamp, formatRelativeTime, formatPercent, formatUptime, formatLatency, formatRequests, formatMemory, formatCpu, } from "./formatters";
44
+ export { readConfigSync, readConfig, writeConfigSync, writeConfig, validateConfig, ensureHooxDirSecure, writeSecureFileSync, isUnixModeGroupOrWorldAccessible, isConfigWorldOrGroupReadable, formatConfigPermissionWarning, HOOX_DIR_MODE, HOOX_CONFIG_FILE_MODE, } from "./config";
45
+ export type { HooxConfig, HooxConfigTransport } from "./config";
46
+ export { hooxFetch, WorkerAPIError } from "./api-client";
47
+ export type { HooxFetchOptions } from "./api-client";
48
+ export { subscribeSSE } from "./sse";
49
+ export type { SSECallback, SSEStatusCallback, SubscribeSSEOptions, } from "./sse";
50
+ export { resolveOperatorTransportProfile, buildOperatorAuthHeaders, hasOperatorClientCredentials, operatorUrl, } from "./operator-transport";
51
+ export type { OperatorTransport, OperatorTransportProfile, OperatorTransportEnv, ResolveOperatorTransportOptions, } from "./operator-transport";
52
+ export { restoreSession, saveSession } from "./session";
53
+ export type { SessionState } from "./session";
54
+ export { formatRelativeTime as formatRelativeTimeFromTime } from "./format-time";
55
+ export type { ViewId, ModalState, WorkerStatus, WorkerInfo, TradeSide, Trade, AlertSeverity, Alert, LogLevel, LogEntry, SystemMetrics, ConnectionStatus, LogFilter, NotificationPreferences, CliErrorType, CliErrorDetails, } from "./types";
56
+ export { getHooxHome, resolveHooxPath, isWithinHooxHome, getRelativeHooxPath, getHooxRepoPath, getHooxConfigDir, getHooxDataDir, getHooxWranglerPath, getHooxStatePath, isHooxSetupRoot, findHooxSetupRoot, resolveHooxRuntimeRoot, getTuiEntryCandidates, } from "./path-utils";
57
+ export type { HooxPath, RuntimeRootSource, RuntimeRootResult, } from "./path-utils";
58
+ export { DASHBOARD_WORKER_PREFIX, DASHBOARD_SECTION_PREFIX, DASHBOARD_FIELD_KV_OVERRIDES, DASHBOARD_SECTIONS_NOT_FLAT_KV, DASHBOARD_SECTIONS_UI_SKIP, DASHBOARD_WORKER_IDS, buildDashboardKvKey, isDashboardSectionFlatKv, isDashboardSectionEditable, stripJsonc, parseDashboardManifest, dashboardWorkerDir, kvManifestFromDashboardManifests, loadDashboardKvManifestFromRoot, loadDashboardManifestsFromRoot, } from "./dashboard-manifest";
59
+ export type { DashboardFieldType, DashboardFieldKind, DashboardFieldOption, DashboardSettingField, DashboardSection, WorkerDashboardManifest, DashboardWorkerId, DashboardKvManifestKey, DashboardKvManifest, } from "./dashboard-manifest";
60
+ export { AGENT_CONFIG_KV_KEY, AGENT_CONFIG_EMBEDDED_FIELDS, DASHBOARD_SECTIONS_AGENT_CONFIG, isAgentConfigEmbeddedField, isAgentConfigSection, parseAgentConfigJson, serializeAgentConfigForKv, getAgentConfigEmbeddedValue, setAgentConfigEmbeddedValue, expandAgentConfigToFieldMap, applyAgentConfigFieldUpdates, } from "./agent-config-fields";
61
+ export type { AgentConfigFieldSpec } from "./agent-config-fields";
62
+ export type { StepId, WorkerPresetName, WorkerPreset, WorkerConfig, WorkersJsonConfig, IntegratedService, ProvisioningPlan, ProvisionResult, WizardCloudflareConfig, WizardState, StepDefinition, } from "./wizard";
63
+ export type { Provisioner } from "./wizard";
64
+ export { WizardEngine, PRESETS, WORKER_DEPENDENCIES, INTEGRATIONS, resolveDependencies, serializeState, deserializeState, WIZARD_STATE_PATH, } from "./wizard";
65
+ export * from "./schemas/index.js";
66
+ export { useUIStore } from "./stores/ui-store";
67
+ export { useServiceStore } from "./stores/service-store";
68
+ export { useConfigStore } from "./stores/config-store";
69
+ export type { UIState } from "./stores/ui-store";
70
+ export type { ServiceState } from "./stores/service-store";
71
+ export type { ConfigState } from "./stores/config-store";
72
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}