z0gcode 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.
@@ -0,0 +1,424 @@
1
+ {
2
+ "contractName": "Z0gSession",
3
+ "abi": [
4
+ {
5
+ "anonymous": false,
6
+ "inputs": [
7
+ {
8
+ "indexed": true,
9
+ "internalType": "address",
10
+ "name": "owner",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "indexed": true,
15
+ "internalType": "address",
16
+ "name": "approved",
17
+ "type": "address"
18
+ },
19
+ {
20
+ "indexed": true,
21
+ "internalType": "uint256",
22
+ "name": "tokenId",
23
+ "type": "uint256"
24
+ }
25
+ ],
26
+ "name": "Approval",
27
+ "type": "event"
28
+ },
29
+ {
30
+ "anonymous": false,
31
+ "inputs": [
32
+ {
33
+ "indexed": true,
34
+ "internalType": "address",
35
+ "name": "owner",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "indexed": true,
40
+ "internalType": "address",
41
+ "name": "operator",
42
+ "type": "address"
43
+ },
44
+ {
45
+ "indexed": false,
46
+ "internalType": "bool",
47
+ "name": "approved",
48
+ "type": "bool"
49
+ }
50
+ ],
51
+ "name": "ApprovalForAll",
52
+ "type": "event"
53
+ },
54
+ {
55
+ "anonymous": false,
56
+ "inputs": [
57
+ {
58
+ "indexed": true,
59
+ "internalType": "uint256",
60
+ "name": "tokenId",
61
+ "type": "uint256"
62
+ },
63
+ {
64
+ "indexed": true,
65
+ "internalType": "address",
66
+ "name": "to",
67
+ "type": "address"
68
+ },
69
+ {
70
+ "indexed": false,
71
+ "internalType": "string",
72
+ "name": "root",
73
+ "type": "string"
74
+ }
75
+ ],
76
+ "name": "Minted",
77
+ "type": "event"
78
+ },
79
+ {
80
+ "anonymous": false,
81
+ "inputs": [
82
+ {
83
+ "indexed": true,
84
+ "internalType": "address",
85
+ "name": "from",
86
+ "type": "address"
87
+ },
88
+ {
89
+ "indexed": true,
90
+ "internalType": "address",
91
+ "name": "to",
92
+ "type": "address"
93
+ },
94
+ {
95
+ "indexed": true,
96
+ "internalType": "uint256",
97
+ "name": "tokenId",
98
+ "type": "uint256"
99
+ }
100
+ ],
101
+ "name": "Transfer",
102
+ "type": "event"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "address",
108
+ "name": "to",
109
+ "type": "address"
110
+ },
111
+ {
112
+ "internalType": "uint256",
113
+ "name": "tokenId",
114
+ "type": "uint256"
115
+ }
116
+ ],
117
+ "name": "approve",
118
+ "outputs": [],
119
+ "stateMutability": "nonpayable",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "owner",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "balanceOf",
131
+ "outputs": [
132
+ {
133
+ "internalType": "uint256",
134
+ "name": "",
135
+ "type": "uint256"
136
+ }
137
+ ],
138
+ "stateMutability": "view",
139
+ "type": "function"
140
+ },
141
+ {
142
+ "inputs": [
143
+ {
144
+ "internalType": "uint256",
145
+ "name": "tokenId",
146
+ "type": "uint256"
147
+ }
148
+ ],
149
+ "name": "getApproved",
150
+ "outputs": [
151
+ {
152
+ "internalType": "address",
153
+ "name": "",
154
+ "type": "address"
155
+ }
156
+ ],
157
+ "stateMutability": "view",
158
+ "type": "function"
159
+ },
160
+ {
161
+ "inputs": [
162
+ {
163
+ "internalType": "address",
164
+ "name": "owner",
165
+ "type": "address"
166
+ },
167
+ {
168
+ "internalType": "address",
169
+ "name": "operator",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "isApprovedForAll",
174
+ "outputs": [
175
+ {
176
+ "internalType": "bool",
177
+ "name": "",
178
+ "type": "bool"
179
+ }
180
+ ],
181
+ "stateMutability": "view",
182
+ "type": "function"
183
+ },
184
+ {
185
+ "inputs": [
186
+ {
187
+ "internalType": "address",
188
+ "name": "to",
189
+ "type": "address"
190
+ },
191
+ {
192
+ "internalType": "string",
193
+ "name": "root",
194
+ "type": "string"
195
+ },
196
+ {
197
+ "internalType": "string",
198
+ "name": "uri",
199
+ "type": "string"
200
+ }
201
+ ],
202
+ "name": "mint",
203
+ "outputs": [
204
+ {
205
+ "internalType": "uint256",
206
+ "name": "tokenId",
207
+ "type": "uint256"
208
+ }
209
+ ],
210
+ "stateMutability": "nonpayable",
211
+ "type": "function"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "name",
216
+ "outputs": [
217
+ {
218
+ "internalType": "string",
219
+ "name": "",
220
+ "type": "string"
221
+ }
222
+ ],
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [
228
+ {
229
+ "internalType": "uint256",
230
+ "name": "tokenId",
231
+ "type": "uint256"
232
+ }
233
+ ],
234
+ "name": "ownerOf",
235
+ "outputs": [
236
+ {
237
+ "internalType": "address",
238
+ "name": "owner",
239
+ "type": "address"
240
+ }
241
+ ],
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "inputs": [
247
+ {
248
+ "internalType": "address",
249
+ "name": "from",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "internalType": "address",
254
+ "name": "to",
255
+ "type": "address"
256
+ },
257
+ {
258
+ "internalType": "uint256",
259
+ "name": "tokenId",
260
+ "type": "uint256"
261
+ }
262
+ ],
263
+ "name": "safeTransferFrom",
264
+ "outputs": [],
265
+ "stateMutability": "nonpayable",
266
+ "type": "function"
267
+ },
268
+ {
269
+ "inputs": [
270
+ {
271
+ "internalType": "address",
272
+ "name": "from",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "internalType": "address",
277
+ "name": "to",
278
+ "type": "address"
279
+ },
280
+ {
281
+ "internalType": "uint256",
282
+ "name": "tokenId",
283
+ "type": "uint256"
284
+ },
285
+ {
286
+ "internalType": "bytes",
287
+ "name": "",
288
+ "type": "bytes"
289
+ }
290
+ ],
291
+ "name": "safeTransferFrom",
292
+ "outputs": [],
293
+ "stateMutability": "nonpayable",
294
+ "type": "function"
295
+ },
296
+ {
297
+ "inputs": [
298
+ {
299
+ "internalType": "uint256",
300
+ "name": "",
301
+ "type": "uint256"
302
+ }
303
+ ],
304
+ "name": "sessionRoot",
305
+ "outputs": [
306
+ {
307
+ "internalType": "string",
308
+ "name": "",
309
+ "type": "string"
310
+ }
311
+ ],
312
+ "stateMutability": "view",
313
+ "type": "function"
314
+ },
315
+ {
316
+ "inputs": [
317
+ {
318
+ "internalType": "address",
319
+ "name": "operator",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "internalType": "bool",
324
+ "name": "approved",
325
+ "type": "bool"
326
+ }
327
+ ],
328
+ "name": "setApprovalForAll",
329
+ "outputs": [],
330
+ "stateMutability": "nonpayable",
331
+ "type": "function"
332
+ },
333
+ {
334
+ "inputs": [
335
+ {
336
+ "internalType": "bytes4",
337
+ "name": "id",
338
+ "type": "bytes4"
339
+ }
340
+ ],
341
+ "name": "supportsInterface",
342
+ "outputs": [
343
+ {
344
+ "internalType": "bool",
345
+ "name": "",
346
+ "type": "bool"
347
+ }
348
+ ],
349
+ "stateMutability": "pure",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [],
354
+ "name": "symbol",
355
+ "outputs": [
356
+ {
357
+ "internalType": "string",
358
+ "name": "",
359
+ "type": "string"
360
+ }
361
+ ],
362
+ "stateMutability": "view",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "inputs": [
367
+ {
368
+ "internalType": "uint256",
369
+ "name": "tokenId",
370
+ "type": "uint256"
371
+ }
372
+ ],
373
+ "name": "tokenURI",
374
+ "outputs": [
375
+ {
376
+ "internalType": "string",
377
+ "name": "",
378
+ "type": "string"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [],
386
+ "name": "totalMinted",
387
+ "outputs": [
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "stateMutability": "view",
395
+ "type": "function"
396
+ },
397
+ {
398
+ "inputs": [
399
+ {
400
+ "internalType": "address",
401
+ "name": "from",
402
+ "type": "address"
403
+ },
404
+ {
405
+ "internalType": "address",
406
+ "name": "to",
407
+ "type": "address"
408
+ },
409
+ {
410
+ "internalType": "uint256",
411
+ "name": "tokenId",
412
+ "type": "uint256"
413
+ }
414
+ ],
415
+ "name": "transferFrom",
416
+ "outputs": [],
417
+ "stateMutability": "nonpayable",
418
+ "type": "function"
419
+ }
420
+ ],
421
+ "bytecode": "0x608060405260015f55348015610013575f80fd5b50610f05806100215f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c806395d89b4111610093578063b88d4fde11610063578063b88d4fde1461024d578063c87b56dd14610260578063e985e9c514610273578063ffa42441146102ae575f80fd5b806395d89b41146101fc578063990711901461021f578063a22cb46514610232578063a2309ff814610245575f80fd5b806323b872dd116100ce57806323b872dd146101a257806342842e0e146101b55780636352211e146101c857806370a08231146101db575f80fd5b806301ffc9a7146100ff57806306fdde0314610127578063081812fc14610162578063095ea7b31461018d575b5f80fd5b61011261010d366004610a3f565b6102c1565b60405190151581526020015b60405180910390f35b6101556040518060400160405280600f81526020016e3d1833b1b7b2329029b2b9b9b4b7b760891b81525081565b60405161011e9190610a6d565b610175610170366004610ab9565b610312565b6040516001600160a01b03909116815260200161011e565b6101a061019b366004610ae6565b610369565b005b6101a06101b0366004610b0e565b610446565b6101a06101c3366004610b0e565b610646565b6101756101d6366004610ab9565b610656565b6101ee6101e9366004610b47565b61068f565b60405190815260200161011e565b610155604051806040016040528060048152602001635a30475360e01b81525081565b6101ee61022d366004610ba5565b6106ee565b6101a0610240366004610c20565b610846565b6101ee6108b1565b6101a061025b366004610c59565b6108c5565b61015561026e366004610ab9565b6108d7565b610112610281366004610cb2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205460ff1690565b6101556102bc366004610ab9565b6109a8565b5f6301ffc9a760e01b6001600160e01b0319831614806102f157506380ac58cd60e01b6001600160e01b03198316145b8061030c5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f818152600160205260408120546001600160a01b031661034e5760405162461bcd60e51b815260040161034590610ce3565b60405180910390fd5b505f908152600360205260409020546001600160a01b031690565b5f61037382610656565b9050336001600160a01b03821614806103ae57506001600160a01b0381165f90815260046020908152604080832033845290915290205460ff165b6103eb5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610345565b5f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6001600160a01b0382166104865760405162461bcd60e51b81526020600482015260076024820152667a65726f20746f60c81b6044820152606401610345565b5f61049082610656565b9050836001600160a01b0316816001600160a01b0316146104e05760405162461bcd60e51b815260206004820152600a60248201526977726f6e672066726f6d60b01b6044820152606401610345565b336001600160a01b038216148061050c57505f828152600360205260409020546001600160a01b031633145b8061053957506001600160a01b0381165f90815260046020908152604080832033845290915290205460ff165b6105765760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610345565b5f82815260036020908152604080832080546001600160a01b03191690556001600160a01b0387168352600290915281208054600192906105b8908490610d19565b90915550506001600160a01b0383165f9081526002602052604081208054600192906105e5908490610d2c565b90915550505f8281526001602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450505050565b610651838383610446565b505050565b5f818152600160205260409020546001600160a01b03168061068a5760405162461bcd60e51b815260040161034590610ce3565b919050565b5f6001600160a01b0382166106d35760405162461bcd60e51b815260206004820152600a6024820152693d32b9379037bbb732b960b11b6044820152606401610345565b506001600160a01b03165f9081526002602052604090205490565b5f6001600160a01b03861661072f5760405162461bcd60e51b81526020600482015260076024820152667a65726f20746f60c81b6044820152606401610345565b5f8054908061073d83610d3f565b909155505f81815260016020818152604080842080546001600160a01b0319166001600160a01b038d169081179091558452600290915282208054939450909290919061078b908490610d2c565b90915550505f8181526005602052604090206107a8838583610de7565b505f8181526006602052604090206107c1858783610de7565b5060405181906001600160a01b038816905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4856001600160a01b0316817f3b8a974a6971dbe70c8718ec80406b2790d2aa5477b6a5bed3d94fa19e06d60d8787604051610835929190610ea1565b60405180910390a395945050505050565b335f8181526004602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b5f60015f546108c09190610d19565b905090565b6108d0858585610446565b5050505050565b5f818152600160205260409020546060906001600160a01b031661090d5760405162461bcd60e51b815260040161034590610ce3565b5f828152600560205260409020805461092590610d6b565b80601f016020809104026020016040519081016040528092919081815260200182805461095190610d6b565b801561099c5780601f106109735761010080835404028352916020019161099c565b820191905f5260205f20905b81548152906001019060200180831161097f57829003601f168201915b50505050509050919050565b60066020525f9081526040902080546109c090610d6b565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec90610d6b565b8015610a375780601f10610a0e57610100808354040283529160200191610a37565b820191905f5260205f20905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b5f60208284031215610a4f575f80fd5b81356001600160e01b031981168114610a66575f80fd5b9392505050565b5f602080835283518060208501525f5b81811015610a9957858101830151858201604001528201610a7d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215610ac9575f80fd5b5035919050565b80356001600160a01b038116811461068a575f80fd5b5f8060408385031215610af7575f80fd5b610b0083610ad0565b946020939093013593505050565b5f805f60608486031215610b20575f80fd5b610b2984610ad0565b9250610b3760208501610ad0565b9150604084013590509250925092565b5f60208284031215610b57575f80fd5b610a6682610ad0565b5f8083601f840112610b70575f80fd5b50813567ffffffffffffffff811115610b87575f80fd5b602083019150836020828501011115610b9e575f80fd5b9250929050565b5f805f805f60608688031215610bb9575f80fd5b610bc286610ad0565b9450602086013567ffffffffffffffff80821115610bde575f80fd5b610bea89838a01610b60565b90965094506040880135915080821115610c02575f80fd5b50610c0f88828901610b60565b969995985093965092949392505050565b5f8060408385031215610c31575f80fd5b610c3a83610ad0565b915060208301358015158114610c4e575f80fd5b809150509250929050565b5f805f805f60808688031215610c6d575f80fd5b610c7686610ad0565b9450610c8460208701610ad0565b935060408601359250606086013567ffffffffffffffff811115610ca6575f80fd5b610c0f88828901610b60565b5f8060408385031215610cc3575f80fd5b610ccc83610ad0565b9150610cda60208401610ad0565b90509250929050565b6020808252600890820152673737903a37b5b2b760c11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561030c5761030c610d05565b8082018082111561030c5761030c610d05565b5f60018201610d5057610d50610d05565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610d7f57607f821691505b602082108103610d9d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561065157805f5260205f20601f840160051c81016020851015610dc85750805b601f840160051c820191505b818110156108d0575f8155600101610dd4565b67ffffffffffffffff831115610dff57610dff610d57565b610e1383610e0d8354610d6b565b83610da3565b5f601f841160018114610e44575f8515610e2d5750838201355b5f19600387901b1c1916600186901b1783556108d0565b5f83815260208120601f198716915b82811015610e735786850135825560209485019460019092019101610e53565b5086821015610e8f575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f1916010191905056fea26469706673582212208d1acf86cb78647e983334a5720e6bf64713f0f3b52b5e823c464f16efb5d3d064736f6c63430008180033",
422
+ "solc": "0.8.24+commit.e11b9ed9.Emscripten.clang",
423
+ "evmVersion": "cancun"
424
+ }
@@ -0,0 +1,106 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity 0.8.24;
3
+
4
+ /// @title z0gcode Session NFT
5
+ /// @notice A minimal ERC-721 that tokenizes a verifiable z0gcode session. Each
6
+ /// token records the 0G Storage content root of the session bundle (transcript
7
+ /// + provenance), so ownership of an AI work session is provable on 0G Chain.
8
+ /// This is an ERC-721-based, ERC-7857-inspired "intelligent session" NFT; it
9
+ /// does not implement the full ERC-7857 encrypted-metadata oracle transfer.
10
+ contract Z0gSession {
11
+ string public constant name = "z0gcode Session";
12
+ string public constant symbol = "Z0GS";
13
+
14
+ uint256 private _next = 1;
15
+ mapping(uint256 => address) private _owners;
16
+ mapping(address => uint256) private _balances;
17
+ mapping(uint256 => address) private _approved;
18
+ mapping(address => mapping(address => bool)) private _operators;
19
+ mapping(uint256 => string) private _uris;
20
+ mapping(uint256 => string) public sessionRoot;
21
+
22
+ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
23
+ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
24
+ event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
25
+ event Minted(uint256 indexed tokenId, address indexed to, string root);
26
+
27
+ function supportsInterface(bytes4 id) external pure returns (bool) {
28
+ // ERC165, ERC721, ERC721Metadata
29
+ return id == 0x01ffc9a7 || id == 0x80ac58cd || id == 0x5b5e139f;
30
+ }
31
+
32
+ /// @notice Mint a session token to `to`, recording its 0G Storage `root`.
33
+ function mint(address to, string calldata root, string calldata uri) external returns (uint256 tokenId) {
34
+ require(to != address(0), "zero to");
35
+ tokenId = _next++;
36
+ _owners[tokenId] = to;
37
+ _balances[to] += 1;
38
+ _uris[tokenId] = uri;
39
+ sessionRoot[tokenId] = root;
40
+ emit Transfer(address(0), to, tokenId);
41
+ emit Minted(tokenId, to, root);
42
+ }
43
+
44
+ function totalMinted() external view returns (uint256) {
45
+ return _next - 1;
46
+ }
47
+
48
+ function balanceOf(address owner) external view returns (uint256) {
49
+ require(owner != address(0), "zero owner");
50
+ return _balances[owner];
51
+ }
52
+
53
+ function ownerOf(uint256 tokenId) public view returns (address owner) {
54
+ owner = _owners[tokenId];
55
+ require(owner != address(0), "no token");
56
+ }
57
+
58
+ function tokenURI(uint256 tokenId) external view returns (string memory) {
59
+ require(_owners[tokenId] != address(0), "no token");
60
+ return _uris[tokenId];
61
+ }
62
+
63
+ function approve(address to, uint256 tokenId) external {
64
+ address owner = ownerOf(tokenId);
65
+ require(msg.sender == owner || _operators[owner][msg.sender], "not authorized");
66
+ _approved[tokenId] = to;
67
+ emit Approval(owner, to, tokenId);
68
+ }
69
+
70
+ function getApproved(uint256 tokenId) external view returns (address) {
71
+ require(_owners[tokenId] != address(0), "no token");
72
+ return _approved[tokenId];
73
+ }
74
+
75
+ function setApprovalForAll(address operator, bool approved) external {
76
+ _operators[msg.sender][operator] = approved;
77
+ emit ApprovalForAll(msg.sender, operator, approved);
78
+ }
79
+
80
+ function isApprovedForAll(address owner, address operator) external view returns (bool) {
81
+ return _operators[owner][operator];
82
+ }
83
+
84
+ function transferFrom(address from, address to, uint256 tokenId) public {
85
+ require(to != address(0), "zero to");
86
+ address owner = ownerOf(tokenId);
87
+ require(owner == from, "wrong from");
88
+ require(
89
+ msg.sender == owner || _approved[tokenId] == msg.sender || _operators[owner][msg.sender],
90
+ "not authorized"
91
+ );
92
+ delete _approved[tokenId];
93
+ _balances[from] -= 1;
94
+ _balances[to] += 1;
95
+ _owners[tokenId] = to;
96
+ emit Transfer(from, to, tokenId);
97
+ }
98
+
99
+ function safeTransferFrom(address from, address to, uint256 tokenId) external {
100
+ transferFrom(from, to, tokenId);
101
+ }
102
+
103
+ function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata) external {
104
+ transferFrom(from, to, tokenId);
105
+ }
106
+ }
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "z0gcode",
3
+ "version": "0.2.0",
4
+ "description": "A terminal coding agent whose brain runs on 0G Compute: private, verifiable AI with on-chain provenance.",
5
+ "type": "module",
6
+ "bin": {
7
+ "z0g": "bin/z0g.mjs"
8
+ },
9
+ "license": "MIT",
10
+ "author": "Andrei Coman",
11
+ "homepage": "https://github.com/mr-reb00t/z0gcode#readme",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/mr-reb00t/z0gcode.git"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/mr-reb00t/z0gcode/issues"
18
+ },
19
+ "keywords": [
20
+ "coding-agent",
21
+ "ai",
22
+ "agent",
23
+ "cli",
24
+ "terminal",
25
+ "0g",
26
+ "0g-compute",
27
+ "tee",
28
+ "verifiable-inference",
29
+ "provenance",
30
+ "openai-compatible",
31
+ "mcp",
32
+ "developer-tools"
33
+ ],
34
+ "engines": {
35
+ "node": ">=18"
36
+ },
37
+ "files": [
38
+ "bin",
39
+ "src",
40
+ "skills",
41
+ "contracts/Z0gSession.json",
42
+ "contracts/Z0gSession.sol",
43
+ ".env.example"
44
+ ],
45
+ "scripts": {
46
+ "start": "node bin/z0g.mjs",
47
+ "test": "node --test test/*.test.mjs",
48
+ "models": "node scripts/verify-router.mjs --list",
49
+ "verify": "node scripts/verify-router.mjs 0gm-1.0-35b-a3b deepseek-v4-pro glm-5.2 kimi-k2.7-code",
50
+ "prepublishOnly": "npm test"
51
+ },
52
+ "dependencies": {
53
+ "@modelcontextprotocol/sdk": "^1.29.0",
54
+ "openai": "^4.77.0"
55
+ },
56
+ "optionalDependencies": {
57
+ "@0gfoundation/0g-storage-ts-sdk": "^1.2.10",
58
+ "ethers": "6.13.1"
59
+ }
60
+ }