@taifoon/jev 0.2.5 → 0.2.7
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 +11 -1
- package/docs/WORKFLOWS.md +9 -7
- package/package.json +1 -1
- package/workflows/0.2.7/README.md +107 -0
- package/workflows/0.2.7/batch-judge.json +341 -0
- package/workflows/0.2.7/hire-judge-settle.json +819 -0
- package/workflows/0.2.7/jev-grader.json +433 -0
- package/workflows/0.2.7/manifest.json +151 -0
- package/workflows/0.2.7/schemas/answers.json +230 -0
- package/workflows/0.2.7/schemas/common.json +394 -0
- package/workflows/0.2.7/schemas/delivery.json +217 -0
- package/workflows/0.2.7/schemas/facts.json +209 -0
- package/workflows/0.2.7/schemas/hire.json +314 -0
- package/workflows/0.2.7/schemas/job.json +88 -0
- package/workflows/0.2.7/schemas/settlement.json +209 -0
- package/workflows/0.2.7/schemas/verdict.json +296 -0
- package/workflows/0.2.7/stamp-grade.json +175 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://www.taifoon.io/schemas/coordination/v1/answers.json",
|
|
4
|
+
"title": "ANSWERS — what Jev answered (jev.answer.v1)",
|
|
5
|
+
"description": "Every question and every answer with its whole distribution, the model and who paid, exactly the jev.answer.v1 record: answers_digest = sha256(canonical JSON of the record fields) recomputes from this entity alone.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema": {
|
|
9
|
+
"const": "taifoon.answers.v1",
|
|
10
|
+
"x-stage": "L",
|
|
11
|
+
"description": "which canonical entity this record is; fixed per schema"
|
|
12
|
+
},
|
|
13
|
+
"answers_digest": {
|
|
14
|
+
"$ref": "common.json#/$defs/bytes32",
|
|
15
|
+
"x-stage": "S5"
|
|
16
|
+
},
|
|
17
|
+
"v": {
|
|
18
|
+
"const": "jev.answer.v1",
|
|
19
|
+
"x-stage": "S5"
|
|
20
|
+
},
|
|
21
|
+
"use_case": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"pattern": "^[a-z0-9][a-z0-9._/-]{0,63}$",
|
|
24
|
+
"x-stage": "S5"
|
|
25
|
+
},
|
|
26
|
+
"subject": {
|
|
27
|
+
"$ref": "common.json#/$defs/bytes32",
|
|
28
|
+
"x-stage": "S5"
|
|
29
|
+
},
|
|
30
|
+
"input_digest": {
|
|
31
|
+
"anyOf": [
|
|
32
|
+
{
|
|
33
|
+
"$ref": "common.json#/$defs/bytes32"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": "null"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"x-stage": "S5"
|
|
40
|
+
},
|
|
41
|
+
"questions": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"items": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"properties": {
|
|
46
|
+
"id": {
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
49
|
+
"kind": {
|
|
50
|
+
"enum": [
|
|
51
|
+
"choice",
|
|
52
|
+
"noul",
|
|
53
|
+
"score"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"text": {
|
|
57
|
+
"type": [
|
|
58
|
+
"string",
|
|
59
|
+
"null"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"options": {
|
|
63
|
+
"anyOf": [
|
|
64
|
+
{
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": {
|
|
67
|
+
"type": "string"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "object",
|
|
72
|
+
"additionalProperties": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "null"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"required": [
|
|
83
|
+
"id",
|
|
84
|
+
"kind",
|
|
85
|
+
"text",
|
|
86
|
+
"options"
|
|
87
|
+
],
|
|
88
|
+
"additionalProperties": false
|
|
89
|
+
},
|
|
90
|
+
"x-stage": "S5"
|
|
91
|
+
},
|
|
92
|
+
"answers": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"items": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"properties": {
|
|
97
|
+
"id": {
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
"value": {
|
|
101
|
+
"type": [
|
|
102
|
+
"string",
|
|
103
|
+
"boolean",
|
|
104
|
+
"number",
|
|
105
|
+
"null"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"distribution": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"additionalProperties": {
|
|
111
|
+
"type": "number",
|
|
112
|
+
"minimum": 0,
|
|
113
|
+
"maximum": 1
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"confidence": {
|
|
117
|
+
"type": [
|
|
118
|
+
"number",
|
|
119
|
+
"null"
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"required": [
|
|
124
|
+
"id",
|
|
125
|
+
"value",
|
|
126
|
+
"distribution",
|
|
127
|
+
"confidence"
|
|
128
|
+
],
|
|
129
|
+
"additionalProperties": false
|
|
130
|
+
},
|
|
131
|
+
"minItems": 1,
|
|
132
|
+
"x-stage": "S5"
|
|
133
|
+
},
|
|
134
|
+
"model": {
|
|
135
|
+
"type": [
|
|
136
|
+
"string",
|
|
137
|
+
"null"
|
|
138
|
+
],
|
|
139
|
+
"x-stage": "S5"
|
|
140
|
+
},
|
|
141
|
+
"upstream_model": {
|
|
142
|
+
"type": [
|
|
143
|
+
"string",
|
|
144
|
+
"null"
|
|
145
|
+
],
|
|
146
|
+
"x-stage": "S5"
|
|
147
|
+
},
|
|
148
|
+
"latency_ms": {
|
|
149
|
+
"type": [
|
|
150
|
+
"integer",
|
|
151
|
+
"null"
|
|
152
|
+
],
|
|
153
|
+
"x-stage": "S5"
|
|
154
|
+
},
|
|
155
|
+
"credential_path": {
|
|
156
|
+
"enum": [
|
|
157
|
+
"trial",
|
|
158
|
+
"layer",
|
|
159
|
+
"caller-credential",
|
|
160
|
+
"registry"
|
|
161
|
+
],
|
|
162
|
+
"x-stage": "S5"
|
|
163
|
+
},
|
|
164
|
+
"caller": {
|
|
165
|
+
"enum": [
|
|
166
|
+
"site",
|
|
167
|
+
"mcp",
|
|
168
|
+
"n8n",
|
|
169
|
+
"registry",
|
|
170
|
+
"moonbeam",
|
|
171
|
+
"runner"
|
|
172
|
+
],
|
|
173
|
+
"x-stage": "S5"
|
|
174
|
+
},
|
|
175
|
+
"at": {
|
|
176
|
+
"$ref": "common.json#/$defs/unix_ms",
|
|
177
|
+
"x-stage": "S5"
|
|
178
|
+
},
|
|
179
|
+
"decision_id": {
|
|
180
|
+
"type": [
|
|
181
|
+
"string",
|
|
182
|
+
"null"
|
|
183
|
+
],
|
|
184
|
+
"x-stage": "S5"
|
|
185
|
+
},
|
|
186
|
+
"decision_digest": {
|
|
187
|
+
"anyOf": [
|
|
188
|
+
{
|
|
189
|
+
"$ref": "common.json#/$defs/bytes32"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"type": "null"
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
"x-stage": "S5"
|
|
196
|
+
},
|
|
197
|
+
"anchors": {
|
|
198
|
+
"type": "array",
|
|
199
|
+
"items": {
|
|
200
|
+
"$ref": "common.json#/$defs/anchor"
|
|
201
|
+
},
|
|
202
|
+
"x-stage": "S6"
|
|
203
|
+
},
|
|
204
|
+
"source": {
|
|
205
|
+
"$ref": "common.json#/$defs/source",
|
|
206
|
+
"x-stage": "L"
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"required": [
|
|
210
|
+
"schema",
|
|
211
|
+
"answers_digest",
|
|
212
|
+
"v",
|
|
213
|
+
"use_case",
|
|
214
|
+
"subject",
|
|
215
|
+
"input_digest",
|
|
216
|
+
"questions",
|
|
217
|
+
"answers",
|
|
218
|
+
"model",
|
|
219
|
+
"upstream_model",
|
|
220
|
+
"latency_ms",
|
|
221
|
+
"credential_path",
|
|
222
|
+
"caller",
|
|
223
|
+
"at",
|
|
224
|
+
"decision_id",
|
|
225
|
+
"decision_digest",
|
|
226
|
+
"anchors",
|
|
227
|
+
"source"
|
|
228
|
+
],
|
|
229
|
+
"additionalProperties": false
|
|
230
|
+
}
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://www.taifoon.io/schemas/coordination/v1/common.json",
|
|
4
|
+
"title": "common definitions",
|
|
5
|
+
"description": "Shared value shapes: addresses, hashes, amounts, the identity keys (job_key, agent_key), anchors and the source stamp every entity carries.",
|
|
6
|
+
"$defs": {
|
|
7
|
+
"address": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"pattern": "^0x[0-9a-f]{40}$",
|
|
10
|
+
"description": "20-byte EVM address, lower-case (mappers lower-case every address they read)"
|
|
11
|
+
},
|
|
12
|
+
"bytes32": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^0x[0-9a-f]{64}$",
|
|
15
|
+
"description": "32-byte hex, lower-case: a transaction hash, a digest, a bytes32 job id"
|
|
16
|
+
},
|
|
17
|
+
"uint_string": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"pattern": "^[0-9]{1,78}$",
|
|
20
|
+
"description": "an unsigned integer in the token’s smallest unit, as a decimal string (never a float)"
|
|
21
|
+
},
|
|
22
|
+
"chain_id": {
|
|
23
|
+
"type": "integer",
|
|
24
|
+
"minimum": 1
|
|
25
|
+
},
|
|
26
|
+
"unix_s": {
|
|
27
|
+
"type": "integer",
|
|
28
|
+
"minimum": 0,
|
|
29
|
+
"description": "unix seconds (block time when read from a chain)"
|
|
30
|
+
},
|
|
31
|
+
"unix_ms": {
|
|
32
|
+
"type": "integer",
|
|
33
|
+
"minimum": 0
|
|
34
|
+
},
|
|
35
|
+
"lane": {
|
|
36
|
+
"enum": [
|
|
37
|
+
"erc8183",
|
|
38
|
+
"erc8183-extra",
|
|
39
|
+
"memo-acp",
|
|
40
|
+
"hook",
|
|
41
|
+
"handshake",
|
|
42
|
+
"olas-mech",
|
|
43
|
+
"grid"
|
|
44
|
+
],
|
|
45
|
+
"description": "which ledger or rail a job lives on: erc8183 (Virtuals ACP v3 on Base) · erc8183-extra (another ERC-8183 deployment, e.g. BitAgent) · memo-acp (Virtuals JobManager) · hook (assurance hook: layer or Moonbeam) · handshake (the layer’s offer, before any job) · olas-mech · grid"
|
|
46
|
+
},
|
|
47
|
+
"protocol": {
|
|
48
|
+
"enum": [
|
|
49
|
+
"erc8004",
|
|
50
|
+
"erc8183",
|
|
51
|
+
"memo-acp",
|
|
52
|
+
"bitagent",
|
|
53
|
+
"mcp",
|
|
54
|
+
"a2a",
|
|
55
|
+
"a2a-legacy",
|
|
56
|
+
"x402",
|
|
57
|
+
"n8n",
|
|
58
|
+
"webhook",
|
|
59
|
+
"olas-mech",
|
|
60
|
+
"phala-tee",
|
|
61
|
+
"grid",
|
|
62
|
+
"rest"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"lifecycle_state": {
|
|
66
|
+
"enum": [
|
|
67
|
+
"Open",
|
|
68
|
+
"Delivered",
|
|
69
|
+
"Created",
|
|
70
|
+
"Funded",
|
|
71
|
+
"Submitted",
|
|
72
|
+
"Graded",
|
|
73
|
+
"Held",
|
|
74
|
+
"Settled",
|
|
75
|
+
"Rejected",
|
|
76
|
+
"Expired",
|
|
77
|
+
"Cheat",
|
|
78
|
+
"Cancelled"
|
|
79
|
+
],
|
|
80
|
+
"description": "a state of transitions.json (src/machine.ts)"
|
|
81
|
+
},
|
|
82
|
+
"ending": {
|
|
83
|
+
"enum": [
|
|
84
|
+
"open",
|
|
85
|
+
"lapsed_unfunded",
|
|
86
|
+
"completed",
|
|
87
|
+
"rejected_delivered",
|
|
88
|
+
"rejected_undelivered",
|
|
89
|
+
"expired_delivered",
|
|
90
|
+
"expired_undelivered",
|
|
91
|
+
"cheated"
|
|
92
|
+
],
|
|
93
|
+
"description": "the observatory’s ending (trails.mjs endingOf, plus the lapsed_unfunded override)"
|
|
94
|
+
},
|
|
95
|
+
"verdict_class": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"pattern": "^(correct|incorrect|undecided|excluded:[a-z_]+)$",
|
|
98
|
+
"description": "the seller-verdict rule (trails.mjs verdictOf): correct · incorrect · undecided · excluded:<reason>"
|
|
99
|
+
},
|
|
100
|
+
"ref_value": {
|
|
101
|
+
"enum": [
|
|
102
|
+
"delivered_as_specified",
|
|
103
|
+
"delivered_with_defects",
|
|
104
|
+
"not_delivered",
|
|
105
|
+
"cannot_determine"
|
|
106
|
+
],
|
|
107
|
+
"description": "the REF vocabulary (judge-client REF_OPTIONS; DET from events uses the same four)"
|
|
108
|
+
},
|
|
109
|
+
"job_key": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"pattern": "^(hs:hs_[0-9a-f]{24}|[a-z][a-z0-9-]{0,31}:[1-9][0-9]{0,9}:(0x[0-9a-f]{64}|[0-9]{1,78}))$",
|
|
112
|
+
"description": "THE job identity: <label>:<chainId>:<id>. erc8183:8453:81067 (Virtuals ACP v3) · memo-acp:8453:1003562337 · bitagent:8453:8941 (extra deployment: exactly the observatory’s key) · hook:8453:0x5bf2… (assurance hook, bytes32) · hs:hs_… (a handshake before any job). src/ids.ts parses and formats it."
|
|
113
|
+
},
|
|
114
|
+
"agent_key": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"pattern": "^(erc8004:[1-9][0-9]{0,9}:[0-9]{1,78}|evm:[1-9][0-9]{0,9}:0x[0-9a-f]{40}|url:https?://[^\\s]+)$",
|
|
117
|
+
"description": "THE agent identity: erc8004:<chainId>:<agentId> when an ERC-8004 identity is known · evm:<chainId>:<address> for a party known only by its address (an ERC-8183 provider, a memo-ACP seller) · url:<card url> for a card with neither"
|
|
118
|
+
},
|
|
119
|
+
"token": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"properties": {
|
|
122
|
+
"address": {
|
|
123
|
+
"anyOf": [
|
|
124
|
+
{
|
|
125
|
+
"$ref": "common.json#/$defs/address"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"type": "null"
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
"symbol": {
|
|
133
|
+
"type": [
|
|
134
|
+
"string",
|
|
135
|
+
"null"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"decimals": {
|
|
139
|
+
"type": [
|
|
140
|
+
"integer",
|
|
141
|
+
"null"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"required": [
|
|
146
|
+
"address",
|
|
147
|
+
"symbol",
|
|
148
|
+
"decimals"
|
|
149
|
+
],
|
|
150
|
+
"additionalProperties": false
|
|
151
|
+
},
|
|
152
|
+
"amount": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"additionalProperties": false,
|
|
155
|
+
"required": [
|
|
156
|
+
"raw",
|
|
157
|
+
"value",
|
|
158
|
+
"token"
|
|
159
|
+
],
|
|
160
|
+
"properties": {
|
|
161
|
+
"raw": {
|
|
162
|
+
"anyOf": [
|
|
163
|
+
{
|
|
164
|
+
"$ref": "common.json#/$defs/uint_string"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"type": "null"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
"value": {
|
|
172
|
+
"type": [
|
|
173
|
+
"number",
|
|
174
|
+
"null"
|
|
175
|
+
],
|
|
176
|
+
"description": "raw / 10^decimals, for reading; the raw value is authoritative"
|
|
177
|
+
},
|
|
178
|
+
"token": {
|
|
179
|
+
"anyOf": [
|
|
180
|
+
{
|
|
181
|
+
"$ref": "common.json#/$defs/token"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"type": "null"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"job_ref": {
|
|
191
|
+
"type": "object",
|
|
192
|
+
"properties": {
|
|
193
|
+
"key": {
|
|
194
|
+
"$ref": "common.json#/$defs/job_key"
|
|
195
|
+
},
|
|
196
|
+
"lane": {
|
|
197
|
+
"$ref": "common.json#/$defs/lane"
|
|
198
|
+
},
|
|
199
|
+
"chain_id": {
|
|
200
|
+
"anyOf": [
|
|
201
|
+
{
|
|
202
|
+
"$ref": "common.json#/$defs/chain_id"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"type": "null"
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
"id": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"description": "the id as its own ledger writes it (bytes32 hex, decimal, or hs_…)"
|
|
212
|
+
},
|
|
213
|
+
"contract": {
|
|
214
|
+
"anyOf": [
|
|
215
|
+
{
|
|
216
|
+
"$ref": "common.json#/$defs/address"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"type": "null"
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"required": [
|
|
225
|
+
"key",
|
|
226
|
+
"lane",
|
|
227
|
+
"chain_id",
|
|
228
|
+
"id",
|
|
229
|
+
"contract"
|
|
230
|
+
],
|
|
231
|
+
"additionalProperties": false
|
|
232
|
+
},
|
|
233
|
+
"chain_anchor": {
|
|
234
|
+
"type": "object",
|
|
235
|
+
"properties": {
|
|
236
|
+
"kind": {
|
|
237
|
+
"const": "chain"
|
|
238
|
+
},
|
|
239
|
+
"chain_id": {
|
|
240
|
+
"$ref": "common.json#/$defs/chain_id"
|
|
241
|
+
},
|
|
242
|
+
"tx": {
|
|
243
|
+
"$ref": "common.json#/$defs/bytes32"
|
|
244
|
+
},
|
|
245
|
+
"block": {
|
|
246
|
+
"type": [
|
|
247
|
+
"integer",
|
|
248
|
+
"null"
|
|
249
|
+
]
|
|
250
|
+
},
|
|
251
|
+
"ts": {
|
|
252
|
+
"type": [
|
|
253
|
+
"integer",
|
|
254
|
+
"null"
|
|
255
|
+
],
|
|
256
|
+
"description": "block time (unix s) when the source carried it"
|
|
257
|
+
},
|
|
258
|
+
"log_index": {
|
|
259
|
+
"type": [
|
|
260
|
+
"integer",
|
|
261
|
+
"null"
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
"contract": {
|
|
265
|
+
"anyOf": [
|
|
266
|
+
{
|
|
267
|
+
"$ref": "common.json#/$defs/address"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"type": "null"
|
|
271
|
+
}
|
|
272
|
+
]
|
|
273
|
+
},
|
|
274
|
+
"what": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"description": "what this transaction did, in words (event or call)"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"required": [
|
|
280
|
+
"kind",
|
|
281
|
+
"chain_id",
|
|
282
|
+
"tx",
|
|
283
|
+
"block",
|
|
284
|
+
"ts",
|
|
285
|
+
"log_index",
|
|
286
|
+
"contract",
|
|
287
|
+
"what"
|
|
288
|
+
],
|
|
289
|
+
"additionalProperties": false
|
|
290
|
+
},
|
|
291
|
+
"offchain_anchor": {
|
|
292
|
+
"type": "object",
|
|
293
|
+
"properties": {
|
|
294
|
+
"kind": {
|
|
295
|
+
"const": "offchain"
|
|
296
|
+
},
|
|
297
|
+
"store": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"description": "where the record lives: observatory, coordd:<prefix>, registry, card-url, n8n"
|
|
300
|
+
},
|
|
301
|
+
"key": {
|
|
302
|
+
"type": "string"
|
|
303
|
+
},
|
|
304
|
+
"digest": {
|
|
305
|
+
"anyOf": [
|
|
306
|
+
{
|
|
307
|
+
"$ref": "common.json#/$defs/bytes32"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"type": "null"
|
|
311
|
+
}
|
|
312
|
+
]
|
|
313
|
+
},
|
|
314
|
+
"anchored_by": {
|
|
315
|
+
"anyOf": [
|
|
316
|
+
{
|
|
317
|
+
"$ref": "#/$defs/chain_anchor"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"type": "null"
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"description": "the transaction that pins this off-chain record, when one does"
|
|
324
|
+
},
|
|
325
|
+
"what": {
|
|
326
|
+
"type": "string"
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"required": [
|
|
330
|
+
"kind",
|
|
331
|
+
"store",
|
|
332
|
+
"key",
|
|
333
|
+
"digest",
|
|
334
|
+
"anchored_by",
|
|
335
|
+
"what"
|
|
336
|
+
],
|
|
337
|
+
"additionalProperties": false
|
|
338
|
+
},
|
|
339
|
+
"anchor": {
|
|
340
|
+
"oneOf": [
|
|
341
|
+
{
|
|
342
|
+
"$ref": "#/$defs/chain_anchor"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"$ref": "#/$defs/offchain_anchor"
|
|
346
|
+
}
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
"source": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"properties": {
|
|
352
|
+
"kind": {
|
|
353
|
+
"enum": [
|
|
354
|
+
"observatory-job",
|
|
355
|
+
"handshake",
|
|
356
|
+
"n8n-hire-item",
|
|
357
|
+
"registry-agent",
|
|
358
|
+
"harvester-row",
|
|
359
|
+
"erc8004-registration",
|
|
360
|
+
"a2a-card",
|
|
361
|
+
"mcp-server",
|
|
362
|
+
"decision",
|
|
363
|
+
"jev-answer",
|
|
364
|
+
"settle-record",
|
|
365
|
+
"pool-quote",
|
|
366
|
+
"hire-lifecycle",
|
|
367
|
+
"evidence-pack",
|
|
368
|
+
"job-classes"
|
|
369
|
+
],
|
|
370
|
+
"description": "which real source this record was mapped from"
|
|
371
|
+
},
|
|
372
|
+
"url": {
|
|
373
|
+
"type": [
|
|
374
|
+
"string",
|
|
375
|
+
"null"
|
|
376
|
+
]
|
|
377
|
+
},
|
|
378
|
+
"read_at": {
|
|
379
|
+
"type": [
|
|
380
|
+
"integer",
|
|
381
|
+
"null"
|
|
382
|
+
],
|
|
383
|
+
"description": "unix seconds when the source was read, when known"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"required": [
|
|
387
|
+
"kind",
|
|
388
|
+
"url",
|
|
389
|
+
"read_at"
|
|
390
|
+
],
|
|
391
|
+
"additionalProperties": false
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|