@zhin.js/plugin-lottery 1.0.0 → 1.0.1

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 (178) hide show
  1. package/package.json +5 -5
  2. package/lib/agent/agent.d.ts +0 -3
  3. package/lib/agent/agent.d.ts.map +0 -1
  4. package/lib/agent/prompts.d.ts +0 -11
  5. package/lib/agent/prompts.d.ts.map +0 -1
  6. package/lib/agent/prompts.js +0 -11
  7. package/lib/agent/prompts.js.map +0 -1
  8. package/lib/agent/read-skills.d.ts +0 -3
  9. package/lib/agent/read-skills.d.ts.map +0 -1
  10. package/lib/agent/read-skills.js +0 -25
  11. package/lib/agent/read-skills.js.map +0 -1
  12. package/lib/agent/run-turn.d.ts +0 -14
  13. package/lib/agent/run-turn.d.ts.map +0 -1
  14. package/lib/agent/run-turn.js +0 -47
  15. package/lib/agent/run-turn.js.map +0 -1
  16. package/lib/agent/schedules/daily_pipeline.d.ts +0 -3
  17. package/lib/agent/schedules/daily_pipeline.d.ts.map +0 -1
  18. package/lib/agent/tools/compute_recommend.d.ts +0 -5
  19. package/lib/agent/tools/compute_recommend.d.ts.map +0 -1
  20. package/lib/agent/tools/get_model_state.d.ts +0 -5
  21. package/lib/agent/tools/get_model_state.d.ts.map +0 -1
  22. package/lib/agent/tools/history.d.ts +0 -6
  23. package/lib/agent/tools/history.d.ts.map +0 -1
  24. package/lib/agent/tools/list_pending.d.ts +0 -5
  25. package/lib/agent/tools/list_pending.d.ts.map +0 -1
  26. package/lib/agent/tools/save_prediction.d.ts +0 -6
  27. package/lib/agent/tools/save_prediction.d.ts.map +0 -1
  28. package/lib/agent/tools/stats_snapshot.d.ts +0 -5
  29. package/lib/agent/tools/stats_snapshot.d.ts.map +0 -1
  30. package/lib/agent/tools/sync.d.ts +0 -5
  31. package/lib/agent/tools/sync.d.ts.map +0 -1
  32. package/lib/db.d.ts +0 -33
  33. package/lib/db.d.ts.map +0 -1
  34. package/lib/db.js +0 -108
  35. package/lib/db.js.map +0 -1
  36. package/lib/evals/pipeline_smoke.eval.d.ts +0 -3
  37. package/lib/evals/pipeline_smoke.eval.d.ts.map +0 -1
  38. package/lib/evaluate/adaptive-sim.d.ts +0 -31
  39. package/lib/evaluate/adaptive-sim.d.ts.map +0 -1
  40. package/lib/evaluate/adaptive-sim.js +0 -155
  41. package/lib/evaluate/adaptive-sim.js.map +0 -1
  42. package/lib/evaluate/backtest.d.ts +0 -29
  43. package/lib/evaluate/backtest.d.ts.map +0 -1
  44. package/lib/evaluate/backtest.js +0 -87
  45. package/lib/evaluate/backtest.js.map +0 -1
  46. package/lib/evaluate/hit-rate.d.ts +0 -8
  47. package/lib/evaluate/hit-rate.d.ts.map +0 -1
  48. package/lib/evaluate/hit-rate.js +0 -120
  49. package/lib/evaluate/hit-rate.js.map +0 -1
  50. package/lib/evaluate/review-pending.d.ts +0 -13
  51. package/lib/evaluate/review-pending.d.ts.map +0 -1
  52. package/lib/evaluate/review-pending.js +0 -89
  53. package/lib/evaluate/review-pending.js.map +0 -1
  54. package/lib/evaluate/tracker.d.ts +0 -28
  55. package/lib/evaluate/tracker.d.ts.map +0 -1
  56. package/lib/evaluate/tracker.js +0 -265
  57. package/lib/evaluate/tracker.js.map +0 -1
  58. package/lib/evaluate/train-weights.d.ts +0 -28
  59. package/lib/evaluate/train-weights.d.ts.map +0 -1
  60. package/lib/evaluate/train-weights.js +0 -101
  61. package/lib/evaluate/train-weights.js.map +0 -1
  62. package/lib/evaluate/weight-guard.d.ts +0 -15
  63. package/lib/evaluate/weight-guard.d.ts.map +0 -1
  64. package/lib/evaluate/weight-guard.js +0 -46
  65. package/lib/evaluate/weight-guard.js.map +0 -1
  66. package/lib/games/kl8-groups.d.ts +0 -31
  67. package/lib/games/kl8-groups.d.ts.map +0 -1
  68. package/lib/games/kl8-groups.js +0 -62
  69. package/lib/games/kl8-groups.js.map +0 -1
  70. package/lib/games/registry.d.ts +0 -13
  71. package/lib/games/registry.d.ts.map +0 -1
  72. package/lib/games/registry.js +0 -45
  73. package/lib/games/registry.js.map +0 -1
  74. package/lib/index.d.ts +0 -3
  75. package/lib/index.d.ts.map +0 -1
  76. package/lib/index.js +0 -215
  77. package/lib/index.js.map +0 -1
  78. package/lib/pipeline.d.ts +0 -36
  79. package/lib/pipeline.d.ts.map +0 -1
  80. package/lib/pipeline.js +0 -130
  81. package/lib/pipeline.js.map +0 -1
  82. package/lib/push.d.ts +0 -3
  83. package/lib/push.d.ts.map +0 -1
  84. package/lib/push.js +0 -31
  85. package/lib/push.js.map +0 -1
  86. package/lib/recommend/game-pick.d.ts +0 -14
  87. package/lib/recommend/game-pick.d.ts.map +0 -1
  88. package/lib/recommend/game-pick.js +0 -169
  89. package/lib/recommend/game-pick.js.map +0 -1
  90. package/lib/recommend/report.d.ts +0 -22
  91. package/lib/recommend/report.d.ts.map +0 -1
  92. package/lib/recommend/report.js +0 -173
  93. package/lib/recommend/report.js.map +0 -1
  94. package/lib/src/agent/prompts.d.ts +0 -11
  95. package/lib/src/agent/prompts.d.ts.map +0 -1
  96. package/lib/src/agent/read-skills.d.ts +0 -3
  97. package/lib/src/agent/read-skills.d.ts.map +0 -1
  98. package/lib/src/agent/run-turn.d.ts +0 -14
  99. package/lib/src/agent/run-turn.d.ts.map +0 -1
  100. package/lib/src/db.d.ts +0 -33
  101. package/lib/src/db.d.ts.map +0 -1
  102. package/lib/src/evaluate/adaptive-sim.d.ts +0 -31
  103. package/lib/src/evaluate/adaptive-sim.d.ts.map +0 -1
  104. package/lib/src/evaluate/backtest.d.ts +0 -29
  105. package/lib/src/evaluate/backtest.d.ts.map +0 -1
  106. package/lib/src/evaluate/hit-rate.d.ts +0 -8
  107. package/lib/src/evaluate/hit-rate.d.ts.map +0 -1
  108. package/lib/src/evaluate/review-pending.d.ts +0 -13
  109. package/lib/src/evaluate/review-pending.d.ts.map +0 -1
  110. package/lib/src/evaluate/tracker.d.ts +0 -28
  111. package/lib/src/evaluate/tracker.d.ts.map +0 -1
  112. package/lib/src/evaluate/train-weights.d.ts +0 -28
  113. package/lib/src/evaluate/train-weights.d.ts.map +0 -1
  114. package/lib/src/evaluate/weight-guard.d.ts +0 -15
  115. package/lib/src/evaluate/weight-guard.d.ts.map +0 -1
  116. package/lib/src/games/kl8-groups.d.ts +0 -31
  117. package/lib/src/games/kl8-groups.d.ts.map +0 -1
  118. package/lib/src/games/registry.d.ts +0 -13
  119. package/lib/src/games/registry.d.ts.map +0 -1
  120. package/lib/src/index.d.ts +0 -3
  121. package/lib/src/index.d.ts.map +0 -1
  122. package/lib/src/lottery-agent-deps.d.ts +0 -24
  123. package/lib/src/lottery-agent-deps.d.ts.map +0 -1
  124. package/lib/src/lottery-tool-handlers.d.ts +0 -17
  125. package/lib/src/lottery-tool-handlers.d.ts.map +0 -1
  126. package/lib/src/pipeline.d.ts +0 -36
  127. package/lib/src/pipeline.d.ts.map +0 -1
  128. package/lib/src/push.d.ts +0 -3
  129. package/lib/src/push.d.ts.map +0 -1
  130. package/lib/src/recommend/game-pick.d.ts +0 -14
  131. package/lib/src/recommend/game-pick.d.ts.map +0 -1
  132. package/lib/src/recommend/report.d.ts +0 -22
  133. package/lib/src/recommend/report.d.ts.map +0 -1
  134. package/lib/src/stats/engine.d.ts +0 -18
  135. package/lib/src/stats/engine.d.ts.map +0 -1
  136. package/lib/src/stats/pro-analysis.d.ts +0 -7
  137. package/lib/src/stats/pro-analysis.d.ts.map +0 -1
  138. package/lib/src/stats/weights.d.ts +0 -8
  139. package/lib/src/stats/weights.d.ts.map +0 -1
  140. package/lib/src/sync/fetch-official.d.ts +0 -4
  141. package/lib/src/sync/fetch-official.d.ts.map +0 -1
  142. package/lib/src/sync/run-sync.d.ts +0 -8
  143. package/lib/src/sync/run-sync.d.ts.map +0 -1
  144. package/lib/src/tools/agent-tools.d.ts +0 -15
  145. package/lib/src/tools/agent-tools.d.ts.map +0 -1
  146. package/lib/src/tools/agent-tools.js +0 -211
  147. package/lib/src/tools/agent-tools.js.map +0 -1
  148. package/lib/src/types.d.ts +0 -84
  149. package/lib/src/types.d.ts.map +0 -1
  150. package/lib/stats/engine.d.ts +0 -18
  151. package/lib/stats/engine.d.ts.map +0 -1
  152. package/lib/stats/engine.js +0 -122
  153. package/lib/stats/engine.js.map +0 -1
  154. package/lib/stats/pro-analysis.d.ts +0 -7
  155. package/lib/stats/pro-analysis.d.ts.map +0 -1
  156. package/lib/stats/pro-analysis.js +0 -121
  157. package/lib/stats/pro-analysis.js.map +0 -1
  158. package/lib/stats/weights.d.ts +0 -8
  159. package/lib/stats/weights.d.ts.map +0 -1
  160. package/lib/stats/weights.js +0 -25
  161. package/lib/stats/weights.js.map +0 -1
  162. package/lib/sync/fetch-official.d.ts +0 -4
  163. package/lib/sync/fetch-official.d.ts.map +0 -1
  164. package/lib/sync/fetch-official.js +0 -160
  165. package/lib/sync/fetch-official.js.map +0 -1
  166. package/lib/sync/run-sync.d.ts +0 -8
  167. package/lib/sync/run-sync.d.ts.map +0 -1
  168. package/lib/sync/run-sync.js +0 -29
  169. package/lib/sync/run-sync.js.map +0 -1
  170. package/lib/tools/agent-tools.d.ts +0 -15
  171. package/lib/tools/agent-tools.d.ts.map +0 -1
  172. package/lib/tools/agent-tools.js +0 -211
  173. package/lib/tools/agent-tools.js.map +0 -1
  174. package/lib/tsconfig.tsbuildinfo +0 -1
  175. package/lib/types.d.ts +0 -84
  176. package/lib/types.d.ts.map +0 -1
  177. package/lib/types.js +0 -3
  178. package/lib/types.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import type { GameId, ScoreWeights } from '../types.js';
2
- import type { LotteryDb } from '../db.js';
3
- import { type SimulationResult } from './adaptive-sim.js';
4
- export interface TrainWeightsOptions {
5
- pickCount: number;
6
- minHistory: number;
7
- historyLimit: number;
8
- randomTrials: number;
9
- /** Start training from these weights; default F40/O35/T25. */
10
- initialWeights?: ScoreWeights;
11
- persist?: boolean;
12
- holdoutWindow?: number;
13
- holdoutFallback?: boolean;
14
- }
15
- export interface TrainWeightsResult extends SimulationResult {
16
- totalDraws: number;
17
- trainSteps: number;
18
- holdoutFallbackApplied?: boolean;
19
- }
20
- /**
21
- * Full-history training: from first predictable issue through all DB draws,
22
- * predict → compare → tune weights each step; optionally persist final weights.
23
- */
24
- export declare function trainGameWeights(db: LotteryDb, gameId: GameId, options: TrainWeightsOptions): Promise<TrainWeightsResult | null>;
25
- export declare function trainAllGameWeights(db: LotteryDb, gameIds: GameId[], options: TrainWeightsOptions): Promise<TrainWeightsResult[]>;
26
- export declare function formatTrainLine(r: TrainWeightsResult): string;
27
- export declare function formatTrainReport(results: TrainWeightsResult[]): string;
28
- //# sourceMappingURL=train-weights.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"train-weights.d.ts","sourceRoot":"","sources":["../../../src/evaluate/train-weights.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMjF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAOD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA+CpC;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAO/B;AAWD,wBAAgB,eAAe,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAU7D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,CASvE"}
@@ -1,15 +0,0 @@
1
- import type { GameId, ScoreWeights } from '../types.js';
2
- import type { LotteryDb } from '../db.js';
3
- import type { SimulationResult } from './adaptive-sim.js';
4
- import { type BacktestOptions } from './backtest.js';
5
- export interface WeightPlan {
6
- /** Explicit weights for recommend; only lists holdout-fallback games. */
7
- overrides: Map<GameId, ScoreWeights>;
8
- fallbacks: GameId[];
9
- }
10
- export declare function gamesToPredict(gameIds: GameId[], missingToday: GameId[], weightPlan: WeightPlan): GameId[];
11
- export declare function planRecommendWeights(gameIds: GameId[], holdoutSummaries: SimulationResult[], holdoutFallback: boolean): WeightPlan;
12
- export declare function runHoldoutBacktest(db: LotteryDb, gameIds: GameId[], options: BacktestOptions): Promise<SimulationResult[]>;
13
- export declare function formatWeightFallbackNote(fallbacks: GameId[]): string;
14
- export declare function shouldFallbackWeights(summary: SimulationResult | null | undefined): boolean;
15
- //# sourceMappingURL=weight-guard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"weight-guard.d.ts","sourceRoot":"","sources":["../../../src/evaluate/weight-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,EAAE,UAAU,GACrB,MAAM,EAAE,CAOV;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAAE,EACpC,eAAe,EAAE,OAAO,GACvB,UAAU,CAcZ;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ7B;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAGpE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE3F"}
@@ -1,31 +0,0 @@
1
- import { DEFAULT_WEIGHTS, type Kl8GroupStrategy, type Kl8PickGroup, type NormalizedDraw, type ScoreWeights } from '../types.js';
2
-
3
- import { type PoolScore } from '../stats/engine.js';
4
- export declare const KL8_STRATEGY_LABELS: Record<Kl8GroupStrategy, string>;
5
- export interface Kl8Config {
6
- pickCount: number;
7
- recommendGroups: number;
8
- groupStrategies: Kl8GroupStrategy[];
9
- }
10
- export interface Kl8ConfigInput {
11
- pickCount?: number;
12
- recommendGroups?: number;
13
- groupStrategies?: string[];
14
- }
15
- export declare function parseKl8GroupStrategy(raw: string): Kl8GroupStrategy;
16
- export declare function resolveKl8Config(globalPickCount: number, raw?: Kl8ConfigInput): Kl8Config;
17
- export declare function weightsForKl8Strategy(strategy: Kl8GroupStrategy, base: ScoreWeights): ScoreWeights;
18
- export interface RecommendKl8GroupsResult {
19
- groups: Kl8PickGroup[];
20
- scores: PoolScore[];
21
- }
22
- /** Multi-strategy KL8 rows; groups may overlap — each picks top-N by its own weights. */
23
- export declare function recommendKl8Groups(draws: NormalizedDraw[], options: {
24
- pickCount: number;
25
- recommendGroups: number;
26
- strategies: Kl8GroupStrategy[];
27
- tieSeed: string;
28
- baseWeights: ScoreWeights;
29
- }): RecommendKl8GroupsResult;
30
- export { DEFAULT_WEIGHTS };
31
- //# sourceMappingURL=kl8-groups.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kl8-groups.d.ts","sourceRoot":"","sources":["../../../src/games/kl8-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM9E,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAKhE,CAAC;AAQF,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAInE;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,SAAS,CAOzF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,YAAY,CAGlG;AAOD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;CAC3B,GACA,wBAAwB,CAsB1B;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { GameId, LotterySource } from '../types.js';
2
- export interface GameMeta {
3
- id: GameId;
4
- name: string;
5
- source: LotterySource;
6
- fucaiName?: string;
7
- ticaiGameNo?: string;
8
- }
9
- export declare const ALL_GAMES: GameMeta[];
10
- export declare function getGameMeta(id: GameId): GameMeta;
11
- export declare function parseGameId(raw: string): GameId | null;
12
- export declare function resolveEnabledGames(configGames?: string[]): GameId[];
13
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/games/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,EAO/B,CAAC;AAIF,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAIhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBtD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAQpE"}
@@ -1,3 +0,0 @@
1
- declare const plugin: import("zhin.js").Plugin;
2
- export default plugin;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAyBA,QAAA,MAAM,MAAM,0BAAc,CAAC;AA8L3B,eAAe,MAAM,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Shared runtime deps for lottery agent/ authoring tools.
3
- * Set once from plugin index during init — never call getPlugin() from tool execute.
4
- */
5
- import type { Plugin } from 'zhin.js';
6
- import type { GameId } from './types.js';
7
- import type { LotteryDb } from './db.js';
8
- import type { Kl8Config } from './games/kl8-groups.js';
9
- export interface LotteryAgentDeps {
10
- getDb: () => LotteryDb | null;
11
- getConfig: () => {
12
- pickCount: number;
13
- historyLimit: number;
14
- kl8: Kl8Config;
15
- };
16
- plugin: Plugin;
17
- enabledGames: () => GameId[];
18
- scheduleCron: () => string;
19
- scheduleEnabled: () => boolean;
20
- pipelinePush: boolean;
21
- }
22
- export declare function setLotteryAgentDeps(deps: LotteryAgentDeps): void;
23
- export declare function getLotteryAgentDeps(): LotteryAgentDeps;
24
- //# sourceMappingURL=lottery-agent-deps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lottery-agent-deps.d.ts","sourceRoot":"","sources":["../../src/lottery-agent-deps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,SAAS,CAAA;KAAE,CAAC;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAEhE;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAGtD"}
@@ -1,17 +0,0 @@
1
- export declare function handleGetModelState(game?: string): Promise<string>;
2
- export declare function handleComputeRecommend(game: string): Promise<string>;
3
- export declare function handleSavePrediction(game: string, numbersJson: string): Promise<string>;
4
- export declare function handleListPending(game?: string): Promise<string>;
5
- export declare function handleSubmitReview(input: {
6
- game: string;
7
- predict_at: string;
8
- actual_issue: string;
9
- actual_numbers_json: string;
10
- analysis: string;
11
- }): Promise<string>;
12
- export declare function handleSetWeights(game: string, freq: number, omit: number, trend: number): Promise<string>;
13
- export declare function handleSaveMemory(content: string, memoryType?: string, game?: string): Promise<string>;
14
- export declare function handleGetMemory(game?: string, limit?: number): Promise<string>;
15
- export declare function handlePublishReport(content: string, push?: boolean): Promise<string>;
16
- export declare function handleStatsSnapshot(game: string): Promise<string>;
17
- //# sourceMappingURL=lottery-tool-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lottery-tool-handlers.d.ts","sourceRoot":"","sources":["../../src/lottery-tool-handlers.ts"],"names":[],"mappings":"AAoBA,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAaxE;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB1E;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB7F;AAED,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBlB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU/G;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO3G;AAED,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpF;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAW1F;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBvE"}
@@ -1,36 +0,0 @@
1
- import type { Plugin } from 'zhin.js';
2
- import type { GameId } from './types.js';
3
- import type { LotteryDb } from './db.js';
4
- import type { Kl8Config } from './games/kl8-groups.js';
5
- export interface PipelineDeps {
6
- getDb: () => LotteryDb | null;
7
- plugin: Plugin;
8
- enabledGames: () => GameId[];
9
- historyLimit: number;
10
- pickCount: number;
11
- kl8: Kl8Config;
12
- agentEnabled: boolean;
13
- backtest: {
14
- enabled: boolean;
15
- window: number;
16
- randomTrials: number;
17
- minHistory: number;
18
- adaptive: boolean;
19
- };
20
- weightPersist: boolean;
21
- weightHoldoutFallback: boolean;
22
- }
23
- export interface PipelineOptions {
24
- gameId?: GameId;
25
- push?: boolean;
26
- }
27
- export interface PipelineStepResult {
28
- sync: string;
29
- review: string;
30
- recommend: string;
31
- pushed: boolean;
32
- reportText: string;
33
- }
34
- export declare function runLotteryPipeline(deps: PipelineDeps, options?: PipelineOptions): Promise<PipelineStepResult>;
35
- export declare function formatPipelineReply(result: PipelineStepResult): string;
36
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAmBzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,SAAS,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AA0BD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAsH7B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAGtE"}
package/lib/src/push.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Plugin } from 'zhin.js';
2
- export declare function pushTextToMasters(plugin: Plugin, text: string): Promise<void>;
3
- //# sourceMappingURL=push.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BnF"}
@@ -1,14 +0,0 @@
1
- import { type GameId, type GamePick, type NormalizedDraw, type ScoreWeights, type AccuracySnapshot } from '../types.js';
2
- import { type Kl8Config } from '../games/kl8-groups.js';
3
-
4
- export interface RecommendOptions {
5
- pickCount: number;
6
- tieSeed: string;
7
- weights?: ScoreWeights;
8
- accuracy?: AccuracySnapshot;
9
- kl8?: Kl8Config;
10
- }
11
- export declare function recommendGame(gameId: GameId, draws: NormalizedDraw[], options: RecommendOptions): GamePick;
12
- export declare function formatPickLine(pick: GamePick): string;
13
- export declare function formatPickStats(pick: GamePick): string;
14
- //# sourceMappingURL=game-pick.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"game-pick.d.ts","sourceRoot":"","sources":["../../../src/recommend/game-pick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;AAE9G,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA2BpD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,gBAAgB,GACxB,QAAQ,CA8JV;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAwBrD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkBtD"}
@@ -1,22 +0,0 @@
1
- import type { DailyReport, GameId, GamePick, ScoreWeights } from '../types.js';
2
- import type { Kl8Config } from '../games/kl8-groups.js';
3
- import type { LotteryDb } from '../db.js';
4
- export interface LotteryConfigSlice {
5
- pickCount: number;
6
- historyLimit: number;
7
- kl8?: Kl8Config;
8
- }
9
- export declare function buildDailyReport(db: LotteryDb, gameIds: GameId[], config: LotteryConfigSlice, date?: Date, savePredictions?: boolean, weightOverrides?: Map<GameId, ScoreWeights>): Promise<DailyReport>;
10
- export declare function formatDailyReportText(report: DailyReport, aiExplanation?: string): string;
11
- export declare function saveDailyReport(db: LotteryDb, report: DailyReport, aiExplanation: string): Promise<void>;
12
- export declare function loadTodayReport(db: LotteryDb, date?: Date): Promise<DailyReport | null>;
13
- /** Today's pending rows as displayable picks (when report table is empty). */
14
- export declare function loadTodayPendingPicks(db: LotteryDb, gameIds: GameId[], date?: Date): Promise<GamePick[]>;
15
- /** Saved daily report, or reconstruct from today's pending picks. */
16
- export declare function resolveTodayReport(db: LotteryDb, gameIds: GameId[], date?: Date): Promise<DailyReport | null>;
17
- /** Backfill missing pick weights from DB (saved reports may omit weights). */
18
- export declare function hydrateReportPickWeights(db: LotteryDb, picks: GamePick[]): Promise<GamePick[]>;
19
- export declare function explainReportWithAi(root: {
20
- inject?: (key: string) => unknown;
21
- }, report: DailyReport): Promise<string>;
22
- //# sourceMappingURL=report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/recommend/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,OAAa,EACjB,eAAe,UAAO,EACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1C,OAAO,CAAC,WAAW,CAAC,CA8BtB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAgCzF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,OAAa,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgBnG;AAED,8EAA8E;AAC9E,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,OAAa,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoBrB;AAED,qEAAqE;AACrE,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,OAAa,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAU7B;AAED,8EAA8E;AAC9E,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUpG;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,EAC3C,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
@@ -1,18 +0,0 @@
1
- import type { ScoreWeights } from '../types.js';
2
- export declare function analyzePoolTrend(draws: number[][], poolMin: number, poolMax: number): Map<number, number>;
3
- export declare function parseNumberList(raw: string | undefined | null): number[];
4
- export declare function stableHash(seed: string): number;
5
- export interface PoolScore {
6
- value: number;
7
- freq: number;
8
- omit: number;
9
- trend: number;
10
- score: number;
11
- }
12
- /** 号码池:频率 + 遗漏 + 近期趋势 综合打分 */
13
- export declare function scorePool(draws: number[][], poolMin: number, poolMax: number, tieSeed: string, weights?: ScoreWeights): PoolScore[];
14
- export declare function pickTopUnique(scores: PoolScore[], count: number): number[];
15
- /** 定位胆:每位 0-9 独立打分(含近期趋势) */
16
- export declare function scoreDigits(draws: number[][], positions: number, tieSeed: string, weights?: ScoreWeights): number[];
17
- export declare function pad2(n: number): string;
18
- //# sourceMappingURL=engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/stats/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYzG;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAQxE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8BAA8B;AAC9B,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EAAE,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAA8B,GACtC,SAAS,EAAE,CAoCb;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1E;AAED,6BAA6B;AAC7B,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EAAE,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAA8B,GACtC,MAAM,EAAE,CAqCV;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtC"}
@@ -1,7 +0,0 @@
1
- import type { GameId, NormalizedDraw, ScoreWeights } from '../types.js';
2
- export declare function affinityOfNumbers(nums: number[], freqMap: Map<number, number>, omitMap: Map<number, number>, trendMap: Map<number, number>): ScoreWeights;
3
- export declare function buildOmitMap(draws: number[][], poolMin: number, poolMax: number): Map<number, number>;
4
- export declare function buildFreqMap(draws: number[][], poolMin: number, poolMax: number): Map<number, number>;
5
- export declare function computeProMetrics(gameId: GameId, pick: number[], draws: NormalizedDraw[], weights: ScoreWeights, poolMin?: number, poolMax?: number, mid?: number): import('../types.js').ProMetrics;
6
- export declare function computeDigitProMetrics(digits: number[], draws: NormalizedDraw[], weights: ScoreWeights): import('../types.js').ProMetrics;
7
- //# sourceMappingURL=pro-analysis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pro-analysis.d.ts","sourceRoot":"","sources":["../../../src/stats/pro-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOrF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,YAAY,CAYd;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWrG;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,aAAa,EAAE,UAAU,CAuClC;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,YAAY,GACpB,OAAO,aAAa,EAAE,UAAU,CAsBlC"}
@@ -1,8 +0,0 @@
1
- import { DEFAULT_WEIGHTS, type ScoreWeights } from '../types.js';
2
-
3
- export declare function normalizeWeights(w: ScoreWeights | undefined): ScoreWeights;
4
- export declare function formatWeights(w: ScoreWeights | undefined): string;
5
- export declare function clampWeight(v: number, min?: number, max?: number): number;
6
- export declare function mergeWeights(current: ScoreWeights, target: ScoreWeights, lr?: number): ScoreWeights;
7
- export { DEFAULT_WEIGHTS };
8
- //# sourceMappingURL=weights.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"weights.d.ts","sourceRoot":"","sources":["../../../src/stats/weights.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,CAO1E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAGjE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,SAAO,GAAG,YAAY,CAMjG;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { NormalizedDraw } from '../types.js';
2
- export declare function fetchFucaiDraws(fucaiName: string, count: number, fetchImpl?: typeof fetch): Promise<NormalizedDraw[]>;
3
- export declare function fetchTicaiDraws(gameNo: string, count: number, fetchImpl?: typeof fetch): Promise<NormalizedDraw[]>;
4
- //# sourceMappingURL=fetch-official.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-official.d.ts","sourceRoot":"","sources":["../../../src/sync/fetch-official.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,cAAc,EAAE,MAAM,aAAa,CAAC;AA6CvE,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC,CAgC3B;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC,CA4B3B"}
@@ -1,8 +0,0 @@
1
- import type { GameId, NormalizedDraw } from '../types.js';
2
- import type { LotteryDb } from '../db.js';
3
- export declare function runDataSync(getDb: () => LotteryDb | null, enabledGames: () => GameId[], historyLimit: number, gameId?: GameId): Promise<{
4
- text: string;
5
- newSummary: string;
6
- inserted: NormalizedDraw[];
7
- }>;
8
- //# sourceMappingURL=run-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-sync.d.ts","sourceRoot":"","sources":["../../../src/sync/run-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,MAAM,EAAE,EAC5B,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAwB3E"}
@@ -1,15 +0,0 @@
1
- import type { Plugin } from 'zhin.js';
2
- import type { GameId } from '../types.js';
3
- import type { LotteryDb } from '../db.js';
4
- export interface ToolDeps {
5
- getDb: () => LotteryDb | null;
6
- getConfig: () => {
7
- pickCount: number;
8
- historyLimit: number;
9
- kl8: import('../games/kl8-groups.js').Kl8Config;
10
- };
11
- plugin: Plugin;
12
- enabledGames: () => GameId[];
13
- }
14
- export declare function registerLotteryAgentTools(deps: ToolDeps): void;
15
- //# sourceMappingURL=agent-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/agent-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAkB1C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,OAAO,wBAAwB,EAAE,SAAS,CAAC;KACjD,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,MAAM,EAAE,CAAC;CAC9B;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CA0N9D"}
@@ -1,211 +0,0 @@
1
- import { ZhinTool } from 'zhin.js';
2
- import { DISCLAIMER } from '../types.js';
3
- import { parseGameId } from '../games/registry.js';
4
- import { loadDraws } from '../db.js';
5
- import { recommendGame } from '../recommend/game-pick.js';
6
- import { loadGameWeights, saveGameWeights, loadAccuracySnapshot, savePrediction, listPendingPredictions, submitAgentReview, saveAgentMemory, loadAgentMemory, } from '../evaluate/tracker.js';
7
- import { saveDailyReport } from '../recommend/report.js';
8
- import { pushTextToMasters } from '../push.js';
9
- import { normalizeWeights } from '../stats/weights.js';
10
- export function registerLotteryAgentTools(deps) {
11
- const { plugin, getDb, getConfig, enabledGames } = deps;
12
- plugin.addTool(new ZhinTool('lottery_get_model_state')
13
- .desc('查询玩法模型权重与历史命中率')
14
- .keyword('lottery', 'weights', 'model')
15
- .param('game', { type: 'string', description: '玩法 id,留空返回全部' }, false)
16
- .execute(async (args) => {
17
- const db = getDb();
18
- if (!db)
19
- return 'db not ready';
20
- const gid = parseGameId(String(args.game ?? ''));
21
- const ids = gid ? [gid] : enabledGames();
22
- const out = [];
23
- for (const id of ids) {
24
- const w = await loadGameWeights(db, id);
25
- const acc = await loadAccuracySnapshot(db, id);
26
- out.push({ gameId: id, weights: w, accuracy: acc ?? null });
27
- }
28
- return JSON.stringify(out);
29
- })
30
- .toTool());
31
- plugin.addTool(new ZhinTool('lottery_compute_recommend')
32
- .desc('按 F/O/T 统计引擎计算推荐号码(Agent 落库须与此一致)')
33
- .keyword('lottery', 'recommend', 'compute')
34
- .param('game', { type: 'string', description: '玩法 id' }, true)
35
- .execute(async (args) => {
36
- const gid = parseGameId(String(args.game ?? ''));
37
- if (!gid)
38
- return 'invalid game';
39
- const db = getDb();
40
- if (!db)
41
- return 'db not ready';
42
- const cfg = getConfig();
43
- const draws = await loadDraws(db, gid, cfg.historyLimit);
44
- if (!draws.length)
45
- return 'no data, run lottery_sync first';
46
- const weights = await loadGameWeights(db, gid);
47
- const accuracy = await loadAccuracySnapshot(db, gid);
48
- const pick = recommendGame(gid, draws, {
49
- pickCount: gid === 'kl8' ? cfg.kl8.pickCount : cfg.pickCount,
50
- tieSeed: new Date().toISOString().slice(0, 10),
51
- weights,
52
- accuracy,
53
- kl8: gid === 'kl8' ? cfg.kl8 : undefined,
54
- });
55
- return JSON.stringify(pick);
56
- })
57
- .toTool());
58
- plugin.addTool(new ZhinTool('lottery_save_prediction')
59
- .desc('保存推荐预测(pending,待开奖复盘)')
60
- .keyword('lottery', 'prediction')
61
- .param('game', { type: 'string', description: '玩法 id' }, true)
62
- .param('numbers_json', { type: 'string', description: 'DrawNumbers JSON,须来自 lottery_compute_recommend' }, true)
63
- .execute(async (args) => {
64
- const gid = parseGameId(String(args.game ?? ''));
65
- if (!gid)
66
- return 'invalid game';
67
- const db = getDb();
68
- if (!db)
69
- return 'db not ready';
70
- const numbers = JSON.parse(String(args.numbers_json));
71
- const weights = await loadGameWeights(db, gid);
72
- await savePrediction(db, {
73
- gameId: gid,
74
- label: gid,
75
- numbers,
76
- weights,
77
- stats: { gameId: gid, sampleSize: 0, hot: [], cold: [], detail: '' },
78
- });
79
- return JSON.stringify({ ok: true, gameId: gid });
80
- })
81
- .toTool());
82
- plugin.addTool(new ZhinTool('lottery_list_pending')
83
- .desc('列出待复盘预测')
84
- .param('game', { type: 'string', description: '玩法 id' }, false)
85
- .execute(async (args) => {
86
- const db = getDb();
87
- if (!db)
88
- return 'db not ready';
89
- const gid = parseGameId(String(args.game ?? ''));
90
- return JSON.stringify(await listPendingPredictions(db, gid ?? undefined));
91
- })
92
- .toTool());
93
- plugin.addTool(new ZhinTool('lottery_submit_review')
94
- .desc('提交推荐 vs 开奖复盘结果')
95
- .param('game', { type: 'string' }, true)
96
- .param('predict_at', { type: 'string', description: '预测时间 ISO' }, true)
97
- .param('actual_issue', { type: 'string' }, true)
98
- .param('actual_numbers_json', { type: 'string' }, true)
99
- .param('analysis', { type: 'string', description: 'Agent 分析结论' }, true)
100
- .execute(async (args) => {
101
- const gid = parseGameId(String(args.game ?? ''));
102
- if (!gid)
103
- return 'invalid game';
104
- const db = getDb();
105
- if (!db)
106
- return 'db not ready';
107
- const hit = await submitAgentReview(db, {
108
- gameId: gid,
109
- predictAt: String(args.predict_at),
110
- actualIssue: String(args.actual_issue),
111
- actualNumbers: JSON.parse(String(args.actual_numbers_json)),
112
- analysis: String(args.analysis ?? ''),
113
- }, getConfig().historyLimit);
114
- return hit ? JSON.stringify(hit) : 'pending not found';
115
- })
116
- .toTool());
117
- plugin.addTool(new ZhinTool('lottery_set_weights')
118
- .desc('设置玩法打分权重 F/O/T(0-1,将自动归一)')
119
- .param('game', { type: 'string' }, true)
120
- .param('freq', { type: 'number' }, true)
121
- .param('omit', { type: 'number' }, true)
122
- .param('trend', { type: 'number' }, true)
123
- .execute(async (args) => {
124
- const gid = parseGameId(String(args.game ?? ''));
125
- if (!gid)
126
- return 'invalid game';
127
- const db = getDb();
128
- if (!db)
129
- return 'db not ready';
130
- const w = normalizeWeights({
131
- freq: Number(args.freq),
132
- omit: Number(args.omit),
133
- trend: Number(args.trend),
134
- });
135
- const snap = await loadAccuracySnapshot(db, gid);
136
- await saveGameWeights(db, gid, w, snap?.evalCount ?? 0, snap?.avgHitRate ?? 0);
137
- return JSON.stringify({ ok: true, weights: w });
138
- })
139
- .toTool());
140
- plugin.addTool(new ZhinTool('lottery_save_memory')
141
- .desc('写入 Agent 专业记忆(洞察/策略/外部资料摘要)')
142
- .param('content', { type: 'string' }, true)
143
- .param('memory_type', { type: 'string', description: 'insight|strategy|web_reference' }, false)
144
- .param('game', { type: 'string' }, false)
145
- .execute(async (args) => {
146
- const db = getDb();
147
- if (!db)
148
- return 'db not ready';
149
- const gid = parseGameId(String(args.game ?? ''));
150
- await saveAgentMemory(db, String(args.content), String(args.memory_type || 'insight'), gid ?? '');
151
- return JSON.stringify({ ok: true });
152
- })
153
- .toTool());
154
- plugin.addTool(new ZhinTool('lottery_get_memory')
155
- .desc('读取 Agent 记忆')
156
- .param('game', { type: 'string' }, false)
157
- .param('limit', { type: 'number' }, false)
158
- .execute(async (args) => {
159
- const db = getDb();
160
- if (!db)
161
- return 'db not ready';
162
- const gid = parseGameId(String(args.game ?? ''));
163
- const limit = Math.min(50, Number(args.limit) || 20);
164
- return JSON.stringify(await loadAgentMemory(db, gid ?? undefined, limit));
165
- })
166
- .toTool());
167
- plugin.addTool(new ZhinTool('lottery_publish_report')
168
- .desc('发布每日推荐报告并可选推送给 master')
169
- .param('content', { type: 'string', description: '完整日报正文' }, true)
170
- .param('push', { type: 'boolean', description: '是否推送' }, false)
171
- .execute(async (args) => {
172
- const db = getDb();
173
- if (!db)
174
- return 'db not ready';
175
- const text = String(args.content ?? '').trim();
176
- if (!text.includes(DISCLAIMER)) {
177
- return 'content must include disclaimer';
178
- }
179
- const date = new Date().toISOString().slice(0, 10);
180
- const report = { date, picks: [], disclaimer: DISCLAIMER, body: text };
181
- await saveDailyReport(db, report, text);
182
- if (args.push === true || args.push === 'true') {
183
- await pushTextToMasters(deps.plugin, text);
184
- }
185
- return JSON.stringify({ ok: true, date, pushed: args.push === true || args.push === 'true' });
186
- })
187
- .toTool());
188
- plugin.addTool(new ZhinTool('lottery_stats_snapshot')
189
- .desc('获取单玩法完整统计快照(供 Agent 分析)')
190
- .param('game', { type: 'string' }, true)
191
- .execute(async (args) => {
192
- const gid = parseGameId(String(args.game ?? ''));
193
- if (!gid)
194
- return 'invalid game';
195
- const db = getDb();
196
- if (!db)
197
- return 'db not ready';
198
- const cfg = getConfig();
199
- const draws = await loadDraws(db, gid, Math.min(30, cfg.historyLimit));
200
- const pick = recommendGame(gid, draws, {
201
- pickCount: gid === 'kl8' ? cfg.kl8.pickCount : cfg.pickCount,
202
- tieSeed: 'snapshot',
203
- weights: await loadGameWeights(db, gid),
204
- accuracy: await loadAccuracySnapshot(db, gid),
205
- kl8: gid === 'kl8' ? cfg.kl8 : undefined,
206
- });
207
- return JSON.stringify({ sample: draws.length, pick, recentDraws: draws.slice(0, 5) });
208
- })
209
- .toTool());
210
- }
211
- //# sourceMappingURL=agent-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-tools.js","sourceRoot":"","sources":["../../../src/tools/agent-tools.ts"],"names":[],"mappings":"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"}