@jinn-network/client 0.1.7-canary.d4e4e183 → 0.1.7-canary.e68c8f43

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 (297) hide show
  1. package/README.md +67 -1
  2. package/dist/adapters/mech/adapter.d.ts +19 -1
  3. package/dist/adapters/mech/adapter.js +130 -14
  4. package/dist/adapters/mech/adapter.js.map +1 -1
  5. package/dist/adapters/mech/contracts.js +11 -2
  6. package/dist/adapters/mech/contracts.js.map +1 -1
  7. package/dist/adapters/mech/safe.d.ts +1 -1
  8. package/dist/adapters/mech/safe.js +5 -3
  9. package/dist/adapters/mech/safe.js.map +1 -1
  10. package/dist/adapters/mech/types.d.ts +6 -1
  11. package/dist/adapters/mech/types.js.map +1 -1
  12. package/dist/agent/operator-claude.js +8 -0
  13. package/dist/agent/operator-claude.js.map +1 -1
  14. package/dist/api/activity-events-endpoint.d.ts +14 -0
  15. package/dist/api/activity-events-endpoint.js +59 -0
  16. package/dist/api/activity-events-endpoint.js.map +1 -0
  17. package/dist/api/bootstrap-endpoint.d.ts +1 -2
  18. package/dist/api/bootstrap-endpoint.js +42 -24
  19. package/dist/api/bootstrap-endpoint.js.map +1 -1
  20. package/dist/api/codex-doctor-endpoint.d.ts +22 -5
  21. package/dist/api/codex-doctor-endpoint.js +136 -17
  22. package/dist/api/codex-doctor-endpoint.js.map +1 -1
  23. package/dist/api/debug-report-endpoint.d.ts +27 -0
  24. package/dist/api/debug-report-endpoint.js +157 -0
  25. package/dist/api/debug-report-endpoint.js.map +1 -0
  26. package/dist/api/gather-status.d.ts +33 -0
  27. package/dist/api/gather-status.js +210 -26
  28. package/dist/api/gather-status.js.map +1 -1
  29. package/dist/api/hermes-doctor-endpoint.d.ts +15 -7
  30. package/dist/api/hermes-doctor-endpoint.js +56 -19
  31. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  32. package/dist/api/launcher-status.d.ts +4 -2
  33. package/dist/api/launcher-status.js +11 -10
  34. package/dist/api/launcher-status.js.map +1 -1
  35. package/dist/api/launcher-tasks.d.ts +1 -1
  36. package/dist/api/launcher-tasks.js +12 -8
  37. package/dist/api/launcher-tasks.js.map +1 -1
  38. package/dist/api/operator-artifacts-endpoint.js +73 -6
  39. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  40. package/dist/api/server.d.ts +17 -0
  41. package/dist/api/server.js +40 -1
  42. package/dist/api/server.js.map +1 -1
  43. package/dist/api/setup-endpoints.d.ts +0 -9
  44. package/dist/api/setup-endpoints.js +11 -153
  45. package/dist/api/setup-endpoints.js.map +1 -1
  46. package/dist/api/solvernets-endpoints.js +30 -63
  47. package/dist/api/solvernets-endpoints.js.map +1 -1
  48. package/dist/api/status-build.d.ts +115 -2
  49. package/dist/api/status-build.js +47 -11
  50. package/dist/api/status-build.js.map +1 -1
  51. package/dist/api/status-harness-rollup.d.ts +35 -0
  52. package/dist/api/status-harness-rollup.js +45 -0
  53. package/dist/api/status-harness-rollup.js.map +1 -0
  54. package/dist/build-info.json +4 -4
  55. package/dist/build-meta.json +1 -1
  56. package/dist/captures/live-publisher.js +24 -4
  57. package/dist/captures/live-publisher.js.map +1 -1
  58. package/dist/captures/publish.d.ts +1 -1
  59. package/dist/chain-read-errors.d.ts +12 -0
  60. package/dist/chain-read-errors.js +26 -1
  61. package/dist/chain-read-errors.js.map +1 -1
  62. package/dist/cli/commands/codedigest-revert-check.d.ts +33 -0
  63. package/dist/cli/commands/codedigest-revert-check.js +249 -0
  64. package/dist/cli/commands/codedigest-revert-check.js.map +1 -0
  65. package/dist/cli/commands/solver-nets.d.ts +1 -0
  66. package/dist/cli/commands/solver-nets.js +170 -22
  67. package/dist/cli/commands/solver-nets.js.map +1 -1
  68. package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
  69. package/dist/cli/commands/solver-plugins-block.js +118 -0
  70. package/dist/cli/commands/solver-plugins-block.js.map +1 -0
  71. package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
  72. package/dist/cli/commands/solver-plugins-feedback.js +262 -0
  73. package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
  74. package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
  75. package/dist/cli/commands/solver-plugins-read.js +259 -0
  76. package/dist/cli/commands/solver-plugins-read.js.map +1 -0
  77. package/dist/cli/commands/solver-plugins.d.ts +35 -0
  78. package/dist/cli/commands/solver-plugins.js +399 -2
  79. package/dist/cli/commands/solver-plugins.js.map +1 -1
  80. package/dist/cli/commands/tasks.js +15 -2
  81. package/dist/cli/commands/tasks.js.map +1 -1
  82. package/dist/cli/index.js +2 -0
  83. package/dist/cli/index.js.map +1 -1
  84. package/dist/cli/task-native-readiness.d.ts +7 -0
  85. package/dist/cli/task-native-readiness.js +7 -5
  86. package/dist/cli/task-native-readiness.js.map +1 -1
  87. package/dist/config.d.ts +183 -232
  88. package/dist/config.js +232 -107
  89. package/dist/config.js.map +1 -1
  90. package/dist/daemon/ai-units-gate.d.ts +54 -0
  91. package/dist/daemon/ai-units-gate.js +82 -0
  92. package/dist/daemon/ai-units-gate.js.map +1 -0
  93. package/dist/daemon/creator.js +13 -0
  94. package/dist/daemon/creator.js.map +1 -1
  95. package/dist/daemon/daemon.d.ts +10 -0
  96. package/dist/daemon/daemon.js +203 -30
  97. package/dist/daemon/daemon.js.map +1 -1
  98. package/dist/daemon/gate-logger.d.ts +9 -0
  99. package/dist/daemon/gate-logger.js +2 -0
  100. package/dist/daemon/gate-logger.js.map +1 -0
  101. package/dist/daemon/readiness-gate.d.ts +1 -4
  102. package/dist/daemon/readiness-gate.js.map +1 -1
  103. package/dist/daemon/spend-cap-gate.d.ts +40 -0
  104. package/dist/daemon/spend-cap-gate.js +46 -0
  105. package/dist/daemon/spend-cap-gate.js.map +1 -0
  106. package/dist/dashboard/assets/index-CvQbxjxy.js +351 -0
  107. package/dist/dashboard/assets/index-CzKxvMcU.css +32 -0
  108. package/dist/dashboard/index.html +2 -2
  109. package/dist/discovery/http.js +328 -1
  110. package/dist/discovery/http.js.map +1 -1
  111. package/dist/discovery/onchain.js +42 -4
  112. package/dist/discovery/onchain.js.map +1 -1
  113. package/dist/discovery/types.d.ts +129 -0
  114. package/dist/discovery/types.js.map +1 -1
  115. package/dist/discovery/with-fallback.js +27 -0
  116. package/dist/discovery/with-fallback.js.map +1 -1
  117. package/dist/earning/bootstrap.d.ts +8 -3
  118. package/dist/earning/bootstrap.js +36 -13
  119. package/dist/earning/bootstrap.js.map +1 -1
  120. package/dist/earning/safe-adapter.js +23 -11
  121. package/dist/earning/safe-adapter.js.map +1 -1
  122. package/dist/earning/types.d.ts +6 -6
  123. package/dist/earning/viem-clients.d.ts +11 -4
  124. package/dist/earning/viem-clients.js +14 -5
  125. package/dist/earning/viem-clients.js.map +1 -1
  126. package/dist/erc8004/identity.d.ts +19 -3
  127. package/dist/erc8004/identity.js +21 -6
  128. package/dist/erc8004/identity.js.map +1 -1
  129. package/dist/erc8004/index.d.ts +1 -1
  130. package/dist/erc8004/index.js.map +1 -1
  131. package/dist/events/types.d.ts +2 -2
  132. package/dist/harnesses/cost-estimates.d.ts +10 -31
  133. package/dist/harnesses/cost-estimates.js +11 -43
  134. package/dist/harnesses/cost-estimates.js.map +1 -1
  135. package/dist/harnesses/engine/engine.d.ts +9 -3
  136. package/dist/harnesses/engine/engine.js +51 -6
  137. package/dist/harnesses/engine/engine.js.map +1 -1
  138. package/dist/harnesses/impls/hermes-agent/bootstrap.js +4 -2
  139. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  140. package/dist/harnesses/impls/hermes-agent/config-builder.d.ts +1 -1
  141. package/dist/harnesses/impls/hermes-agent/config-builder.js +4 -2
  142. package/dist/harnesses/impls/hermes-agent/config-builder.js.map +1 -1
  143. package/dist/harnesses/impls/hermes-agent/harness.js +2 -2
  144. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  145. package/dist/harnesses/impls/hermes-agent/prompt.d.ts +6 -6
  146. package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
  147. package/dist/harnesses/impls/learner/adapters/claude-code.d.ts +17 -0
  148. package/dist/harnesses/impls/learner/adapters/claude-code.js +113 -14
  149. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  150. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +9 -0
  151. package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
  152. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  153. package/dist/harnesses/impls/learner/harness.d.ts +9 -0
  154. package/dist/harnesses/impls/learner/harness.js +12 -3
  155. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  156. package/dist/harnesses/impls/learner/harvest.d.ts +1 -1
  157. package/dist/harnesses/impls/learner/harvest.js +23 -5
  158. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  159. package/dist/harnesses/impls/learner/restoration-patch.d.ts +2 -2
  160. package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
  161. package/dist/harnesses/impls/learner/restoration-patch.js.map +1 -1
  162. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +21 -1
  163. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  164. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +74 -5
  165. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +103 -32
  166. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  167. package/dist/harnesses/readiness-registry.d.ts +7 -0
  168. package/dist/harnesses/readiness-registry.js +9 -0
  169. package/dist/harnesses/readiness-registry.js.map +1 -1
  170. package/dist/learner/revert-decision.d.ts +59 -0
  171. package/dist/learner/revert-decision.js +53 -0
  172. package/dist/learner/revert-decision.js.map +1 -0
  173. package/dist/learner/revert-stats.d.ts +24 -0
  174. package/dist/learner/revert-stats.js +44 -0
  175. package/dist/learner/revert-stats.js.map +1 -0
  176. package/dist/main.js +177 -104
  177. package/dist/main.js.map +1 -1
  178. package/dist/mcp/get-codedigest-reward.d.ts +13 -0
  179. package/dist/mcp/get-codedigest-reward.js +23 -0
  180. package/dist/mcp/get-codedigest-reward.js.map +1 -0
  181. package/dist/mcp/server.js +23 -0
  182. package/dist/mcp/server.js.map +1 -1
  183. package/dist/observability/debug-report-assemble.d.ts +43 -0
  184. package/dist/observability/debug-report-assemble.js +80 -0
  185. package/dist/observability/debug-report-assemble.js.map +1 -0
  186. package/dist/observability/emit-event.d.ts +9 -2
  187. package/dist/observability/emit-event.js +36 -2
  188. package/dist/observability/emit-event.js.map +1 -1
  189. package/dist/observability/file-logger.d.ts +69 -0
  190. package/dist/observability/file-logger.js +177 -0
  191. package/dist/observability/file-logger.js.map +1 -0
  192. package/dist/observability/redact-secrets.d.ts +65 -0
  193. package/dist/observability/redact-secrets.js +300 -0
  194. package/dist/observability/redact-secrets.js.map +1 -0
  195. package/dist/observability/tar.d.ts +30 -0
  196. package/dist/observability/tar.js +102 -0
  197. package/dist/observability/tar.js.map +1 -0
  198. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
  199. package/dist/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  200. package/dist/preflight/pidfile-liveness.d.ts +44 -0
  201. package/dist/preflight/pidfile-liveness.js +103 -0
  202. package/dist/preflight/pidfile-liveness.js.map +1 -0
  203. package/dist/preflight/rpc-network.d.ts +40 -0
  204. package/dist/preflight/rpc-network.js +67 -1
  205. package/dist/preflight/rpc-network.js.map +1 -1
  206. package/dist/rpc/transport.d.ts +109 -0
  207. package/dist/rpc/transport.js +220 -0
  208. package/dist/rpc/transport.js.map +1 -0
  209. package/dist/scripts/donation-consumption-acceptance.js +7 -28
  210. package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
  211. package/dist/scripts/swe-rebench-v2-pytest-missing.json +16 -0
  212. package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
  213. package/dist/solver-nets/prediction-operator-ux.js +56 -53
  214. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  215. package/dist/solver-nets/registry.d.ts +19 -1
  216. package/dist/solver-nets/registry.js +37 -24
  217. package/dist/solver-nets/registry.js.map +1 -1
  218. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
  219. package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
  220. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
  221. package/dist/solver-types/_swe-rebench-v2-state.d.ts +15 -0
  222. package/dist/solver-types/_swe-rebench-v2-state.js +19 -0
  223. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  224. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +80 -2
  225. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +242 -21
  226. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  227. package/dist/solver-types/swe-rebench-v2-auto.d.ts +20 -11
  228. package/dist/solver-types/swe-rebench-v2-auto.js +64 -19
  229. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  230. package/dist/solver-types/swe-rebench-v2.d.ts +8 -2
  231. package/dist/solver-types/swe-rebench-v2.js +127 -11
  232. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  233. package/dist/solvernets/launched-record-dispatcher.d.ts +4 -0
  234. package/dist/solvernets/launched-record-dispatcher.js +10 -4
  235. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  236. package/dist/solvernets/registry-client-erc8004.js +11 -0
  237. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  238. package/dist/solvernets/store.d.ts +2 -2
  239. package/dist/spend/ai-units-config.d.ts +37 -0
  240. package/dist/spend/ai-units-config.js +26 -0
  241. package/dist/spend/ai-units-config.js.map +1 -0
  242. package/dist/spend/ai-units.d.ts +86 -0
  243. package/dist/spend/ai-units.js +163 -0
  244. package/dist/spend/ai-units.js.map +1 -0
  245. package/dist/spend/cost-surface-status.d.ts +10 -0
  246. package/dist/spend/cost-surface-status.js +22 -0
  247. package/dist/spend/cost-surface-status.js.map +1 -0
  248. package/dist/spend/credential.d.ts +8 -0
  249. package/dist/spend/credential.js +30 -0
  250. package/dist/spend/credential.js.map +1 -0
  251. package/dist/spend/daemon-config.d.ts +13 -0
  252. package/dist/spend/daemon-config.js +24 -0
  253. package/dist/spend/daemon-config.js.map +1 -0
  254. package/dist/spend/pricing.d.ts +16 -0
  255. package/dist/spend/pricing.js +26 -0
  256. package/dist/spend/pricing.js.map +1 -0
  257. package/dist/spend/record.d.ts +13 -0
  258. package/dist/spend/record.js +36 -0
  259. package/dist/spend/record.js.map +1 -0
  260. package/dist/spend/usage.d.ts +27 -0
  261. package/dist/spend/usage.js +113 -0
  262. package/dist/spend/usage.js.map +1 -0
  263. package/dist/store/store.d.ts +101 -0
  264. package/dist/store/store.js +304 -4
  265. package/dist/store/store.js.map +1 -1
  266. package/dist/trajectory/transcript-parsers/codex-session.d.ts +12 -6
  267. package/dist/trajectory/transcript-parsers/codex-session.js +114 -13
  268. package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
  269. package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
  270. package/dist/trajectory/transcript-session-dirs.d.ts +18 -0
  271. package/dist/trajectory/transcript-session-dirs.js +85 -0
  272. package/dist/trajectory/transcript-session-dirs.js.map +1 -0
  273. package/dist/trajectory/transcript-watcher.d.ts +20 -1
  274. package/dist/trajectory/transcript-watcher.js +98 -32
  275. package/dist/trajectory/transcript-watcher.js.map +1 -1
  276. package/dist/tx-retry.d.ts +15 -0
  277. package/dist/tx-retry.js +37 -7
  278. package/dist/tx-retry.js.map +1 -1
  279. package/dist/types/payloads/portfolio-v0.d.ts +3 -3
  280. package/dist/types/payloads/prediction-apy-v0.d.ts +3 -3
  281. package/dist/types/payloads/prediction-v0.d.ts +12 -12
  282. package/package.json +10 -3
  283. package/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
  284. package/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  285. package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
  286. package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
  287. package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
  288. package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
  289. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
  290. package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
  291. package/plugins/swe-rebench-v2-runtime/README.md +6 -6
  292. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
  293. package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +81 -0
  294. package/dist/dashboard/assets/index-BUlE8F3Y.js +0 -330
  295. package/dist/dashboard/assets/index-blqc7eqq.css +0 -32
  296. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
  297. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +0 -53
@@ -97,6 +97,17 @@ export interface PublishContentV2Args {
97
97
  cid: string;
98
98
  payload: ExecutionPayloadV2;
99
99
  }
100
+ /**
101
+ * Return value from `publishContent` / `publishContentV2`.
102
+ *
103
+ * `txHash` is the on-chain transaction hash for the `setMetadata` call.
104
+ * `blockNumber` is the block the receipt landed in, or `null` if the
105
+ * receipt could not be fetched (the tx is still on chain — backfill later).
106
+ */
107
+ export interface PublishContentResult {
108
+ txHash: Hex;
109
+ blockNumber: number | null;
110
+ }
100
111
  /** Thrown when an `ExecutionPayload` violates §5 strict-mode validity rules. */
101
112
  export declare class PayloadValidationError extends Error {
102
113
  readonly tier: ExecutionTier;
@@ -193,13 +204,18 @@ export declare class IdentityPublisher {
193
204
  get agent(): bigint;
194
205
  /** The IdentityRegistry contract this publisher writes to. */
195
206
  get registry(): `0x${string}`;
207
+ /** Chain ID of the wallet client this publisher writes to. */
208
+ get chainId(): number;
196
209
  /**
197
210
  * Publish a per-execution commitment under the operator's agent NFT.
198
211
  *
199
212
  * Calls `IdentityRegistry.setMetadata(agentId, "<kind>:<cid>", encode(payload))`.
200
- * Returns the on-chain tx hash. Throws on encode/validation/network failure.
213
+ * Returns the on-chain tx hash and block number from the confirmation
214
+ * receipt. If the receipt fetch fails for any reason (RPC hiccup), the tx
215
+ * hash is still returned with `blockNumber: null` so callers can record
216
+ * the anchor and backfill later. Throws on encode/validation/write failure.
201
217
  */
202
- publishContent(args: PublishContentArgs): Promise<Hex>;
218
+ publishContent(args: PublishContentArgs): Promise<PublishContentResult>;
203
219
  /**
204
220
  * Publish a per-execution commitment using the v2 payload tuple.
205
221
  *
@@ -212,7 +228,7 @@ export declare class IdentityPublisher {
212
228
  * (v1) — the subgraph decoder handles both versions and treats v1 as
213
229
  * `mode='train'` with empty `codeDigest`/`implName`.
214
230
  */
215
- publishContentV2(args: PublishContentV2Args): Promise<Hex>;
231
+ publishContentV2(args: PublishContentV2Args): Promise<PublishContentResult>;
216
232
  private _writeMetadata;
217
233
  }
218
234
  /**
@@ -251,11 +251,18 @@ export class IdentityPublisher {
251
251
  get registry() {
252
252
  return this.identityRegistryAddress;
253
253
  }
254
+ /** Chain ID of the wallet client this publisher writes to. */
255
+ get chainId() {
256
+ return this.walletClient.chain?.id ?? 0;
257
+ }
254
258
  /**
255
259
  * Publish a per-execution commitment under the operator's agent NFT.
256
260
  *
257
261
  * Calls `IdentityRegistry.setMetadata(agentId, "<kind>:<cid>", encode(payload))`.
258
- * Returns the on-chain tx hash. Throws on encode/validation/network failure.
262
+ * Returns the on-chain tx hash and block number from the confirmation
263
+ * receipt. If the receipt fetch fails for any reason (RPC hiccup), the tx
264
+ * hash is still returned with `blockNumber: null` so callers can record
265
+ * the anchor and backfill later. Throws on encode/validation/write failure.
259
266
  */
260
267
  async publishContent(args) {
261
268
  const metadataKey = buildMetadataKey(args.kind, args.cid);
@@ -296,12 +303,20 @@ export class IdentityPublisher {
296
303
  account,
297
304
  chain,
298
305
  });
299
- // Best-effort confirmation; callers that want async fire-and-forget can
300
- // ignore the await — but waiting here gives us a clear pass/fail signal
301
- // and surfaces revert reasons promptly. The engine treats failures as
306
+ // Best-effort confirmation. We surface the blockNumber so callers can
307
+ // record a verifiable on-chain reference; if the receipt query fails
308
+ // (RPC hiccup), we still return the tx hash with a null block so the
309
+ // anchor row gets written. The engine treats publish failures as
302
310
  // non-fatal regardless.
303
- await this.publicClient.waitForTransactionReceipt({ hash: txHash });
304
- return txHash;
311
+ let blockNumber = null;
312
+ try {
313
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash: txHash });
314
+ blockNumber = Number(receipt.blockNumber);
315
+ }
316
+ catch (err) {
317
+ console.warn(`[erc8004] receipt fetch failed for ${txHash} (anchor will be recorded with null block): ${err instanceof Error ? err.message : err}`);
318
+ }
319
+ return { txHash, blockNumber };
305
320
  }
306
321
  }
307
322
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/erc8004/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/erc8004/identity.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,6 @@
7
7
  */
8
8
  export { REPUTATION_REGISTRY_ADDRESSES, getReputationRegistryAddress, VALIDATION_REGISTRY_ADDRESSES, getValidationRegistryAddress, } from './addresses.js';
9
9
  export { IDENTITY_REGISTRY_SET_METADATA_ABI, PAYLOAD_TUPLE, PAYLOAD_TUPLE_V2, REPUTATION_REGISTRY_ABI, VALIDATION_REGISTRY_ABI, } from './abis.js';
10
- export { IdentityPublisher, PayloadValidationError, buildMetadataKey, encodeExecutionPayload, encodeExecutionPayloadV2, validatePayload, validatePayloadV2, codeDigestSha256ToBytes32, modeStringToFlag, resolveAgentIdForManifest, type ContentKind, type ExecutionPayload, type ExecutionPayloadV2, type ExecutionModeFlag, type ExecutionTier, type IdentityPublisherConfig, type PublishContentArgs, type PublishContentV2Args, type ResolveAgentIdArgs, type ResolvedAgent, } from './identity.js';
10
+ export { IdentityPublisher, PayloadValidationError, buildMetadataKey, encodeExecutionPayload, encodeExecutionPayloadV2, validatePayload, validatePayloadV2, codeDigestSha256ToBytes32, modeStringToFlag, resolveAgentIdForManifest, type ContentKind, type ExecutionPayload, type ExecutionPayloadV2, type ExecutionModeFlag, type ExecutionTier, type IdentityPublisherConfig, type PublishContentArgs, type PublishContentResult, type PublishContentV2Args, type ResolveAgentIdArgs, type ResolvedAgent, } from './identity.js';
11
11
  export { ReputationRegistryClient, ZERO_HASH, mapVerdictToScore, submitEvaluatorFeedback, type FeedbackId, type FeedbackHookOutcome, type FeedbackRecord, type FeedbackSummary, type GiveFeedbackArgs, type EvaluatorVerdict, type ReputationRegistryConfig, type RespondToFeedbackArgs, type HarnessExecutionRef, type RevokeFeedbackArgs, type ScoreMapping, } from './reputation.js';
12
12
  export { ValidationRegistryClient, type ValidationRecord, type ValidationRegistryConfig, type ValidationStatus, } from './validation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc8004/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kFAAkF;AAClF,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,kFAAkF;AAClF,OAAO,EACL,kCAAkC,EAClC,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,GAW1B,MAAM,eAAe,CAAC;AAEvB,kFAAkF;AAClF,OAAO,EACL,wBAAwB,EACxB,SAAS,EACT,iBAAiB,EACjB,uBAAuB,GAYxB,MAAM,iBAAiB,CAAC;AAEzB,kFAAkF;AAClF,OAAO,EACL,wBAAwB,GAIzB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/erc8004/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kFAAkF;AAClF,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,kFAAkF;AAClF,OAAO,EACL,kCAAkC,EAClC,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,GAY1B,MAAM,eAAe,CAAC;AAEvB,kFAAkF;AAClF,OAAO,EACL,wBAAwB,EACxB,SAAS,EACT,iBAAiB,EACjB,uBAAuB,GAYxB,MAAM,iBAAiB,CAAC;AAEzB,kFAAkF;AAClF,OAAO,EACL,wBAAwB,GAIzB,MAAM,iBAAiB,CAAC"}
@@ -21,7 +21,7 @@ export declare const StructuredEventSchema: z.ZodObject<{
21
21
  }, "strip", z.ZodTypeAny, {
22
22
  message: string;
23
23
  id: string;
24
- kind: "reward" | "error" | "system" | "log" | "fleet" | "intent";
24
+ kind: "reward" | "error" | "intent" | "fleet" | "system" | "log";
25
25
  schemaVersion: 1;
26
26
  ts: string;
27
27
  details?: Record<string, unknown> | undefined;
@@ -31,7 +31,7 @@ export declare const StructuredEventSchema: z.ZodObject<{
31
31
  }, {
32
32
  message: string;
33
33
  id: string;
34
- kind: "reward" | "error" | "system" | "log" | "fleet" | "intent";
34
+ kind: "reward" | "error" | "intent" | "fleet" | "system" | "log";
35
35
  schemaVersion: 1;
36
36
  ts: string;
37
37
  details?: Record<string, unknown> | undefined;
@@ -17,14 +17,15 @@
17
17
  * Heuristic shape per the spec:
18
18
  * per-1k-token rate × typical task length, by model id.
19
19
  *
20
- * Subscription harnesses (Claude Code, Codex) are flagged via
21
- * `subscriptionPath: true` on the harness; in that case the surface shows
22
- * "Included in subscription, no per-task API cost" and **does not** trigger
23
- * the confirmation gate, regardless of the model selected.
20
+ * Subscription billing paths (`usesPaidApiKey: false` from daemon
21
+ * `/v1/status` `costSurface`) show "Included in subscription, no per-task
22
+ * API cost" and **do not** trigger the confirmation gate.
24
23
  *
25
24
  * To add a new model: append an entry to `MODEL_COST_TABLE`. The id is the
26
- * exact `model` string persisted to `joinedSolverNets[<cid>].model`. To
27
- * shape a new harness: append to `HARNESS_BILLING`. Keep the units
25
+ * exact `model` string persisted to `joinedSolverNets[<cid>].model`. Paid
26
+ * vs subscription is resolved on the daemon via `resolveCredentialId` and
27
+ * exposed on `GET /v1/status` as `costSurface.harnesses[<canonical>]`.
28
+ * Keep the units
28
29
  * consistent: token counts in tokens, rates in USD-per-1k-tokens.
29
30
  *
30
31
  * Units note: Anthropic + OpenAI publish prices per million tokens; we
@@ -69,21 +70,6 @@ export interface ModelCostEntry {
69
70
  * `claudeModels.ts` is the source of truth for which ids appear here.
70
71
  */
71
72
  export declare const MODEL_COST_TABLE: Readonly<Record<string, ModelCostEntry>>;
72
- /**
73
- * Harness-level billing classification.
74
- *
75
- * `subscriptionPath: true` means the harness shells out to a
76
- * subscription-billed CLI (Claude Code, Codex) and the operator does NOT
77
- * incur per-task API charges — the cost surface is suppressed entirely
78
- * and the confirmation gate is never triggered.
79
- *
80
- * `subscriptionPath: false` means the harness routes to a paid API key
81
- * (Hermes via OpenRouter / Anthropic API / Nous Portal). The cost surface
82
- * is shown and the gate fires above the configured threshold.
83
- */
84
- export declare const HARNESS_BILLING: Readonly<Record<string, {
85
- subscriptionPath: boolean;
86
- }>>;
87
73
  /** Default per-task USD threshold above which the confirmation gate fires. */
88
74
  export declare const DEFAULT_HIGH_COST_THRESHOLD_USD = 1;
89
75
  export interface CostEstimate {
@@ -106,13 +92,6 @@ export interface CostEstimate {
106
92
  * that as "unknown, don't surface a number" rather than rendering $0.
107
93
  */
108
94
  export declare function estimateModelCost(modelId: string): CostEstimate | null;
109
- /**
110
- * `true` when the harness routes through a paid API key. Subscription
111
- * harnesses (Claude Code, Codex) return `false`; unknown harnesses
112
- * conservatively return `true` so a misnamed harness doesn't silently
113
- * skip the cost surface.
114
- */
115
- export declare function harnessUsesPaidApiKey(harness: string | undefined): boolean;
116
95
  export interface CostSurfaceDecision {
117
96
  /** Whether to show a numeric cost-per-task estimate at all. */
118
97
  showEstimate: boolean;
@@ -133,11 +112,11 @@ export interface CostSurfaceDecision {
133
112
  *
134
113
  * Defaults:
135
114
  * - threshold: $1 / task (see DEFAULT_HIGH_COST_THRESHOLD_USD).
136
- * - subscription harness → suppress surface + skip gate.
137
- * - unknown model on a paid harness → show estimate slot (caller may
115
+ * - `usesPaidApiKey: false` → suppress surface + skip gate.
116
+ * - unknown model on a paid path → show estimate slot (caller may
138
117
  * render "estimate unavailable") but DO NOT trigger the gate.
139
118
  */
140
- export declare function decideCostSurface(harness: string | undefined, modelId: string | undefined, thresholdUsd?: number): CostSurfaceDecision;
119
+ export declare function decideCostSurface(usesPaidApiKey: boolean, modelId: string | undefined, thresholdUsd?: number): CostSurfaceDecision;
141
120
  /**
142
121
  * Format a USD amount for compact display in the dashboard. Picks the
143
122
  * smallest fraction count that still distinguishes the value from $0.
@@ -17,14 +17,15 @@
17
17
  * Heuristic shape per the spec:
18
18
  * per-1k-token rate × typical task length, by model id.
19
19
  *
20
- * Subscription harnesses (Claude Code, Codex) are flagged via
21
- * `subscriptionPath: true` on the harness; in that case the surface shows
22
- * "Included in subscription, no per-task API cost" and **does not** trigger
23
- * the confirmation gate, regardless of the model selected.
20
+ * Subscription billing paths (`usesPaidApiKey: false` from daemon
21
+ * `/v1/status` `costSurface`) show "Included in subscription, no per-task
22
+ * API cost" and **do not** trigger the confirmation gate.
24
23
  *
25
24
  * To add a new model: append an entry to `MODEL_COST_TABLE`. The id is the
26
- * exact `model` string persisted to `joinedSolverNets[<cid>].model`. To
27
- * shape a new harness: append to `HARNESS_BILLING`. Keep the units
25
+ * exact `model` string persisted to `joinedSolverNets[<cid>].model`. Paid
26
+ * vs subscription is resolved on the daemon via `resolveCredentialId` and
27
+ * exposed on `GET /v1/status` as `costSurface.harnesses[<canonical>]`.
28
+ * Keep the units
28
29
  * consistent: token counts in tokens, rates in USD-per-1k-tokens.
29
30
  *
30
31
  * Units note: Anthropic + OpenAI publish prices per million tokens; we
@@ -43,7 +44,6 @@
43
44
  * These are heuristics. Provider-API reconciliation (actual usage) is
44
45
  * deferred to the P1 follow-up tracked in #331.
45
46
  */
46
- import { CLAUDE_CODE_HARNESS, CODEX_HARNESS, HERMES_AGENT_HARNESS, canonicalHarnessName, } from './names.js';
47
47
  /**
48
48
  * Per-model cost entries. Keyed by the exact `model` id persisted to
49
49
  * `joinedSolverNets[<cid>].model`. The dashboard model dropdown in
@@ -187,23 +187,6 @@ export const MODEL_COST_TABLE = {
187
187
  typicalOutputTokens: 20_000,
188
188
  },
189
189
  };
190
- /**
191
- * Harness-level billing classification.
192
- *
193
- * `subscriptionPath: true` means the harness shells out to a
194
- * subscription-billed CLI (Claude Code, Codex) and the operator does NOT
195
- * incur per-task API charges — the cost surface is suppressed entirely
196
- * and the confirmation gate is never triggered.
197
- *
198
- * `subscriptionPath: false` means the harness routes to a paid API key
199
- * (Hermes via OpenRouter / Anthropic API / Nous Portal). The cost surface
200
- * is shown and the gate fires above the configured threshold.
201
- */
202
- export const HARNESS_BILLING = {
203
- [CLAUDE_CODE_HARNESS]: { subscriptionPath: true },
204
- [CODEX_HARNESS]: { subscriptionPath: true },
205
- [HERMES_AGENT_HARNESS]: { subscriptionPath: false },
206
- };
207
190
  /** Default per-task USD threshold above which the confirmation gate fires. */
208
191
  export const DEFAULT_HIGH_COST_THRESHOLD_USD = 1;
209
192
  /**
@@ -226,33 +209,18 @@ export function estimateModelCost(modelId) {
226
209
  entry,
227
210
  };
228
211
  }
229
- /**
230
- * `true` when the harness routes through a paid API key. Subscription
231
- * harnesses (Claude Code, Codex) return `false`; unknown harnesses
232
- * conservatively return `true` so a misnamed harness doesn't silently
233
- * skip the cost surface.
234
- */
235
- export function harnessUsesPaidApiKey(harness) {
236
- if (!harness)
237
- return false;
238
- const canonical = canonicalHarnessName(harness);
239
- const billing = HARNESS_BILLING[canonical];
240
- if (!billing)
241
- return true;
242
- return !billing.subscriptionPath;
243
- }
244
212
  /**
245
213
  * Decide what the cost surface should render for a given harness + model
246
214
  * combination, plus whether the confirmation gate fires.
247
215
  *
248
216
  * Defaults:
249
217
  * - threshold: $1 / task (see DEFAULT_HIGH_COST_THRESHOLD_USD).
250
- * - subscription harness → suppress surface + skip gate.
251
- * - unknown model on a paid harness → show estimate slot (caller may
218
+ * - `usesPaidApiKey: false` → suppress surface + skip gate.
219
+ * - unknown model on a paid path → show estimate slot (caller may
252
220
  * render "estimate unavailable") but DO NOT trigger the gate.
253
221
  */
254
- export function decideCostSurface(harness, modelId, thresholdUsd = DEFAULT_HIGH_COST_THRESHOLD_USD) {
255
- if (!harnessUsesPaidApiKey(harness)) {
222
+ export function decideCostSurface(usesPaidApiKey, modelId, thresholdUsd = DEFAULT_HIGH_COST_THRESHOLD_USD) {
223
+ if (!usesPaidApiKey) {
256
224
  return {
257
225
  showEstimate: false,
258
226
  estimate: null,
@@ -1 +1 @@
1
- {"version":3,"file":"cost-estimates.js","sourceRoot":"","sources":["../../src/harnesses/cost-estimates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-estimates.js","sourceRoot":"","sources":["../../src/harnesses/cost-estimates.ts"],"names":[],"mappings":"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"}
@@ -329,9 +329,15 @@ export declare class TaskEngine {
329
329
  * Performance contract (issue #398): this runs once per task announcement,
330
330
  * on the engine-watcher hot path, for every observed task. It MUST NOT
331
331
  * perform per-task blocking I/O. In particular it does not probe
332
- * `impl.isReady()` — for the Hermes harness that runs two blocking
333
- * `spawnSync` child processes, so a backlog would pay per-task blocking
334
- * spawns and starve the daemon event loop.
332
+ * `impl.isReady()` — historically the Hermes harness ran child processes
333
+ * inside its readiness probe, so a backlog would pay per-task blocking
334
+ * spawns and starve the daemon event loop. (#778 converted the matching
335
+ * post-execution `git diff` wedge in harvest.ts to async + 60s timeout;
336
+ * the #778 follow-up converted the readiness-probe spawns themselves —
337
+ * Hermes `doctor` / `auth list` and the codex-doctor `--version` probe —
338
+ * to async, so the registry's background refresh loop no longer blocks the
339
+ * main thread either. The readiness path remains O(1) here via the cache
340
+ * below.)
335
341
  *
336
342
  * Harness readiness for the claim gate is instead served O(1) from the
337
343
  * daemon's cached `HarnessReadinessRegistry` snapshot: the engine-watcher
@@ -17,7 +17,7 @@ import { DONATION_ARTIFACT_ENCODING } from './artifact-scrub.js';
17
17
  import { assembleAndSignEnvelope, } from './envelope-assembly.js';
18
18
  import { deliverAndClaim, } from './delivery.js';
19
19
  import { SkippableError } from '../types.js';
20
- import { submitEvaluatorFeedback, codeDigestSha256ToBytes32, modeStringToFlag, } from '../../erc8004/index.js';
20
+ import { submitEvaluatorFeedback, codeDigestSha256ToBytes32, encodeExecutionPayload, encodeExecutionPayloadV2, modeStringToFlag, } from '../../erc8004/index.js';
21
21
  import { TrajectoryCollector, emitTrajectory } from '../../trajectory/index.js';
22
22
  import { uploadToIpfs } from '../../adapters/mech/ipfs.js';
23
23
  import { VerdictCode } from '../../adapters/mech/verdict-code.js';
@@ -25,6 +25,7 @@ import { buildInfo } from '../../build-info.js';
25
25
  import { getSolverNetContract } from '../../vendor/@jinn-network/sdk/dist/solvernets/index.js';
26
26
  import { runHarnessWithFreezeFence, } from '../../daemon/freeze-fence.js';
27
27
  import { harnessStateDirName } from '../names.js';
28
+ import { recordTaskCost } from '../../spend/record.js';
28
29
  // ── Sentinel error ────────────────────────────────────────────────────────────
29
30
  export class NotImplementedError extends Error {
30
31
  transitionName;
@@ -150,9 +151,15 @@ export class TaskEngine {
150
151
  * Performance contract (issue #398): this runs once per task announcement,
151
152
  * on the engine-watcher hot path, for every observed task. It MUST NOT
152
153
  * perform per-task blocking I/O. In particular it does not probe
153
- * `impl.isReady()` — for the Hermes harness that runs two blocking
154
- * `spawnSync` child processes, so a backlog would pay per-task blocking
155
- * spawns and starve the daemon event loop.
154
+ * `impl.isReady()` — historically the Hermes harness ran child processes
155
+ * inside its readiness probe, so a backlog would pay per-task blocking
156
+ * spawns and starve the daemon event loop. (#778 converted the matching
157
+ * post-execution `git diff` wedge in harvest.ts to async + 60s timeout;
158
+ * the #778 follow-up converted the readiness-probe spawns themselves —
159
+ * Hermes `doctor` / `auth list` and the codex-doctor `--version` probe —
160
+ * to async, so the registry's background refresh loop no longer blocks the
161
+ * main thread either. The readiness path remains O(1) here via the cache
162
+ * below.)
156
163
  *
157
164
  * Harness readiness for the claim gate is instead served O(1) from the
158
165
  * daemon's cached `HarnessReadinessRegistry` snapshot: the engine-watcher
@@ -887,6 +894,18 @@ export class TaskEngine {
887
894
  clearTimeout(endTimer);
888
895
  }
889
896
  console.log(`[harness-engine] ${task.requestId} RUNNING → POST_SNAPSHOT via impl=${impl.name}`);
897
+ // Record the run's cost once it has cleanly reached POST_SNAPSHOT — i.e. the
898
+ // harness completed. Captures cost regardless of whether on-chain delivery
899
+ // later succeeds. Pre-completion early-exits (SkippableError, freeze-fence
900
+ // violation) intentionally do not record: the spend cap is an approximate
901
+ // graceful-pause control (design spec §2), not a precise ledger.
902
+ recordTaskCost(this.store, {
903
+ requestId: task.requestId,
904
+ harness: impl.name,
905
+ model: solverNet?.model,
906
+ workingDir,
907
+ solverType: task.solverType ?? null,
908
+ });
890
909
  }
891
910
  async takePostSnapshot(_intent) {
892
911
  throw new NotImplementedError('takePostSnapshot');
@@ -1312,6 +1331,8 @@ export class TaskEngine {
1312
1331
  !!harnessImplName;
1313
1332
  try {
1314
1333
  let pubTxHash;
1334
+ let pubBlockNumber;
1335
+ let payloadHex;
1315
1336
  if (canEmitV2) {
1316
1337
  const v2Payload = {
1317
1338
  version: 2,
@@ -1323,11 +1344,14 @@ export class TaskEngine {
1323
1344
  implName: harnessImplName,
1324
1345
  modeFlag: modeStringToFlag(task.executorMode),
1325
1346
  };
1326
- pubTxHash = await this.identityPublisher.publishContentV2({
1347
+ payloadHex = encodeExecutionPayloadV2(v2Payload);
1348
+ const result = await this.identityPublisher.publishContentV2({
1327
1349
  kind: metadataKind,
1328
1350
  cid: manifestCid,
1329
1351
  payload: v2Payload,
1330
1352
  });
1353
+ pubTxHash = result.txHash;
1354
+ pubBlockNumber = result.blockNumber;
1331
1355
  console.log(`[harness-engine] ${requestId}: setMetadata ${metadataKind}:${manifestCid} tx=${pubTxHash} (payload v2 mode=${task.executorMode} impl=${harnessImplName})`);
1332
1356
  }
1333
1357
  else {
@@ -1338,13 +1362,34 @@ export class TaskEngine {
1338
1362
  attestationQuoteCid: '0x',
1339
1363
  sourceMeasurement: '0x0000000000000000000000000000000000000000000000000000000000000000',
1340
1364
  };
1341
- pubTxHash = await this.identityPublisher.publishContent({
1365
+ payloadHex = encodeExecutionPayload(v1Payload);
1366
+ const result = await this.identityPublisher.publishContent({
1342
1367
  kind: metadataKind,
1343
1368
  cid: manifestCid,
1344
1369
  payload: v1Payload,
1345
1370
  });
1371
+ pubTxHash = result.txHash;
1372
+ pubBlockNumber = result.blockNumber;
1346
1373
  console.log(`[harness-engine] ${requestId}: setMetadata ${metadataKind}:${manifestCid} tx=${pubTxHash} (payload v1)`);
1347
1374
  }
1375
+ try {
1376
+ this.store.saveErc8004Anchor({
1377
+ envelopeId: manifestHashHex,
1378
+ envelopeCid: manifestCid,
1379
+ contentKind: metadataKind,
1380
+ metadataKey: `${metadataKind}:${manifestCid}`,
1381
+ agentId: this.identityPublisher.agent.toString(),
1382
+ chainId: this.identityPublisher.chainId,
1383
+ identityRegistryAddress: this.identityPublisher.registry,
1384
+ txHash: pubTxHash,
1385
+ blockNumber: pubBlockNumber,
1386
+ payloadHex,
1387
+ anchoredAt: Math.floor(Date.now() / 1000),
1388
+ });
1389
+ }
1390
+ catch (anchorErr) {
1391
+ console.warn(`[harness-engine] ${requestId}: failed to record erc8004 anchor (non-fatal): ${anchorErr instanceof Error ? anchorErr.message : anchorErr}`);
1392
+ }
1348
1393
  }
1349
1394
  catch (err) {
1350
1395
  console.warn(`[harness-engine] ${requestId}: setMetadata ${metadataKind} publish failed (non-fatal): ${err instanceof Error ? err.message : err}`);