@wowok/agent-mcp 2.7.1 → 2.7.2

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 (375) hide show
  1. package/dist/config/index.js +1 -1
  2. package/dist/config/runtime.js +1 -238
  3. package/dist/customer/customer-advice.js +1 -130
  4. package/dist/customer/index.js +1 -11
  5. package/dist/customer/industry-risks.js +1 -438
  6. package/dist/customer/info-puzzle.js +1 -681
  7. package/dist/customer/order-monitor.js +1 -328
  8. package/dist/customer/order-strategy.js +1 -373
  9. package/dist/customer/post-purchase.js +1 -351
  10. package/dist/customer/preorder-compare.js +1 -34
  11. package/dist/customer/reminder-system.js +1 -316
  12. package/dist/customer/risk-assessment.js +1 -397
  13. package/dist/customer/types.js +1 -13
  14. package/dist/customer/user-preferences.js +1 -460
  15. package/dist/evaluation/arbitration-game.d.ts +9 -2
  16. package/dist/evaluation/arbitration-game.js +1 -48
  17. package/dist/evaluation/builtins/demand-match.js +1 -153
  18. package/dist/evaluation/builtins/index.js +1 -10
  19. package/dist/evaluation/builtins/service-risk.js +1 -55
  20. package/dist/evaluation/capability.js +1 -13
  21. package/dist/evaluation/composer.js +1 -40
  22. package/dist/evaluation/engine.js +1 -175
  23. package/dist/evaluation/extract.js +1 -115
  24. package/dist/evaluation/game-strategy.d.ts +27 -0
  25. package/dist/evaluation/game-strategy.js +1 -0
  26. package/dist/evaluation/gap.js +1 -100
  27. package/dist/evaluation/index.d.ts +1 -0
  28. package/dist/evaluation/index.js +1 -11
  29. package/dist/evaluation/node-game.d.ts +31 -3
  30. package/dist/evaluation/node-game.js +1 -57
  31. package/dist/evaluation/region.js +1 -36
  32. package/dist/evaluation/types.d.ts +1 -0
  33. package/dist/evaluation/types.js +1 -1
  34. package/dist/evaluation/user-injection.js +1 -27
  35. package/dist/experience/experience-reuse.js +1 -103
  36. package/dist/experience/index.js +1 -5
  37. package/dist/experience/intent-distill.js +1 -83
  38. package/dist/experience/realtime-feedback.js +1 -94
  39. package/dist/experience/types.js +1 -1
  40. package/dist/experience/user-profile.js +1 -171
  41. package/dist/extensions/business-modules.js +1 -287
  42. package/dist/extensions/capability-manifest.js +1 -781
  43. package/dist/extensions/constraint-registry.js +1 -198
  44. package/dist/extensions/index.js +1 -6
  45. package/dist/extensions/metric-registry.js +1 -257
  46. package/dist/extensions/mode-evaluator.js +1 -170
  47. package/dist/extensions/modes.js +1 -499
  48. package/dist/extensions/registry.js +1 -717
  49. package/dist/extensions/types.js +1 -1
  50. package/dist/harness/auto-escalation.js +1 -68
  51. package/dist/harness/checkpoint.js +1 -129
  52. package/dist/harness/index.js +1 -78
  53. package/dist/harness/plan.js +1 -315
  54. package/dist/harness/recover.js +1 -139
  55. package/dist/harness/types.js +1 -1
  56. package/dist/harness/verify.js +1 -237
  57. package/dist/index.js +1 -273
  58. package/dist/intent/enrich.js +1 -67
  59. package/dist/intent/index.js +1 -60
  60. package/dist/intent/matcher.js +1 -81
  61. package/dist/intent/store.js +1 -55
  62. package/dist/intent/types.js +1 -10
  63. package/dist/knowledge/acquisition-flywheel.js +1 -192
  64. package/dist/knowledge/allocation-confirm.js +1 -534
  65. package/dist/knowledge/allocation-context.js +1 -249
  66. package/dist/knowledge/allocation-ledger.js +1 -463
  67. package/dist/knowledge/allocation-puzzle.js +1 -298
  68. package/dist/knowledge/allocation-risk.js +1 -568
  69. package/dist/knowledge/allocation-templates.js +1 -970
  70. package/dist/knowledge/allocation-translation.js +1 -585
  71. package/dist/knowledge/arb-risk.js +1 -210
  72. package/dist/knowledge/arbitration-confirm.js +1 -559
  73. package/dist/knowledge/arbitration-context.js +1 -505
  74. package/dist/knowledge/arbitration-ledger.js +1 -521
  75. package/dist/knowledge/arbitration-puzzle.js +1 -304
  76. package/dist/knowledge/arbitration-risk.js +1 -423
  77. package/dist/knowledge/arbitration-templates.js +1 -276
  78. package/dist/knowledge/arbitration-translation.js +1 -487
  79. package/dist/knowledge/arbitration-trust.js +1 -117
  80. package/dist/knowledge/audit-rules.js +1 -141
  81. package/dist/knowledge/bridge-risk.js +1 -263
  82. package/dist/knowledge/contact-risk.js +1 -200
  83. package/dist/knowledge/contact-templates.js +1 -60
  84. package/dist/knowledge/demand-confirm.js +1 -206
  85. package/dist/knowledge/demand-matching.js +1 -132
  86. package/dist/knowledge/demand-risk.js +1 -240
  87. package/dist/knowledge/demand-translation.js +1 -354
  88. package/dist/knowledge/deployment-scanner.js +1 -823
  89. package/dist/knowledge/dynamic-pricing.js +1 -87
  90. package/dist/knowledge/examples-scanner-cli.js +1 -26
  91. package/dist/knowledge/examples-scanner.js +1 -843
  92. package/dist/knowledge/flywheel-loop.js +1 -404
  93. package/dist/knowledge/fund-layer.js +1 -973
  94. package/dist/knowledge/glossary.js +1 -211
  95. package/dist/knowledge/guard-confirm.js +1 -406
  96. package/dist/knowledge/guard-context.js +1 -287
  97. package/dist/knowledge/guard-design-patterns.js +1 -360
  98. package/dist/knowledge/guard-ledger.js +1 -260
  99. package/dist/knowledge/guard-lint.js +1 -670
  100. package/dist/knowledge/guard-migration.js +1 -228
  101. package/dist/knowledge/guard-puzzle.js +1 -805
  102. package/dist/knowledge/guard-render.js +1 -700
  103. package/dist/knowledge/guard-risk.js +1 -1879
  104. package/dist/knowledge/guard-submission-prompt.js +1 -171
  105. package/dist/knowledge/guard-templates.js +1 -1105
  106. package/dist/knowledge/guard-translation.js +1 -1119
  107. package/dist/knowledge/index.js +1 -436
  108. package/dist/knowledge/industry-evolution.js +1 -323
  109. package/dist/knowledge/industry-generalizer.js +1 -381
  110. package/dist/knowledge/industry-registry.js +1 -174
  111. package/dist/knowledge/intent-metrics.d.ts +4 -3
  112. package/dist/knowledge/intent-metrics.js +1 -566
  113. package/dist/knowledge/machine-confirm.js +1 -559
  114. package/dist/knowledge/machine-context.js +1 -833
  115. package/dist/knowledge/machine-ledger.js +1 -338
  116. package/dist/knowledge/machine-puzzle.js +1 -494
  117. package/dist/knowledge/machine-render.js +1 -565
  118. package/dist/knowledge/machine-risk.js +1 -669
  119. package/dist/knowledge/machine-templates.js +1 -1597
  120. package/dist/knowledge/machine-topology.js +1 -234
  121. package/dist/knowledge/machine-translation.js +1 -513
  122. package/dist/knowledge/mcp-schema-audit-cli.js +1 -45
  123. package/dist/knowledge/mcp-schema-audit.js +1 -777
  124. package/dist/knowledge/onchain-constants.js +1 -35
  125. package/dist/knowledge/order-confirm.js +1 -573
  126. package/dist/knowledge/order-context.js +1 -390
  127. package/dist/knowledge/order-ledger.js +1 -341
  128. package/dist/knowledge/order-puzzle.js +1 -255
  129. package/dist/knowledge/order-risk.js +1 -653
  130. package/dist/knowledge/order-templates.js +1 -368
  131. package/dist/knowledge/order-translation.js +1 -550
  132. package/dist/knowledge/overrides-loader.js +1 -65
  133. package/dist/knowledge/passport-confirm.js +1 -531
  134. package/dist/knowledge/passport-context.js +1 -306
  135. package/dist/knowledge/passport-ledger.js +1 -282
  136. package/dist/knowledge/passport-puzzle.js +1 -333
  137. package/dist/knowledge/passport-risk.js +1 -450
  138. package/dist/knowledge/passport-templates.js +1 -568
  139. package/dist/knowledge/passport-translation.js +1 -516
  140. package/dist/knowledge/payment-risk.js +1 -249
  141. package/dist/knowledge/permission-confirm.js +1 -426
  142. package/dist/knowledge/permission-context.js +1 -224
  143. package/dist/knowledge/permission-ledger.js +1 -403
  144. package/dist/knowledge/permission-puzzle.js +1 -173
  145. package/dist/knowledge/permission-risk.js +1 -411
  146. package/dist/knowledge/permission-templates.js +1 -234
  147. package/dist/knowledge/permission-translation.js +1 -350
  148. package/dist/knowledge/personal-risk.js +1 -212
  149. package/dist/knowledge/process-model.js +1 -160
  150. package/dist/knowledge/progress-confirm.js +1 -456
  151. package/dist/knowledge/progress-context.js +1 -452
  152. package/dist/knowledge/progress-ledger.js +1 -330
  153. package/dist/knowledge/progress-puzzle.js +1 -219
  154. package/dist/knowledge/progress-risk.js +1 -461
  155. package/dist/knowledge/progress-templates.js +1 -228
  156. package/dist/knowledge/progress-translation.js +1 -405
  157. package/dist/knowledge/proof-confirm.js +1 -187
  158. package/dist/knowledge/proof-risk.js +1 -207
  159. package/dist/knowledge/proof-translation.js +1 -283
  160. package/dist/knowledge/registrar-risk.js +1 -217
  161. package/dist/knowledge/repository-confirm.js +1 -286
  162. package/dist/knowledge/repository-risk.js +1 -373
  163. package/dist/knowledge/repository-translation.js +1 -445
  164. package/dist/knowledge/reputation-rules.js +1 -99
  165. package/dist/knowledge/resource-risk.js +1 -157
  166. package/dist/knowledge/reward-confirm.js +1 -526
  167. package/dist/knowledge/reward-context.js +1 -504
  168. package/dist/knowledge/reward-ledger.js +1 -502
  169. package/dist/knowledge/reward-puzzle.js +1 -300
  170. package/dist/knowledge/reward-risk.js +1 -627
  171. package/dist/knowledge/reward-templates.js +1 -197
  172. package/dist/knowledge/reward-translation.js +1 -501
  173. package/dist/knowledge/safety-rules.js +1 -404
  174. package/dist/knowledge/scenario-modes.js +1 -321
  175. package/dist/knowledge/service-confirm.js +1 -807
  176. package/dist/knowledge/service-context.js +1 -403
  177. package/dist/knowledge/service-ledger.js +1 -609
  178. package/dist/knowledge/service-puzzle.js +1 -236
  179. package/dist/knowledge/service-risk.js +1 -651
  180. package/dist/knowledge/service-templates.js +1 -456
  181. package/dist/knowledge/service-translation.js +1 -622
  182. package/dist/knowledge/template-registry.js +1 -353
  183. package/dist/knowledge/tool-constraints.js +1 -195
  184. package/dist/knowledge/tools-reference.js +1 -178
  185. package/dist/knowledge/treasury-confirm.js +1 -512
  186. package/dist/knowledge/treasury-context.js +1 -363
  187. package/dist/knowledge/treasury-ledger.js +1 -300
  188. package/dist/knowledge/treasury-puzzle.js +1 -216
  189. package/dist/knowledge/treasury-risk.js +1 -440
  190. package/dist/knowledge/treasury-templates.js +1 -358
  191. package/dist/knowledge/treasury-translation.js +1 -498
  192. package/dist/knowledge/trust-metrics.js +1 -198
  193. package/dist/knowledge/util-risk.js +1 -135
  194. package/dist/loop-engineering/aggregate.js +1 -132
  195. package/dist/loop-engineering/context-collect.js +1 -83
  196. package/dist/loop-engineering/diagnose.js +1 -273
  197. package/dist/loop-engineering/improve.js +1 -405
  198. package/dist/loop-engineering/index.js +1 -4
  199. package/dist/loop-engineering/pipeline.js +1 -56
  200. package/dist/mode-market/index.js +1 -3
  201. package/dist/mode-market/registry.js +1 -124
  202. package/dist/mode-market/review.js +1 -214
  203. package/dist/mode-market/submission.js +1 -85
  204. package/dist/participation/collaborator-interest.d.ts +23 -0
  205. package/dist/participation/collaborator-interest.js +1 -0
  206. package/dist/participation/customer-interest.d.ts +25 -0
  207. package/dist/participation/customer-interest.js +1 -0
  208. package/dist/participation/merchant-interest.js +1 -100
  209. package/dist/participation/radar-core.d.ts +13 -3
  210. package/dist/participation/radar-core.js +1 -269
  211. package/dist/participation/supplier-interest.d.ts +25 -0
  212. package/dist/participation/supplier-interest.js +1 -0
  213. package/dist/persona/analyzer.js +1 -66
  214. package/dist/persona/bridge.js +1 -86
  215. package/dist/persona/defaults.js +1 -195
  216. package/dist/persona/experience-bridge.js +1 -23
  217. package/dist/persona/index.js +1 -71
  218. package/dist/persona/model.js +1 -111
  219. package/dist/persona/store.js +1 -62
  220. package/dist/persona/types.d.ts +3 -1
  221. package/dist/persona/types.js +1 -5
  222. package/dist/project/business-puzzle.js +1 -383
  223. package/dist/project/context-assembly.js +1 -254
  224. package/dist/project/deployment-bridge.js +1 -120
  225. package/dist/project/deployment-doc.js +1 -1126
  226. package/dist/project/edit-planner.js +1 -1342
  227. package/dist/project/evaluation.js +1 -2011
  228. package/dist/project/game-theory.js +1 -177
  229. package/dist/project/graph-builder.js +1 -656
  230. package/dist/project/graph.js +1 -340
  231. package/dist/project/handlers.js +1 -1784
  232. package/dist/project/index.d.ts +1 -0
  233. package/dist/project/index.js +1 -301
  234. package/dist/project/intent-analyzer.js +1 -149
  235. package/dist/project/machine-nodes.js +1 -36
  236. package/dist/project/merchant-guide.js +1 -264
  237. package/dist/project/migration.js +1 -125
  238. package/dist/project/mode-actions.js +1 -309
  239. package/dist/project/namespace.js +1 -206
  240. package/dist/project/participation-radar.js +1 -428
  241. package/dist/project/pipeline-actions.js +1 -109
  242. package/dist/project/project-store.js +1 -422
  243. package/dist/project/query.js +1 -153
  244. package/dist/project/reverse-mapping.d.ts +34 -0
  245. package/dist/project/reverse-mapping.js +1 -0
  246. package/dist/project/risk-aggregator.js +1 -295
  247. package/dist/project/rollback-policy.js +1 -290
  248. package/dist/project/semantic-assembler.js +1 -345
  249. package/dist/project/semantic-graph.js +1 -292
  250. package/dist/project/stage-gate.js +1 -369
  251. package/dist/project/substep-trace.js +1 -332
  252. package/dist/project/task-tracker.js +1 -78
  253. package/dist/role/derivation.d.ts +18 -0
  254. package/dist/role/derivation.js +1 -0
  255. package/dist/role/index.d.ts +5 -0
  256. package/dist/role/index.js +1 -0
  257. package/dist/role/model.d.ts +8 -0
  258. package/dist/role/model.js +1 -0
  259. package/dist/role/resolution.d.ts +11 -0
  260. package/dist/role/resolution.js +1 -0
  261. package/dist/role/types.d.ts +11 -0
  262. package/dist/role/types.js +1 -0
  263. package/dist/rules.js +1 -52
  264. package/dist/safety/confirm-gate.js +1 -88
  265. package/dist/safety/index.js +1 -3
  266. package/dist/safety/preview.js +1 -52
  267. package/dist/schema/call/allocation.js +1 -34
  268. package/dist/schema/call/arbitration.js +1 -113
  269. package/dist/schema/call/base.d.ts +15 -15
  270. package/dist/schema/call/base.js +1 -370
  271. package/dist/schema/call/bridge-handler.js +1 -265
  272. package/dist/schema/call/bridge.d.ts +7 -7
  273. package/dist/schema/call/bridge.js +1 -458
  274. package/dist/schema/call/contact.js +1 -37
  275. package/dist/schema/call/demand.js +1 -47
  276. package/dist/schema/call/guard.js +1 -161
  277. package/dist/schema/call/handler.js +1 -322
  278. package/dist/schema/call/index.js +1 -20
  279. package/dist/schema/call/machine.js +1 -193
  280. package/dist/schema/call/order.js +1 -35
  281. package/dist/schema/call/payment.js +1 -37
  282. package/dist/schema/call/permission-handler.js +1 -54
  283. package/dist/schema/call/permission.js +1 -105
  284. package/dist/schema/call/personal.js +1 -78
  285. package/dist/schema/call/progress.js +1 -47
  286. package/dist/schema/call/proof.js +1 -33
  287. package/dist/schema/call/repository.js +1 -77
  288. package/dist/schema/call/reward.js +1 -30
  289. package/dist/schema/call/semantic.js +1 -1679
  290. package/dist/schema/call/service.js +1 -184
  291. package/dist/schema/call/treasury.js +1 -71
  292. package/dist/schema/common/index.js +1 -407
  293. package/dist/schema/config/index.js +1 -68
  294. package/dist/schema/evaluation/index.d.ts +213 -16
  295. package/dist/schema/evaluation/index.js +1 -356
  296. package/dist/schema/index.js +1 -17
  297. package/dist/schema/intent-radar/index.d.ts +13 -13
  298. package/dist/schema/intent-radar/index.js +1 -89
  299. package/dist/schema/local/index.d.ts +21 -21
  300. package/dist/schema/local/index.js +1 -927
  301. package/dist/schema/local/wip.js +1 -187
  302. package/dist/schema/messenger/index.d.ts +7 -7
  303. package/dist/schema/messenger/index.js +1 -475
  304. package/dist/schema/operations.d.ts +7 -7
  305. package/dist/schema/operations.js +1 -520
  306. package/dist/schema/persona/index.d.ts +54 -54
  307. package/dist/schema/persona/index.js +1 -148
  308. package/dist/schema/project/index.d.ts +94 -48
  309. package/dist/schema/project/index.js +1 -2057
  310. package/dist/schema/query/index.d.ts +423 -7
  311. package/dist/schema/query/index.js +1 -1646
  312. package/dist/schema/schema-query/index.js +1 -104
  313. package/dist/schema/schema-version.js +1 -76
  314. package/dist/schema/sync-layer4.js +1 -286
  315. package/dist/schema/task-status.js +1 -36
  316. package/dist/schema/trust/index.js +1 -314
  317. package/dist/schema/utils/guard-parser.js +1 -419
  318. package/dist/schema/utils/guard-query-utils.js +1 -46
  319. package/dist/schema/utils/node-parser.js +1 -369
  320. package/dist/schema/utils/object-type-utils.js +1 -35
  321. package/dist/schema/utils/permission-index-utils.js +1 -7
  322. package/dist/schema/utils/permission-machine-check.js +1 -121
  323. package/dist/schema/utils/skills-recommendation.js +1 -77
  324. package/dist/schema-query/index.js +1 -810
  325. package/dist/schemas/account_operation.output.json +5 -2
  326. package/dist/schemas/bridge_operation.output.json +5 -2
  327. package/dist/schemas/evaluation_operation.output.json +112 -7
  328. package/dist/schemas/evaluation_operation.schema.json +93 -6
  329. package/dist/schemas/index.json +1 -1
  330. package/dist/schemas/intent_radar.output.json +4 -1
  331. package/dist/schemas/intent_radar.schema.json +4 -1
  332. package/dist/schemas/local_info_operation.output.json +5 -2
  333. package/dist/schemas/local_mark_operation.output.json +5 -2
  334. package/dist/schemas/messenger_operation.output.json +5 -2
  335. package/dist/schemas/onchain_events.output.json +5 -2
  336. package/dist/schemas/onchain_operations.output.json +5 -2
  337. package/dist/schemas/onchain_operations.schema.json +4 -4
  338. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
  339. package/dist/schemas/onchain_operations_machine.schema.json +2 -2
  340. package/dist/schemas/onchain_operations_service.schema.json +1 -1
  341. package/dist/schemas/onchain_table_data.output.json +6 -3
  342. package/dist/schemas/persona_operation.output.json +4 -1
  343. package/dist/schemas/persona_operation.schema.json +4 -1
  344. package/dist/schemas/project_operation.output.json +28 -8
  345. package/dist/schemas/query_toolkit.output.json +8 -5
  346. package/dist/schemas/wowok_buildin_info.output.json +132 -0
  347. package/dist/schemas/wowok_buildin_info.schema.json +14 -0
  348. package/dist/telemetry/index.js +1 -112
  349. package/dist/telemetry/redact.js +1 -23
  350. package/dist/telemetry/storage.js +1 -80
  351. package/dist/tools/handlers/bridge.js +1 -1
  352. package/dist/tools/handlers/config.js +1 -74
  353. package/dist/tools/handlers/evaluation.js +1 -123
  354. package/dist/tools/handlers/file-export.js +1 -90
  355. package/dist/tools/handlers/intent-radar.js +1 -76
  356. package/dist/tools/handlers/local.js +1 -53
  357. package/dist/tools/handlers/messenger.js +1 -188
  358. package/dist/tools/handlers/onchain.js +1 -1180
  359. package/dist/tools/handlers/persona.js +1 -89
  360. package/dist/tools/handlers/project.js +1 -211
  361. package/dist/tools/handlers/query.js +1 -434
  362. package/dist/tools/handlers/schema-query.js +1 -176
  363. package/dist/tools/handlers/task-status.js +1 -26
  364. package/dist/tools/handlers/trust.js +1 -380
  365. package/dist/tools/handlers/wip.js +1 -90
  366. package/dist/tools/index.js +1 -1382
  367. package/dist/tools/retry.js +1 -85
  368. package/dist/tools/rules-hook.js +1 -23
  369. package/dist/tools/shared.js +1 -130
  370. package/dist/tools/types.js +1 -1
  371. package/dist/tools/upgrade-check.d.ts +19 -0
  372. package/dist/tools/upgrade-check.js +1 -0
  373. package/dist/tools/wip-deploy-assist.js +1 -306
  374. package/dist/tools/wrap.js +1 -500
  375. package/package.json +4 -2
@@ -1,47 +1 @@
1
- import { z } from 'zod';
2
- import { WithPermissionObjectSchema, ObjectsSchema, CallEnvSchema, SubmissionCallSchema, } from './base.js';
3
- import { ServiceGuardSchema } from '../query/index.js';
4
- import { AccountOrMark_AddressSchema, DescriptionSchema, LongNameSchema, NameOrAddressSchema, ReceivedObjectsOrRecentlySchema, RECEIVE_FORMAT_BLOCK_OBJECTS } from '../common/index.js';
5
- export const GuardsSchema = z.discriminatedUnion('op', [
6
- z.object({
7
- op: z.literal('add'),
8
- guard: z.array(ServiceGuardSchema).describe('List of guard IDs or names to add'),
9
- }).strict(),
10
- z.object({
11
- op: z.literal('set'),
12
- guard: z.array(ServiceGuardSchema).describe('List of guard IDs or names to set'),
13
- }).strict(),
14
- z.object({
15
- op: z.literal('remove'),
16
- guard: z.array(NameOrAddressSchema).describe('List of guard IDs or names to remove'),
17
- }).strict(),
18
- z.object({
19
- op: z.literal('clear'),
20
- }).strict(),
21
- ]);
22
- export const DemandPresentSchema = z.object({
23
- recommend: DescriptionSchema.describe('Recommendation for the demand'),
24
- by_guard: NameOrAddressSchema.optional().describe('Guard ID or name, used to select which Guard\'s verification to pass through'),
25
- service: NameOrAddressSchema.optional().describe('Service ID or name to present'),
26
- }).strict();
27
- export const FeedbackInfoSchema = z.object({
28
- who: AccountOrMark_AddressSchema.describe('Account address or mark name, used to identify providing feedback to this user'),
29
- acceptance_score: z.number().int().min(0).max(255).optional().describe('Acceptance score, used to evaluate the reception level of the service recommended by the user'),
30
- feedback: DescriptionSchema.optional().describe('Feedback content for the user'),
31
- }).strict();
32
- export const CallDemand_DataSchema = z.object({
33
- object: WithPermissionObjectSchema,
34
- present: DemandPresentSchema.optional().describe('Recommend Service to Demand object'),
35
- description: DescriptionSchema.optional(),
36
- location: LongNameSchema.optional().describe('Service location of the Demand object'),
37
- rewards: ObjectsSchema.optional().describe('Reward information of the Demand object'),
38
- feedback: z.array(FeedbackInfoSchema).optional().describe('User feedback information for the Demand object'),
39
- guards: GuardsSchema.optional().describe('Validation Guard list for the Demand object. Used to verify whether the service recommended by the user meets the requirements'),
40
- owner_receive: ReceivedObjectsOrRecentlySchema.optional().describe('Unwrap CoinWrapper objects and other objects received by this Demand object and send them to the owner of its Permission object.' + RECEIVE_FORMAT_BLOCK_OBJECTS),
41
- um: z.union([NameOrAddressSchema, z.null()]).optional().describe('Contact object ID or name.'),
42
- }).strict().describe("On-chain Demand operations. USAGE: (1) CREATE NEW: Set 'object' field with OBJECT format {name, permission, ...} to create a Demand. NOTE: 'name' goes INSIDE 'object', NOT at the data root level. 'permission' can be a new Permission object or reference an existing one - check 'object' field description for details. (2) OPERATE EXISTING: Set 'object' field with STRING format (object ID or name). The 'object' field is CRITICAL and REQUIRED in both cases. STRING for existing, OBJECT for new creation.");
43
- export const CallDemand_InputSchema = z.object({
44
- data: CallDemand_DataSchema,
45
- env: CallEnvSchema.optional(),
46
- submission: SubmissionCallSchema.optional(),
47
- }).strict();
1
+ import{z}from'zod';import{WithPermissionObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{ServiceGuardSchema}from'../query/index.js';import{AccountOrMark_AddressSchema,DescriptionSchema,LongNameSchema,NameOrAddressSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';export const GuardsSchema=z['discriminatedUnion']('op',[z['object']({'op':z['literal']('add'),'guard':z['array'](ServiceGuardSchema)['describe']('List\x20of\x20guard\x20IDs\x20or\x20names\x20to\x20add')})['strict'](),z['object']({'op':z['literal']('set'),'guard':z['array'](ServiceGuardSchema)['describe']('List\x20of\x20guard\x20IDs\x20or\x20names\x20to\x20set')})['strict'](),z['object']({'op':z['literal']('remove'),'guard':z['array'](NameOrAddressSchema)['describe']('List\x20of\x20guard\x20IDs\x20or\x20names\x20to\x20remove')})['strict'](),z['object']({'op':z['literal']('clear')})['strict']()]);export const DemandPresentSchema=z['object']({'recommend':DescriptionSchema['describe']('Recommendation\x20for\x20the\x20demand'),'by_guard':NameOrAddressSchema['optional']()['describe']('Guard\x20ID\x20or\x20name,\x20used\x20to\x20select\x20which\x20Guard\x27s\x20verification\x20to\x20pass\x20through'),'service':NameOrAddressSchema['optional']()['describe']('Service\x20ID\x20or\x20name\x20to\x20present')})['strict']();export const FeedbackInfoSchema=z['object']({'who':AccountOrMark_AddressSchema['describe']('Account\x20address\x20or\x20mark\x20name,\x20used\x20to\x20identify\x20providing\x20feedback\x20to\x20this\x20user'),'acceptance_score':z['number']()['int']()['min'](0x0)['max'](0xff)['optional']()['describe']('Acceptance\x20score,\x20used\x20to\x20evaluate\x20the\x20reception\x20level\x20of\x20the\x20service\x20recommended\x20by\x20the\x20user'),'feedback':DescriptionSchema['optional']()['describe']('Feedback\x20content\x20for\x20the\x20user')})['strict']();export const CallDemand_DataSchema=z['object']({'object':WithPermissionObjectSchema,'present':DemandPresentSchema['optional']()['describe']('Recommend\x20Service\x20to\x20Demand\x20object'),'description':DescriptionSchema['optional'](),'location':LongNameSchema['optional']()['describe']('Service\x20location\x20of\x20the\x20Demand\x20object'),'rewards':ObjectsSchema['optional']()['describe']('Reward\x20information\x20of\x20the\x20Demand\x20object'),'feedback':z['array'](FeedbackInfoSchema)['optional']()['describe']('User\x20feedback\x20information\x20for\x20the\x20Demand\x20object'),'guards':GuardsSchema['optional']()['describe']('Validation\x20Guard\x20list\x20for\x20the\x20Demand\x20object.\x20Used\x20to\x20verify\x20whether\x20the\x20service\x20recommended\x20by\x20the\x20user\x20meets\x20the\x20requirements'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Demand\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20its\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'um':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Contact\x20object\x20ID\x20or\x20name.')})['strict']()['describe']('On-chain\x20Demand\x20operations.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20permission,\x20...}\x20to\x20create\x20a\x20Demand.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20\x27permission\x27\x20can\x20be\x20a\x20new\x20Permission\x20object\x20or\x20reference\x20an\x20existing\x20one\x20-\x20check\x20\x27object\x27\x20field\x20description\x20for\x20details.\x20(2)\x20OPERATE\x20EXISTING:\x20Set\x20\x27object\x27\x20field\x20with\x20STRING\x20format\x20(object\x20ID\x20or\x20name).\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED\x20in\x20both\x20cases.\x20STRING\x20for\x20existing,\x20OBJECT\x20for\x20new\x20creation.');export const CallDemand_InputSchema=z['object']({'data':CallDemand_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
@@ -1,161 +1 @@
1
- import { z } from 'zod';
2
- import { CallEnvSchema, NamedObjectSchema, SubmissionCallSchema } from './base.js';
3
- import { GuardNodeSchema } from '../query/index.js';
4
- import { DescriptionSchema, GuardTableItemBaseSchema, NameOrAddressSchema } from '../common/index.js';
5
- import { isBoolReturningQuery } from '../utils/guard-query-utils.js';
6
- import { ValueType } from '@wowok/wowok';
7
- export const CallGuard_RootSchema = z.union([
8
- GuardNodeSchema.refine((node) => {
9
- const allowedTypes = [
10
- 'logic_as_u256_greater', 'logic_as_u256_lesser', 'logic_as_u256_equal',
11
- 'logic_as_u256_greater_or_equal', 'logic_as_u256_lesser_or_equal',
12
- 'logic_equal', 'logic_not', 'logic_and', 'logic_or',
13
- 'logic_string_contains', 'logic_string_nocase_contains', 'logic_string_nocase_equal',
14
- 'calc_string_contains', 'calc_string_nocase_contains', 'calc_string_nocase_equal',
15
- 'vec_contains_bool', 'vec_contains_address', 'vec_contains_string',
16
- 'vec_contains_string_nocase', 'vec_contains_number',
17
- 'query_reward_record_exists',
18
- 'query',
19
- 'identifier'
20
- ];
21
- if (!allowedTypes.includes(node.type)) {
22
- return false;
23
- }
24
- if (node.type === 'query') {
25
- const queryNode = node;
26
- if (!isBoolReturningQuery(queryNode.query)) {
27
- return false;
28
- }
29
- }
30
- return true;
31
- }, {
32
- message: "Guard root node must be an operation that returns Bool. Allowed types: logic_*, calc_string_contains, calc_string_nocase_*, vec_contains_*, reward_record_exist, identifier (must reference Bool type in table). For 'query' type, ONLY queries that return Bool are allowed. Use 'wowok_buildin_info' tool with {\"info\": \"guard instructions\", \"filter\": {\"returnType\": \"Bool\", \"scope\": \"object query\"}} to list all Bool-returning queries. Other nodes (calc_number_*, context, non-Bool queries) must be wrapped with a logic operation."
33
- }).describe("Guard computational tree root node. MUST be an operation that returns a Bool value (pass/fail). For 'query' type, the specific query must return Bool. For 'identifier' type, the referenced table item must have value_type=Bool."),
34
- z.object({
35
- type: z.literal("file"),
36
- file_path: z.string().describe("Path to JSON or Markdown file containing Guard definition. File can define: namedNew, description, table, root, rely."),
37
- format: z.enum(["json", "markdown"]).optional().default("json")
38
- .describe("File format: 'json' or 'markdown'. Default is 'json'."),
39
- }).strict(),
40
- ]).describe("Guard root definition. Either provide a direct GuardNode tree (must be a logical operation returning Bool) or reference a file to load. When using file type, fields defined in the schema (namedNew, description, table, rely) will OVERRIDE the corresponding fields in the file.");
41
- const isBoolValueType = (valueType) => {
42
- if (typeof valueType === 'number') {
43
- return valueType === ValueType.Bool;
44
- }
45
- if (typeof valueType === 'string') {
46
- return valueType.toLowerCase() === 'bool' || valueType === '0';
47
- }
48
- return false;
49
- };
50
- export const GuardBindingHintActionSchema = z.enum([
51
- "buy",
52
- "forward",
53
- "allocate",
54
- "claim_reward",
55
- "vote",
56
- "dispute",
57
- "write_repository",
58
- "submit_progress",
59
- "gen_passport",
60
- "custom",
61
- ]).describe("Guard protected action type. Maps to IntentPuzzle.action in the puzzle model.");
62
- export const GuardBindingHintHostObjectSchema = z.enum([
63
- "Service",
64
- "Machine",
65
- "Arbitration",
66
- "Reward",
67
- "Repository",
68
- "Progress",
69
- "Demand",
70
- "Standalone",
71
- ]).describe("Host object type that the Guard will bind to. 'Standalone' for independent Guards (rely dependency or gen_passport).");
72
- export const GuardBindingHintBindingFieldSchema = z.enum([
73
- "buy_guard",
74
- "order_allocators",
75
- "Forward.guard",
76
- "submission",
77
- "guard",
78
- "write_guard",
79
- "usage_guard",
80
- "voting_guard",
81
- "ServiceGuard",
82
- "none",
83
- ]).describe("Binding field on the host object. 'none' for standalone Guards.");
84
- export const GuardBindingHintSchema = z.object({
85
- action: GuardBindingHintActionSchema
86
- .describe("Protected action type. Example: 'buy' for Service buy_guard, 'forward' for Machine Forward.guard."),
87
- host_object: GuardBindingHintHostObjectSchema
88
- .describe("Host object type. Example: 'Service', 'Machine'."),
89
- binding_field: GuardBindingHintBindingFieldSchema
90
- .describe("Binding field. Example: 'buy_guard', 'Forward.guard'."),
91
- rule_sentence: z.string().optional()
92
- .describe("One-sentence description of the validation rule (human-readable). Example: 'Only the author can purchase this service'."),
93
- failure_conditions: z.array(z.string()).optional()
94
- .describe("List of conditions under which the Guard should FAIL. Example: ['Signer is not in allowlist','Order is already completed']."),
95
- circular_reference: z.boolean().optional()
96
- .describe("Whether the Guard references the Host Object itself (circular reference pattern). true=Guard queries the Host Object it binds to."),
97
- }).strict().describe("Optional semantic hint for Guard capability system. Provides intent + binding context so the MCP server can derive GuardPuzzle, run risk assessment, and generate confirmation text. Strongly recommended: fill this field to enable puzzle_status, matched_scene, suggested_patterns, confirmation_text, and pending_questions in the response guard_advice.");
98
- export const CallGuard_DataSchema = z.object({
99
- namedNew: NamedObjectSchema.optional().describe("Name and optional tags for the new Guard object. Set 'onChain: true' to create a public on-chain identity. When using root.type='file', this field OVERRIDES namedNew in the file. CIRCULAR DEPENDENCY (DOC-01): When a Guard queries a Service that hasn't been created yet, use a LocalMark NAME (not address) in the query table — the name is resolved to an address at transaction build time. Workflow: (1) Create Service (Phase 1, no publish) → (2) Create Guard referencing Service by name → (3) Update Service.buy_guard = Guard address → (4) Publish Service."),
100
- description: DescriptionSchema.optional().describe("Guard description. When using root.type='file', this field OVERRIDES description in the file."),
101
- table: z.array(GuardTableItemBaseSchema).optional().describe("Data table of the Guard object. When using root.type='file', this field OVERRIDES table in the file."),
102
- root: CallGuard_RootSchema.describe("Root definition: either a direct GuardNode (must be a logical operation returning Bool) or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content."),
103
- rely: z.object({
104
- guards: z.array(NameOrAddressSchema).describe("List of dependent Guard object IDs or names."),
105
- logic_or: z.boolean().optional().describe("Whether to use logical OR operator."),
106
- }).optional().describe("All Guard objects that the new Guard object depends on. If logic_or is true, the execution result of the new Guard object is the logical OR of the execution results of all dependent Guard objects; otherwise, it is logical AND. When using root.type='file', this field OVERRIDES rely in the file."),
107
- binding_hint: GuardBindingHintSchema.optional()
108
- .describe("Phase 5 Guard capability hint. Provides semantic context (action + host_object + binding_field + optional rule/failure_conditions) for puzzle derivation. When provided, the response will include complete guard_advice (puzzle_status, matched_scene, suggested_patterns, confirmation_text, pending_questions). When absent, puzzle_status intent/binding dimensions are marked incomplete."),
109
- }).strict().refine((data) => {
110
- if (typeof data.root === 'object' && data.root !== null && 'type' in data.root) {
111
- const rootObj = data.root;
112
- if (rootObj.type === 'file') {
113
- return true;
114
- }
115
- }
116
- const rootNode = data.root;
117
- if (rootNode.type === 'identifier' && rootNode.identifier !== undefined) {
118
- const tableItem = data.table?.find(item => item.identifier === rootNode.identifier);
119
- if (!tableItem) {
120
- return false;
121
- }
122
- if (!isBoolValueType(tableItem.value_type)) {
123
- return false;
124
- }
125
- }
126
- return true;
127
- }, {
128
- message: "Invalid Guard root: When using 'identifier' as root, the referenced table item must exist and have value_type='Bool' (or 0)."
129
- }).describe("On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard (you may also use 'object' as an alias for 'namedNew' — the MCP preprocess will convert it automatically). The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content.");
130
- export const CallGuard_InputSchema = z.object({
131
- data: CallGuard_DataSchema.describe("Guard data definition."),
132
- env: CallEnvSchema.optional(),
133
- }).strict().describe("On-chain Guard creation input wrapper. Contains the Guard data definition and optional environment settings.");
134
- export const CallGenPassport_InputSchema = z.object({
135
- guard: z.union([NameOrAddressSchema, z.array(NameOrAddressSchema)]).describe("Guard object ID(s) to verify and generate passport from. Can be a single guard (string) or multiple guards (array of strings). Supports guard names or addresses."),
136
- info: SubmissionCallSchema.optional().describe("Optional submission data. If not provided, will attempt to get existing submissions from the guard."),
137
- env: CallEnvSchema.optional(),
138
- }).strict().describe("Generate a new Passport object after Guard verification succeeds. The Passport is an immutable on-chain object that can be used for offline friend verification, transaction condition verification, etc. Supports verifying multiple guards at once.");
139
- export const Guard2File_InputSchema = z.object({
140
- guard: NameOrAddressSchema.describe("Guard object ID or name to export"),
141
- file_path: z.string().describe("Output file path (absolute or relative)"),
142
- format: z.enum(["json", "markdown"]).optional().default("json").describe("Output format: 'json' (default) or 'markdown'"),
143
- env: CallEnvSchema.optional(),
144
- }).strict().describe("Query a Guard object from the blockchain and export its definition to a JSON or Markdown file. The exported file can be edited and used to create new Guard objects.");
145
- export const Guard2File_OutputSchema = z.discriminatedUnion("status", [
146
- z.object({
147
- status: z.literal("success"),
148
- data: z.object({
149
- file_path: z.string().describe("Absolute path of the exported file"),
150
- format: z.enum(["json", "markdown"]).describe("Export format"),
151
- guard_object: z.string().describe("Guard object ID"),
152
- }).strict().describe("Success result data"),
153
- }).strict(),
154
- z.object({
155
- status: z.literal("error"),
156
- error: z.string().describe("Error message"),
157
- }).strict(),
158
- ]).describe("Guard2File operation output schema with discriminator");
159
- export const Guard2File_OutputWrappedSchema = z.object({
160
- result: Guard2File_OutputSchema,
161
- }).strict().describe("Guard2File operation output wrapped schema");
1
+ import{z}from'zod';import{CallEnvSchema,NamedObjectSchema,SubmissionCallSchema}from'./base.js';import{GuardNodeSchema}from'../query/index.js';import{DescriptionSchema,GuardTableItemBaseSchema,NameOrAddressSchema}from'../common/index.js';import{isBoolReturningQuery}from'../utils/guard-query-utils.js';import{ValueType}from'@wowok/wowok';export const CallGuard_RootSchema=z['union']([GuardNodeSchema['refine'](a=>{const b=['logic_as_u256_greater','logic_as_u256_lesser','logic_as_u256_equal','logic_as_u256_greater_or_equal','logic_as_u256_lesser_or_equal','logic_equal','logic_not','logic_and','logic_or','logic_string_contains','logic_string_nocase_contains','logic_string_nocase_equal','calc_string_contains','calc_string_nocase_contains','calc_string_nocase_equal','vec_contains_bool','vec_contains_address','vec_contains_string','vec_contains_string_nocase','vec_contains_number','query_reward_record_exists','query','identifier'];if(!b['includes'](a['type']))return![];if(a['type']==='query'){const c=a;if(!isBoolReturningQuery(c['query']))return![];}return!![];},{'message':'Guard\x20root\x20node\x20must\x20be\x20an\x20operation\x20that\x20returns\x20Bool.\x20Allowed\x20types:\x20logic_*,\x20calc_string_contains,\x20calc_string_nocase_*,\x20vec_contains_*,\x20reward_record_exist,\x20identifier\x20(must\x20reference\x20Bool\x20type\x20in\x20table).\x20For\x20\x27query\x27\x20type,\x20ONLY\x20queries\x20that\x20return\x20Bool\x20are\x20allowed.\x20Use\x20\x27wowok_buildin_info\x27\x20tool\x20with\x20{\x22info\x22:\x20\x22guard\x20instructions\x22,\x20\x22filter\x22:\x20{\x22returnType\x22:\x20\x22Bool\x22,\x20\x22scope\x22:\x20\x22object\x20query\x22}}\x20to\x20list\x20all\x20Bool-returning\x20queries.\x20Other\x20nodes\x20(calc_number_*,\x20context,\x20non-Bool\x20queries)\x20must\x20be\x20wrapped\x20with\x20a\x20logic\x20operation.'})['describe']('Guard\x20computational\x20tree\x20root\x20node.\x20MUST\x20be\x20an\x20operation\x20that\x20returns\x20a\x20Bool\x20value\x20(pass/fail).\x20For\x20\x27query\x27\x20type,\x20the\x20specific\x20query\x20must\x20return\x20Bool.\x20For\x20\x27identifier\x27\x20type,\x20the\x20referenced\x20table\x20item\x20must\x20have\x20value_type=Bool.'),z['object']({'type':z['literal']('file'),'file_path':z['string']()['describe']('Path\x20to\x20JSON\x20or\x20Markdown\x20file\x20containing\x20Guard\x20definition.\x20File\x20can\x20define:\x20namedNew,\x20description,\x20table,\x20root,\x20rely.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('File\x20format:\x20\x27json\x27\x20or\x20\x27markdown\x27.\x20Default\x20is\x20\x27json\x27.')})['strict']()])['describe']('Guard\x20root\x20definition.\x20Either\x20provide\x20a\x20direct\x20GuardNode\x20tree\x20(must\x20be\x20a\x20logical\x20operation\x20returning\x20Bool)\x20or\x20reference\x20a\x20file\x20to\x20load.\x20When\x20using\x20file\x20type,\x20fields\x20defined\x20in\x20the\x20schema\x20(namedNew,\x20description,\x20table,\x20rely)\x20will\x20OVERRIDE\x20the\x20corresponding\x20fields\x20in\x20the\x20file.');const isBoolValueType=a=>{if(typeof a==='number')return a===ValueType['Bool'];if(typeof a==='string')return a['toLowerCase']()==='bool'||a==='0';return![];};export const GuardBindingHintActionSchema=z['enum'](['buy','forward','allocate','claim_reward','vote','dispute','write_repository','submit_progress','gen_passport','custom'])['describe']('Guard\x20protected\x20action\x20type.\x20Maps\x20to\x20IntentPuzzle.action\x20in\x20the\x20puzzle\x20model.');export const GuardBindingHintHostObjectSchema=z['enum'](['Service','Machine','Arbitration','Reward','Repository','Progress','Demand','Standalone'])['describe']('Host\x20object\x20type\x20that\x20the\x20Guard\x20will\x20bind\x20to.\x20\x27Standalone\x27\x20for\x20independent\x20Guards\x20(rely\x20dependency\x20or\x20gen_passport).');export const GuardBindingHintBindingFieldSchema=z['enum'](['buy_guard','order_allocators','Forward.guard','submission','guard','write_guard','usage_guard','voting_guard','ServiceGuard','none'])['describe']('Binding\x20field\x20on\x20the\x20host\x20object.\x20\x27none\x27\x20for\x20standalone\x20Guards.');export const GuardBindingHintSchema=z['object']({'action':GuardBindingHintActionSchema['describe']('Protected\x20action\x20type.\x20Example:\x20\x27buy\x27\x20for\x20Service\x20buy_guard,\x20\x27forward\x27\x20for\x20Machine\x20Forward.guard.'),'host_object':GuardBindingHintHostObjectSchema['describe']('Host\x20object\x20type.\x20Example:\x20\x27Service\x27,\x20\x27Machine\x27.'),'binding_field':GuardBindingHintBindingFieldSchema['describe']('Binding\x20field.\x20Example:\x20\x27buy_guard\x27,\x20\x27Forward.guard\x27.'),'rule_sentence':z['string']()['optional']()['describe']('One-sentence\x20description\x20of\x20the\x20validation\x20rule\x20(human-readable).\x20Example:\x20\x27Only\x20the\x20author\x20can\x20purchase\x20this\x20service\x27.'),'failure_conditions':z['array'](z['string']())['optional']()['describe']('List\x20of\x20conditions\x20under\x20which\x20the\x20Guard\x20should\x20FAIL.\x20Example:\x20[\x27Signer\x20is\x20not\x20in\x20allowlist\x27,\x27Order\x20is\x20already\x20completed\x27].'),'circular_reference':z['boolean']()['optional']()['describe']('Whether\x20the\x20Guard\x20references\x20the\x20Host\x20Object\x20itself\x20(circular\x20reference\x20pattern).\x20true=Guard\x20queries\x20the\x20Host\x20Object\x20it\x20binds\x20to.')})['strict']()['describe']('Optional\x20semantic\x20hint\x20for\x20Guard\x20capability\x20system.\x20Provides\x20intent\x20+\x20binding\x20context\x20so\x20the\x20MCP\x20server\x20can\x20derive\x20GuardPuzzle,\x20run\x20risk\x20assessment,\x20and\x20generate\x20confirmation\x20text.\x20Strongly\x20recommended:\x20fill\x20this\x20field\x20to\x20enable\x20puzzle_status,\x20matched_scene,\x20suggested_patterns,\x20confirmation_text,\x20and\x20pending_questions\x20in\x20the\x20response\x20guard_advice.');export const CallGuard_DataSchema=z['object']({'namedNew':NamedObjectSchema['optional']()['describe']('Name\x20and\x20optional\x20tags\x20for\x20the\x20new\x20Guard\x20object.\x20Set\x20\x27onChain:\x20true\x27\x20to\x20create\x20a\x20public\x20on-chain\x20identity.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20namedNew\x20in\x20the\x20file.\x20CIRCULAR\x20DEPENDENCY\x20(DOC-01):\x20When\x20a\x20Guard\x20queries\x20a\x20Service\x20that\x20hasn\x27t\x20been\x20created\x20yet,\x20use\x20a\x20LocalMark\x20NAME\x20(not\x20address)\x20in\x20the\x20query\x20table\x20—\x20the\x20name\x20is\x20resolved\x20to\x20an\x20address\x20at\x20transaction\x20build\x20time.\x20Workflow:\x20(1)\x20Create\x20Service\x20(Phase\x201,\x20no\x20publish)\x20→\x20(2)\x20Create\x20Guard\x20referencing\x20Service\x20by\x20name\x20→\x20(3)\x20Update\x20Service.buy_guard\x20=\x20Guard\x20address\x20→\x20(4)\x20Publish\x20Service.'),'description':DescriptionSchema['optional']()['describe']('Guard\x20description.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20description\x20in\x20the\x20file.'),'table':z['array'](GuardTableItemBaseSchema)['optional']()['describe']('Data\x20table\x20of\x20the\x20Guard\x20object.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20table\x20in\x20the\x20file.'),'root':CallGuard_RootSchema['describe']('Root\x20definition:\x20either\x20a\x20direct\x20GuardNode\x20(must\x20be\x20a\x20logical\x20operation\x20returning\x20Bool)\x20or\x20a\x20file\x20reference\x20(type=\x27file\x27).\x20When\x20type=\x27file\x27,\x20the\x20file\x20can\x20define\x20all\x20Guard\x20fields\x20(namedNew,\x20description,\x20table,\x20root,\x20rely),\x20and\x20schema\x20fields\x20override\x20file\x20content.'),'rely':z['object']({'guards':z['array'](NameOrAddressSchema)['describe']('List\x20of\x20dependent\x20Guard\x20object\x20IDs\x20or\x20names.'),'logic_or':z['boolean']()['optional']()['describe']('Whether\x20to\x20use\x20logical\x20OR\x20operator.')})['optional']()['describe']('All\x20Guard\x20objects\x20that\x20the\x20new\x20Guard\x20object\x20depends\x20on.\x20If\x20logic_or\x20is\x20true,\x20the\x20execution\x20result\x20of\x20the\x20new\x20Guard\x20object\x20is\x20the\x20logical\x20OR\x20of\x20the\x20execution\x20results\x20of\x20all\x20dependent\x20Guard\x20objects;\x20otherwise,\x20it\x20is\x20logical\x20AND.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20rely\x20in\x20the\x20file.'),'binding_hint':GuardBindingHintSchema['optional']()['describe']('Phase\x205\x20Guard\x20capability\x20hint.\x20Provides\x20semantic\x20context\x20(action\x20+\x20host_object\x20+\x20binding_field\x20+\x20optional\x20rule/failure_conditions)\x20for\x20puzzle\x20derivation.\x20When\x20provided,\x20the\x20response\x20will\x20include\x20complete\x20guard_advice\x20(puzzle_status,\x20matched_scene,\x20suggested_patterns,\x20confirmation_text,\x20pending_questions).\x20When\x20absent,\x20puzzle_status\x20intent/binding\x20dimensions\x20are\x20marked\x20incomplete.')})['strict']()['refine'](a=>{if(typeof a['root']==='object'&&a['root']!==null&&'type'in a['root']){const c=a['root'];if(c['type']==='file')return!![];}const b=a['root'];if(b['type']==='identifier'&&b['identifier']!==undefined){const d=a['table']?.['find'](e=>e['identifier']===b['identifier']);if(!d)return![];if(!isBoolValueType(d['value_type']))return![];}return!![];},{'message':'Invalid\x20Guard\x20root:\x20When\x20using\x20\x27identifier\x27\x20as\x20root,\x20the\x20referenced\x20table\x20item\x20must\x20exist\x20and\x20have\x20value_type=\x27Bool\x27\x20(or\x200).'})['describe']('On-chain\x20Guard\x20creation.\x20IMPORTANT:\x20All\x20defined\x20data\x20(include\x20all\x20submitted\x20data)\x20must\x20be\x20defined\x20in\x20the\x20\x27table\x27\x20field.\x20USAGE:\x20Set\x20\x27namedNew\x27\x20field\x20with\x20{name,\x20tags?,\x20onChain?}\x20to\x20name\x20the\x20new\x20Guard\x20(you\x20may\x20also\x20use\x20\x27object\x27\x20as\x20an\x20alias\x20for\x20\x27namedNew\x27\x20—\x20the\x20MCP\x20preprocess\x20will\x20convert\x20it\x20automatically).\x20The\x20Guard\x20is\x20immutable\x20once\x20created.\x20Define\x20the\x20validation\x20logic\x20in\x20\x27root\x27\x20field.\x20When\x20root.type=\x27file\x27,\x20the\x20file\x20can\x20contain\x20all\x20Guard\x20fields,\x20and\x20any\x20fields\x20defined\x20in\x20the\x20schema\x20will\x20OVERRIDE\x20the\x20file\x20content.');export const CallGuard_InputSchema=z['object']({'data':CallGuard_DataSchema['describe']('Guard\x20data\x20definition.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('On-chain\x20Guard\x20creation\x20input\x20wrapper.\x20Contains\x20the\x20Guard\x20data\x20definition\x20and\x20optional\x20environment\x20settings.');export const CallGenPassport_InputSchema=z['object']({'guard':z['union']([NameOrAddressSchema,z['array'](NameOrAddressSchema)])['describe']('Guard\x20object\x20ID(s)\x20to\x20verify\x20and\x20generate\x20passport\x20from.\x20Can\x20be\x20a\x20single\x20guard\x20(string)\x20or\x20multiple\x20guards\x20(array\x20of\x20strings).\x20Supports\x20guard\x20names\x20or\x20addresses.'),'info':SubmissionCallSchema['optional']()['describe']('Optional\x20submission\x20data.\x20If\x20not\x20provided,\x20will\x20attempt\x20to\x20get\x20existing\x20submissions\x20from\x20the\x20guard.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Generate\x20a\x20new\x20Passport\x20object\x20after\x20Guard\x20verification\x20succeeds.\x20The\x20Passport\x20is\x20an\x20immutable\x20on-chain\x20object\x20that\x20can\x20be\x20used\x20for\x20offline\x20friend\x20verification,\x20transaction\x20condition\x20verification,\x20etc.\x20Supports\x20verifying\x20multiple\x20guards\x20at\x20once.');export const Guard2File_InputSchema=z['object']({'guard':NameOrAddressSchema['describe']('Guard\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative)'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Guard\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Guard\x20objects.');export const Guard2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'guard_object':z['string']()['describe']('Guard\x20object\x20ID')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('Guard2File\x20operation\x20output\x20schema\x20with\x20discriminator');export const Guard2File_OutputWrappedSchema=z['object']({'result':Guard2File_OutputSchema})['strict']()['describe']('Guard2File\x20operation\x20output\x20wrapped\x20schema');
@@ -1,322 +1 @@
1
- import { ResponseData, LocalMark, enrichMoveError } from "@wowok/wowok";
2
- import { classifyError, buildSemantic } from "./semantic.js";
3
- let successHook = null;
4
- export function registerSuccessHook(hook) {
5
- successHook = hook;
6
- }
7
- function fireSuccessHook(result, context) {
8
- if (successHook) {
9
- try {
10
- successHook(result, context);
11
- }
12
- catch { }
13
- }
14
- }
15
- function applySchemaWarning(output, context) {
16
- const schemaCheck = context?.schema_check;
17
- if (!schemaCheck || (schemaCheck.warnings.length === 0 && schemaCheck.errors.length === 0)) {
18
- return output;
19
- }
20
- const warnings = [...schemaCheck.warnings, ...schemaCheck.errors];
21
- let semantic = output.semantic;
22
- if (semantic && warnings.length > 0) {
23
- semantic = {
24
- ...semantic,
25
- warnings: [...(semantic.warnings || []), ...warnings],
26
- };
27
- }
28
- const schemaWarning = {
29
- compatible: schemaCheck.compatible,
30
- warnings,
31
- client_version: schemaCheck.client_version,
32
- server_versions: schemaCheck.versions,
33
- };
34
- return {
35
- ...output,
36
- semantic,
37
- schema_warning: schemaWarning,
38
- };
39
- }
40
- function convertBigInts(obj) {
41
- if (typeof obj === "bigint")
42
- return obj.toString();
43
- if (Array.isArray(obj))
44
- return obj.map(convertBigInts);
45
- if (obj && typeof obj === "object") {
46
- const out = {};
47
- for (const k of Object.keys(obj))
48
- out[k] = convertBigInts(obj[k]);
49
- return out;
50
- }
51
- return obj;
52
- }
53
- function runHarnessLoops(context, output, errorCode) {
54
- if (!context?.harness || !context?.expected)
55
- return undefined;
56
- const harness = context.harness;
57
- const expected = context.expected;
58
- const actualSemantic = output.semantic;
59
- const verifyReport = harness.verify({
60
- expected,
61
- actual: {
62
- result_type: output.result.type,
63
- semantic: actualSemantic,
64
- error_code: output.result.type === "error" ? output.result.error_code : undefined,
65
- },
66
- });
67
- let recovery;
68
- const needRecovery = verifyReport.status !== "pass" || output.result.type === "error" || errorCode;
69
- if (needRecovery) {
70
- const ec = errorCode
71
- || (output.result.type === "error" ? output.result.error_code : undefined)
72
- || "unknown";
73
- recovery = harness.recover(ec, context.operation_id || expected.operation, {
74
- operation_type: context.operation_type,
75
- data: context.data,
76
- });
77
- }
78
- return {
79
- verify: {
80
- status: verifyReport.status,
81
- mismatches: verifyReport.mismatches.map(m => convertBigInts(m)),
82
- summary: verifyReport.summary,
83
- timestamp: verifyReport.timestamp,
84
- },
85
- recovery: recovery ? {
86
- strategy: recovery.strategy,
87
- should_retry: recovery.should_retry,
88
- adjusted_params: recovery.adjusted_params,
89
- user_prompt: recovery.user_prompt,
90
- max_attempts: recovery.max_attempts,
91
- current_attempt: recovery.current_attempt,
92
- detail: recovery.detail,
93
- } : undefined,
94
- };
95
- }
96
- export function handleCallResult(result, context) {
97
- const safeResult = convertBigInts(result);
98
- if (safeResult && "error" in safeResult) {
99
- const enrichedError = enrichMoveError(safeResult.error);
100
- const classified = classifyError(enrichedError);
101
- const output = {
102
- message: `Error: ${enrichedError}`,
103
- result: {
104
- type: "error",
105
- error: enrichedError,
106
- error_code: classified.error_code,
107
- retryable: classified.retryable,
108
- recovery_hint: classified.recovery_hint,
109
- },
110
- };
111
- const harnessReport = runHarnessLoops(context, output, classified.error_code);
112
- if (harnessReport)
113
- output.harness_report = harnessReport;
114
- const finalOutput = applySchemaWarning(output, context);
115
- return {
116
- content: [{ type: "text", text: finalOutput.message }],
117
- structuredContent: finalOutput,
118
- };
119
- }
120
- if (safeResult && "digest" in safeResult) {
121
- const r = ResponseData(safeResult);
122
- const txStatus = safeResult?.effects?.status?.status;
123
- const txError = safeResult?.effects?.status?.error;
124
- const isSuccess = txStatus === "success";
125
- if (!isSuccess) {
126
- const enrichedError = enrichMoveError(txError || txStatus || "unknown error");
127
- const classified = classifyError(enrichedError);
128
- const output = {
129
- message: `Transaction failed: ${enrichedError}`,
130
- result: {
131
- type: "error",
132
- error: enrichedError,
133
- error_code: classified.error_code,
134
- retryable: classified.retryable,
135
- recovery_hint: classified.recovery_hint,
136
- },
137
- };
138
- const harnessReport = runHarnessLoops(context, output, classified.error_code);
139
- if (harnessReport)
140
- output.harness_report = harnessReport;
141
- const finalOutput = applySchemaWarning(output, context);
142
- return {
143
- content: [
144
- { type: "text", text: finalOutput.message },
145
- { type: "text", text: JSON.stringify(r) },
146
- ],
147
- structuredContent: finalOutput,
148
- };
149
- }
150
- const output = {
151
- message: "Transaction completed successfully",
152
- result: { type: "transaction", ...safeResult },
153
- semantic: buildSemantic(safeResult, context),
154
- };
155
- const harnessReport = runHarnessLoops(context, output);
156
- if (harnessReport)
157
- output.harness_report = harnessReport;
158
- fireSuccessHook(result, context);
159
- const finalOutput = applySchemaWarning(output, context);
160
- return {
161
- content: [
162
- { type: "text", text: finalOutput.message },
163
- { type: "text", text: JSON.stringify(r) },
164
- ],
165
- structuredContent: finalOutput,
166
- };
167
- }
168
- if (safeResult && "guard" in safeResult && "submission" in safeResult) {
169
- const output = {
170
- message: "Submission required for Guard verification",
171
- result: { type: "submission", ...safeResult },
172
- semantic: context ? {
173
- intent: "guard_submission_required",
174
- status: "pending_input",
175
- summary: "Guard verification required — fill the submission data and resubmit",
176
- next_actions: [{
177
- action: "fill guard submission data and resubmit via call_with_submission",
178
- reason: "Guard rejected the call; submission must satisfy the Guard table requirements",
179
- tool: "onchain_operations (with submission field)",
180
- priority: "required",
181
- }],
182
- } : undefined,
183
- };
184
- const harnessReport = runHarnessLoops(context, output);
185
- if (harnessReport)
186
- output.harness_report = harnessReport;
187
- const finalOutput = applySchemaWarning(output, context);
188
- return {
189
- content: [
190
- { type: "text", text: finalOutput.message },
191
- { type: "text", text: JSON.stringify(safeResult) },
192
- ],
193
- structuredContent: finalOutput,
194
- };
195
- }
196
- if (Array.isArray(safeResult)) {
197
- const output = {
198
- message: "Operation completed",
199
- result: { type: "data", data: safeResult },
200
- };
201
- const harnessReport = runHarnessLoops(context, output);
202
- if (harnessReport)
203
- output.harness_report = harnessReport;
204
- const finalOutput = applySchemaWarning(output, context);
205
- return {
206
- content: [
207
- { type: "text", text: finalOutput.message },
208
- { type: "text", text: JSON.stringify(safeResult) },
209
- ],
210
- structuredContent: finalOutput,
211
- };
212
- }
213
- if (safeResult === undefined || safeResult === null) {
214
- const output = {
215
- message: "Operation completed",
216
- result: { type: "null" },
217
- };
218
- const harnessReport = runHarnessLoops(context, output);
219
- if (harnessReport)
220
- output.harness_report = harnessReport;
221
- const finalOutput = applySchemaWarning(output, context);
222
- return {
223
- content: [{ type: "text", text: finalOutput.message }],
224
- structuredContent: finalOutput,
225
- };
226
- }
227
- const output = {
228
- message: "Operation completed",
229
- result: { type: "transaction", ...safeResult },
230
- semantic: buildSemantic(safeResult, context),
231
- };
232
- const harnessReport = runHarnessLoops(context, output);
233
- if (harnessReport)
234
- output.harness_report = harnessReport;
235
- const finalOutput = applySchemaWarning(output, context);
236
- return {
237
- content: [{ type: "text", text: finalOutput.message }],
238
- structuredContent: finalOutput,
239
- };
240
- }
241
- export function createServerConfig(packageJson, description) {
242
- return {
243
- name: packageJson.name,
244
- version: packageJson.version,
245
- description: description || packageJson.description,
246
- };
247
- }
248
- export function createCapabilitiesConfig() {
249
- return {
250
- capabilities: {
251
- prompts: {},
252
- resources: {},
253
- tools: { listChanged: true },
254
- logging: {},
255
- },
256
- };
257
- }
258
- export function createToolMeta(category, tags) {
259
- return {
260
- author: "WOWOK Team",
261
- createdAt: "2026-02-01",
262
- lastUpdated: "2026-02-01",
263
- category,
264
- tags,
265
- requiresAuth: false,
266
- };
267
- }
268
- export function createToolAnnotations(readOnlyHint = false, destructiveHint = false) {
269
- return {
270
- readOnlyHint,
271
- destructiveHint,
272
- idempotentHint: true,
273
- openWorldHint: false,
274
- };
275
- }
276
- export async function transformSubmission(submission) {
277
- if (!submission)
278
- return undefined;
279
- const guardNames = (submission.guard || []).map((g) => g.object).filter(Boolean);
280
- const submissionGuardNames = (submission.submission || []).map((s) => s.guard).filter(Boolean);
281
- const allNames = [...new Set([...guardNames, ...submissionGuardNames])];
282
- const resolvedAddresses = allNames.length > 0
283
- ? await LocalMark.Instance().get_many_address(allNames)
284
- : [];
285
- const nameToAddress = new Map();
286
- allNames.forEach((name, index) => {
287
- const addr = resolvedAddresses[index];
288
- if (addr) {
289
- nameToAddress.set(name, addr);
290
- }
291
- });
292
- const getAddress = (name) => {
293
- if (nameToAddress.has(name)) {
294
- return nameToAddress.get(name);
295
- }
296
- for (const [n, addr] of nameToAddress.entries()) {
297
- if (n === name)
298
- return addr;
299
- }
300
- if (name.startsWith("0x") && name.length === 66) {
301
- return name;
302
- }
303
- throw new Error(`Guard name or address not found: ${name}`);
304
- };
305
- return {
306
- type: "submission",
307
- guard: (submission.guard || []).map((g) => ({
308
- object: getAddress(g.object),
309
- impack: g.impack || false,
310
- })),
311
- submission: (submission.submission || []).map((s) => ({
312
- guard: getAddress(s.guard),
313
- submission: s.submission || [],
314
- })),
315
- };
316
- }
317
- export function validateInput(data, schema) {
318
- return schema.parse(data);
319
- }
320
- export function getEnvConfig(env) {
321
- return env ?? {};
322
- }
1
+ import{ResponseData,LocalMark,enrichMoveError}from'@wowok/wowok';import{classifyError,buildSemantic}from'./semantic.js';let successHook=null;export function registerSuccessHook(a){successHook=a;}function fireSuccessHook(a,b){if(successHook)try{successHook(a,b);}catch{}}function applySchemaWarning(a,b){const c=b?.['schema_check'];if(!c||c['warnings']['length']===0x0&&c['errors']['length']===0x0)return a;const d=[...c['warnings'],...c['errors']];let e=a['semantic'];e&&d['length']>0x0&&(e={...e,'warnings':[...e['warnings']||[],...d]});const f={'compatible':c['compatible'],'warnings':d,'client_version':c['client_version'],'server_versions':c['versions']};return{...a,'semantic':e,'schema_warning':f};}function convertBigInts(a){if(typeof a==='bigint')return a['toString']();if(Array['isArray'](a))return a['map'](convertBigInts);if(a&&typeof a==='object'){const b={};for(const c of Object['keys'](a))b[c]=convertBigInts(a[c]);return b;}return a;}function runHarnessLoops(a,b,c){if(!a?.['harness']||!a?.['expected'])return undefined;const d=a['harness'],e=a['expected'],f=b['semantic'],g=d['verify']({'expected':e,'actual':{'result_type':b['result']['type'],'semantic':f,'error_code':b['result']['type']==='error'?b['result']['error_code']:undefined}});let h;const i=g['status']!=='pass'||b['result']['type']==='error'||c;if(i){const j=c||(b['result']['type']==='error'?b['result']['error_code']:undefined)||'unknown';h=d['recover'](j,a['operation_id']||e['operation'],{'operation_type':a['operation_type'],'data':a['data']});}return{'verify':{'status':g['status'],'mismatches':g['mismatches']['map'](k=>convertBigInts(k)),'summary':g['summary'],'timestamp':g['timestamp']},'recovery':h?{'strategy':h['strategy'],'should_retry':h['should_retry'],'adjusted_params':h['adjusted_params'],'user_prompt':h['user_prompt'],'max_attempts':h['max_attempts'],'current_attempt':h['current_attempt'],'detail':h['detail']}:undefined};}export function handleCallResult(a,b){const c=convertBigInts(a);if(c&&'error'in c){const g=enrichMoveError(c['error']),h=classifyError(g),i={'message':'Error:\x20'+g,'result':{'type':'error','error':g,'error_code':h['error_code'],'retryable':h['retryable'],'recovery_hint':h['recovery_hint']}},j=runHarnessLoops(b,i,h['error_code']);if(j)i['harness_report']=j;const k=applySchemaWarning(i,b);return{'content':[{'type':'text','text':k['message']}],'structuredContent':k};}if(c&&'digest'in c){const l=ResponseData(c),m=c?.['effects']?.['status']?.['status'],n=c?.['effects']?.['status']?.['error'],o=m==='success';if(!o){const t=enrichMoveError(n||m||'unknown\x20error'),u=classifyError(t),v={'message':'Transaction\x20failed:\x20'+t,'result':{'type':'error','error':t,'error_code':u['error_code'],'retryable':u['retryable'],'recovery_hint':u['recovery_hint']}},w=runHarnessLoops(b,v,u['error_code']);if(w)v['harness_report']=w;const x=applySchemaWarning(v,b);return{'content':[{'type':'text','text':x['message']},{'type':'text','text':JSON['stringify'](l)}],'structuredContent':x};}const p={'message':'Transaction\x20completed\x20successfully','result':{'type':'transaction',...c},'semantic':buildSemantic(c,b)},q=runHarnessLoops(b,p);if(q)p['harness_report']=q;fireSuccessHook(a,b);const s=applySchemaWarning(p,b);return{'content':[{'type':'text','text':s['message']},{'type':'text','text':JSON['stringify'](l)}],'structuredContent':s};}if(c&&'guard'in c&&'submission'in c){const y={'message':'Submission\x20required\x20for\x20Guard\x20verification','result':{'type':'submission',...c},'semantic':b?{'intent':'guard_submission_required','status':'pending_input','summary':'Guard\x20verification\x20required\x20—\x20fill\x20the\x20submission\x20data\x20and\x20resubmit','next_actions':[{'action':'fill\x20guard\x20submission\x20data\x20and\x20resubmit\x20via\x20call_with_submission','reason':'Guard\x20rejected\x20the\x20call;\x20submission\x20must\x20satisfy\x20the\x20Guard\x20table\x20requirements','tool':'onchain_operations\x20(with\x20submission\x20field)','priority':'required'}]}:undefined},z=runHarnessLoops(b,y);if(z)y['harness_report']=z;const A=applySchemaWarning(y,b);return{'content':[{'type':'text','text':A['message']},{'type':'text','text':JSON['stringify'](c)}],'structuredContent':A};}if(Array['isArray'](c)){const B={'message':'Operation\x20completed','result':{'type':'data','data':c}},C=runHarnessLoops(b,B);if(C)B['harness_report']=C;const D=applySchemaWarning(B,b);return{'content':[{'type':'text','text':D['message']},{'type':'text','text':JSON['stringify'](c)}],'structuredContent':D};}if(c===undefined||c===null){const E={'message':'Operation\x20completed','result':{'type':'null'}},F=runHarnessLoops(b,E);if(F)E['harness_report']=F;const G=applySchemaWarning(E,b);return{'content':[{'type':'text','text':G['message']}],'structuredContent':G};}const d={'message':'Operation\x20completed','result':{'type':'transaction',...c},'semantic':buildSemantic(c,b)},e=runHarnessLoops(b,d);if(e)d['harness_report']=e;const f=applySchemaWarning(d,b);return{'content':[{'type':'text','text':f['message']}],'structuredContent':f};}export function createServerConfig(a,b){return{'name':a['name'],'version':a['version'],'description':b||a['description']};}export function createCapabilitiesConfig(){return{'capabilities':{'prompts':{},'resources':{},'tools':{'listChanged':!![]},'logging':{}}};}export function createToolMeta(a,b){return{'author':'WOWOK\x20Team','createdAt':'2026-02-01','lastUpdated':'2026-02-01','category':a,'tags':b,'requiresAuth':![]};}export function createToolAnnotations(a=![],b=![]){return{'readOnlyHint':a,'destructiveHint':b,'idempotentHint':!![],'openWorldHint':![]};}export async function transformSubmission(a){if(!a)return undefined;const b=(a['guard']||[])['map'](h=>h['object'])['filter'](Boolean),c=(a['submission']||[])['map'](h=>h['guard'])['filter'](Boolean),d=[...new Set([...b,...c])],e=d['length']>0x0?await LocalMark['Instance']()['get_many_address'](d):[],f=new Map();d['forEach']((h,i)=>{const j=e[i];j&&f['set'](h,j);});const g=h=>{if(f['has'](h))return f['get'](h);for(const [i,j]of f['entries']()){if(i===h)return j;}if(h['startsWith']('0x')&&h['length']===0x42)return h;throw new Error('Guard\x20name\x20or\x20address\x20not\x20found:\x20'+h);};return{'type':'submission','guard':(a['guard']||[])['map'](h=>({'object':g(h['object']),'impack':h['impack']||![]})),'submission':(a['submission']||[])['map'](h=>({'guard':g(h['guard']),'submission':h['submission']||[]}))};}export function validateInput(a,b){return b['parse'](a);}export function getEnvConfig(a){return a??{};}
@@ -1,20 +1 @@
1
- export * from './base.js';
2
- export * from './handler.js';
3
- export * from './semantic.js';
4
- export * from './contact.js';
5
- export * from './demand.js';
6
- export * from './guard.js';
7
- export * from './machine.js';
8
- export * from './arbitration.js';
9
- export * from './allocation.js';
10
- export * from './order.js';
11
- export * from './payment.js';
12
- export * from './permission.js';
13
- export * from './personal.js';
14
- export * from './proof.js';
15
- export * from './progress.js';
16
- export * from './repository.js';
17
- export * from './reward.js';
18
- export * from './service.js';
19
- export * from './treasury.js';
20
- export * from './bridge.js';
1
+ export*from'./base.js';export*from'./handler.js';export*from'./semantic.js';export*from'./contact.js';export*from'./demand.js';export*from'./guard.js';export*from'./machine.js';export*from'./arbitration.js';export*from'./allocation.js';export*from'./order.js';export*from'./payment.js';export*from'./permission.js';export*from'./personal.js';export*from'./proof.js';export*from'./progress.js';export*from'./repository.js';export*from'./reward.js';export*from'./service.js';export*from'./treasury.js';export*from'./bridge.js';