@wowok/skills 1.2.4 → 1.2.5

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.
Files changed (53) hide show
  1. package/README.md +34 -16
  2. package/dist/cli.js +6 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/skills.d.ts +32 -1
  5. package/dist/skills.d.ts.map +1 -1
  6. package/dist/skills.js +63 -0
  7. package/dist/skills.js.map +1 -1
  8. package/dist/types.d.ts +8 -0
  9. package/dist/types.d.ts.map +1 -1
  10. package/examples/Insurance/Insurance.md +543 -475
  11. package/examples/MyShop/MyShop.md +865 -746
  12. package/examples/MyShop_Advanced/MyShop_Advanced.md +1520 -1376
  13. package/examples/ThreeBody_Signature/ThreeBody_Signature.md +891 -651
  14. package/examples/Travel/Travel.md +952 -848
  15. package/package.json +2 -2
  16. package/scripts/install.js +3 -17
  17. package/wowok-arbitrator/SKILL.md +18 -57
  18. package/wowok-auditor/SKILL.md +16 -12
  19. package/wowok-distill/SKILL.md +237 -0
  20. package/wowok-guard/SKILL.md +40 -354
  21. package/wowok-machine/SKILL.md +21 -127
  22. package/wowok-messenger/SKILL.md +14 -59
  23. package/wowok-onboard/SKILL.md +42 -12
  24. package/wowok-order/SKILL.md +20 -169
  25. package/wowok-output/SKILL.md +0 -10
  26. package/wowok-planner/SKILL.md +28 -9
  27. package/wowok-provider/SKILL.md +72 -32
  28. package/wowok-safety/SKILL.md +8 -80
  29. package/wowok-scenario/SKILL.md +63 -98
  30. package/wowok-tools/SKILL.md +68 -107
  31. package/references/glossary.ts +0 -297
  32. package/references/guard-scenario-ledger.md +0 -353
  33. package/references/guard-template-library.md +0 -481
  34. package/references/machine-design-reference.md +0 -398
  35. package/references/machine-scenario-ledger.md +0 -227
  36. package/references/machine-template-library.md +0 -522
  37. package/references/merchant-scenario-coordination.md +0 -383
  38. package/references/object-collaboration.md +0 -362
  39. package/references/onchain-constants.md +0 -81
  40. package/wowok-arbitrator/APPENDIX.md +0 -545
  41. package/wowok-auditor/APPENDIX.md +0 -487
  42. package/wowok-guard/APPENDIX.md +0 -430
  43. package/wowok-machine/APPENDIX.md +0 -407
  44. package/wowok-messenger/APPENDIX.md +0 -550
  45. package/wowok-onboard/APPENDIX.md +0 -502
  46. package/wowok-order/APPENDIX.md +0 -777
  47. package/wowok-output/APPENDIX.md +0 -575
  48. package/wowok-planner/APPENDIX.md +0 -726
  49. package/wowok-provider/APPENDIX.md +0 -455
  50. package/wowok-safety/APPENDIX.md +0 -565
  51. package/wowok-scenario/APPENDIX.md +0 -97
  52. package/wowok-scenario/MODE-DETAILS.md +0 -275
  53. package/wowok-tools/APPENDIX.md +0 -394
@@ -13,6 +13,8 @@ A complete example demonstrating how to create an outdoor accident insurance ser
13
13
 
14
14
  ---
15
15
 
16
+ > **💡 Call Format**: All WoWok operations go through a single unified `wowok` tool. The AI calls `wowok({ tool: "<sub-tool>", data: {<params>} })`. If parameters don't match the schema, the response includes the correct schema for self-correction. See [Response Format](../../docs/response-format.md) for details.
17
+
16
18
  ## Core Requirements & Features
17
19
 
18
20
  | Requirement | Description | Implementation |
@@ -134,9 +136,12 @@ Before running this example, ensure you have:
134
136
 
135
137
  ```json
136
138
  {
137
- "gen": {
138
- "name": "insurance_provider_v1",
139
- "replaceExistName": true
139
+ "tool": "account_operation",
140
+ "data": {
141
+ "gen": {
142
+ "name": "insurance_provider_v1",
143
+ "replaceExistName": true
144
+ }
140
145
  }
141
146
  }
142
147
  ```
@@ -147,9 +152,12 @@ Before running this example, ensure you have:
147
152
 
148
153
  ```json
149
154
  {
150
- "faucet": {
151
- "network": "testnet",
152
- "name_or_address": "insurance_provider_v1"
155
+ "tool": "account_operation",
156
+ "data": {
157
+ "faucet": {
158
+ "network": "testnet",
159
+ "name_or_address": "insurance_provider_v1"
160
+ }
153
161
  }
154
162
  }
155
163
  ```
@@ -166,22 +174,25 @@ Create a Permission object to manage access control for the insurance service. T
166
174
 
167
175
  ```json
168
176
  {
169
- "operation_type": "permission",
177
+ "tool": "onchain_operations",
170
178
  "data": {
171
- "object": {
172
- "name": "insurance_permission_v1",
173
- "replaceExistName": true
179
+ "operation_type": "permission",
180
+ "data": {
181
+ "object": {
182
+ "name": "insurance_permission_v1",
183
+ "replaceExistName": true
184
+ },
185
+ "description": "Permission for outdoor accident insurance service",
186
+ "table": {
187
+ "op": "add perm by entity",
188
+ "entity": {"name_or_address": "insurance_provider_v1"},
189
+ "index": [1000, 1001, 1002, 1003, 1004, 1005]
190
+ }
174
191
  },
175
- "description": "Permission for outdoor accident insurance service",
176
- "table": {
177
- "op": "add perm by entity",
178
- "entity": {"name_or_address": "insurance_provider_v1"},
179
- "index": [1000, 1001, 1002, 1003, 1004, 1005]
192
+ "env": {
193
+ "account": "insurance_provider_v1",
194
+ "network": "testnet"
180
195
  }
181
- },
182
- "env": {
183
- "account": "insurance_provider_v1",
184
- "network": "testnet"
185
196
  }
186
197
  }
187
198
  ```
@@ -203,19 +214,22 @@ Create a Treasury object to aggregate insurance service revenue (public funds fo
203
214
 
204
215
  ```json
205
216
  {
206
- "operation_type": "treasury",
217
+ "tool": "onchain_operations",
207
218
  "data": {
208
- "object": {
209
- "name": "insurance_treasury_v1",
210
- "type_parameter": "0x2::wow::WOW",
211
- "permission": "insurance_permission_v1",
212
- "replaceExistName": true
219
+ "operation_type": "treasury",
220
+ "data": {
221
+ "object": {
222
+ "name": "insurance_treasury_v1",
223
+ "type_parameter": "0x2::wow::WOW",
224
+ "permission": "insurance_permission_v1",
225
+ "replaceExistName": true
226
+ },
227
+ "description": "Treasury for aggregating insurance service revenue (public funds for operations and distribution). Uses the same Permission as the Service for consistency."
213
228
  },
214
- "description": "Treasury for aggregating insurance service revenue (public funds for operations and distribution). Uses the same Permission as the Service for consistency."
215
- },
216
- "env": {
217
- "account": "insurance_provider_v1",
218
- "network": "testnet"
229
+ "env": {
230
+ "account": "insurance_provider_v1",
231
+ "network": "testnet"
232
+ }
219
233
  }
220
234
  }
221
235
  ```
@@ -237,60 +251,63 @@ clock > progress.current_time + 1000
237
251
 
238
252
  ```json
239
253
  {
240
- "operation_type": "guard",
254
+ "tool": "onchain_operations",
241
255
  "data": {
242
- "namedNew": {
243
- "name": "insurance_complete_guard_v1",
244
- "tags": ["insurance", "time-lock", "complete"],
245
- "replaceExistName": true
246
- },
247
- "description": "Time-lock guard for insurance claim completion. Requires current clock > progress.current_time + 10000ms (10 seconds for TESTING; in production set to reasonable duration like 8 hours). Progress is accessed via Order with convert_witness="OrderProgress"(100).",
248
-
249
- "table": [
250
- {
251
- "identifier": 0,
252
- "b_submission": true,
253
- "value_type": "Address",
254
- "name": "Order ID (submitted at runtime)"
256
+ "operation_type": "guard",
257
+ "data": {
258
+ "namedNew": {
259
+ "name": "insurance_complete_guard_v1",
260
+ "tags": ["insurance", "time-lock", "complete"],
261
+ "replaceExistName": true
255
262
  },
256
- {
257
- "identifier": 1,
258
- "b_submission": false,
259
- "value_type": "U64",
260
- "value": 10000
261
- }
262
- ],
263
- "root": {
264
- "type": "logic_as_u256_greater",
265
- "nodes": [
263
+ "description": "Time-lock guard for insurance claim completion. Requires current clock > progress.current_time + 10000ms (10 seconds for TESTING; in production set to reasonable duration like 8 hours). Progress is accessed via Order with convert_witness=\"OrderProgress\"(100).",
264
+
265
+ "table": [
266
266
  {
267
- "type": "context",
268
- "context": "Clock"
267
+ "identifier": 0,
268
+ "b_submission": true,
269
+ "value_type": "Address",
270
+ "name": "Order ID (submitted at runtime)"
269
271
  },
270
272
  {
271
- "type": "calc_number_add",
272
- "nodes": [
273
- {
274
- "type": "query",
275
- "query": "progress.current_time",
276
- "object": {
277
- "identifier": 0,
278
- "convert_witness": "OrderProgress"
279
- },
280
- "parameters": []
281
- },
282
- {
283
- "type": "identifier",
284
- "identifier": 1
285
- }
286
- ]
273
+ "identifier": 1,
274
+ "b_submission": false,
275
+ "value_type": "U64",
276
+ "value": 10000
287
277
  }
288
- ]
278
+ ],
279
+ "root": {
280
+ "type": "logic_as_u256_greater",
281
+ "nodes": [
282
+ {
283
+ "type": "context",
284
+ "context": "Clock"
285
+ },
286
+ {
287
+ "type": "calc_number_add",
288
+ "nodes": [
289
+ {
290
+ "type": "query",
291
+ "query": "progress.current_time",
292
+ "object": {
293
+ "identifier": 0,
294
+ "convert_witness": "OrderProgress"
295
+ },
296
+ "parameters": []
297
+ },
298
+ {
299
+ "type": "identifier",
300
+ "identifier": 1
301
+ }
302
+ ]
303
+ }
304
+ ]
305
+ }
306
+ },
307
+ "env": {
308
+ "account": "insurance_provider_v1",
309
+ "network": "testnet"
289
310
  }
290
- },
291
- "env": {
292
- "account": "insurance_provider_v1",
293
- "network": "testnet"
294
311
  }
295
312
  }
296
313
  ```
@@ -328,81 +345,84 @@ logic_and[
328
345
 
329
346
  ```json
330
347
  {
331
- "operation_type": "guard",
348
+ "tool": "onchain_operations",
332
349
  "data": {
333
- "namedNew": {
334
- "name": "insurance_withdraw_guard_treasury_v1",
335
- "tags": ["insurance", "withdraw", "treasury"],
336
- "replaceExistName": true
337
- },
338
- "description": "Allow fund allocation to Treasury after order is completed. RISK ELIMINATION: order must be at Complete node AND belong to insurance_service_v1 (prevents cross-service theft). Funds flow to fixed Treasury Entity (safe — no Signer binding needed).",
339
- "table": [
340
- {
341
- "identifier": 0,
342
- "b_submission": true,
343
- "value_type": "Address",
344
- "object_type": "Order",
345
- "name": "order_id (Order object submitted at runtime)"
346
- },
347
- {
348
- "identifier": 1,
349
- "b_submission": false,
350
- "value_type": "String",
351
- "value": "Complete",
352
- "name": "Expected Complete node name (case-sensitive)"
350
+ "operation_type": "guard",
351
+ "data": {
352
+ "namedNew": {
353
+ "name": "insurance_withdraw_guard_treasury_v1",
354
+ "tags": ["insurance", "withdraw", "treasury"],
355
+ "replaceExistName": true
353
356
  },
354
- {
355
- "identifier": 2,
356
- "b_submission": false,
357
- "value_type": "Address",
358
- "value": "insurance_service_v1",
359
- "name": "Expected service address (prevents cross-service fund theft)"
360
- }
361
- ],
362
- "root": {
363
- "type": "logic_and",
364
- "nodes": [
357
+ "description": "Allow fund allocation to Treasury after order is completed. RISK ELIMINATION: order must be at Complete node AND belong to insurance_service_v1 (prevents cross-service theft). Funds flow to fixed Treasury Entity (safe — no Signer binding needed).",
358
+ "table": [
365
359
  {
366
- "type": "logic_equal",
367
- "nodes": [
368
- {
369
- "type": "query",
370
- "query": "progress.current",
371
- "object": {
372
- "identifier": 0,
373
- "convert_witness": "OrderProgress"
374
- },
375
- "parameters": []
376
- },
377
- {
378
- "type": "identifier",
379
- "identifier": 1
380
- }
381
- ]
360
+ "identifier": 0,
361
+ "b_submission": true,
362
+ "value_type": "Address",
363
+ "object_type": "Order",
364
+ "name": "order_id (Order object submitted at runtime)"
382
365
  },
383
366
  {
384
- "type": "logic_equal",
385
- "nodes": [
386
- {
387
- "type": "query",
388
- "query": "order.service",
389
- "object": {
390
- "identifier": 0
391
- },
392
- "parameters": []
393
- },
394
- {
395
- "type": "identifier",
396
- "identifier": 2
397
- }
398
- ]
367
+ "identifier": 1,
368
+ "b_submission": false,
369
+ "value_type": "String",
370
+ "value": "Complete",
371
+ "name": "Expected Complete node name (case-sensitive)"
372
+ },
373
+ {
374
+ "identifier": 2,
375
+ "b_submission": false,
376
+ "value_type": "Address",
377
+ "value": "insurance_service_v1",
378
+ "name": "Expected service address (prevents cross-service fund theft)"
399
379
  }
400
- ]
380
+ ],
381
+ "root": {
382
+ "type": "logic_and",
383
+ "nodes": [
384
+ {
385
+ "type": "logic_equal",
386
+ "nodes": [
387
+ {
388
+ "type": "query",
389
+ "query": "progress.current",
390
+ "object": {
391
+ "identifier": 0,
392
+ "convert_witness": "OrderProgress"
393
+ },
394
+ "parameters": []
395
+ },
396
+ {
397
+ "type": "identifier",
398
+ "identifier": 1
399
+ }
400
+ ]
401
+ },
402
+ {
403
+ "type": "logic_equal",
404
+ "nodes": [
405
+ {
406
+ "type": "query",
407
+ "query": "order.service",
408
+ "object": {
409
+ "identifier": 0
410
+ },
411
+ "parameters": []
412
+ },
413
+ {
414
+ "type": "identifier",
415
+ "identifier": 2
416
+ }
417
+ ]
418
+ }
419
+ ]
420
+ }
421
+ },
422
+ "env": {
423
+ "account": "insurance_provider_v1",
424
+ "network": "testnet"
401
425
  }
402
- },
403
- "env": {
404
- "account": "insurance_provider_v1",
405
- "network": "testnet"
406
426
  }
407
427
  }
408
428
  ```
@@ -413,81 +433,84 @@ logic_and[
413
433
 
414
434
  ```json
415
435
  {
416
- "operation_type": "guard",
436
+ "tool": "onchain_operations",
417
437
  "data": {
418
- "namedNew": {
419
- "name": "insurance_withdraw_guard_personal_v1",
420
- "tags": ["insurance", "withdraw", "personal"],
421
- "replaceExistName": true
422
- },
423
- "description": "Allow fund allocation to personal collection address after order is completed. RISK ELIMINATION: order must be at Complete node AND belong to insurance_service_v1. Funds flow to fixed personal Entity (safe — no Signer binding needed).",
424
- "table": [
425
- {
426
- "identifier": 0,
427
- "b_submission": true,
428
- "value_type": "Address",
429
- "object_type": "Order",
430
- "name": "order_id (Order object submitted at runtime)"
431
- },
432
- {
433
- "identifier": 1,
434
- "b_submission": false,
435
- "value_type": "String",
436
- "value": "Complete",
437
- "name": "Expected Complete node name (case-sensitive)"
438
+ "operation_type": "guard",
439
+ "data": {
440
+ "namedNew": {
441
+ "name": "insurance_withdraw_guard_personal_v1",
442
+ "tags": ["insurance", "withdraw", "personal"],
443
+ "replaceExistName": true
438
444
  },
439
- {
440
- "identifier": 2,
441
- "b_submission": false,
442
- "value_type": "Address",
443
- "value": "insurance_service_v1",
444
- "name": "Expected service address (prevents cross-service fund theft)"
445
- }
446
- ],
447
- "root": {
448
- "type": "logic_and",
449
- "nodes": [
445
+ "description": "Allow fund allocation to personal collection address after order is completed. RISK ELIMINATION: order must be at Complete node AND belong to insurance_service_v1. Funds flow to fixed personal Entity (safe — no Signer binding needed).",
446
+ "table": [
450
447
  {
451
- "type": "logic_equal",
452
- "nodes": [
453
- {
454
- "type": "query",
455
- "query": "progress.current",
456
- "object": {
457
- "identifier": 0,
458
- "convert_witness": "OrderProgress"
459
- },
460
- "parameters": []
461
- },
462
- {
463
- "type": "identifier",
464
- "identifier": 1
465
- }
466
- ]
448
+ "identifier": 0,
449
+ "b_submission": true,
450
+ "value_type": "Address",
451
+ "object_type": "Order",
452
+ "name": "order_id (Order object submitted at runtime)"
467
453
  },
468
454
  {
469
- "type": "logic_equal",
470
- "nodes": [
471
- {
472
- "type": "query",
473
- "query": "order.service",
474
- "object": {
475
- "identifier": 0
476
- },
477
- "parameters": []
478
- },
479
- {
480
- "type": "identifier",
481
- "identifier": 2
482
- }
483
- ]
455
+ "identifier": 1,
456
+ "b_submission": false,
457
+ "value_type": "String",
458
+ "value": "Complete",
459
+ "name": "Expected Complete node name (case-sensitive)"
460
+ },
461
+ {
462
+ "identifier": 2,
463
+ "b_submission": false,
464
+ "value_type": "Address",
465
+ "value": "insurance_service_v1",
466
+ "name": "Expected service address (prevents cross-service fund theft)"
484
467
  }
485
- ]
468
+ ],
469
+ "root": {
470
+ "type": "logic_and",
471
+ "nodes": [
472
+ {
473
+ "type": "logic_equal",
474
+ "nodes": [
475
+ {
476
+ "type": "query",
477
+ "query": "progress.current",
478
+ "object": {
479
+ "identifier": 0,
480
+ "convert_witness": "OrderProgress"
481
+ },
482
+ "parameters": []
483
+ },
484
+ {
485
+ "type": "identifier",
486
+ "identifier": 1
487
+ }
488
+ ]
489
+ },
490
+ {
491
+ "type": "logic_equal",
492
+ "nodes": [
493
+ {
494
+ "type": "query",
495
+ "query": "order.service",
496
+ "object": {
497
+ "identifier": 0
498
+ },
499
+ "parameters": []
500
+ },
501
+ {
502
+ "type": "identifier",
503
+ "identifier": 2
504
+ }
505
+ ]
506
+ }
507
+ ]
508
+ }
509
+ },
510
+ "env": {
511
+ "account": "insurance_provider_v1",
512
+ "network": "testnet"
486
513
  }
487
- },
488
- "env": {
489
- "account": "insurance_provider_v1",
490
- "network": "testnet"
491
514
  }
492
515
  }
493
516
  ```
@@ -517,59 +540,62 @@ Create a Machine with workflow nodes and publish it in a single transaction.
517
540
 
518
541
  ```json
519
542
  {
520
- "operation_type": "machine",
543
+ "tool": "onchain_operations",
521
544
  "data": {
522
- "object": {
523
- "name": "insurance_machine_v1",
524
- "permission": "insurance_permission_v1",
525
- "replaceExistName": true
526
- },
527
- "description": "Insurance claim processing workflow: Start -> Complete (with time-lock guard)",
528
- "node": {
529
- "op": "add",
530
- "nodes": [
531
- {
532
- "name": "Start",
533
- "pairs": [
534
- {
535
- "prev_node": "",
536
- "threshold": 0,
537
- "forwards": [
538
- {
539
- "name": "start_claim",
540
- "permissionIndex": 1000,
541
- "weight": 1
542
- }
543
- ]
544
- }
545
- ]
546
- },
547
- {
548
- "name": "Complete",
549
- "pairs": [
550
- {
551
- "prev_node": "Start",
552
- "threshold": 1,
553
- "forwards": [
554
- {
555
- "name": "complete_claim",
556
- "permissionIndex": 1001,
557
- "weight": 1,
558
- "guard": {
559
- "guard": "insurance_complete_guard_v1"
545
+ "operation_type": "machine",
546
+ "data": {
547
+ "object": {
548
+ "name": "insurance_machine_v1",
549
+ "permission": "insurance_permission_v1",
550
+ "replaceExistName": true
551
+ },
552
+ "description": "Insurance claim processing workflow: Start -> Complete (with time-lock guard)",
553
+ "node": {
554
+ "op": "add",
555
+ "nodes": [
556
+ {
557
+ "name": "Start",
558
+ "pairs": [
559
+ {
560
+ "prev_node": "",
561
+ "threshold": 0,
562
+ "forwards": [
563
+ {
564
+ "name": "start_claim",
565
+ "permissionIndex": 1000,
566
+ "weight": 1
560
567
  }
561
- }
562
- ]
563
- }
564
- ]
565
- }
566
- ]
568
+ ]
569
+ }
570
+ ]
571
+ },
572
+ {
573
+ "name": "Complete",
574
+ "pairs": [
575
+ {
576
+ "prev_node": "Start",
577
+ "threshold": 1,
578
+ "forwards": [
579
+ {
580
+ "name": "complete_claim",
581
+ "permissionIndex": 1001,
582
+ "weight": 1,
583
+ "guard": {
584
+ "guard": "insurance_complete_guard_v1"
585
+ }
586
+ }
587
+ ]
588
+ }
589
+ ]
590
+ }
591
+ ]
592
+ },
593
+ "publish": true
567
594
  },
568
- "publish": true
569
- },
570
- "env": {
571
- "account": "insurance_provider_v1",
572
- "network": "testnet"
595
+ "env": {
596
+ "account": "insurance_provider_v1",
597
+ "network": "testnet"
598
+ }
573
599
  }
574
600
  }
575
601
  ```
@@ -596,60 +622,63 @@ Create the insurance service with machine, order_allocators (2 alternative appro
596
622
 
597
623
  ```json
598
624
  {
599
- "operation_type": "service",
625
+ "tool": "onchain_operations",
600
626
  "data": {
601
- "object": {
602
- "name": "insurance_service_v1",
603
- "type_parameter": "0x2::wow::WOW",
604
- "permission": "insurance_permission_v1",
605
- "replaceExistName": true
606
- },
607
- "description": "Outdoor accident insurance for Iceland travel. Provides coverage for ice scooting and other outdoor activities.",
608
- "machine": "insurance_machine_v1",
609
- "order_allocators": {
610
- "description": "Insurance order revenue allocation — 2 alternative merchant collection approaches (first-match-wins means only the first passing allocator executes)",
611
- "threshold": 0,
612
- "allocators": [
613
- {
614
- "guard": "insurance_withdraw_guard_treasury_v1",
615
- "sharing": [
616
- {
617
- "who": {"Entity": "insurance_treasury_v1"},
618
- "sharing": 10000,
619
- "mode": "Rate"
620
- }
621
- ]
622
- },
623
- {
624
- "guard": "insurance_withdraw_guard_personal_v1",
625
- "sharing": [
626
- {
627
- "who": {"Entity": "insurance_provider_v1"},
628
- "sharing": 10000,
629
- "mode": "Rate"
630
- }
631
- ]
632
- }
633
- ]
634
- },
635
- "sales": {
636
- "op": "add",
637
- "sales": [
638
- {
639
- "name": "Outdoor Accident Insurance",
640
- "price": 100000000,
641
- "stock": 1000,
642
- "suspension": false,
643
- "wip": "https://cdn.jsdelivr.net/gh/wowok-ai/docs@main/wip-examples/three_body.wip",
644
- "wip_hash": ""
645
- }
646
- ]
627
+ "operation_type": "service",
628
+ "data": {
629
+ "object": {
630
+ "name": "insurance_service_v1",
631
+ "type_parameter": "0x2::wow::WOW",
632
+ "permission": "insurance_permission_v1",
633
+ "replaceExistName": true
634
+ },
635
+ "description": "Outdoor accident insurance for Iceland travel. Provides coverage for ice scooting and other outdoor activities.",
636
+ "machine": "insurance_machine_v1",
637
+ "order_allocators": {
638
+ "description": "Insurance order revenue allocation — 2 alternative merchant collection approaches (first-match-wins means only the first passing allocator executes)",
639
+ "threshold": 0,
640
+ "allocators": [
641
+ {
642
+ "guard": "insurance_withdraw_guard_treasury_v1",
643
+ "sharing": [
644
+ {
645
+ "who": {"Entity": "insurance_treasury_v1"},
646
+ "sharing": 10000,
647
+ "mode": "Rate"
648
+ }
649
+ ]
650
+ },
651
+ {
652
+ "guard": "insurance_withdraw_guard_personal_v1",
653
+ "sharing": [
654
+ {
655
+ "who": {"Entity": "insurance_provider_v1"},
656
+ "sharing": 10000,
657
+ "mode": "Rate"
658
+ }
659
+ ]
660
+ }
661
+ ]
662
+ },
663
+ "sales": {
664
+ "op": "add",
665
+ "sales": [
666
+ {
667
+ "name": "Outdoor Accident Insurance",
668
+ "price": 100000000,
669
+ "stock": 1000,
670
+ "suspension": false,
671
+ "wip": "https://cdn.jsdelivr.net/gh/wowok-ai/docs@main/wip-examples/three_body.wip",
672
+ "wip_hash": ""
673
+ }
674
+ ]
675
+ },
676
+ "publish": true
647
677
  },
648
- "publish": true
649
- },
650
- "env": {
651
- "account": "insurance_provider_v1",
652
- "network": "testnet"
678
+ "env": {
679
+ "account": "insurance_provider_v1",
680
+ "network": "testnet"
681
+ }
653
682
  }
654
683
  }
655
684
  ```
@@ -674,14 +703,17 @@ Unpause the service to allow order creation.
674
703
 
675
704
  ```json
676
705
  {
677
- "operation_type": "service",
706
+ "tool": "onchain_operations",
678
707
  "data": {
679
- "object": "insurance_service_v1",
680
- "pause": false
681
- },
682
- "env": {
683
- "account": "insurance_provider_v1",
684
- "network": "testnet"
708
+ "operation_type": "service",
709
+ "data": {
710
+ "object": "insurance_service_v1",
711
+ "pause": false
712
+ },
713
+ "env": {
714
+ "account": "insurance_provider_v1",
715
+ "network": "testnet"
716
+ }
685
717
  }
686
718
  }
687
719
  ```
@@ -696,9 +728,12 @@ Query the service to verify all configurations are correct.
696
728
 
697
729
  ```json
698
730
  {
699
- "query_type": "onchain_objects",
700
- "objects": ["insurance_service_v1"],
701
- "network": "testnet"
731
+ "tool": "query_toolkit",
732
+ "data": {
733
+ "query_type": "onchain_objects",
734
+ "objects": ["insurance_service_v1"],
735
+ "network": "testnet"
736
+ }
702
737
  }
703
738
  ```
704
739
 
@@ -714,39 +749,42 @@ Create an order on the insurance service using the `order_new` field of the `ser
714
749
 
715
750
  ```json
716
751
  {
717
- "operation_type": "service",
752
+ "tool": "onchain_operations",
718
753
  "data": {
719
- "object": "insurance_service_v1",
720
- "order_new": {
721
- "buy": {
722
- "items": [
723
- {
724
- "name": "Outdoor Accident Insurance",
725
- "stock": 1,
726
- "wip_hash": ""
754
+ "operation_type": "service",
755
+ "data": {
756
+ "object": "insurance_service_v1",
757
+ "order_new": {
758
+ "buy": {
759
+ "items": [
760
+ {
761
+ "name": "Outdoor Accident Insurance",
762
+ "stock": 1,
763
+ "wip_hash": ""
764
+ }
765
+ ],
766
+ "total_pay": {
767
+ "balance": 100000000
727
768
  }
728
- ],
729
- "total_pay": {
730
- "balance": 100000000
769
+ },
770
+ "namedNewOrder": {
771
+ "name": "test_insurance_order_v1",
772
+ "replaceExistName": true
773
+ },
774
+ "namedNewAllocation": {
775
+ "name": "insurance_test_alloc_v1",
776
+ "replaceExistName": true
777
+ },
778
+ "namedNewProgress": {
779
+ "name": "insurance_test_progress_v1",
780
+ "replaceExistName": true
731
781
  }
732
- },
733
- "namedNewOrder": {
734
- "name": "test_insurance_order_v1",
735
- "replaceExistName": true
736
- },
737
- "namedNewAllocation": {
738
- "name": "insurance_test_alloc_v1",
739
- "replaceExistName": true
740
- },
741
- "namedNewProgress": {
742
- "name": "insurance_test_progress_v1",
743
- "replaceExistName": true
744
782
  }
783
+ },
784
+ "env": {
785
+ "account": "insurance_provider_v1",
786
+ "network": "testnet"
745
787
  }
746
- },
747
- "env": {
748
- "account": "insurance_provider_v1",
749
- "network": "testnet"
750
788
  }
751
789
  }
752
790
  ```
@@ -756,10 +794,13 @@ Create an order on the insurance service using the `order_new` field of the `ser
756
794
  > **Optional — Query the Order**: To verify the order or obtain on-chain object IDs:
757
795
  > ```json
758
796
  > {
759
- > "query_type": "onchain_objects",
760
- > "objects": ["test_insurance_order_v1"],
761
- > "network": "testnet",
762
- > "no_cache": true
797
+ > "tool": "query_toolkit",
798
+ > "data": {
799
+ > "query_type": "onchain_objects",
800
+ > "objects": ["test_insurance_order_v1"],
801
+ > "network": "testnet",
802
+ > "no_cache": true
803
+ > }
763
804
  > }
764
805
  > ```
765
806
  > The response includes `progress` and `allocation` fields with the on-chain object IDs.
@@ -772,19 +813,22 @@ First, advance the progress from initial state to Start node.
772
813
 
773
814
  ```json
774
815
  {
775
- "operation_type": "order",
816
+ "tool": "onchain_operations",
776
817
  "data": {
777
- "object": "test_insurance_order_v1",
778
- "progress": {
779
- "operation": {
780
- "next_node_name": "Start",
781
- "forward": "start_claim"
818
+ "operation_type": "order",
819
+ "data": {
820
+ "object": "test_insurance_order_v1",
821
+ "progress": {
822
+ "operation": {
823
+ "next_node_name": "Start",
824
+ "forward": "start_claim"
825
+ }
782
826
  }
827
+ },
828
+ "env": {
829
+ "account": "insurance_provider_v1",
830
+ "network": "testnet"
783
831
  }
784
- },
785
- "env": {
786
- "account": "insurance_provider_v1",
787
- "network": "testnet"
788
832
  }
789
833
  }
790
834
  ```
@@ -808,19 +852,22 @@ Wait at least 10 seconds after entering Start node, then advance the progress to
808
852
 
809
853
  ```json
810
854
  {
811
- "operation_type": "order",
855
+ "tool": "onchain_operations",
812
856
  "data": {
813
- "object": "test_insurance_order_v1",
814
- "progress": {
815
- "operation": {
816
- "next_node_name": "Complete",
817
- "forward": "complete_claim"
857
+ "operation_type": "order",
858
+ "data": {
859
+ "object": "test_insurance_order_v1",
860
+ "progress": {
861
+ "operation": {
862
+ "next_node_name": "Complete",
863
+ "forward": "complete_claim"
864
+ }
818
865
  }
866
+ },
867
+ "env": {
868
+ "account": "insurance_provider_v1",
869
+ "network": "testnet"
819
870
  }
820
- },
821
- "env": {
822
- "account": "insurance_provider_v1",
823
- "network": "testnet"
824
871
  }
825
872
  }
826
873
  ```
@@ -829,24 +876,30 @@ The server will return a `submission` prompt like:
829
876
 
830
877
  ```json
831
878
  {
832
- "type": "submission",
833
- "guard": [
834
- { "object": "0x1508ded8...", "impack": true }
835
- ],
836
- "submission": [
837
- {
838
- "guard": "0x1508ded8...",
879
+ "result": {
880
+ "status": "success",
881
+ "data": {
882
+ "type": "submission",
883
+ "guard": [
884
+ { "object": "0x1508ded8...", "impack": true }
885
+ ],
839
886
  "submission": [
840
887
  {
841
- "identifier": 0,
842
- "b_submission": true,
843
- "value_type": "Address",
844
- "name": "Order ID (submitted at runtime)",
845
- "object_type": "Order"
888
+ "guard": "0x1508ded8...",
889
+ "submission": [
890
+ {
891
+ "identifier": 0,
892
+ "b_submission": true,
893
+ "value_type": "Address",
894
+ "name": "Order ID (submitted at runtime)",
895
+ "object_type": "Order"
896
+ }
897
+ ]
846
898
  }
847
899
  ]
848
900
  }
849
- ]
901
+ },
902
+ "schema": null
850
903
  }
851
904
  ```
852
905
 
@@ -856,43 +909,46 @@ The server will return a `submission` prompt like:
856
909
 
857
910
  ```json
858
911
  {
859
- "operation_type": "order",
912
+ "tool": "onchain_operations",
860
913
  "data": {
861
- "object": "test_insurance_order_v1",
862
- "progress": {
863
- "operation": {
864
- "next_node_name": "Complete",
865
- "forward": "complete_claim"
914
+ "operation_type": "order",
915
+ "data": {
916
+ "object": "test_insurance_order_v1",
917
+ "progress": {
918
+ "operation": {
919
+ "next_node_name": "Complete",
920
+ "forward": "complete_claim"
921
+ }
866
922
  }
923
+ },
924
+ "submission": {
925
+ "type": "submission",
926
+ "guard": [
927
+ {
928
+ "object": "0x1508ded8...",
929
+ "impack": true
930
+ }
931
+ ],
932
+ "submission": [
933
+ {
934
+ "guard": "0x1508ded8...",
935
+ "submission": [
936
+ {
937
+ "identifier": 0,
938
+ "b_submission": true,
939
+ "value_type": "Address",
940
+ "name": "Order ID (submitted at runtime)",
941
+ "object_type": "Order",
942
+ "value": "test_insurance_order_v1"
943
+ }
944
+ ]
945
+ }
946
+ ]
947
+ },
948
+ "env": {
949
+ "account": "insurance_provider_v1",
950
+ "network": "testnet"
867
951
  }
868
- },
869
- "submission": {
870
- "type": "submission",
871
- "guard": [
872
- {
873
- "object": "0x1508ded8...",
874
- "impack": true
875
- }
876
- ],
877
- "submission": [
878
- {
879
- "guard": "0x1508ded8...",
880
- "submission": [
881
- {
882
- "identifier": 0,
883
- "b_submission": true,
884
- "value_type": "Address",
885
- "name": "Order ID (submitted at runtime)",
886
- "object_type": "Order",
887
- "value": "test_insurance_order_v1"
888
- }
889
- ]
890
- }
891
- ]
892
- },
893
- "env": {
894
- "account": "insurance_provider_v1",
895
- "network": "testnet"
896
952
  }
897
953
  }
898
954
  ```
@@ -929,14 +985,17 @@ Call the allocation operation WITHOUT the `submission` field to obtain the Guard
929
985
 
930
986
  ```json
931
987
  {
932
- "operation_type": "allocation",
988
+ "tool": "onchain_operations",
933
989
  "data": {
934
- "object": "insurance_test_alloc_v1",
935
- "alloc_by_guard": "insurance_withdraw_guard_treasury_v1"
936
- },
937
- "env": {
938
- "account": "insurance_provider_v1",
939
- "network": "testnet"
990
+ "operation_type": "allocation",
991
+ "data": {
992
+ "object": "insurance_test_alloc_v1",
993
+ "alloc_by_guard": "insurance_withdraw_guard_treasury_v1"
994
+ },
995
+ "env": {
996
+ "account": "insurance_provider_v1",
997
+ "network": "testnet"
998
+ }
940
999
  }
941
1000
  }
942
1001
  ```
@@ -945,24 +1004,30 @@ The server will return a `submission` prompt like:
945
1004
 
946
1005
  ```json
947
1006
  {
948
- "type": "submission",
949
- "guard": [
950
- { "object": "0xfb8bed2f...", "impack": true }
951
- ],
952
- "submission": [
953
- {
954
- "guard": "0xfb8bed2f...",
1007
+ "result": {
1008
+ "status": "success",
1009
+ "data": {
1010
+ "type": "submission",
1011
+ "guard": [
1012
+ { "object": "0xfb8bed2f...", "impack": true }
1013
+ ],
955
1014
  "submission": [
956
1015
  {
957
- "identifier": 0,
958
- "b_submission": true,
959
- "value_type": "Address",
960
- "name": "order_id (Order object submitted at runtime)",
961
- "object_type": "Order"
1016
+ "guard": "0xfb8bed2f...",
1017
+ "submission": [
1018
+ {
1019
+ "identifier": 0,
1020
+ "b_submission": true,
1021
+ "value_type": "Address",
1022
+ "name": "order_id (Order object submitted at runtime)",
1023
+ "object_type": "Order"
1024
+ }
1025
+ ]
962
1026
  }
963
1027
  ]
964
1028
  }
965
- ]
1029
+ },
1030
+ "schema": null
966
1031
  }
967
1032
  ```
968
1033
 
@@ -974,38 +1039,41 @@ Fill in the `value` field with the Order ID (or Order name) and resubmit. The `s
974
1039
 
975
1040
  ```json
976
1041
  {
977
- "operation_type": "allocation",
1042
+ "tool": "onchain_operations",
978
1043
  "data": {
979
- "object": "insurance_test_alloc_v1",
980
- "alloc_by_guard": "insurance_withdraw_guard_treasury_v1"
981
- },
982
- "submission": {
983
- "type": "submission",
984
- "guard": [
985
- {
986
- "object": "0xfb8bed2f...",
987
- "impack": true
988
- }
989
- ],
990
- "submission": [
991
- {
992
- "guard": "0xfb8bed2f...",
993
- "submission": [
994
- {
995
- "identifier": 0,
996
- "b_submission": true,
997
- "value_type": "Address",
998
- "name": "order_id (Order object submitted at runtime)",
999
- "object_type": "Order",
1000
- "value": "test_insurance_order_v1"
1001
- }
1002
- ]
1003
- }
1004
- ]
1005
- },
1006
- "env": {
1007
- "account": "insurance_provider_v1",
1008
- "network": "testnet"
1044
+ "operation_type": "allocation",
1045
+ "data": {
1046
+ "object": "insurance_test_alloc_v1",
1047
+ "alloc_by_guard": "insurance_withdraw_guard_treasury_v1"
1048
+ },
1049
+ "submission": {
1050
+ "type": "submission",
1051
+ "guard": [
1052
+ {
1053
+ "object": "0xfb8bed2f...",
1054
+ "impack": true
1055
+ }
1056
+ ],
1057
+ "submission": [
1058
+ {
1059
+ "guard": "0xfb8bed2f...",
1060
+ "submission": [
1061
+ {
1062
+ "identifier": 0,
1063
+ "b_submission": true,
1064
+ "value_type": "Address",
1065
+ "name": "order_id (Order object submitted at runtime)",
1066
+ "object_type": "Order",
1067
+ "value": "test_insurance_order_v1"
1068
+ }
1069
+ ]
1070
+ }
1071
+ ]
1072
+ },
1073
+ "env": {
1074
+ "account": "insurance_provider_v1",
1075
+ "network": "testnet"
1076
+ }
1009
1077
  }
1010
1078
  }
1011
1079
  ```