mycomesh-consumer 0.1.53 → 0.2.0

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/src/sse.mjs ADDED
@@ -0,0 +1,101 @@
1
+ // Buffered SSE for OpenAI clients (Codex needs the Responses event sequence).
2
+ // Port of the event order in the former gateway/openai_protocol.py.
3
+ import { randomUUID } from "node:crypto";
4
+
5
+ const TERMINAL = { completed: "response.completed", incomplete: "response.incomplete", failed: "response.failed" };
6
+ const PREFIX = { message: "msg", reasoning: "rs", function_call: "fc", custom_tool_call: "ct" };
7
+
8
+ const sse = (event) => `event: ${event.type}\ndata: ${JSON.stringify(event)}\n\n`;
9
+
10
+ function normalize(payload) {
11
+ const response = structuredClone(payload || {});
12
+ response.id ||= `resp_${randomUUID().replace(/-/g, "")}`;
13
+ response.object ||= "response";
14
+ response.created_at ||= Math.floor(Date.now() / 1000);
15
+ response.status = TERMINAL[response.status] ? response.status : "completed";
16
+ response.output = (Array.isArray(response.output) ? response.output : []).filter((item) => item && typeof item === "object")
17
+ .map((item) => ({ ...item, type: item.type || "unknown", id: item.id || `${PREFIX[item.type] || "item"}_${randomUUID().replace(/-/g, "")}` }));
18
+ response.error ??= null;
19
+ response.incomplete_details ??= null;
20
+ if (typeof response.output_text !== "string") {
21
+ response.output_text = response.output.filter((item) => item.type === "message")
22
+ .flatMap((item) => item.content || []).filter((part) => part.type === "output_text").map((part) => part.text || "").join("");
23
+ }
24
+ return response;
25
+ }
26
+
27
+ function added(item) {
28
+ const copy = structuredClone(item);
29
+ copy.status = "in_progress";
30
+ if (copy.type === "message") copy.content = [];
31
+ if (copy.type === "reasoning") { copy.summary = []; if ("content" in copy) copy.content = []; }
32
+ if (copy.type === "function_call") copy.arguments = "";
33
+ if (copy.type === "custom_tool_call") copy.input = "";
34
+ return copy;
35
+ }
36
+
37
+ export function responseSse(payload) {
38
+ const final = normalize(payload);
39
+ const out = [];
40
+ let sequence = 0;
41
+ const emit = (type, fields) => out.push(sse({ type, sequence_number: sequence++, ...fields }));
42
+ const created = { ...structuredClone(final), status: "in_progress", output: [], output_text: "", usage: null };
43
+ emit("response.created", { response: created });
44
+ emit("response.in_progress", { response: created });
45
+ final.output.forEach((item, output_index) => {
46
+ const item_id = item.id;
47
+ emit("response.output_item.added", { output_index, item: added(item) });
48
+ if (item.type === "message") {
49
+ (item.content || []).forEach((part, content_index) => {
50
+ emit("response.content_part.added", { item_id, output_index, content_index, part: { ...part, text: part.type === "output_text" ? "" : part.text } });
51
+ if (part.type === "output_text") {
52
+ if (part.text) emit("response.output_text.delta", { item_id, output_index, content_index, delta: part.text, logprobs: [] });
53
+ emit("response.output_text.done", { item_id, output_index, content_index, text: part.text || "", logprobs: [] });
54
+ }
55
+ emit("response.content_part.done", { item_id, output_index, content_index, part });
56
+ });
57
+ } else if (item.type === "reasoning") {
58
+ (item.summary || []).forEach((part, summary_index) => {
59
+ emit("response.reasoning_summary_part.added", { item_id, output_index, summary_index, part: { ...part, type: "summary_text", text: "" } });
60
+ if (part.text) emit("response.reasoning_summary_text.delta", { item_id, output_index, summary_index, delta: part.text });
61
+ emit("response.reasoning_summary_text.done", { item_id, output_index, summary_index, text: part.text || "" });
62
+ emit("response.reasoning_summary_part.done", { item_id, output_index, summary_index, part });
63
+ });
64
+ } else if (item.type === "function_call") {
65
+ if (item.arguments) emit("response.function_call_arguments.delta", { item_id, output_index, delta: item.arguments });
66
+ emit("response.function_call_arguments.done", { item_id, output_index, call_id: item.call_id || "", name: item.name || "", arguments: item.arguments || "" });
67
+ } else if (item.type === "custom_tool_call") {
68
+ if (item.input) emit("response.custom_tool_call_input.delta", { item_id, output_index, delta: item.input });
69
+ emit("response.custom_tool_call_input.done", { item_id, output_index, call_id: item.call_id || "", name: item.name || "", input: item.input || "" });
70
+ }
71
+ emit("response.output_item.done", { output_index, item });
72
+ });
73
+ emit(TERMINAL[final.status], { response: final });
74
+ return out.join("");
75
+ }
76
+
77
+ export function chatSse(payload, { includeUsage = false } = {}) {
78
+ const id = payload.id || `chatcmpl_${randomUUID().replace(/-/g, "")}`;
79
+ const model = payload.model || "";
80
+ const created = payload.created || Math.floor(Date.now() / 1000);
81
+ const chunk = (index, delta, finish_reason) =>
82
+ `data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model, choices: [{ index, delta, finish_reason }] })}\n\n`;
83
+ const out = [];
84
+ (payload.choices || []).forEach((choice, fallback) => {
85
+ const index = Number.isInteger(choice.index) ? choice.index : fallback;
86
+ const message = choice.message || {};
87
+ out.push(chunk(index, { role: message.role || "assistant" }, null));
88
+ if (typeof message.content === "string" && message.content) out.push(chunk(index, { content: message.content }, null));
89
+ const tools = Array.isArray(message.tool_calls) ? message.tool_calls : [];
90
+ tools.forEach((tool, toolIndex) => out.push(chunk(index, { tool_calls: [{
91
+ index: toolIndex, id: tool.id || `call_${randomUUID().slice(0, 24)}`, type: tool.type || "function",
92
+ function: { name: tool.function?.name || "", arguments: tool.function?.arguments || "" },
93
+ }] }, null)));
94
+ out.push(chunk(index, {}, choice.finish_reason || (tools.length ? "tool_calls" : "stop")));
95
+ });
96
+ if (includeUsage && payload.usage) {
97
+ out.push(`data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model, choices: [], usage: payload.usage })}\n\n`);
98
+ }
99
+ out.push("data: [DONE]\n\n");
100
+ return out.join("");
101
+ }
package/bin/mycomesh.mjs DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { isApiInvocation } from "../src/consumer.mjs";
4
-
5
- const argv = process.argv.slice(2);
6
- const { main } = isApiInvocation(argv)
7
- ? await import("../src/cli.mjs")
8
- : await import("../src/consumer.mjs");
9
-
10
- process.exitCode = await main(argv);
@@ -1,119 +0,0 @@
1
- {
2
- "adjudication_threshold": 2,
3
- "adjudicator_operators": {
4
- "0x5115fdff8b309aa07ee5e767d9cd5d25533f2823": "mycomesh-controlled-test-operator",
5
- "0xeadc238bc6c1e6b3f776de26a55fbd818047c2a3": "mycomesh-controlled-test-operator",
6
- "0xf2f59bad1187a6a5dceec6c1ca8626d2c59bd6bc": "mycomesh-controlled-test-operator"
7
- },
8
- "adjudicators": [
9
- "0xeadc238bc6c1e6b3f776de26a55fbd818047c2a3",
10
- "0x5115fdff8b309aa07ee5e767d9cd5d25533f2823",
11
- "0xf2f59bad1187a6a5dceec6c1ca8626d2c59bd6bc"
12
- ],
13
- "authorization_deadline_seconds": 9000,
14
- "backend_policy": "codex-app-server-postvalidated-v1",
15
- "bridge_urls": [
16
- "https://136.0.3.126:10443",
17
- "https://166.88.96.60:10443"
18
- ],
19
- "capacity_channel_ids": [
20
- "0x9fd37b06f33945e0a68fbb7cd82ef4599044c916e9e992d11a4832fe7bd45dfa",
21
- "0xe724aa1a205789aedd3c43ac79a8bd73e7874eaa7439f26dc60fb88887bad674",
22
- "0x6e3ab14cb5240e6f59dfa51dc1f3939c10b47c2402acd60979299527e052c9f2"
23
- ],
24
- "capacity_open_tx_hash": "0x1f08405cb9ff9fc5a19074ceace64650f8c5df11fcfa6e5fd243d7bbdc703514",
25
- "chain_domain": "10",
26
- "chain_id": 11155111,
27
- "channel": "codex-standard-v1",
28
- "channel_hash": "0xdedf8b58276b80863f354409c963cbaddf4ca7d5b866d528ff1386d74b339104",
29
- "channel_id": "codex",
30
- "committee_mode": "controlled_test",
31
- "consumer_public_keys": [],
32
- "deployer": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
33
- "deployment_block": 11739709,
34
- "eip712_name": "MycoMesh Settlement",
35
- "eip712_version": "10",
36
- "governance": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
37
- "independence_attested": false,
38
- "max_authorization_ttl_seconds": 10800,
39
- "max_channel_duration_seconds": 604800,
40
- "network_id": "mycomesh-v10-fixed-budget-controlled-test",
41
- "network_profile": "testnet",
42
- "policy": {
43
- "arbitration_timeout": 600,
44
- "bond_penalty_recipient": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
45
- "consumer_withdrawal_delay": 300,
46
- "dispute_window": 300,
47
- "reporter_bond": 10000,
48
- "reporter_bounty_bps": 2000,
49
- "slash_bps": 10000,
50
- "slash_cap": 100000,
51
- "stable_bounty_cap": 20000,
52
- "token_minimum_exposure": 0,
53
- "token_minimum_penalty": 0,
54
- "token_reward": 0,
55
- "token_reward_cap": 0
56
- },
57
- "pricing_hash": "0x6b4460729d50e89425af70b497056cc43eba201ea9077438fca58b284fa69684",
58
- "pricing_version": 1,
59
- "protocol_version": 10,
60
- "provider_transport": "relay",
61
- "public_model_id": "gpt-5.5",
62
- "public_model_ids": [
63
- "gpt-5.5",
64
- "gpt-5.6-sol"
65
- ],
66
- "relay": {
67
- "attestation_address": "0x44d183a73b1a87801bc18b060a2ce0a7f3aecaaf",
68
- "host": "136.0.3.126",
69
- "payment_address": "0x94515c8903cca8e5aedb1437e947db39970792cc",
70
- "provider_port": 10991,
71
- "provider_tls": true,
72
- "public_url": "https://136.0.3.126:10443"
73
- },
74
- "relay_fallbacks": [
75
- {
76
- "attestation_address": "0x420b2033a61491c268c2600c95d1b64ad9b962ca",
77
- "host": "166.88.96.60",
78
- "payment_address": "0x94515c8903cca8e5aedb1437e947db39970792cc",
79
- "provider_port": 10991,
80
- "provider_tls": true,
81
- "public_url": "https://166.88.96.60:10443"
82
- }
83
- ],
84
- "require_response_proof": true,
85
- "reservation_mode": "provider_bound_channel",
86
- "reserve_input_bytes": 65536,
87
- "reserve_output_tokens": 2000,
88
- "reward_token": "0x0000000000000000000000000000000000000000",
89
- "schema_version": 1,
90
- "settlement": "0x76d9b48c83ffaf0772f7e43f468121cf07e825e5",
91
- "settlement_rpc_url": "https://ethereum-sepolia-rpc.publicnode.com",
92
- "settlement_rpc_urls": [
93
- "https://ethereum-sepolia-rpc.publicnode.com",
94
- "https://sepolia.gateway.tenderly.co"
95
- ],
96
- "stablecoin": "0xeb487c6e778248e16361dc313e4223c20d4c23b5",
97
- "stablecoin_runtime_code_keccak256": "0xec84672482c0750af490ff908151acbdfdffd04f9fee82f86efafa5ede6c30b4",
98
- "stablecoin_runtime_code_sha256": "749dd96b18353ab7bbad50de0bb854f3cb427e37953ad0c444fc55d3ed200dd1",
99
- "tls_ca_file": "v10-controlled-test.ca.crt",
100
- "treasury": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
101
- "tx_hash": "0x41afee0c470a00097c169bfff8efa42de8fde8b76e41eb226eebd6f962d55201",
102
- "fresh_channel_open_tx_hash": "0x1f08405cb9ff9fc5a19074ceace64650f8c5df11fcfa6e5fd243d7bbdc703514",
103
- "fresh_channel_open_tx_hashes": [
104
- "0x1f08405cb9ff9fc5a19074ceace64650f8c5df11fcfa6e5fd243d7bbdc703514",
105
- "0x89e903edc3b5773cd94fd9171b5c2b8e2fe71f7ea22eacc04eeed62c26c84162",
106
- "0x0a23ea37ab1b5a409687c79a8ab073bad6e599b07f2012f1bdcb174151b9d5cf"
107
- ],
108
- "fresh_channel_open_block_timestamps": [
109
- 1789916244,
110
- 1789916472,
111
- 1789916664
112
- ],
113
- "fresh_channel_valid_from": 1789917396,
114
- "fresh_channel_admit_until": 1789938996,
115
- "fresh_channel_claim_until": 1789949796,
116
- "fresh_channel_capacity": 1000000,
117
- "fresh_channel_max_fee_per_request": 100000,
118
- "fresh_channel_plan": "fresh-channel-plan-20260920f.json"
119
- }
@@ -1,25 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEKTCCApGgAwIBAgIUDwYNmg71zXD2ycqGMXfAmTtb9E8wDQYJKoZIhvcNAQEL
3
- BQAwKzEpMCcGA1UEAwwgTXljb01lc2ggSVAgdGVzdG5ldCBkZWRpY2F0ZWQgQ0Ew
4
- HhcNMjYwOTE1MDM0NjQ3WhcNMjcwOTE1MDM1NjQ3WjArMSkwJwYDVQQDDCBNeWNv
5
- TWVzaCBJUCB0ZXN0bmV0IGRlZGljYXRlZCBDQTCCAaIwDQYJKoZIhvcNAQEBBQAD
6
- ggGPADCCAYoCggGBAKSXx/8p203JtQSav+7wt7xYfWURFe0DQODb3XNIc2YFe7j4
7
- HDEiL47sDpBd4JY9NELjzA47vIRkRdLlfit5JKWy1+ozzlJ6G2qs9o3vFK+Xho8K
8
- 8D8Q6hXCUaaKPFAg6vONH0OHnCMaWmq+3gKzdgId1ci4QopjAVvaxUj/CcpFVl1E
9
- JdGjVhj+SVWE/fKb5Ullbw6UIhjpAbH4BmsOHJLfPJuw94lFWHgCJgcMWF8qxeTU
10
- fL4Kwp6hUAgH0BOiD4NsNTn4lIFnqwzb+Cu6vqSdd/poTOMvKj7sjl+tZdphtCB5
11
- DOZr066mAKlY91goM1BUD2y8ozBiDDUmJSeGp3eUy8Iuch2A9sEupDpt0z/cvs2W
12
- BXqJdbvVEMY+TFVRPkSmG2FfnWvzoHx5QD7o4dYLIrN/nD5y44NypAdpR1n1IHs0
13
- 8EF1Lae80FHM3Jwt3mLqnhAvwKqMfAr71gFxolbLhO/O2RWd11UuBIy/ORsXFUGB
14
- d/JurXmMC9kajoeg4wIDAQABo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
15
- DwEB/wQEAwIBBjAdBgNVHQ4EFgQUr/zADf47qEsS1yVwDgx6CvjN/5kwDQYJKoZI
16
- hvcNAQELBQADggGBAHnJExIh4oxx8xkLsNVKb6hQyM6814wP6gUmLLUAZXfu6LV1
17
- PoiMoeUWLd02JocyGLJnVmBgUFJHab16GUEwldYNBvnaeycrpQXP/Bu9Kl6Tr2Ku
18
- Efv8veCY+tj6GWgv/HkRGrvdn6LPhVE84zvrkLthwn262FxPqeb1dt/RkgrDBPKL
19
- YEN2QG8uyo10YSQm7jgyl22f/QrLB3jEO3lhVqzu0lKz6TZrv1ikvl1gtAV3rEfW
20
- vszRlgkJqcFV/2cZmEN6iflq3LZNlnUWxgtLaMpCGlPRnQ9sLbPTFfqMHOyeWaCS
21
- 8odcemTNIJSmiyv/3HTjcmqDt9k1UGU8PwOMeKhHe/0hbgtqAxLajiz0VFDAo9MS
22
- IH5wUcg3vY6LEV0TzkrQxobo2sAFArkJpoDafYRoZu0vnAfkQndQP66l9KzL33EP
23
- PtV09Z9vNbjGC0NpJpop2J0J69VdDk9wHHJOQHYDPSxbL8eQKcQwtkOBCq0N1u6c
24
- RQc4USIGi/decqtfJA==
25
- -----END CERTIFICATE-----
@@ -1,154 +0,0 @@
1
- {
2
- "adjudication_threshold": 2,
3
- "authorization_deadline_seconds": 9000,
4
- "backend_policy": "codex-app-server-postvalidated-v1",
5
- "bind_tx_hash": "0x31d80c9d55e6554dd309ce9effe3b559aeb7691ac52feba07087ccafa64f88c8",
6
- "bridge_urls": [
7
- "https://166.88.209.61:10443",
8
- "https://216.173.64.214:10443"
9
- ],
10
- "capacity_channel_ids": [
11
- "0xa8d7fa50d049040d84a76d2b7bc0739c70ce95c84d26be85fda51ca52d1f06dc",
12
- "0xe66fafa17f1862aa17bfb6fc8456e12915bc6fd9f41553d122cdc4e7a280fb0b",
13
- "0xe7464141820386aa00b666c9926208cb117b746c7a9a2cbd665c8b79d6240b9f"
14
- ],
15
- "chain_domain": "10",
16
- "chain_id": 11155111,
17
- "channel": "codex-standard-v1",
18
- "channel_hash": "0xdedf8b58276b80863f354409c963cbaddf4ca7d5b866d528ff1386d74b339104",
19
- "channel_id": "codex",
20
- "committee_mode": "dynamic_provider_ai_v1",
21
- "confirmations": 6,
22
- "deployer": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1",
23
- "deployment_block": 11782915,
24
- "deployment_block_hash": "0x9f0f7bab3452b11c0c06eb2fbfb414a73150a2106fee8a5221599a5ba80fa974",
25
- "deployment_class": "controlled_test",
26
- "eip712_name": "MycoMesh Settlement",
27
- "eip712_version": "10",
28
- "fresh_channel_admit_until": 1791725064,
29
- "fresh_channel_capacity": 1000000,
30
- "fresh_channel_claim_until": 1791735864,
31
- "fresh_channel_max_fee_per_request": 100000,
32
- "fresh_channel_open_block_timestamps": [
33
- 1790515212,
34
- 1790515212,
35
- 1790515212
36
- ],
37
- "fresh_channel_open_tx_hashes": [
38
- "0xcffdfa73276de1236b3828b399585f195efef444fea58bedc8a18957629dfe02",
39
- "0xcffdfa73276de1236b3828b399585f195efef444fea58bedc8a18957629dfe02",
40
- "0xcffdfa73276de1236b3828b399585f195efef444fea58bedc8a18957629dfe02"
41
- ],
42
- "fresh_channel_valid_from": 1790515464,
43
- "genesis_hash": "0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9",
44
- "governance": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1",
45
- "jury_decision_policy_hash": "0xd608c2aed84f2eeb83a56ad73ba01785124149951561bc7d2c840d31760f79cd",
46
- "jury_pool_mode": "live_registry_reputation_snapshot",
47
- "jury_provider_count_source": "ProviderJuryRegistryV1",
48
- "jury_randomness": "future_blockhash_v1",
49
- "jury_registry": "0x1f4b01f9138cbf25e646cbc2498f77a12729bae7",
50
- "jury_registry_deployment_block": 11782892,
51
- "jury_registry_deployment_block_hash": "0x5bcc90ff7aac086f912fdb2ddbb0cbd09314c0d15542462b51792cfb6d4f77b6",
52
- "jury_registry_deployment_tx_hash": "0x574617c3746afce72aa2c00784400221ffafc839e5daab26eb2ae43c593f928b",
53
- "jury_registry_governance": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1",
54
- "jury_registry_runtime_code_keccak256": "0xa08926221f2b2252ed09a63e095a233b9fd11dabf529ecc846fd7afb67ea44f3",
55
- "jury_relay_public_keys": [
56
- "32ae49e6e49e303b268ea5236ab5650c4780c2f63514999f082e60dec1c78af7",
57
- "ec4245fbdf4ca146878df705317ff7d48eea6a37a036357041631c1341268bd2"
58
- ],
59
- "jury_roster_is_unpinned": true,
60
- "jury_selection_delay_blocks": 4,
61
- "jury_size": 3,
62
- "jury_transaction_max_total_gas_cost_wei": 25000000000000000,
63
- "jury_transaction_sender_role": "self-controlled-bridge-or-relay-executor",
64
- "jury_transaction_senders": {
65
- "32ae49e6e49e303b268ea5236ab5650c4780c2f63514999f082e60dec1c78af7": "0x44aeca97a8b5f8bfe5f79805045e71b2a2e8654b",
66
- "ec4245fbdf4ca146878df705317ff7d48eea6a37a036357041631c1341268bd2": "0x69c224f4bcf8fa60ae98b2df0d2c55e2f758e30f"
67
- },
68
- "max_authorization_ttl_seconds": 10800,
69
- "max_channel_duration_seconds": 2592000,
70
- "minimum_provider_reputation": 75,
71
- "network_id": "mycomesh-v10-dynamic-provider-ai-20260926-controlled-test",
72
- "network_profile": "testnet",
73
- "policy": {
74
- "arbitration_timeout": 1800,
75
- "bond_penalty_recipient": "0xa04e6ce35bea88aef85e07a9fc58af1121f80192",
76
- "consumer_withdrawal_delay": 600,
77
- "dispute_window": 1800,
78
- "reporter_bond": 10000,
79
- "reporter_bounty_bps": 2000,
80
- "slash_bps": 10000,
81
- "slash_cap": 100000,
82
- "stable_bounty_cap": 20000,
83
- "token_minimum_exposure": 0,
84
- "token_minimum_penalty": 0,
85
- "token_reward": 0,
86
- "token_reward_cap": 0
87
- },
88
- "pricing_hash": "0xd530a940753c6bfce678d0376d01b920c4cae795962c18c870e834e043f2c638",
89
- "pricing_version": 1,
90
- "protocol_version": 10,
91
- "provider_transport": "relay",
92
- "public_model_id": "gpt-5.5",
93
- "public_model_ids": [
94
- "gpt-5.5",
95
- "gpt-5.6-sol"
96
- ],
97
- "relay": {
98
- "attestation_address": "0x684114a7d8cbb51fad3de5b0597c2938c25ce8f4",
99
- "host": "136.0.3.126",
100
- "payment_address": "0x80a9337a3c37eeffad65031e6c2a89c820b14fe3",
101
- "provider_port": 10991,
102
- "provider_tls": true,
103
- "public_url": "https://136.0.3.126:10443"
104
- },
105
- "relay_fallbacks": [
106
- {
107
- "attestation_address": "0x684114a7d8cbb51fad3de5b0597c2938c25ce8f4",
108
- "host": "166.88.96.60",
109
- "payment_address": "0x80a9337a3c37eeffad65031e6c2a89c820b14fe3",
110
- "provider_port": 10991,
111
- "provider_tls": true,
112
- "public_url": "https://166.88.96.60:10443"
113
- }
114
- ],
115
- "reputation_authority": "0xc3568672d201c97b6ed08bf0339e0e53638969fd",
116
- "reputation_history_import": {
117
- "artifact_root": "0x162ca0bc55194cf23035df8ee88dfcc07591a57ccc7a59724fe51ca996006a3f",
118
- "artifact_sha256": "737f8c8f1f2eb35340b8e7ee5ff98b64842a13689ede778f943ffc0ed07bc3b9",
119
- "confirmations": 6,
120
- "schema": "mycomesh.v10.reputation-history-import.v1",
121
- "source_chain_id": 11155111,
122
- "source_deployment_block": 11765832,
123
- "source_deployment_block_hash": "0x9f46971146002debe730de414a0916d784e6cb70b9641c277cc9826080975c33",
124
- "source_genesis_hash": "0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9",
125
- "source_history_through_block": 11783241,
126
- "source_history_through_block_hash": "0x2200911369ca3d619e16ec3336fda7c07598a225c27c01c3267ff270d84e5831",
127
- "source_network_id": "mycomesh-v10-dynamic-provider-ai-controlled-test",
128
- "source_protocol_version": 10,
129
- "source_runtime_code_hash": "0x0316452e08e61fb19eb45b6ae2f16496ca2386581f4d46d983c6d0e283dbfeba",
130
- "source_settlement_contract": "0xbb97e17156f390e4529d30d334ef56f22ec36fce"
131
- },
132
- "require_response_proof": true,
133
- "reservation_mode": "provider_bound_channel",
134
- "reserve_input_bytes": 65536,
135
- "reserve_output_tokens": 2000,
136
- "reward_token": "0x0000000000000000000000000000000000000000",
137
- "schema_version": 1,
138
- "settlement": "0x31d3f0a17c6c6f4594a2f9ffeebf72c41f9e1c3a",
139
- "tx_hash": "0xb6175d01aeb82001f77560dfe5ecc63a6b90c415a2e5b1f5f90754b11bab9bd6",
140
- "settlement_deployment_tx_hash": "0xb6175d01aeb82001f77560dfe5ecc63a6b90c415a2e5b1f5f90754b11bab9bd6",
141
- "settlement_rpc_url": "https://rpc.sepolia.ethpandaops.io",
142
- "settlement_rpc_urls": [
143
- "https://rpc.sepolia.ethpandaops.io",
144
- "https://sepolia.gateway.tenderly.co",
145
- "https://ethereum-sepolia-rpc.publicnode.com"
146
- ],
147
- "settlement_runtime_code_keccak256": "0xd649132e8a693486efac90093201250ae55d65c8f84eb3e99524a92191e51165",
148
- "source_commit": "f311cba91035be9705daf10eca44bea9590de6c8",
149
- "stablecoin": "0xeb487c6e778248e16361dc313e4223c20d4c23b5",
150
- "stablecoin_runtime_code_keccak256": "0xec84672482c0750af490ff908151acbdfdffd04f9fee82f86efafa5ede6c30b4",
151
- "stablecoin_runtime_code_sha256": "749dd96b18353ab7bbad50de0bb854f3cb427e37953ad0c444fc55d3ed200dd1",
152
- "tls_ca_file": "v10-dynamic-20260926.ca.crt",
153
- "treasury": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1"
154
- }