@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.
- package/README.md +67 -1
- package/dist/adapters/mech/adapter.d.ts +19 -1
- package/dist/adapters/mech/adapter.js +130 -14
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.js +11 -2
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/safe.d.ts +1 -1
- package/dist/adapters/mech/safe.js +5 -3
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +6 -1
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/agent/operator-claude.js +8 -0
- package/dist/agent/operator-claude.js.map +1 -1
- package/dist/api/activity-events-endpoint.d.ts +14 -0
- package/dist/api/activity-events-endpoint.js +59 -0
- package/dist/api/activity-events-endpoint.js.map +1 -0
- package/dist/api/bootstrap-endpoint.d.ts +1 -2
- package/dist/api/bootstrap-endpoint.js +42 -24
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/codex-doctor-endpoint.d.ts +22 -5
- package/dist/api/codex-doctor-endpoint.js +136 -17
- package/dist/api/codex-doctor-endpoint.js.map +1 -1
- package/dist/api/debug-report-endpoint.d.ts +27 -0
- package/dist/api/debug-report-endpoint.js +157 -0
- package/dist/api/debug-report-endpoint.js.map +1 -0
- package/dist/api/gather-status.d.ts +33 -0
- package/dist/api/gather-status.js +210 -26
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/hermes-doctor-endpoint.d.ts +15 -7
- package/dist/api/hermes-doctor-endpoint.js +56 -19
- package/dist/api/hermes-doctor-endpoint.js.map +1 -1
- package/dist/api/launcher-status.d.ts +4 -2
- package/dist/api/launcher-status.js +11 -10
- package/dist/api/launcher-status.js.map +1 -1
- package/dist/api/launcher-tasks.d.ts +1 -1
- package/dist/api/launcher-tasks.js +12 -8
- package/dist/api/launcher-tasks.js.map +1 -1
- package/dist/api/operator-artifacts-endpoint.js +73 -6
- package/dist/api/operator-artifacts-endpoint.js.map +1 -1
- package/dist/api/server.d.ts +17 -0
- package/dist/api/server.js +40 -1
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +0 -9
- package/dist/api/setup-endpoints.js +11 -153
- package/dist/api/setup-endpoints.js.map +1 -1
- package/dist/api/solvernets-endpoints.js +30 -63
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +115 -2
- package/dist/api/status-build.js +47 -11
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-harness-rollup.d.ts +35 -0
- package/dist/api/status-harness-rollup.js +45 -0
- package/dist/api/status-harness-rollup.js.map +1 -0
- package/dist/build-info.json +4 -4
- package/dist/build-meta.json +1 -1
- package/dist/captures/live-publisher.js +24 -4
- package/dist/captures/live-publisher.js.map +1 -1
- package/dist/captures/publish.d.ts +1 -1
- package/dist/chain-read-errors.d.ts +12 -0
- package/dist/chain-read-errors.js +26 -1
- package/dist/chain-read-errors.js.map +1 -1
- package/dist/cli/commands/codedigest-revert-check.d.ts +33 -0
- package/dist/cli/commands/codedigest-revert-check.js +249 -0
- package/dist/cli/commands/codedigest-revert-check.js.map +1 -0
- package/dist/cli/commands/solver-nets.d.ts +1 -0
- package/dist/cli/commands/solver-nets.js +170 -22
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
- package/dist/cli/commands/solver-plugins-block.js +118 -0
- package/dist/cli/commands/solver-plugins-block.js.map +1 -0
- package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
- package/dist/cli/commands/solver-plugins-feedback.js +262 -0
- package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
- package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
- package/dist/cli/commands/solver-plugins-read.js +259 -0
- package/dist/cli/commands/solver-plugins-read.js.map +1 -0
- package/dist/cli/commands/solver-plugins.d.ts +35 -0
- package/dist/cli/commands/solver-plugins.js +399 -2
- package/dist/cli/commands/solver-plugins.js.map +1 -1
- package/dist/cli/commands/tasks.js +15 -2
- package/dist/cli/commands/tasks.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/task-native-readiness.d.ts +7 -0
- package/dist/cli/task-native-readiness.js +7 -5
- package/dist/cli/task-native-readiness.js.map +1 -1
- package/dist/config.d.ts +183 -232
- package/dist/config.js +232 -107
- package/dist/config.js.map +1 -1
- package/dist/daemon/ai-units-gate.d.ts +54 -0
- package/dist/daemon/ai-units-gate.js +82 -0
- package/dist/daemon/ai-units-gate.js.map +1 -0
- package/dist/daemon/creator.js +13 -0
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +10 -0
- package/dist/daemon/daemon.js +203 -30
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/gate-logger.d.ts +9 -0
- package/dist/daemon/gate-logger.js +2 -0
- package/dist/daemon/gate-logger.js.map +1 -0
- package/dist/daemon/readiness-gate.d.ts +1 -4
- package/dist/daemon/readiness-gate.js.map +1 -1
- package/dist/daemon/spend-cap-gate.d.ts +40 -0
- package/dist/daemon/spend-cap-gate.js +46 -0
- package/dist/daemon/spend-cap-gate.js.map +1 -0
- package/dist/dashboard/assets/index-CvQbxjxy.js +351 -0
- package/dist/dashboard/assets/index-CzKxvMcU.css +32 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/http.js +328 -1
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.js +42 -4
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +129 -0
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.js +27 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +8 -3
- package/dist/earning/bootstrap.js +36 -13
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/safe-adapter.js +23 -11
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/types.d.ts +6 -6
- package/dist/earning/viem-clients.d.ts +11 -4
- package/dist/earning/viem-clients.js +14 -5
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/erc8004/identity.d.ts +19 -3
- package/dist/erc8004/identity.js +21 -6
- package/dist/erc8004/identity.js.map +1 -1
- package/dist/erc8004/index.d.ts +1 -1
- package/dist/erc8004/index.js.map +1 -1
- package/dist/events/types.d.ts +2 -2
- package/dist/harnesses/cost-estimates.d.ts +10 -31
- package/dist/harnesses/cost-estimates.js +11 -43
- package/dist/harnesses/cost-estimates.js.map +1 -1
- package/dist/harnesses/engine/engine.d.ts +9 -3
- package/dist/harnesses/engine/engine.js +51 -6
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.js +4 -2
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/config-builder.d.ts +1 -1
- package/dist/harnesses/impls/hermes-agent/config-builder.js +4 -2
- package/dist/harnesses/impls/hermes-agent/config-builder.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/harness.js +2 -2
- package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/prompt.d.ts +6 -6
- package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
- package/dist/harnesses/impls/learner/adapters/claude-code.d.ts +17 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js +113 -14
- package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
- package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +9 -0
- package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
- package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +9 -0
- package/dist/harnesses/impls/learner/harness.js +12 -3
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/harvest.d.ts +1 -1
- package/dist/harnesses/impls/learner/harvest.js +23 -5
- package/dist/harnesses/impls/learner/harvest.js.map +1 -1
- package/dist/harnesses/impls/learner/restoration-patch.d.ts +2 -2
- package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
- package/dist/harnesses/impls/learner/restoration-patch.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +21 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +74 -5
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +103 -32
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
- package/dist/harnesses/readiness-registry.d.ts +7 -0
- package/dist/harnesses/readiness-registry.js +9 -0
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/learner/revert-decision.d.ts +59 -0
- package/dist/learner/revert-decision.js +53 -0
- package/dist/learner/revert-decision.js.map +1 -0
- package/dist/learner/revert-stats.d.ts +24 -0
- package/dist/learner/revert-stats.js +44 -0
- package/dist/learner/revert-stats.js.map +1 -0
- package/dist/main.js +177 -104
- package/dist/main.js.map +1 -1
- package/dist/mcp/get-codedigest-reward.d.ts +13 -0
- package/dist/mcp/get-codedigest-reward.js +23 -0
- package/dist/mcp/get-codedigest-reward.js.map +1 -0
- package/dist/mcp/server.js +23 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/observability/debug-report-assemble.d.ts +43 -0
- package/dist/observability/debug-report-assemble.js +80 -0
- package/dist/observability/debug-report-assemble.js.map +1 -0
- package/dist/observability/emit-event.d.ts +9 -2
- package/dist/observability/emit-event.js +36 -2
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/observability/file-logger.d.ts +69 -0
- package/dist/observability/file-logger.js +177 -0
- package/dist/observability/file-logger.js.map +1 -0
- package/dist/observability/redact-secrets.d.ts +65 -0
- package/dist/observability/redact-secrets.js +300 -0
- package/dist/observability/redact-secrets.js.map +1 -0
- package/dist/observability/tar.d.ts +30 -0
- package/dist/observability/tar.js +102 -0
- package/dist/observability/tar.js.map +1 -0
- package/dist/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
- package/dist/plugins/learner/skills/learn/promoter-prompt.md +72 -1
- package/dist/preflight/pidfile-liveness.d.ts +44 -0
- package/dist/preflight/pidfile-liveness.js +103 -0
- package/dist/preflight/pidfile-liveness.js.map +1 -0
- package/dist/preflight/rpc-network.d.ts +40 -0
- package/dist/preflight/rpc-network.js +67 -1
- package/dist/preflight/rpc-network.js.map +1 -1
- package/dist/rpc/transport.d.ts +109 -0
- package/dist/rpc/transport.js +220 -0
- package/dist/rpc/transport.js.map +1 -0
- package/dist/scripts/donation-consumption-acceptance.js +7 -28
- package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
- package/dist/scripts/swe-rebench-v2-pytest-missing.json +16 -0
- package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
- package/dist/solver-nets/prediction-operator-ux.js +56 -53
- package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
- package/dist/solver-nets/registry.d.ts +19 -1
- package/dist/solver-nets/registry.js +37 -24
- package/dist/solver-nets/registry.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
- package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
- package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-state.d.ts +15 -0
- package/dist/solver-types/_swe-rebench-v2-state.js +19 -0
- package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +80 -2
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +242 -21
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2-auto.d.ts +20 -11
- package/dist/solver-types/swe-rebench-v2-auto.js +64 -19
- package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2.d.ts +8 -2
- package/dist/solver-types/swe-rebench-v2.js +127 -11
- package/dist/solver-types/swe-rebench-v2.js.map +1 -1
- package/dist/solvernets/launched-record-dispatcher.d.ts +4 -0
- package/dist/solvernets/launched-record-dispatcher.js +10 -4
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/registry-client-erc8004.js +11 -0
- package/dist/solvernets/registry-client-erc8004.js.map +1 -1
- package/dist/solvernets/store.d.ts +2 -2
- package/dist/spend/ai-units-config.d.ts +37 -0
- package/dist/spend/ai-units-config.js +26 -0
- package/dist/spend/ai-units-config.js.map +1 -0
- package/dist/spend/ai-units.d.ts +86 -0
- package/dist/spend/ai-units.js +163 -0
- package/dist/spend/ai-units.js.map +1 -0
- package/dist/spend/cost-surface-status.d.ts +10 -0
- package/dist/spend/cost-surface-status.js +22 -0
- package/dist/spend/cost-surface-status.js.map +1 -0
- package/dist/spend/credential.d.ts +8 -0
- package/dist/spend/credential.js +30 -0
- package/dist/spend/credential.js.map +1 -0
- package/dist/spend/daemon-config.d.ts +13 -0
- package/dist/spend/daemon-config.js +24 -0
- package/dist/spend/daemon-config.js.map +1 -0
- package/dist/spend/pricing.d.ts +16 -0
- package/dist/spend/pricing.js +26 -0
- package/dist/spend/pricing.js.map +1 -0
- package/dist/spend/record.d.ts +13 -0
- package/dist/spend/record.js +36 -0
- package/dist/spend/record.js.map +1 -0
- package/dist/spend/usage.d.ts +27 -0
- package/dist/spend/usage.js +113 -0
- package/dist/spend/usage.js.map +1 -0
- package/dist/store/store.d.ts +101 -0
- package/dist/store/store.js +304 -4
- package/dist/store/store.js.map +1 -1
- package/dist/trajectory/transcript-parsers/codex-session.d.ts +12 -6
- package/dist/trajectory/transcript-parsers/codex-session.js +114 -13
- package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
- package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
- package/dist/trajectory/transcript-session-dirs.d.ts +18 -0
- package/dist/trajectory/transcript-session-dirs.js +85 -0
- package/dist/trajectory/transcript-session-dirs.js.map +1 -0
- package/dist/trajectory/transcript-watcher.d.ts +20 -1
- package/dist/trajectory/transcript-watcher.js +98 -32
- package/dist/trajectory/transcript-watcher.js.map +1 -1
- package/dist/tx-retry.d.ts +15 -0
- package/dist/tx-retry.js +37 -7
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/payloads/portfolio-v0.d.ts +3 -3
- package/dist/types/payloads/prediction-apy-v0.d.ts +3 -3
- package/dist/types/payloads/prediction-v0.d.ts +12 -12
- package/package.json +10 -3
- package/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
- package/plugins/learner/skills/learn/promoter-prompt.md +72 -1
- package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
- package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
- package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
- package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
- package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
- package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
- package/plugins/swe-rebench-v2-runtime/README.md +6 -6
- package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
- package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +81 -0
- package/dist/dashboard/assets/index-BUlE8F3Y.js +0 -330
- package/dist/dashboard/assets/index-blqc7eqq.css +0 -32
- package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
- 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
|
|
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<
|
|
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<
|
|
231
|
+
publishContentV2(args: PublishContentV2Args): Promise<PublishContentResult>;
|
|
216
232
|
private _writeMetadata;
|
|
217
233
|
}
|
|
218
234
|
/**
|
package/dist/erc8004/identity.js
CHANGED
|
@@ -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
|
|
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
|
|
300
|
-
//
|
|
301
|
-
//
|
|
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
|
-
|
|
304
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,mBAAmB,EAAkD,MAAM,MAAM,CAAC;AAG3F,OAAO,EACL,kCAAkC,EAClC,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EAAE,kCAAkC,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/erc8004/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/erc8004/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/events/types.d.ts
CHANGED
|
@@ -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" | "
|
|
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" | "
|
|
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
|
|
21
|
-
* `
|
|
22
|
-
*
|
|
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`.
|
|
27
|
-
*
|
|
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
|
-
* -
|
|
137
|
-
* - unknown model on a paid
|
|
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(
|
|
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
|
|
21
|
-
* `
|
|
22
|
-
*
|
|
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`.
|
|
27
|
-
*
|
|
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
|
-
* -
|
|
251
|
-
* - unknown model on a paid
|
|
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(
|
|
255
|
-
if (!
|
|
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":"AAAA
|
|
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()` —
|
|
333
|
-
*
|
|
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()` —
|
|
154
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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}`);
|