@halot/cli 1.0.5 → 1.0.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 CHANGED
@@ -256,7 +256,7 @@ This creates:
256
256
  {
257
257
  "verifierId": "",
258
258
  "displayName": "My Verifier",
259
- "description": "Multimodal service verification specialist",
259
+ "description": "Text service verification specialist",
260
260
  "identity": {
261
261
  "domain": "myverifier.0g",
262
262
  "domainType": "space-id",
@@ -289,9 +289,7 @@ This creates:
289
289
  ```json
290
290
  {
291
291
  "evaluationModel": {
292
- "providerAddress": "0x...",
293
- "serviceType": "chatbot",
294
- "verifiability": "TeeML"
292
+ "model": "openai/gpt-oss-20b"
295
293
  },
296
294
  "sdk": {
297
295
  "network": "testnet"
@@ -300,12 +298,20 @@ This creates:
300
298
  }
301
299
  ```
302
300
 
301
+ `model` is the 0G inference model name. The verifier runtime resolves the live TeeML chatbot provider for that model from the 0G registry before it sends the evaluation request.
302
+
303
+ Current 0G testnet TeeML chatbot models include:
304
+
305
+ - `openai/gpt-oss-20b`
306
+ - `google/gemma-3-27b-it`
307
+ - `qwen/qwen-2.5-7b-instruct`
308
+
303
309
  `inference.json`:
304
310
 
305
311
  ```json
306
312
  {
307
- "systemPrompt": "You are an impartial evaluator.",
308
- "promptTemplate": "Evaluate whether the provider result and any referenced artifacts satisfy the acceptance criteria.",
313
+ "systemPrompt": "You are a Halot verifier for text-generation services. Return only valid JSON.",
314
+ "promptTemplate": "Evaluate this Halot text-generation job.\\n\\nJob input:\\n{{input}}\\n\\nProvider result:\\n{{result}}\\n\\nService acceptance criteria:\\n{{acceptanceCriteria}}\\n\\nExpected output schema:\\n{{outputSchema}}\\n\\nInput artifacts:\\n{{inputArtifacts}}\\n\\nResult artifacts:\\n{{resultArtifacts}}\\n\\nArtifact validation issues:\\n{{artifactValidationIssues}}\\n\\nApprove only if the result directly answers the requester input, satisfies the service schema, and meets the acceptance criteria.\\nReject empty, irrelevant, malformed, unsafe, inaccessible, or artifact-mismatched results.\\nUse uncertain only when the available evidence is insufficient.\\nReturn only JSON with fields: decision, confidence, reason, failedCriteria.",
309
315
  "outputSchema": {
310
316
  "decision": "approve | reject | uncertain",
311
317
  "confidence": "number between 0 and 1",
@@ -321,9 +327,9 @@ This creates:
321
327
 
322
328
  ```json
323
329
  {
324
- "categories": ["text", "document", "tool"],
330
+ "categories": ["text"],
325
331
  "serviceIds": [],
326
- "maxConcurrentJobs": 5,
332
+ "maxConcurrentJobs": 3,
327
333
  "minConfidenceThreshold": 0.75
328
334
  }
329
335
  ```
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runVerifierInitCommand = runVerifierInitCommand;
4
+ const sdk_1 = require("@halot/sdk");
4
5
  const wallet_manager_1 = require("@halot/cli/shared/wallet/wallet.manager");
5
6
  const authority_util_1 = require("@halot/cli/shared/wallet/authority.util");
6
7
  const init_cluster_util_1 = require("@halot/cli/shared/wallet/init-cluster.util");
@@ -17,7 +18,7 @@ async function runVerifierInitCommand(options = {}) {
17
18
  workspace.writeVerifierConfig({
18
19
  verifierId: '',
19
20
  displayName: 'My Verifier',
20
- description: 'Multimodal service verification specialist',
21
+ description: 'Text service verification specialist',
21
22
  identity: {
22
23
  erc8004TokenId: '',
23
24
  agentRegistry: '',
@@ -42,9 +43,7 @@ async function runVerifierInitCommand(options = {}) {
42
43
  });
43
44
  workspace.writeModelConfig({
44
45
  evaluationModel: {
45
- providerAddress: '',
46
- serviceType: 'chatbot',
47
- verifiability: 'TeeML',
46
+ model: sdk_1.DEFAULT_ZERO_G_VERIFIER_EVALUATION_MODEL,
48
47
  },
49
48
  sdk: {
50
49
  network: cluster,
@@ -52,8 +51,36 @@ async function runVerifierInitCommand(options = {}) {
52
51
  timeout: 60,
53
52
  });
54
53
  workspace.writeInferenceTemplate({
55
- systemPrompt: 'You are an impartial evaluator.',
56
- promptTemplate: 'Evaluate whether the provider result and any referenced artifacts satisfy the acceptance criteria.',
54
+ systemPrompt: 'You are a Halot verifier for text-generation services. Return only valid JSON.',
55
+ promptTemplate: [
56
+ 'Evaluate this Halot text-generation job.',
57
+ '',
58
+ 'Job input:',
59
+ '{{input}}',
60
+ '',
61
+ 'Provider result:',
62
+ '{{result}}',
63
+ '',
64
+ 'Service acceptance criteria:',
65
+ '{{acceptanceCriteria}}',
66
+ '',
67
+ 'Expected output schema:',
68
+ '{{outputSchema}}',
69
+ '',
70
+ 'Input artifacts:',
71
+ '{{inputArtifacts}}',
72
+ '',
73
+ 'Result artifacts:',
74
+ '{{resultArtifacts}}',
75
+ '',
76
+ 'Artifact validation issues:',
77
+ '{{artifactValidationIssues}}',
78
+ '',
79
+ 'Approve only if the result directly answers the requester input, satisfies the service schema, and meets the acceptance criteria.',
80
+ 'Reject empty, irrelevant, malformed, unsafe, inaccessible, or artifact-mismatched results.',
81
+ 'Use uncertain only when the available evidence is insufficient.',
82
+ 'Return only JSON with fields: decision, confidence, reason, failedCriteria.',
83
+ ].join('\n'),
57
84
  outputSchema: {
58
85
  decision: 'approve | reject | uncertain',
59
86
  confidence: 'number between 0 and 1',
@@ -64,9 +91,9 @@ async function runVerifierInitCommand(options = {}) {
64
91
  temperature: 0,
65
92
  });
66
93
  workspace.writeSpecializations({
67
- categories: ['text', 'document', 'tool'],
94
+ categories: ['text'],
68
95
  serviceIds: [],
69
- maxConcurrentJobs: 5,
96
+ maxConcurrentJobs: 3,
70
97
  minConfidenceThreshold: 0.75,
71
98
  });
72
99
  (0, console_1.printInitSummary)({
@@ -89,7 +116,7 @@ async function runVerifierInitCommand(options = {}) {
89
116
  warnings: ['wallets.json contains private keys. Do not commit it.'],
90
117
  nextSteps: [
91
118
  'Edit halot.verifier.json',
92
- 'Edit model.config.json, inference.json, and specializations.json',
119
+ 'Review model.config.json, inference.json, and specializations.json',
93
120
  `Run ${(0, console_1.command)('halot verifier register')}`,
94
121
  `Run ${(0, console_1.command)('halot verifier run')}`,
95
122
  ],
@@ -23,7 +23,6 @@ async function runVerifierRunCommand(options) {
23
23
  const compute = new sdk_1.ZeroGComputeService({
24
24
  privateKey: verifierWallet.privateKey,
25
25
  rpcUrl: modelConfig.sdk.rpcUrl ?? chain.rpcUrl,
26
- providerAddress: modelConfig.evaluationModel.providerAddress,
27
26
  ledgerContractAddress: modelConfig.sdk.ledgerContractAddress,
28
27
  inferenceContractAddress: modelConfig.sdk.inferenceContractAddress,
29
28
  fineTuningContractAddress: modelConfig.sdk.fineTuningContractAddress,
@@ -32,9 +31,6 @@ async function runVerifierRunCommand(options) {
32
31
  const workerId = (0, sdk_1.createPrefixedId)('worker');
33
32
  const cursorKey = `verifier:${config.verifierId}`;
34
33
  let lastEventId = workspace.readStreamCursor(cursorKey);
35
- if (!modelConfig.evaluationModel.providerAddress) {
36
- throw new Error('model.config.json must set evaluationModel.providerAddress for real 0G TeeML verification.');
37
- }
38
34
  if (options.once) {
39
35
  const assignmentPath = `/verifiers/${config.verifierId}/jobs/next`;
40
36
  const headers = await (0, actor_headers_service_1.createSignedActorHeaders)(verifierWallet, config.verifierId, 'verifier', 'GET', assignmentPath);
@@ -89,7 +85,7 @@ async function processVerifierAssignment(api, verifierWallet, verifierId, assign
89
85
  input: assignment.job.input,
90
86
  result: assignment.result.output,
91
87
  service: assignment.service,
92
- providerAddress: modelConfig.evaluationModel.providerAddress,
88
+ model: modelConfig.evaluationModel.model,
93
89
  systemPrompt: inferenceTemplate.systemPrompt,
94
90
  promptTemplate: inferenceTemplate.promptTemplate,
95
91
  outputSchema: inferenceTemplate.outputSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@halot/cli",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Halot protocol CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -30,7 +30,7 @@
30
30
  "./*": "./dist/*.js"
31
31
  },
32
32
  "dependencies": {
33
- "@halot/sdk": "^1.0.2",
33
+ "@halot/sdk": "^1.0.4",
34
34
  "@stellar/stellar-sdk": "^15.0.1",
35
35
  "@web3-name-sdk/core": "^0.1.18",
36
36
  "commander": "^14.0.3",