@ttkit/daily-hot-api 0.1.2 → 0.1.4

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 (93) hide show
  1. package/.env.example +26 -0
  2. package/README.md +26 -0
  3. package/dist/app.module.js +2 -0
  4. package/dist/app.module.js.map +1 -1
  5. package/dist/cli/args.d.ts +3 -1
  6. package/dist/cli/args.js +25 -2
  7. package/dist/cli/args.js.map +1 -1
  8. package/dist/cli/commands/logs.js +5 -0
  9. package/dist/cli/commands/logs.js.map +1 -1
  10. package/dist/cli/commands/restart.js +14 -3
  11. package/dist/cli/commands/restart.js.map +1 -1
  12. package/dist/cli/commands/start.js +17 -9
  13. package/dist/cli/commands/start.js.map +1 -1
  14. package/dist/cli/commands/status.js +5 -4
  15. package/dist/cli/commands/status.js.map +1 -1
  16. package/dist/cli/commands/stop.js +1 -1
  17. package/dist/cli/commands/stop.js.map +1 -1
  18. package/dist/cli/env.d.ts +1 -0
  19. package/dist/cli/env.js +12 -0
  20. package/dist/cli/env.js.map +1 -1
  21. package/dist/cli/health.d.ts +1 -1
  22. package/dist/cli/health.js +32 -17
  23. package/dist/cli/health.js.map +1 -1
  24. package/dist/cli/help.js +14 -2
  25. package/dist/cli/help.js.map +1 -1
  26. package/dist/cli/log-file.d.ts +4 -0
  27. package/dist/cli/log-file.js +54 -5
  28. package/dist/cli/log-file.js.map +1 -1
  29. package/dist/cli/paths.d.ts +1 -0
  30. package/dist/cli/paths.js +2 -1
  31. package/dist/cli/paths.js.map +1 -1
  32. package/dist/cli/run-state.d.ts +6 -1
  33. package/dist/cli/run-state.js +18 -6
  34. package/dist/cli/run-state.js.map +1 -1
  35. package/dist/config/validation.schema.d.ts +54 -0
  36. package/dist/config/validation.schema.js +75 -0
  37. package/dist/config/validation.schema.js.map +1 -1
  38. package/dist/daily-brief/daily-brief.module.js +1 -1
  39. package/dist/daily-brief/daily-brief.module.js.map +1 -1
  40. package/dist/daily-brief/daily-brief.service.js +1 -1
  41. package/dist/daily-brief/daily-brief.service.js.map +1 -1
  42. package/dist/database/database.module.js +15 -2
  43. package/dist/database/database.module.js.map +1 -1
  44. package/dist/database/repositories/daily-brief.repository.js +11 -1
  45. package/dist/database/repositories/daily-brief.repository.js.map +1 -1
  46. package/dist/database/repositories/hot-item.repository.d.ts +1 -1
  47. package/dist/database/repositories/hot-item.repository.js +7 -4
  48. package/dist/database/repositories/hot-item.repository.js.map +1 -1
  49. package/dist/database/repositories/news-brief.repository.d.ts +81 -0
  50. package/dist/database/repositories/news-brief.repository.js +208 -0
  51. package/dist/database/repositories/news-brief.repository.js.map +1 -0
  52. package/dist/database/schemas/news-brief.schema.d.ts +48 -0
  53. package/dist/database/schemas/news-brief.schema.js +130 -0
  54. package/dist/database/schemas/news-brief.schema.js.map +1 -0
  55. package/dist/main.js +2 -1
  56. package/dist/main.js.map +1 -1
  57. package/dist/news-brief/categories/news-category.registry.d.ts +5 -0
  58. package/dist/news-brief/categories/news-category.registry.js +106 -0
  59. package/dist/news-brief/categories/news-category.registry.js.map +1 -0
  60. package/dist/news-brief/clients/news-brief-ai.client.d.ts +45 -0
  61. package/dist/news-brief/clients/news-brief-ai.client.js +314 -0
  62. package/dist/news-brief/clients/news-brief-ai.client.js.map +1 -0
  63. package/dist/news-brief/clients/news-brief-search.service.d.ts +12 -0
  64. package/dist/news-brief/clients/news-brief-search.service.js +57 -0
  65. package/dist/news-brief/clients/news-brief-search.service.js.map +1 -0
  66. package/dist/news-brief/dto/generate-news-brief.dto.d.ts +7 -0
  67. package/dist/news-brief/dto/generate-news-brief.dto.js +45 -0
  68. package/dist/news-brief/dto/generate-news-brief.dto.js.map +1 -0
  69. package/dist/news-brief/dto/list-news-briefs-query.dto.d.ts +7 -0
  70. package/dist/news-brief/dto/list-news-briefs-query.dto.js +59 -0
  71. package/dist/news-brief/dto/list-news-briefs-query.dto.js.map +1 -0
  72. package/dist/news-brief/dto/news-brief-date-param.dto.d.ts +3 -0
  73. package/dist/news-brief/dto/news-brief-date-param.dto.js +22 -0
  74. package/dist/news-brief/dto/news-brief-date-param.dto.js.map +1 -0
  75. package/dist/news-brief/interfaces/news-brief.interface.d.ts +202 -0
  76. package/dist/news-brief/interfaces/news-brief.interface.js +3 -0
  77. package/dist/news-brief/interfaces/news-brief.interface.js.map +1 -0
  78. package/dist/news-brief/news-brief.config.d.ts +33 -0
  79. package/dist/news-brief/news-brief.config.js +118 -0
  80. package/dist/news-brief/news-brief.config.js.map +1 -0
  81. package/dist/news-brief/news-brief.controller.d.ts +56 -0
  82. package/dist/news-brief/news-brief.controller.js +185 -0
  83. package/dist/news-brief/news-brief.controller.js.map +1 -0
  84. package/dist/news-brief/news-brief.module.d.ts +2 -0
  85. package/dist/news-brief/news-brief.module.js +47 -0
  86. package/dist/news-brief/news-brief.module.js.map +1 -0
  87. package/dist/news-brief/news-brief.scheduler.d.ts +34 -0
  88. package/dist/news-brief/news-brief.scheduler.js +143 -0
  89. package/dist/news-brief/news-brief.scheduler.js.map +1 -0
  90. package/dist/news-brief/news-brief.service.d.ts +60 -0
  91. package/dist/news-brief/news-brief.service.js +676 -0
  92. package/dist/news-brief/news-brief.service.js.map +1 -0
  93. package/package.json +3 -1
package/dist/cli/env.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare function applyEnvFile(envFile: string, env?: NodeJS.ProcessEnv): string[];
2
2
  export declare function resolvePort(flagPort: number | undefined, env?: NodeJS.ProcessEnv): number;
3
+ export declare function resolveHost(flagHost: string | undefined, env?: NodeJS.ProcessEnv): string;
package/dist/cli/env.js CHANGED
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.applyEnvFile = applyEnvFile;
37
37
  exports.resolvePort = resolvePort;
38
+ exports.resolveHost = resolveHost;
38
39
  const fs_1 = require("fs");
39
40
  const dotenv = __importStar(require("dotenv"));
40
41
  const errors_1 = require("./errors");
@@ -77,4 +78,15 @@ function resolvePort(flagPort, env = process.env) {
77
78
  }
78
79
  return port;
79
80
  }
81
+ function resolveHost(flagHost, env = process.env) {
82
+ const flag = flagHost?.trim();
83
+ if (flag) {
84
+ return flag;
85
+ }
86
+ const raw = (env.HOST ?? '').trim();
87
+ if (!raw) {
88
+ return paths_1.DEFAULT_HOST;
89
+ }
90
+ return raw;
91
+ }
80
92
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,oCAwBC;AAKD,kCAsBC;AAhED,2BAA8C;AAC9C,+CAAiC;AACjC,qCAAoC;AACpC,mCAAuC;AAUvC,SAAgB,YAAY,CAC1B,OAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,iBAAQ,CAAC,aAAa,OAAO,KAAK,MAAM,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAgB,WAAW,CACzB,QAA4B,EAC5B,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,oBAAY,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,oCAwBC;AAKD,kCAsBC;AAKD,kCAcC;AAnFD,2BAA8C;AAC9C,+CAAiC;AACjC,qCAAoC;AACpC,mCAAqD;AAUrD,SAAgB,YAAY,CAC1B,OAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,iBAAQ,CAAC,aAAa,OAAO,KAAK,MAAM,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAgB,WAAW,CACzB,QAA4B,EAC5B,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,oBAAY,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,SAAgB,WAAW,CACzB,QAA4B,EAC5B,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,oBAAY,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,2 +1,2 @@
1
+ export declare function looksLikeHealthBody(body: string): boolean;
1
2
  export declare function checkHealth(port: number, timeoutMs?: number, host?: string): Promise<boolean>;
2
- export declare function waitForHealthy(port: number, timeoutMs: number, intervalMs?: number): Promise<boolean>;
@@ -1,9 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.looksLikeHealthBody = looksLikeHealthBody;
3
4
  exports.checkHealth = checkHealth;
4
- exports.waitForHealthy = waitForHealthy;
5
5
  const http_1 = require("http");
6
6
  const run_state_1 = require("./run-state");
7
+ const MAX_BODY_BYTES = 64 * 1024;
8
+ function looksLikeHealthBody(body) {
9
+ try {
10
+ const parsed = JSON.parse(body);
11
+ if (typeof parsed !== 'object' || parsed === null) {
12
+ return false;
13
+ }
14
+ const value = parsed;
15
+ return (typeof value.status === 'string' &&
16
+ typeof value.checks === 'object' &&
17
+ value.checks !== null);
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
7
23
  function checkHealth(port, timeoutMs = 2000, host = '127.0.0.1') {
8
24
  return new Promise((resolve) => {
9
25
  let settled = false;
@@ -14,10 +30,22 @@ function checkHealth(port, timeoutMs = 2000, host = '127.0.0.1') {
14
30
  settled = true;
15
31
  resolve(healthy);
16
32
  };
17
- const request = (0, http_1.get)({ host, port, path: '/health', timeout: timeoutMs }, (response) => {
18
- response.resume();
33
+ const request = (0, http_1.get)({ host: (0, run_state_1.probeHost)(host), port, path: '/health', timeout: timeoutMs }, (response) => {
19
34
  const statusCode = response.statusCode ?? 0;
20
- finish(statusCode >= 200 && statusCode < 400);
35
+ if (statusCode < 200 || statusCode >= 300) {
36
+ response.resume();
37
+ finish(false);
38
+ return;
39
+ }
40
+ let body = '';
41
+ response.setEncoding('utf8');
42
+ response.on('data', (chunk) => {
43
+ if (body.length <= MAX_BODY_BYTES) {
44
+ body += chunk;
45
+ }
46
+ });
47
+ response.on('end', () => finish(looksLikeHealthBody(body)));
48
+ response.on('error', () => finish(false));
21
49
  });
22
50
  request.on('timeout', () => {
23
51
  request.destroy();
@@ -28,17 +56,4 @@ function checkHealth(port, timeoutMs = 2000, host = '127.0.0.1') {
28
56
  });
29
57
  });
30
58
  }
31
- async function waitForHealthy(port, timeoutMs, intervalMs = 250) {
32
- const deadline = Date.now() + timeoutMs;
33
- do {
34
- if (await checkHealth(port)) {
35
- return true;
36
- }
37
- if (Date.now() >= deadline) {
38
- return false;
39
- }
40
- await (0, run_state_1.sleep)(intervalMs);
41
- } while (Date.now() < deadline);
42
- return false;
43
- }
44
59
  //# sourceMappingURL=health.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":";;AAIA,kCA+BC;AAED,wCAgBC;AArDD,+BAA2B;AAC3B,2CAAoC;AAGpC,SAAgB,WAAW,CACzB,IAAY,EACZ,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,WAAW;IAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAQ,EAAE;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,UAAG,EACjB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EACnD,CAAC,QAAQ,EAAE,EAAE;YACX,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC;QAChD,CAAC,CACF,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,SAAiB,EACjB,UAAU,GAAG,GAAG;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,GAAG,CAAC;QACF,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAA,iBAAK,EAAC,UAAU,CAAC,CAAC;IAC1B,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;IAChC,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":";;AAaA,kDAeC;AAGD,kCA2CC;AA1ED,+BAA2B;AAC3B,2CAAwC;AAGxC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;AASjC,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,MAAiC,CAAC;QAChD,OAAO,CACL,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAChC,KAAK,CAAC,MAAM,KAAK,IAAI,CACtB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAGD,SAAgB,WAAW,CACzB,IAAY,EACZ,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,WAAW;IAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAQ,EAAE;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,UAAG,EACjB,EAAE,IAAI,EAAE,IAAA,qBAAS,EAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EACpE,CAAC,QAAQ,EAAE,EAAE;YACX,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;YAC5C,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;oBAClC,IAAI,IAAI,KAAK,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC,CACF,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/cli/help.js CHANGED
@@ -13,6 +13,8 @@ const START_HELP = `用法: daily-hot-api [start] [选项]
13
13
 
14
14
  选项:
15
15
  -p, --port <端口> 覆盖监听端口(默认取 .env 的 PORT,否则 6689)
16
+ --host <地址> 覆盖监听地址(默认取 .env 的 HOST,否则 0.0.0.0;
17
+ 只给本机用可设 127.0.0.1)
16
18
  -d, --daemon 在后台启动,日志写入状态目录
17
19
  --config <路径> 指定 .env 配置文件(默认顺序: DAILY_HOT_API_ENV_FILE → 当前目录 .env → 状态目录 .env)
18
20
  --home <目录> 指定状态目录(默认 ~/.daily-hot-api)
@@ -22,6 +24,7 @@ const START_HELP = `用法: daily-hot-api [start] [选项]
22
24
  daily-hot-api 前台启动
23
25
  daily-hot-api -p 6699 前台启动并指定端口
24
26
  daily-hot-api start -d 后台启动
27
+ daily-hot-api start -d --host 127.0.0.1
25
28
  daily-hot-api start -d --port 6699 --config ./prod.env`;
26
29
  const STOP_HELP = `用法: daily-hot-api stop [选项]
27
30
 
@@ -59,6 +62,7 @@ const RESTART_HELP = `用法: daily-hot-api restart [选项]
59
62
  -d, --daemon 重启后在后台运行
60
63
  --foreground 重启后在前台运行
61
64
  -p, --port <端口> 覆盖监听端口
65
+ --host <地址> 覆盖监听地址
62
66
  --config <路径> 指定 .env 配置文件
63
67
  --timeout <秒> 等待旧进程退出的超时时间(默认 10 秒)
64
68
  --force 停止旧进程时立即 SIGKILL
@@ -74,16 +78,21 @@ const LOGS_HELP = `用法: daily-hot-api logs [选项]
74
78
  查看后台服务日志。前台模式的标准输出直接打印在启动终端,
75
79
  不会写入日志文件。
76
80
 
81
+ 日志超过 10 MB 时会在下一次 start -d 轮转为 .log.1 ~ .log.3;
82
+ 运行期间想立刻回收空间用 --clear。
83
+
77
84
  选项:
78
85
  -n, --lines <行数> 显示最后 N 行(默认 50)
79
86
  -f, --follow 持续跟踪新增日志,按 Ctrl+C 退出
87
+ --clear 清空日志文件(不能与 --follow 同用)
80
88
  --home <目录> 指定状态目录(默认 ~/.daily-hot-api)
81
89
  -h, --help 查看帮助
82
90
 
83
91
  示例:
84
92
  daily-hot-api logs
85
93
  daily-hot-api logs -n 200
86
- daily-hot-api logs -f`;
94
+ daily-hot-api logs -f
95
+ daily-hot-api logs --clear`;
87
96
  const HELP_HELP = `用法: daily-hot-api help [命令]
88
97
 
89
98
  显示全局帮助或指定命令的帮助。
@@ -120,6 +129,7 @@ function globalHelp() {
120
129
 
121
130
  常用选项:
122
131
  -p, --port <端口> 覆盖监听端口(默认取 .env 的 PORT,否则 6689)
132
+ --host <地址> 覆盖监听地址(默认取 .env 的 HOST,否则 0.0.0.0)
123
133
  -d, --daemon 在后台运行(start/restart)
124
134
  --foreground 在前台运行(restart 用来覆盖原模式)
125
135
  --config <路径> 指定 .env 配置文件
@@ -129,6 +139,7 @@ function globalHelp() {
129
139
  --json 以 JSON 输出(status/stop)
130
140
  -n, --lines <行数> logs 显示的行数(默认 50)
131
141
  -f, --follow logs 持续跟踪新增日志
142
+ --clear logs 清空日志文件
132
143
  -h, --help 查看帮助
133
144
  -v, --version 查看版本
134
145
 
@@ -139,10 +150,11 @@ function globalHelp() {
139
150
  daily-hot-api status 查看状态
140
151
  daily-hot-api logs -f 跟踪后台日志
141
152
  daily-hot-api stop 停止服务
142
- npx daily-hot-api start -d 不全局安装,直接用 npx 后台启动
153
+ npx -y @ttkit/daily-hot-api start -d 不全局安装,直接用 npx 后台启动
143
154
 
144
155
  环境变量:
145
156
  PORT 服务端口
157
+ HOST 监听地址,默认 0.0.0.0
146
158
  DAILY_HOT_API_HOME 状态目录,默认 ~/.daily-hot-api
147
159
  DAILY_HOT_API_ENV_FILE 显式指定 .env 文件(等同于 --config)
148
160
 
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":";;AAgHA,gCA6CC;AAED,kCAKC;AAnKD,mCAA4C;AAE5C,SAAS,gBAAgB;IACvB,OAAO,IAAA,yBAAiB,GAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;yDAgBsC,CAAC;AAE1D,MAAM,SAAS,GAAG;;;;;;;;;;;;;;UAcR,CAAC;AAEX,MAAM,WAAW,GAAG;;;;;;;;;;;SAWX,CAAC;AAEV,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;6CAkBwB,CAAC;AAE9C,MAAM,SAAS,GAAG;;;;;;;;;;;;;;wBAcM,CAAC;AAEzB,MAAM,SAAS,GAAG;;;;;;2BAMS,CAAC;AAE5B,MAAM,YAAY,GAAG;;aAER,CAAC;AAEd,MAAM,YAAY,GAAgC;IAChD,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,SAAgB,UAAU;IACxB,OAAO,kBAAkB,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDA2CO,CAAC;AACrD,CAAC;AAED,SAAgB,WAAW,CAAC,OAAoB;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,kBAAkB,gBAAgB,EAAE,OAAO,YAAY,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":";;AAyHA,gCAgDC;AAED,kCAKC;AA/KD,mCAA4C;AAE5C,SAAS,gBAAgB;IACvB,OAAO,IAAA,yBAAiB,GAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;yDAmBsC,CAAC;AAE1D,MAAM,SAAS,GAAG;;;;;;;;;;;;;;UAcR,CAAC;AAEX,MAAM,WAAW,GAAG;;;;;;;;;;;SAWX,CAAC;AAEV,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;6CAmBwB,CAAC;AAE9C,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;6BAmBW,CAAC;AAE9B,MAAM,SAAS,GAAG;;;;;;2BAMS,CAAC;AAE5B,MAAM,YAAY,GAAG;;aAER,CAAC;AAEd,MAAM,YAAY,GAAgC;IAChD,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,SAAgB,UAAU;IACxB,OAAO,kBAAkB,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDA8CO,CAAC;AACrD,CAAC;AAED,SAAgB,WAAW,CAAC,OAAoB;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,kBAAkB,gBAAgB,EAAE,OAAO,YAAY,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export declare const LOG_TAIL_MAX_BYTES: number;
2
+ export declare const LOG_MAX_BYTES: number;
3
+ export declare const LOG_KEEP_FILES = 3;
2
4
  export declare function tailFile(file: string, lines: number, maxBytes?: number): string;
3
5
  export interface LogChunk {
4
6
  text: string;
@@ -6,3 +8,5 @@ export interface LogChunk {
6
8
  truncated: boolean;
7
9
  }
8
10
  export declare function readLogChunk(file: string, fromPosition: number): LogChunk;
11
+ export declare function rotateLogFile(file: string, maxBytes?: number, keep?: number): boolean;
12
+ export declare function clearLogFile(file: string): void;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LOG_TAIL_MAX_BYTES = void 0;
3
+ exports.LOG_KEEP_FILES = exports.LOG_MAX_BYTES = exports.LOG_TAIL_MAX_BYTES = void 0;
4
4
  exports.tailFile = tailFile;
5
5
  exports.readLogChunk = readLogChunk;
6
+ exports.rotateLogFile = rotateLogFile;
7
+ exports.clearLogFile = clearLogFile;
6
8
  const fs_1 = require("fs");
7
9
  const errors_1 = require("./errors");
8
10
  exports.LOG_TAIL_MAX_BYTES = 256 * 1024;
11
+ exports.LOG_MAX_BYTES = 10 * 1024 * 1024;
12
+ exports.LOG_KEEP_FILES = 3;
9
13
  function tailFile(file, lines, maxBytes = exports.LOG_TAIL_MAX_BYTES) {
10
14
  if (!(0, fs_1.existsSync)(file)) {
11
15
  throw new errors_1.CliError(`日志文件不存在: ${file}`);
@@ -18,8 +22,8 @@ function tailFile(file, lines, maxBytes = exports.LOG_TAIL_MAX_BYTES) {
18
22
  const fd = (0, fs_1.openSync)(file, 'r');
19
23
  try {
20
24
  const buffer = Buffer.alloc(size - start);
21
- (0, fs_1.readSync)(fd, buffer, 0, buffer.length, start);
22
- let text = buffer.toString('utf8');
25
+ const bytesRead = (0, fs_1.readSync)(fd, buffer, 0, buffer.length, start);
26
+ let text = buffer.subarray(0, bytesRead).toString('utf8');
23
27
  if (start > 0) {
24
28
  const firstNewline = text.indexOf('\n');
25
29
  text = firstNewline >= 0 ? text.slice(firstNewline + 1) : '';
@@ -48,11 +52,56 @@ function readLogChunk(file, fromPosition) {
48
52
  const fd = (0, fs_1.openSync)(file, 'r');
49
53
  try {
50
54
  const buffer = Buffer.alloc(size - start);
51
- (0, fs_1.readSync)(fd, buffer, 0, buffer.length, start);
52
- return { text: buffer.toString('utf8'), nextPosition: size, truncated };
55
+ const bytesRead = (0, fs_1.readSync)(fd, buffer, 0, buffer.length, start);
56
+ return {
57
+ text: buffer.subarray(0, bytesRead).toString('utf8'),
58
+ nextPosition: start + bytesRead,
59
+ truncated,
60
+ };
53
61
  }
54
62
  finally {
55
63
  (0, fs_1.closeSync)(fd);
56
64
  }
57
65
  }
66
+ function rotateLogFile(file, maxBytes = exports.LOG_MAX_BYTES, keep = exports.LOG_KEEP_FILES) {
67
+ if (!(0, fs_1.existsSync)(file)) {
68
+ return false;
69
+ }
70
+ let size;
71
+ try {
72
+ size = (0, fs_1.statSync)(file).size;
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ if (size <= maxBytes) {
78
+ return false;
79
+ }
80
+ try {
81
+ (0, fs_1.rmSync)(`${file}.${keep}`, { force: true });
82
+ for (let index = keep - 1; index >= 1; index -= 1) {
83
+ const current = `${file}.${index}`;
84
+ if ((0, fs_1.existsSync)(current)) {
85
+ (0, fs_1.renameSync)(current, `${file}.${index + 1}`);
86
+ }
87
+ }
88
+ (0, fs_1.renameSync)(file, `${file}.1`);
89
+ return true;
90
+ }
91
+ catch {
92
+ return false;
93
+ }
94
+ }
95
+ function clearLogFile(file) {
96
+ if (!(0, fs_1.existsSync)(file)) {
97
+ throw new errors_1.CliError(`日志文件不存在: ${file}`);
98
+ }
99
+ try {
100
+ (0, fs_1.truncateSync)(file, 0);
101
+ }
102
+ catch (error) {
103
+ const reason = error instanceof Error ? error.message : String(error);
104
+ throw new errors_1.CliError(`清空日志失败: ${file} (${reason})`);
105
+ }
106
+ }
58
107
  //# sourceMappingURL=log-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-file.js","sourceRoot":"","sources":["../../src/cli/log-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-file.js","sourceRoot":"","sources":["../../src/cli/log-file.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export declare const APP_NAME = "daily-hot-api";
2
2
  export declare const DEFAULT_PORT = 6689;
3
+ export declare const DEFAULT_HOST = "0.0.0.0";
3
4
  export declare const DEFAULT_STOP_TIMEOUT_SECONDS = 10;
4
5
  export declare const START_TIMEOUT_MS = 60000;
5
6
  export declare const START_POLL_INTERVAL_MS = 200;
package/dist/cli/paths.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DAEMON_CHILD_ENV = exports.ENV_FILE_ENV = exports.HOME_ENV = exports.START_POLL_INTERVAL_MS = exports.START_TIMEOUT_MS = exports.DEFAULT_STOP_TIMEOUT_SECONDS = exports.DEFAULT_PORT = exports.APP_NAME = void 0;
3
+ exports.DAEMON_CHILD_ENV = exports.ENV_FILE_ENV = exports.HOME_ENV = exports.START_POLL_INTERVAL_MS = exports.START_TIMEOUT_MS = exports.DEFAULT_STOP_TIMEOUT_SECONDS = exports.DEFAULT_HOST = exports.DEFAULT_PORT = exports.APP_NAME = void 0;
4
4
  exports.getPackageRoot = getPackageRoot;
5
5
  exports.getBinPath = getBinPath;
6
6
  exports.getPackageVersion = getPackageVersion;
@@ -12,6 +12,7 @@ const os_1 = require("os");
12
12
  const path_1 = require("path");
13
13
  exports.APP_NAME = 'daily-hot-api';
14
14
  exports.DEFAULT_PORT = 6689;
15
+ exports.DEFAULT_HOST = '0.0.0.0';
15
16
  exports.DEFAULT_STOP_TIMEOUT_SECONDS = 10;
16
17
  exports.START_TIMEOUT_MS = 60_000;
17
18
  exports.START_POLL_INTERVAL_MS = 200;
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/cli/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/cli/paths.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export type RunMode = 'foreground' | 'daemon';
2
2
  export interface RunState {
3
3
  pid: number;
4
4
  port: number;
5
+ host: string;
5
6
  mode: RunMode;
6
7
  startedAt: string;
7
8
  cwd: string;
@@ -19,7 +20,11 @@ export declare function readRunState(stateFile: string): RunStateReadResult;
19
20
  export declare function writeRunState(stateFile: string, state: RunState): void;
20
21
  export declare function clearRunState(stateFile: string, expectedPid?: number): 'cleared' | 'kept' | 'missing';
21
22
  export declare function isProcessAlive(pid: number): boolean;
22
- export declare function processLooksLikeService(pid: number, packageRoot?: string): boolean;
23
+ export declare function processLooksLikeService(pid: number, options?: {
24
+ entry?: string;
25
+ packageRoot?: string;
26
+ }): boolean;
23
27
  export declare function sleep(ms: number): Promise<void>;
24
28
  export declare function waitForProcessExit(pid: number, timeoutMs: number, intervalMs?: number): Promise<boolean>;
29
+ export declare function probeHost(host: string | undefined): string;
25
30
  export declare function isPortInUse(port: number, host?: string, timeoutMs?: number): Promise<boolean>;
@@ -8,6 +8,7 @@ exports.isProcessAlive = isProcessAlive;
8
8
  exports.processLooksLikeService = processLooksLikeService;
9
9
  exports.sleep = sleep;
10
10
  exports.waitForProcessExit = waitForProcessExit;
11
+ exports.probeHost = probeHost;
11
12
  exports.isPortInUse = isPortInUse;
12
13
  const child_process_1 = require("child_process");
13
14
  const fs_1 = require("fs");
@@ -39,6 +40,7 @@ function parseRunState(raw) {
39
40
  return {
40
41
  pid,
41
42
  port,
43
+ host: typeof value.host === 'string' ? value.host : '',
42
44
  mode: value.mode,
43
45
  startedAt: value.startedAt,
44
46
  cwd: typeof value.cwd === 'string' ? value.cwd : '',
@@ -100,7 +102,7 @@ function isProcessAlive(pid) {
100
102
  return error.code === 'EPERM';
101
103
  }
102
104
  }
103
- function processLooksLikeService(pid, packageRoot = (0, paths_1.getPackageRoot)()) {
105
+ function processLooksLikeService(pid, options = {}) {
104
106
  if (!isProcessAlive(pid)) {
105
107
  return false;
106
108
  }
@@ -115,12 +117,15 @@ function processLooksLikeService(pid, packageRoot = (0, paths_1.getPackageRoot)(
115
117
  if (!commandLine) {
116
118
  return true;
117
119
  }
120
+ const packageRoot = options.packageRoot ?? (0, paths_1.getPackageRoot)();
118
121
  const markers = [
119
- paths_1.APP_NAME,
120
- `${packageRoot}/dist/main.js`,
121
- `${packageRoot}/dist/cli/index.js`,
122
- `${packageRoot}\\dist\\main.js`,
123
- ];
122
+ options.entry,
123
+ (0, path_1.join)(packageRoot, 'bin', `${paths_1.APP_NAME}.js`),
124
+ (0, path_1.join)(packageRoot, 'dist', 'main.js'),
125
+ (0, path_1.join)(packageRoot, 'dist', 'cli', 'index.js'),
126
+ `bin/${paths_1.APP_NAME}.js`,
127
+ `bin\\${paths_1.APP_NAME}.js`,
128
+ ].filter((marker) => Boolean(marker));
124
129
  return markers.some((marker) => commandLine.includes(marker));
125
130
  }
126
131
  function sleep(ms) {
@@ -138,6 +143,13 @@ async function waitForProcessExit(pid, timeoutMs, intervalMs = 100) {
138
143
  }
139
144
  return !isProcessAlive(pid);
140
145
  }
146
+ function probeHost(host) {
147
+ const value = (host ?? '').trim();
148
+ if (!value || value === '0.0.0.0' || value === '::' || value === '*') {
149
+ return '127.0.0.1';
150
+ }
151
+ return value;
152
+ }
141
153
  function isPortInUse(port, host = '127.0.0.1', timeoutMs = 500) {
142
154
  return new Promise((resolve) => {
143
155
  let settled = false;
@@ -1 +1 @@
1
- {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../src/cli/run-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../src/cli/run-state.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const configValidationSchema: z.ZodObject<{
3
3
  PORT: z.ZodDefault<z.ZodNumber>;
4
+ HOST: z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
4
5
  CACHE_TTL: z.ZodDefault<z.ZodNumber>;
5
6
  REQUEST_TIMEOUT: z.ZodDefault<z.ZodNumber>;
6
7
  ALLOWED_DOMAIN: z.ZodDefault<z.ZodString>;
@@ -36,12 +37,30 @@ export declare const configValidationSchema: z.ZodObject<{
36
37
  DEEPSEEK_SEARCH_API_KEY: z.ZodDefault<z.ZodString>;
37
38
  DEEPSEEK_SEARCH_MAX_RESULTS: z.ZodDefault<z.ZodNumber>;
38
39
  DEEPSEEK_SEARCH_TIMEOUT_MS: z.ZodDefault<z.ZodNumber>;
40
+ NEWS_BRIEF_ENABLED: z.ZodEffects<z.ZodBoolean, boolean, unknown>;
41
+ NEWS_BRIEF_CRON_EXPRESSION: z.ZodDefault<z.ZodString>;
42
+ NEWS_BRIEF_TIMEZONE: z.ZodDefault<z.ZodString>;
43
+ NEWS_BRIEF_CATEGORIES: z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
44
+ NEWS_BRIEF_LOOKBACK_HOURS: z.ZodDefault<z.ZodNumber>;
45
+ NEWS_BRIEF_TOP_ITEMS_PER_SOURCE: z.ZodDefault<z.ZodNumber>;
46
+ NEWS_BRIEF_MAX_CANDIDATES: z.ZodDefault<z.ZodNumber>;
47
+ NEWS_BRIEF_MAX_ITEMS_PER_CATEGORY: z.ZodDefault<z.ZodNumber>;
48
+ NEWS_BRIEF_SOURCE_CONCURRENCY: z.ZodDefault<z.ZodNumber>;
49
+ NEWS_BRIEF_CATEGORY_CONCURRENCY: z.ZodDefault<z.ZodNumber>;
50
+ NEWS_BRIEF_GENERATING_TIMEOUT_MINUTES: z.ZodDefault<z.ZodNumber>;
51
+ NEWS_BRIEF_MANUAL_GENERATE_ENABLED: z.ZodEffects<z.ZodBoolean, boolean, unknown>;
52
+ NEWS_BRIEF_SEARCH_ENABLED: z.ZodEffects<z.ZodBoolean, boolean, unknown>;
53
+ NEWS_BRIEF_SEARCH_MAX_QUERIES: z.ZodDefault<z.ZodNumber>;
54
+ NEWS_BRIEF_SEARCH_CONCURRENCY: z.ZodDefault<z.ZodNumber>;
55
+ NEWS_BRIEF_SEARCH_QUERY_MAX_CHARS: z.ZodDefault<z.ZodNumber>;
56
+ NEWS_BRIEF_SEARCH_PROVIDERS: z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
39
57
  }, "strip", z.ZodTypeAny, {
40
58
  CACHE_TTL: number;
41
59
  REDIS_HOST: string;
42
60
  REDIS_PORT: number;
43
61
  REDIS_PASSWORD: string;
44
62
  PORT: number;
63
+ HOST: string;
45
64
  REQUEST_TIMEOUT: number;
46
65
  ALLOWED_DOMAIN: string;
47
66
  RSS_MODE: boolean;
@@ -73,12 +92,30 @@ export declare const configValidationSchema: z.ZodObject<{
73
92
  DEEPSEEK_SEARCH_API_KEY: string;
74
93
  DEEPSEEK_SEARCH_MAX_RESULTS: number;
75
94
  DEEPSEEK_SEARCH_TIMEOUT_MS: number;
95
+ NEWS_BRIEF_ENABLED: boolean;
96
+ NEWS_BRIEF_CRON_EXPRESSION: string;
97
+ NEWS_BRIEF_TIMEZONE: string;
98
+ NEWS_BRIEF_CATEGORIES: string;
99
+ NEWS_BRIEF_LOOKBACK_HOURS: number;
100
+ NEWS_BRIEF_TOP_ITEMS_PER_SOURCE: number;
101
+ NEWS_BRIEF_MAX_CANDIDATES: number;
102
+ NEWS_BRIEF_MAX_ITEMS_PER_CATEGORY: number;
103
+ NEWS_BRIEF_SOURCE_CONCURRENCY: number;
104
+ NEWS_BRIEF_CATEGORY_CONCURRENCY: number;
105
+ NEWS_BRIEF_GENERATING_TIMEOUT_MINUTES: number;
106
+ NEWS_BRIEF_MANUAL_GENERATE_ENABLED: boolean;
107
+ NEWS_BRIEF_SEARCH_ENABLED: boolean;
108
+ NEWS_BRIEF_SEARCH_MAX_QUERIES: number;
109
+ NEWS_BRIEF_SEARCH_CONCURRENCY: number;
110
+ NEWS_BRIEF_SEARCH_QUERY_MAX_CHARS: number;
111
+ NEWS_BRIEF_SEARCH_PROVIDERS: string;
76
112
  }, {
77
113
  CACHE_TTL?: number | undefined;
78
114
  REDIS_HOST?: string | undefined;
79
115
  REDIS_PORT?: number | undefined;
80
116
  REDIS_PASSWORD?: string | undefined;
81
117
  PORT?: number | undefined;
118
+ HOST?: string | undefined;
82
119
  REQUEST_TIMEOUT?: number | undefined;
83
120
  ALLOWED_DOMAIN?: string | undefined;
84
121
  RSS_MODE?: unknown;
@@ -110,5 +147,22 @@ export declare const configValidationSchema: z.ZodObject<{
110
147
  DEEPSEEK_SEARCH_API_KEY?: string | undefined;
111
148
  DEEPSEEK_SEARCH_MAX_RESULTS?: number | undefined;
112
149
  DEEPSEEK_SEARCH_TIMEOUT_MS?: number | undefined;
150
+ NEWS_BRIEF_ENABLED?: unknown;
151
+ NEWS_BRIEF_CRON_EXPRESSION?: string | undefined;
152
+ NEWS_BRIEF_TIMEZONE?: string | undefined;
153
+ NEWS_BRIEF_CATEGORIES?: string | undefined;
154
+ NEWS_BRIEF_LOOKBACK_HOURS?: number | undefined;
155
+ NEWS_BRIEF_TOP_ITEMS_PER_SOURCE?: number | undefined;
156
+ NEWS_BRIEF_MAX_CANDIDATES?: number | undefined;
157
+ NEWS_BRIEF_MAX_ITEMS_PER_CATEGORY?: number | undefined;
158
+ NEWS_BRIEF_SOURCE_CONCURRENCY?: number | undefined;
159
+ NEWS_BRIEF_CATEGORY_CONCURRENCY?: number | undefined;
160
+ NEWS_BRIEF_GENERATING_TIMEOUT_MINUTES?: number | undefined;
161
+ NEWS_BRIEF_MANUAL_GENERATE_ENABLED?: unknown;
162
+ NEWS_BRIEF_SEARCH_ENABLED?: unknown;
163
+ NEWS_BRIEF_SEARCH_MAX_QUERIES?: number | undefined;
164
+ NEWS_BRIEF_SEARCH_CONCURRENCY?: number | undefined;
165
+ NEWS_BRIEF_SEARCH_QUERY_MAX_CHARS?: number | undefined;
166
+ NEWS_BRIEF_SEARCH_PROVIDERS?: string | undefined;
113
167
  }>;
114
168
  export type ConfigType = z.infer<typeof configValidationSchema>;