@jinn-network/client 0.1.2-canary.d6e72dfd → 0.1.2

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 (218) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +3 -0
  3. package/dist/adapters/adapter.d.ts +7 -0
  4. package/dist/adapters/mech/adapter.d.ts +4 -0
  5. package/dist/adapters/mech/adapter.js +140 -19
  6. package/dist/adapters/mech/adapter.js.map +1 -1
  7. package/dist/adapters/mech/contracts.d.ts +17 -1
  8. package/dist/adapters/mech/contracts.js +55 -1
  9. package/dist/adapters/mech/contracts.js.map +1 -1
  10. package/dist/adapters/mech/ipfs.d.ts +30 -5
  11. package/dist/adapters/mech/ipfs.js +162 -17
  12. package/dist/adapters/mech/ipfs.js.map +1 -1
  13. package/dist/adapters/mech/safe.js +8 -6
  14. package/dist/adapters/mech/safe.js.map +1 -1
  15. package/dist/adapters/mech/types.d.ts +2 -0
  16. package/dist/adapters/mech/types.js.map +1 -1
  17. package/dist/api/balance-build.js +3 -3
  18. package/dist/api/balance-build.js.map +1 -1
  19. package/dist/api/fleet-build.js +35 -40
  20. package/dist/api/fleet-build.js.map +1 -1
  21. package/dist/api/gather-status.d.ts +5 -0
  22. package/dist/api/gather-status.js +158 -7
  23. package/dist/api/gather-status.js.map +1 -1
  24. package/dist/api/history-build.d.ts +5 -1
  25. package/dist/api/history-build.js +51 -26
  26. package/dist/api/history-build.js.map +1 -1
  27. package/dist/api/portfolio-v0-build.d.ts +3 -1
  28. package/dist/api/portfolio-v0-build.js +12 -10
  29. package/dist/api/portfolio-v0-build.js.map +1 -1
  30. package/dist/api/rewards-build.js +29 -13
  31. package/dist/api/rewards-build.js.map +1 -1
  32. package/dist/api/status-build.d.ts +32 -6
  33. package/dist/api/status-build.js +2 -1
  34. package/dist/api/status-build.js.map +1 -1
  35. package/dist/api/status-rollup-build.d.ts +2 -0
  36. package/dist/api/status-rollup-build.js +30 -3
  37. package/dist/api/status-rollup-build.js.map +1 -1
  38. package/dist/build-meta.json +1 -1
  39. package/dist/cli/commands/auth.js +27 -5
  40. package/dist/cli/commands/auth.js.map +1 -1
  41. package/dist/cli/commands/balance.js +8 -1
  42. package/dist/cli/commands/balance.js.map +1 -1
  43. package/dist/cli/commands/bootstrap.js +22 -0
  44. package/dist/cli/commands/bootstrap.js.map +1 -1
  45. package/dist/cli/commands/doctor.js +33 -3
  46. package/dist/cli/commands/doctor.js.map +1 -1
  47. package/dist/cli/commands/fleet.js +10 -1
  48. package/dist/cli/commands/fleet.js.map +1 -1
  49. package/dist/cli/commands/history.js +25 -6
  50. package/dist/cli/commands/history.js.map +1 -1
  51. package/dist/cli/commands/logs.js +35 -11
  52. package/dist/cli/commands/logs.js.map +1 -1
  53. package/dist/cli/commands/quickstart.js +39 -1
  54. package/dist/cli/commands/quickstart.js.map +1 -1
  55. package/dist/cli/commands/run.js +38 -0
  56. package/dist/cli/commands/run.js.map +1 -1
  57. package/dist/cli/commands/status.js +11 -1
  58. package/dist/cli/commands/status.js.map +1 -1
  59. package/dist/cli/commands/submit-intent.js +62 -99
  60. package/dist/cli/commands/submit-intent.js.map +1 -1
  61. package/dist/cli/intent-registry-access.d.ts +3 -5
  62. package/dist/cli/intent-registry-access.js +12 -34
  63. package/dist/cli/intent-registry-access.js.map +1 -1
  64. package/dist/cli/introspection-context.js +11 -8
  65. package/dist/cli/introspection-context.js.map +1 -1
  66. package/dist/config.d.ts +28 -1
  67. package/dist/config.js +29 -0
  68. package/dist/config.js.map +1 -1
  69. package/dist/daemon/balance-topup-loop.js +32 -4
  70. package/dist/daemon/balance-topup-loop.js.map +1 -1
  71. package/dist/daemon/creator.d.ts +6 -9
  72. package/dist/daemon/creator.js +45 -51
  73. package/dist/daemon/creator.js.map +1 -1
  74. package/dist/daemon/daemon.d.ts +9 -20
  75. package/dist/daemon/daemon.js +34 -27
  76. package/dist/daemon/daemon.js.map +1 -1
  77. package/dist/daemon/delivery-watcher.d.ts +3 -1
  78. package/dist/daemon/delivery-watcher.js +19 -1
  79. package/dist/daemon/delivery-watcher.js.map +1 -1
  80. package/dist/daemon/reward-claim-loop.js +38 -1
  81. package/dist/daemon/reward-claim-loop.js.map +1 -1
  82. package/dist/dashboard/index.html +71 -496
  83. package/dist/discovery/registry.d.ts +54 -0
  84. package/dist/discovery/registry.js +73 -0
  85. package/dist/discovery/registry.js.map +1 -1
  86. package/dist/earning/bootstrap.js +8 -38
  87. package/dist/earning/bootstrap.js.map +1 -1
  88. package/dist/earning/stolas-claim.d.ts +6 -0
  89. package/dist/earning/stolas-claim.js +7 -0
  90. package/dist/earning/stolas-claim.js.map +1 -1
  91. package/dist/intents/kinds/constants.d.ts +5 -0
  92. package/dist/intents/kinds/constants.js +6 -0
  93. package/dist/intents/kinds/constants.js.map +1 -0
  94. package/dist/intents/kinds/index.d.ts +28 -0
  95. package/dist/intents/kinds/index.js +50 -0
  96. package/dist/intents/kinds/index.js.map +1 -0
  97. package/dist/intents/kinds/portfolio-v0.d.ts +2 -0
  98. package/dist/intents/kinds/portfolio-v0.js +13 -0
  99. package/dist/intents/kinds/portfolio-v0.js.map +1 -0
  100. package/dist/intents/kinds/prediction-apy-v0.d.ts +3 -0
  101. package/dist/intents/kinds/prediction-apy-v0.js +21 -0
  102. package/dist/intents/kinds/prediction-apy-v0.js.map +1 -0
  103. package/dist/intents/kinds/prediction-v0.d.ts +3 -0
  104. package/dist/intents/kinds/prediction-v0.js +32 -0
  105. package/dist/intents/kinds/prediction-v0.js.map +1 -0
  106. package/dist/intents/kinds/spec-kind.d.ts +38 -0
  107. package/dist/intents/kinds/spec-kind.js +6 -0
  108. package/dist/intents/kinds/spec-kind.js.map +1 -0
  109. package/dist/intents/posting-service.d.ts +26 -0
  110. package/dist/intents/posting-service.js +218 -0
  111. package/dist/intents/posting-service.js.map +1 -0
  112. package/dist/intents/prediction-apy-v0-auto.js +1 -1
  113. package/dist/intents/prediction-apy-v0-auto.js.map +1 -1
  114. package/dist/intents/prediction-v0-template.d.ts +8 -3
  115. package/dist/intents/prediction-v0-template.js +21 -1
  116. package/dist/intents/prediction-v0-template.js.map +1 -1
  117. package/dist/intents/sources.d.ts +39 -0
  118. package/dist/intents/sources.js +42 -0
  119. package/dist/intents/sources.js.map +1 -0
  120. package/dist/main.js +89 -65
  121. package/dist/main.js.map +1 -1
  122. package/dist/mcp/server.js +8 -4
  123. package/dist/mcp/server.js.map +1 -1
  124. package/dist/observability/emit-event.d.ts +12 -0
  125. package/dist/observability/emit-event.js +27 -0
  126. package/dist/observability/emit-event.js.map +1 -0
  127. package/dist/preflight/api-port.d.ts +13 -0
  128. package/dist/preflight/api-port.js +32 -0
  129. package/dist/preflight/api-port.js.map +1 -0
  130. package/dist/preflight/rpc-network.d.ts +44 -0
  131. package/dist/preflight/rpc-network.js +121 -0
  132. package/dist/preflight/rpc-network.js.map +1 -0
  133. package/dist/restorer/engine/engine.d.ts +10 -0
  134. package/dist/restorer/engine/engine.js +60 -44
  135. package/dist/restorer/engine/engine.js.map +1 -1
  136. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +7 -4
  137. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +12 -1
  138. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -1
  139. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +2 -1
  140. package/dist/restorer/impls/claude-mcp-prediction/index.js +9 -0
  141. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -1
  142. package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +2 -0
  143. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +34 -0
  144. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +233 -0
  145. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +1 -0
  146. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +18 -0
  147. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
  148. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
  149. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
  150. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +46 -0
  151. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
  152. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +27 -0
  153. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +128 -0
  154. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
  155. package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
  156. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +6 -0
  157. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +1 -0
  158. package/dist/restorer/impls/evaluation-context.d.ts +16 -0
  159. package/dist/restorer/impls/evaluation-context.js +18 -0
  160. package/dist/restorer/impls/evaluation-context.js.map +1 -0
  161. package/dist/restorer/impls/index.d.ts +46 -0
  162. package/dist/restorer/impls/index.js +88 -0
  163. package/dist/restorer/impls/index.js.map +1 -0
  164. package/dist/restorer/impls/legacy-claude/index.d.ts +8 -1
  165. package/dist/restorer/impls/legacy-claude/index.js +79 -10
  166. package/dist/restorer/impls/legacy-claude/index.js.map +1 -1
  167. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +2 -1
  168. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +9 -0
  169. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -1
  170. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +2 -0
  171. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +1 -0
  172. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +12 -3
  173. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -1
  174. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +4 -0
  175. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +4 -0
  176. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -1
  177. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +6 -3
  178. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +55 -33
  179. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  180. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +7 -0
  181. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +29 -0
  182. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
  183. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.d.ts +1 -1
  184. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +2 -0
  185. package/dist/restorer/impls/prediction-v0-baseline/index.js +6 -0
  186. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -1
  187. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +6 -0
  188. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +19 -1
  189. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -1
  190. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +6 -3
  191. package/dist/restorer/impls/prediction-v0-evaluator/index.js +30 -4
  192. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -1
  193. package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +1 -1
  194. package/dist/restorer/types.d.ts +17 -0
  195. package/dist/restorer/types.js +22 -1
  196. package/dist/restorer/types.js.map +1 -1
  197. package/dist/rpc-error-context.d.ts +10 -0
  198. package/dist/rpc-error-context.js +26 -0
  199. package/dist/rpc-error-context.js.map +1 -0
  200. package/dist/store/store.d.ts +98 -0
  201. package/dist/store/store.js +331 -4
  202. package/dist/store/store.js.map +1 -1
  203. package/dist/trajectory/schema.d.ts +510 -0
  204. package/dist/trajectory/schema.js +74 -0
  205. package/dist/trajectory/schema.js.map +1 -0
  206. package/dist/types/prediction-apy.d.ts +21 -10
  207. package/dist/types/prediction-apy.js +17 -5
  208. package/dist/types/prediction-apy.js.map +1 -1
  209. package/dist/types/prediction.d.ts +11 -10
  210. package/dist/types/prediction.js +3 -2
  211. package/dist/types/prediction.js.map +1 -1
  212. package/dist/venues/aave-v3/client.d.ts +6 -2
  213. package/dist/venues/aave-v3/client.js +14 -5
  214. package/dist/venues/aave-v3/client.js.map +1 -1
  215. package/package.json +4 -3
  216. package/dist/daemon/restorer.d.ts +0 -19
  217. package/dist/daemon/restorer.js +0 -82
  218. package/dist/daemon/restorer.js.map +0 -1
@@ -1,7 +1,5 @@
1
1
  import type { ExecutionAdapter } from '../adapters/adapter.js';
2
2
  import type { Runner } from '../runner/runner.js';
3
- import type { DesiredState } from '../types/index.js';
4
- import { type IntentGenerator } from './creator.js';
5
3
  import type { StatusGatherConfig } from '../api/gather-status.js';
6
4
  import type { EthHttpSigner } from '../auth/erc8128.js';
7
5
  import { type RegistryConfig } from '../discovery/registry.js';
@@ -9,10 +7,10 @@ import type { X402Config } from '../x402/handler.js';
9
7
  import { type RewardClaimLoopConfig } from './reward-claim-loop.js';
10
8
  import { type RestorationEngineOptions } from '../restorer/engine/engine.js';
11
9
  import { type BalanceTopupLoopConfig } from './balance-topup-loop.js';
10
+ import type { IntentSource } from '../intents/sources.js';
12
11
  export interface DaemonConfig {
13
12
  adapter: ExecutionAdapter;
14
13
  runner: Runner;
15
- desiredStates: DesiredState[];
16
14
  dbPath: string;
17
15
  shutdownTimeoutMs?: number;
18
16
  /** Engine tick interval (ms) for re-driving in-flight intents. Defaults to 5000. */
@@ -37,12 +35,8 @@ export interface DaemonConfig {
37
35
  balanceTopup?: BalanceTopupLoopConfig;
38
36
  /** Passed to HTTP API for GET /v1/status (fleet + RPC hints). */
39
37
  status?: StatusGatherConfig;
40
- /**
41
- * Extra intent generators called each CreatorLoop tick. Each returns a
42
- * freshly-built DesiredState (or null to skip this tick). Used e.g. for
43
- * auto-posting price-aware prediction.v0 intents on testnet.
44
- */
45
- intentGenerators?: IntentGenerator[];
38
+ /** Restoration intent sources polled by CreatorLoop. */
39
+ intentSources?: IntentSource[];
46
40
  /**
47
41
  * Creator Safe address — used to scope CreatorLoop's SQLite idempotency
48
42
  * cache keys per-Safe. Without this, two co-located daemons on the same
@@ -50,23 +44,18 @@ export interface DaemonConfig {
50
44
  */
51
45
  creatorSafeAddress?: string;
52
46
  /**
53
- * When provided, the daemon uses RestorationEngine (new engine path) instead
54
- * of the legacy RestorerLoop for intent dispatch.
55
- *
56
- * Required for portfolio.v0 spec kind (both restoration and evaluation).
57
- * Evaluation intents (type === 'evaluation') are dispatched via supports() to
58
- * portfolio-v0-evaluator; legacy health-check intents (no spec) fall back to
59
- * legacy-claude via the default impl in the registry.
47
+ * RestorationEngine sole path for marketplace request claim → run → deliver.
48
+ * Evaluation intents (`type === 'evaluation'`) dispatch via `supports()` to
49
+ * evaluator impls; health-check intents with no spec use `legacy-claude` via
50
+ * the registry default.
60
51
  */
61
- restorationEngine?: Omit<RestorationEngineOptions, 'store'>;
52
+ restorationEngine: Omit<RestorationEngineOptions, 'store'>;
62
53
  }
63
54
  export declare class Daemon {
64
55
  private readonly config;
65
56
  private store;
66
57
  private creatorLoop;
67
- /** @deprecated Kept for backwards compatibility (test suite). Not started when restorationEngine is configured. */
68
- private restorerLoop;
69
- private restorationEngine?;
58
+ private restorationEngine;
70
59
  private engineStopped;
71
60
  private deliveryWatcherLoop;
72
61
  private adapter;
@@ -1,6 +1,5 @@
1
1
  import { Store } from '../store/store.js';
2
2
  import { CreatorLoop } from './creator.js';
3
- import { RestorerLoop } from './restorer.js';
4
3
  import { DeliveryWatcherLoop } from './delivery-watcher.js';
5
4
  import { startApiServer } from '../api/server.js';
6
5
  import { PeerSync } from '../api/peers.js';
@@ -9,13 +8,12 @@ import { queryArtifacts, queryNodes, getMetadataValue } from '../discovery/subgr
9
8
  import { RewardClaimLoop } from './reward-claim-loop.js';
10
9
  import { RestorationEngine } from '../restorer/engine/engine.js';
11
10
  import { BalanceTopupLoop } from './balance-topup-loop.js';
11
+ import { emitEvent } from '../observability/emit-event.js';
12
12
  const DEFAULT_API_PORT = 7331;
13
13
  export class Daemon {
14
14
  config;
15
15
  store;
16
16
  creatorLoop;
17
- /** @deprecated Kept for backwards compatibility (test suite). Not started when restorationEngine is configured. */
18
- restorerLoop;
19
17
  restorationEngine;
20
18
  engineStopped = false;
21
19
  deliveryWatcherLoop;
@@ -33,15 +31,12 @@ export class Daemon {
33
31
  this.store = new Store(config.dbPath);
34
32
  this.adapter = config.adapter;
35
33
  this.apiPort = config.apiPort ?? parseInt(process.env['JINN_API_PORT'] ?? String(DEFAULT_API_PORT));
36
- this.creatorLoop = new CreatorLoop(this.adapter, config.desiredStates, this.store, config.intentGenerators ?? [], config.creatorSafeAddress);
37
- this.restorerLoop = new RestorerLoop(this.adapter, config.runner, this.store, '/tmp', 300000, `http://127.0.0.1:${this.apiPort}`);
38
- this.deliveryWatcherLoop = new DeliveryWatcherLoop(this.adapter);
39
- if (config.restorationEngine) {
40
- this.restorationEngine = new RestorationEngine({
41
- ...config.restorationEngine,
42
- store: this.store,
43
- });
44
- }
34
+ this.creatorLoop = new CreatorLoop(this.adapter, config.intentSources ?? [], this.store, config.creatorSafeAddress);
35
+ this.deliveryWatcherLoop = new DeliveryWatcherLoop(this.adapter, this.store);
36
+ this.restorationEngine = new RestorationEngine({
37
+ ...config.restorationEngine,
38
+ store: this.store,
39
+ });
45
40
  if (config.rewardClaim && config.rewardClaim.intervalMs > 0) {
46
41
  this.rewardClaimLoop = new RewardClaimLoop({
47
42
  ...config.rewardClaim,
@@ -58,7 +53,9 @@ export class Daemon {
58
53
  async start() {
59
54
  await this.adapter.initialize();
60
55
  this.store.setShutdownState('running');
56
+ this.store.setDaemonStartedAt(new Date().toISOString());
61
57
  this.cachedShutdownState = 'running';
58
+ emitEvent(this.store, { kind: 'startup', outcome: 'ok', detail: 'Daemon started' }, 'daemon');
62
59
  // Start HTTP API server
63
60
  this.apiServer = await startApiServer({
64
61
  port: this.apiPort,
@@ -80,6 +77,11 @@ export class Daemon {
80
77
  }
81
78
  catch (err) {
82
79
  console.error('[daemon] Subgraph backfill failed (non-fatal):', err instanceof Error ? err.message : err);
80
+ emitEvent(this.store, {
81
+ kind: 'tick_error',
82
+ outcome: 'failed',
83
+ detail: err instanceof Error ? err.message : String(err),
84
+ }, 'daemon');
83
85
  }
84
86
  }
85
87
  // Start peer sync if peers configured
@@ -92,16 +94,9 @@ export class Daemon {
92
94
  });
93
95
  this.loopPromises.push(this.peerSync.run().catch(err => console.error('[daemon] peer-sync crashed:', err)));
94
96
  }
95
- if (this.restorationEngine) {
96
- // Engine path: recover in-flight intents, then run event-watching loop.
97
- const engine = this.restorationEngine;
98
- await engine.recoverInFlight();
99
- this.loopPromises.push(this.creatorLoop.run().catch(err => console.error('[daemon] creator crashed:', err)), this._runEngineWatcherLoop(engine).catch(err => console.error('[daemon] engine-watcher crashed:', err)), engine.runTickLoop(this.config.pollIntervalMs ?? 5000).catch(err => console.error('[daemon] engine-tick crashed:', err)), this.deliveryWatcherLoop.run().catch(err => console.error('[daemon] delivery-watcher crashed:', err)));
100
- }
101
- else {
102
- // Legacy path: RestorerLoop handles claim + run + submitResult.
103
- this.loopPromises.push(this.creatorLoop.run().catch(err => console.error('[daemon] creator crashed:', err)), this.restorerLoop.run().catch(err => console.error('[daemon] restorer crashed:', err)), this.deliveryWatcherLoop.run().catch(err => console.error('[daemon] delivery-watcher crashed:', err)));
104
- }
97
+ const engine = this.restorationEngine;
98
+ await engine.recoverInFlight();
99
+ this.loopPromises.push(this.creatorLoop.run().catch(err => console.error('[daemon] creator crashed:', err)), this._runEngineWatcherLoop(engine).catch(err => console.error('[daemon] engine-watcher crashed:', err)), engine.runTickLoop(this.config.pollIntervalMs ?? 5000).catch(err => console.error('[daemon] engine-tick crashed:', err)), this.deliveryWatcherLoop.run().catch(err => console.error('[daemon] delivery-watcher crashed:', err)));
105
100
  if (this.rewardClaimLoop) {
106
101
  this.loopPromises.push(this.rewardClaimLoop.run().catch(err => console.error('[daemon] reward-claim crashed:', err)));
107
102
  }
@@ -111,12 +106,9 @@ export class Daemon {
111
106
  }
112
107
  async stop() {
113
108
  this.creatorLoop.stop();
114
- this.restorerLoop.stop();
115
109
  this.engineStopped = true;
116
- if (this.restorationEngine) {
117
- this.restorationEngine.stop();
118
- await this.restorationEngine.releaseClaimedNotStarted().catch(err => console.error('[daemon] engine releaseClaimedNotStarted failed (non-fatal):', err));
119
- }
110
+ this.restorationEngine.stop();
111
+ await this.restorationEngine.releaseClaimedNotStarted().catch(err => console.error('[daemon] engine releaseClaimedNotStarted failed (non-fatal):', err));
120
112
  this.deliveryWatcherLoop.stop();
121
113
  this.rewardClaimLoop?.stop();
122
114
  this.balanceTopupLoop?.stop();
@@ -131,6 +123,7 @@ export class Daemon {
131
123
  ]);
132
124
  this.store.setShutdownState('clean');
133
125
  this.cachedShutdownState = 'clean';
126
+ emitEvent(this.store, { kind: 'shutdown', outcome: 'ok', detail: 'Daemon stopped cleanly' }, 'daemon');
134
127
  this.store.close();
135
128
  }
136
129
  getShutdownState() {
@@ -190,10 +183,24 @@ export class Daemon {
190
183
  // would serialise all intent processing into a single queue.
191
184
  engine.process(request.requestId).catch(err => {
192
185
  console.error(`[daemon] engine.process failed for ${request.requestId}:`, err instanceof Error ? err.message : err);
186
+ emitEvent(this.store, {
187
+ kind: 'tick_error',
188
+ requestId: request.requestId,
189
+ specKind,
190
+ outcome: 'failed',
191
+ detail: err instanceof Error ? err.message : String(err),
192
+ }, 'daemon');
193
193
  });
194
194
  }
195
195
  catch (err) {
196
196
  console.error(`[daemon] engine.observe failed for ${request.requestId}:`, err instanceof Error ? err.message : err);
197
+ emitEvent(this.store, {
198
+ kind: 'tick_error',
199
+ requestId: request.requestId,
200
+ specKind,
201
+ outcome: 'failed',
202
+ detail: err instanceof Error ? err.message : String(err),
203
+ }, 'daemon');
197
204
  }
198
205
  }
199
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { ExecutionAdapter } from '../adapters/adapter.js';
2
+ import type { Store } from '../store/store.js';
2
3
  export declare class DeliveryWatcherLoop {
3
4
  private readonly adapter;
5
+ private readonly store?;
4
6
  private stopped;
5
7
  private stopResolve;
6
8
  private stopPromise;
7
- constructor(adapter: ExecutionAdapter);
9
+ constructor(adapter: ExecutionAdapter, store?: Store | undefined);
8
10
  run(): Promise<void>;
9
11
  stop(): void;
10
12
  }
@@ -1,11 +1,14 @@
1
+ import { emitEvent } from '../observability/emit-event.js';
1
2
  import { isRecoverableTransactionError } from '../tx-retry.js';
2
3
  export class DeliveryWatcherLoop {
3
4
  adapter;
5
+ store;
4
6
  stopped = false;
5
7
  stopResolve = null;
6
8
  stopPromise;
7
- constructor(adapter) {
9
+ constructor(adapter, store) {
8
10
  this.adapter = adapter;
11
+ this.store = store;
9
12
  this.stopPromise = new Promise(resolve => {
10
13
  this.stopResolve = resolve;
11
14
  });
@@ -20,10 +23,25 @@ export class DeliveryWatcherLoop {
20
23
  // We just drive the iteration and log for observability.
21
24
  const type = delivery.desiredState.type ?? 'unknown';
22
25
  console.error(`[delivery-watcher] Processed ${type} delivery: ${delivery.requestId.slice(0, 10)}...`);
26
+ if (this.store) {
27
+ emitEvent(this.store, {
28
+ kind: type === 'evaluation' ? 'evaluation_submitted' : 'delivery_submitted',
29
+ requestId: delivery.requestId,
30
+ outcome: 'ok',
31
+ detail: `Processed ${type} delivery`,
32
+ }, 'delivery-watcher');
33
+ }
23
34
  }
24
35
  }
25
36
  catch (err) {
26
37
  console.error('[delivery-watcher] Error:', err);
38
+ if (this.store) {
39
+ emitEvent(this.store, {
40
+ kind: 'tick_error',
41
+ outcome: 'failed',
42
+ detail: err instanceof Error ? err.message : String(err),
43
+ }, 'delivery-watcher');
44
+ }
27
45
  const delayMs = isRecoverableTransactionError(err) ? 12_000 : 5000;
28
46
  await Promise.race([new Promise(r => setTimeout(r, delayMs)), this.stopPromise]);
29
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-watcher.js","sourceRoot":"","sources":["../../src/daemon/delivery-watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,OAAO,mBAAmB;IAKD;IAJrB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAwB,IAAI,CAAC;IACxC,WAAW,CAAgB;IAEnC,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBAC/D,IAAI,IAAI,CAAC,OAAO;wBAAE,MAAM;oBACxB,8DAA8D;oBAC9D,yDAAyD;oBACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC;oBACrD,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,cAAc,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"delivery-watcher.js","sourceRoot":"","sources":["../../src/daemon/delivery-watcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,OAAO,mBAAmB;IAMX;IACA;IANX,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAwB,IAAI,CAAC;IACxC,WAAW,CAAgB;IAEnC,YACmB,OAAyB,EACzB,KAAa;QADb,YAAO,GAAP,OAAO,CAAkB;QACzB,UAAK,GAAL,KAAK,CAAQ;QAE9B,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBAC/D,IAAI,IAAI,CAAC,OAAO;wBAAE,MAAM;oBACxB,8DAA8D;oBAC9D,yDAAyD;oBACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC;oBACrD,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,cAAc,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oBACtG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;4BACpB,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB;4BAC3E,SAAS,EAAE,QAAQ,CAAC,SAAS;4BAC7B,OAAO,EAAE,IAAI;4BACb,MAAM,EAAE,aAAa,IAAI,WAAW;yBACrC,EAAE,kBAAkB,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;wBACpB,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,QAAQ;wBACjB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACzD,EAAE,kBAAkB,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM,OAAO,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -7,6 +7,8 @@
7
7
  * rewardClaimIntervalMs / JINN_REWARD_CLAIM_INTERVAL_MS. Set interval to 0 to disable.
8
8
  */
9
9
  import { listStolasClaimTargets, tickStolasDistributorClaims, } from '../earning/stolas-claim.js';
10
+ import { emitEvent } from '../observability/emit-event.js';
11
+ import { displayFleetServiceIndex } from '../earning/fleet-display-index.js';
10
12
  export async function runRewardClaimOnce(cfg) {
11
13
  const state = await cfg.store.load(cfg.chain);
12
14
  const targets = listStolasClaimTargets(state.services);
@@ -27,7 +29,37 @@ export class RewardClaimLoop {
27
29
  this.stopped = true;
28
30
  }
29
31
  async runOnce() {
30
- await runRewardClaimOnce(this.config);
32
+ const result = await runRewardClaimOnce(this.config);
33
+ if (!this.config.jinnStore || result.claims.length === 0)
34
+ return;
35
+ const state = await this.config.store.load(this.config.chain);
36
+ const serviceByStakingId = new Map();
37
+ for (const svc of state.services) {
38
+ if (svc.service_id != null)
39
+ serviceByStakingId.set(svc.service_id, svc);
40
+ }
41
+ for (const claim of result.claims) {
42
+ const svc = serviceByStakingId.get(claim.serviceId);
43
+ if (!svc)
44
+ continue;
45
+ const serviceIndex = displayFleetServiceIndex(svc);
46
+ this.config.jinnStore.recordRewardClaim({
47
+ ts: new Date().toISOString(),
48
+ serviceIndex,
49
+ serviceId: claim.serviceId,
50
+ stakingProxy: claim.stakingProxy,
51
+ distributor: this.config.distributorAddress ?? '0x',
52
+ txHash: claim.txHash,
53
+ amountWei: claim.amountWei,
54
+ });
55
+ emitEvent(this.config.jinnStore, {
56
+ kind: 'reward_claimed',
57
+ serviceIndex,
58
+ txHash: claim.txHash,
59
+ outcome: 'ok',
60
+ detail: `Claimed ${claim.amountWei} reward wei for service ${claim.serviceId}`,
61
+ }, 'reward-claim');
62
+ }
31
63
  }
32
64
  async run() {
33
65
  if (this.config.intervalMs <= 0) {
@@ -39,6 +71,11 @@ export class RewardClaimLoop {
39
71
  }
40
72
  catch (err) {
41
73
  console.error('[reward-claim] Tick failed (non-fatal):', err instanceof Error ? err.message : err);
74
+ this.config.jinnStore && emitEvent(this.config.jinnStore, {
75
+ kind: 'tick_error',
76
+ outcome: 'failed',
77
+ detail: err instanceof Error ? err.message : String(err),
78
+ }, 'reward-claim');
42
79
  }
43
80
  this.config.jinnStore?.setConfigValue('last_reward_claim_tick_at', new Date().toISOString());
44
81
  await new Promise(r => setTimeout(r, this.config.intervalMs));
@@ -1 +1 @@
1
- {"version":3,"file":"reward-claim-loop.js","sourceRoot":"","sources":["../../src/daemon/reward-claim-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAE5B,MAAM,4BAA4B,CAAC;AAqBpC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAA0B;IACjE,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,2BAA2B,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE;QACrE,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,OAAO;QACP,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,eAAe;IAGG;IAFrB,OAAO,GAAG,KAAK,CAAC;IAExB,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE9D,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,2BAA2B,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"reward-claim-loop.js","sourceRoot":"","sources":["../../src/daemon/reward-claim-loop.ts"],"names":[],"mappings":"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"}