@wowok/agent-mcp 2.7.0 → 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.
- package/dist/config/index.js +1 -1
- package/dist/config/runtime.js +1 -238
- package/dist/customer/customer-advice.js +1 -130
- package/dist/customer/index.js +1 -11
- package/dist/customer/industry-risks.js +1 -438
- package/dist/customer/info-puzzle.js +1 -681
- package/dist/customer/order-monitor.js +1 -328
- package/dist/customer/order-strategy.js +1 -373
- package/dist/customer/post-purchase.js +1 -351
- package/dist/customer/preorder-compare.js +1 -34
- package/dist/customer/reminder-system.js +1 -316
- package/dist/customer/risk-assessment.d.ts +5 -1
- package/dist/customer/risk-assessment.js +1 -397
- package/dist/customer/types.js +1 -13
- package/dist/customer/user-preferences.js +1 -460
- package/dist/evaluation/arbitration-game.d.ts +23 -0
- package/dist/evaluation/arbitration-game.js +1 -0
- package/dist/evaluation/builtins/demand-match.d.ts +15 -0
- package/dist/evaluation/builtins/demand-match.js +1 -0
- package/dist/evaluation/builtins/index.d.ts +3 -0
- package/dist/evaluation/builtins/index.js +1 -0
- package/dist/evaluation/builtins/service-risk.d.ts +6 -0
- package/dist/evaluation/builtins/service-risk.js +1 -0
- package/dist/evaluation/capability.d.ts +50 -0
- package/dist/evaluation/capability.js +1 -0
- package/dist/evaluation/composer.d.ts +13 -0
- package/dist/evaluation/composer.js +1 -0
- package/dist/evaluation/engine.d.ts +18 -0
- package/dist/evaluation/engine.js +1 -0
- package/dist/evaluation/extract.d.ts +30 -0
- package/dist/evaluation/extract.js +1 -0
- package/dist/evaluation/game-strategy.d.ts +27 -0
- package/dist/evaluation/game-strategy.js +1 -0
- package/dist/evaluation/gap.d.ts +2 -0
- package/dist/evaluation/gap.js +1 -0
- package/dist/evaluation/index.d.ts +12 -0
- package/dist/evaluation/index.js +1 -0
- package/dist/evaluation/node-game.d.ts +62 -0
- package/dist/evaluation/node-game.js +1 -0
- package/dist/evaluation/region.d.ts +10 -0
- package/dist/evaluation/region.js +1 -0
- package/dist/evaluation/types.d.ts +77 -0
- package/dist/evaluation/types.js +1 -0
- package/dist/evaluation/user-injection.d.ts +6 -0
- package/dist/evaluation/user-injection.js +1 -0
- package/dist/examples/education-contact-create.json +40 -0
- package/dist/examples/freelance-contact-create.json +40 -0
- package/dist/examples/insurance-machine-create.json +1 -1
- package/dist/examples/insurance-service-allocators.json +1 -1
- package/dist/examples/machine-publish.json +1 -1
- package/dist/examples/rental-ziroom-service-create.json +1 -1
- package/dist/examples/retail-adv-guard-messenger-proof-create.json +1 -1
- package/dist/examples/retail-myshop-service-create.json +1 -1
- package/dist/examples/retail-myshop-service-customer-required.json +1 -1
- package/dist/examples/subscription-contact-create.json +40 -0
- package/dist/examples/threebody-machine-create.json +1 -1
- package/dist/examples/travel-machine-create.json +1 -1
- package/dist/examples/travel-service-create.json +1 -1
- package/dist/experience/experience-reuse.js +1 -103
- package/dist/experience/index.js +1 -5
- package/dist/experience/intent-distill.js +1 -83
- package/dist/experience/realtime-feedback.js +1 -94
- package/dist/experience/types.js +1 -1
- package/dist/experience/user-profile.js +1 -171
- package/dist/extensions/business-modules.js +1 -287
- package/dist/extensions/capability-manifest.js +1 -781
- package/dist/extensions/constraint-registry.js +1 -198
- package/dist/extensions/index.js +1 -6
- package/dist/extensions/metric-registry.js +1 -257
- package/dist/extensions/mode-evaluator.js +1 -170
- package/dist/extensions/modes.js +1 -499
- package/dist/extensions/registry.js +1 -717
- package/dist/extensions/types.js +1 -1
- package/dist/harness/auto-escalation.js +1 -68
- package/dist/harness/checkpoint.js +1 -129
- package/dist/harness/index.js +1 -78
- package/dist/harness/plan.js +1 -276
- package/dist/harness/recover.js +1 -139
- package/dist/harness/types.js +1 -1
- package/dist/harness/verify.js +1 -237
- package/dist/index.js +1 -273
- package/dist/intent/enrich.d.ts +1 -0
- package/dist/intent/enrich.js +1 -0
- package/dist/intent/index.d.ts +23 -0
- package/dist/intent/index.js +1 -0
- package/dist/intent/matcher.d.ts +2 -0
- package/dist/intent/matcher.js +1 -0
- package/dist/intent/store.d.ts +19 -0
- package/dist/intent/store.js +1 -0
- package/dist/intent/types.d.ts +33 -0
- package/dist/intent/types.js +1 -0
- package/dist/knowledge/acquisition-flywheel.js +1 -192
- package/dist/knowledge/allocation-confirm.js +1 -534
- package/dist/knowledge/allocation-context.js +1 -249
- package/dist/knowledge/allocation-ledger.js +1 -463
- package/dist/knowledge/allocation-puzzle.js +1 -298
- package/dist/knowledge/allocation-risk.js +1 -568
- package/dist/knowledge/allocation-templates.js +1 -970
- package/dist/knowledge/allocation-translation.js +1 -585
- package/dist/knowledge/arb-risk.js +1 -210
- package/dist/knowledge/arbitration-confirm.js +1 -559
- package/dist/knowledge/arbitration-context.js +1 -505
- package/dist/knowledge/arbitration-ledger.js +1 -521
- package/dist/knowledge/arbitration-puzzle.js +1 -304
- package/dist/knowledge/arbitration-risk.js +1 -433
- package/dist/knowledge/arbitration-templates.js +1 -276
- package/dist/knowledge/arbitration-translation.js +1 -487
- package/dist/knowledge/arbitration-trust.js +1 -117
- package/dist/knowledge/audit-rules.js +1 -141
- package/dist/knowledge/bridge-risk.js +1 -263
- package/dist/knowledge/contact-risk.js +1 -200
- package/dist/knowledge/contact-templates.d.ts +27 -0
- package/dist/knowledge/contact-templates.js +1 -0
- package/dist/knowledge/demand-confirm.js +1 -206
- package/dist/knowledge/demand-matching.js +1 -132
- package/dist/knowledge/demand-risk.js +1 -240
- package/dist/knowledge/demand-translation.js +1 -354
- package/dist/knowledge/deployment-scanner.js +1 -823
- package/dist/knowledge/dynamic-pricing.js +1 -87
- package/dist/knowledge/examples-scanner-cli.js +1 -26
- package/dist/knowledge/examples-scanner.js +1 -825
- package/dist/knowledge/flywheel-loop.js +1 -404
- package/dist/knowledge/fund-layer.js +1 -973
- package/dist/knowledge/glossary.js +1 -211
- package/dist/knowledge/guard-confirm.js +1 -406
- package/dist/knowledge/guard-context.js +1 -287
- package/dist/knowledge/guard-design-patterns.js +1 -360
- package/dist/knowledge/guard-ledger.js +1 -260
- package/dist/knowledge/guard-lint.js +1 -670
- package/dist/knowledge/guard-migration.js +1 -228
- package/dist/knowledge/guard-puzzle.js +1 -805
- package/dist/knowledge/guard-render.js +1 -700
- package/dist/knowledge/guard-risk.js +1 -1879
- package/dist/knowledge/guard-submission-prompt.js +1 -171
- package/dist/knowledge/guard-templates.js +1 -1105
- package/dist/knowledge/guard-translation.js +1 -1119
- package/dist/knowledge/index.js +1 -436
- package/dist/knowledge/industry-evolution.js +1 -323
- package/dist/knowledge/industry-generalizer.js +1 -381
- package/dist/knowledge/industry-registry.js +1 -174
- package/dist/knowledge/intent-metrics.d.ts +4 -3
- package/dist/knowledge/intent-metrics.js +1 -566
- package/dist/knowledge/machine-confirm.js +1 -559
- package/dist/knowledge/machine-context.js +1 -833
- package/dist/knowledge/machine-ledger.js +1 -338
- package/dist/knowledge/machine-puzzle.js +1 -494
- package/dist/knowledge/machine-render.js +1 -565
- package/dist/knowledge/machine-risk.js +1 -670
- package/dist/knowledge/machine-templates.js +1 -1597
- package/dist/knowledge/machine-topology.js +1 -234
- package/dist/knowledge/machine-translation.js +1 -513
- package/dist/knowledge/mcp-schema-audit-cli.js +1 -45
- package/dist/knowledge/mcp-schema-audit.d.ts +1 -1
- package/dist/knowledge/mcp-schema-audit.js +1 -773
- package/dist/knowledge/onchain-constants.js +1 -35
- package/dist/knowledge/order-confirm.js +1 -573
- package/dist/knowledge/order-context.js +1 -390
- package/dist/knowledge/order-ledger.js +1 -341
- package/dist/knowledge/order-puzzle.js +1 -255
- package/dist/knowledge/order-risk.js +1 -653
- package/dist/knowledge/order-templates.js +1 -368
- package/dist/knowledge/order-translation.js +1 -550
- package/dist/knowledge/overrides-loader.js +1 -65
- package/dist/knowledge/passport-confirm.js +1 -531
- package/dist/knowledge/passport-context.js +1 -306
- package/dist/knowledge/passport-ledger.js +1 -282
- package/dist/knowledge/passport-puzzle.js +1 -333
- package/dist/knowledge/passport-risk.js +1 -450
- package/dist/knowledge/passport-templates.js +1 -568
- package/dist/knowledge/passport-translation.js +1 -516
- package/dist/knowledge/payment-risk.js +1 -249
- package/dist/knowledge/permission-confirm.js +1 -426
- package/dist/knowledge/permission-context.js +1 -224
- package/dist/knowledge/permission-ledger.js +1 -403
- package/dist/knowledge/permission-puzzle.js +1 -173
- package/dist/knowledge/permission-risk.js +1 -411
- package/dist/knowledge/permission-templates.js +1 -234
- package/dist/knowledge/permission-translation.js +1 -350
- package/dist/knowledge/personal-risk.js +1 -212
- package/dist/knowledge/process-model.js +1 -160
- package/dist/knowledge/progress-confirm.js +1 -456
- package/dist/knowledge/progress-context.js +1 -452
- package/dist/knowledge/progress-ledger.js +1 -330
- package/dist/knowledge/progress-puzzle.js +1 -219
- package/dist/knowledge/progress-risk.js +1 -461
- package/dist/knowledge/progress-templates.js +1 -228
- package/dist/knowledge/progress-translation.js +1 -405
- package/dist/knowledge/proof-confirm.js +1 -187
- package/dist/knowledge/proof-risk.js +1 -207
- package/dist/knowledge/proof-translation.js +1 -283
- package/dist/knowledge/registrar-risk.js +1 -217
- package/dist/knowledge/repository-confirm.js +1 -286
- package/dist/knowledge/repository-risk.js +1 -373
- package/dist/knowledge/repository-translation.js +1 -445
- package/dist/knowledge/reputation-rules.js +1 -99
- package/dist/knowledge/resource-risk.js +1 -157
- package/dist/knowledge/reward-confirm.js +1 -526
- package/dist/knowledge/reward-context.js +1 -504
- package/dist/knowledge/reward-ledger.js +1 -502
- package/dist/knowledge/reward-puzzle.js +1 -300
- package/dist/knowledge/reward-risk.js +1 -627
- package/dist/knowledge/reward-templates.js +1 -197
- package/dist/knowledge/reward-translation.js +1 -501
- package/dist/knowledge/safety-rules.js +1 -404
- package/dist/knowledge/scenario-modes.js +1 -321
- package/dist/knowledge/service-confirm.js +1 -807
- package/dist/knowledge/service-context.js +1 -403
- package/dist/knowledge/service-ledger.js +1 -609
- package/dist/knowledge/service-puzzle.js +1 -236
- package/dist/knowledge/service-risk.js +1 -615
- package/dist/knowledge/service-templates.js +1 -456
- package/dist/knowledge/service-translation.js +1 -622
- package/dist/knowledge/template-registry.d.ts +1 -1
- package/dist/knowledge/template-registry.js +1 -341
- package/dist/knowledge/tool-constraints.js +1 -195
- package/dist/knowledge/tools-reference.js +1 -155
- package/dist/knowledge/treasury-confirm.js +1 -512
- package/dist/knowledge/treasury-context.js +1 -363
- package/dist/knowledge/treasury-ledger.js +1 -300
- package/dist/knowledge/treasury-puzzle.js +1 -216
- package/dist/knowledge/treasury-risk.js +1 -440
- package/dist/knowledge/treasury-templates.js +1 -358
- package/dist/knowledge/treasury-translation.js +1 -498
- package/dist/knowledge/trust-metrics.js +1 -198
- package/dist/knowledge/util-risk.js +1 -135
- package/dist/loop-engineering/aggregate.js +1 -132
- package/dist/loop-engineering/context-collect.js +1 -83
- package/dist/loop-engineering/diagnose.js +1 -273
- package/dist/loop-engineering/improve.js +1 -405
- package/dist/loop-engineering/index.js +1 -4
- package/dist/loop-engineering/pipeline.js +1 -56
- package/dist/mode-market/index.js +1 -3
- package/dist/mode-market/registry.js +1 -124
- package/dist/mode-market/review.js +1 -214
- package/dist/mode-market/submission.js +1 -85
- package/dist/participation/collaborator-interest.d.ts +23 -0
- package/dist/participation/collaborator-interest.js +1 -0
- package/dist/participation/customer-interest.d.ts +25 -0
- package/dist/participation/customer-interest.js +1 -0
- package/dist/participation/merchant-interest.js +1 -100
- package/dist/participation/radar-core.d.ts +13 -3
- package/dist/participation/radar-core.js +1 -269
- package/dist/participation/supplier-interest.d.ts +25 -0
- package/dist/participation/supplier-interest.js +1 -0
- package/dist/persona/analyzer.d.ts +16 -0
- package/dist/persona/analyzer.js +1 -0
- package/dist/persona/bridge.d.ts +5 -0
- package/dist/persona/bridge.js +1 -0
- package/dist/persona/defaults.d.ts +4 -0
- package/dist/persona/defaults.js +1 -0
- package/dist/persona/experience-bridge.d.ts +3 -0
- package/dist/persona/experience-bridge.js +1 -0
- package/dist/persona/index.d.ts +18 -0
- package/dist/persona/index.js +1 -0
- package/dist/persona/model.d.ts +7 -0
- package/dist/persona/model.js +1 -0
- package/dist/persona/store.d.ts +19 -0
- package/dist/persona/store.js +1 -0
- package/dist/persona/types.d.ts +45 -0
- package/dist/persona/types.js +1 -0
- package/dist/project/business-puzzle.js +1 -383
- package/dist/project/context-assembly.js +1 -254
- package/dist/project/deployment-bridge.js +1 -120
- package/dist/project/deployment-doc.js +1 -1126
- package/dist/project/edit-planner.js +1 -1342
- package/dist/project/evaluation.js +1 -2011
- package/dist/project/game-theory.js +1 -177
- package/dist/project/graph-builder.js +1 -656
- package/dist/project/graph.js +1 -340
- package/dist/project/handlers.d.ts +5 -0
- package/dist/project/handlers.js +1 -1762
- package/dist/project/index.d.ts +1 -0
- package/dist/project/index.js +1 -301
- package/dist/project/intent-analyzer.js +1 -149
- package/dist/project/machine-nodes.js +1 -36
- package/dist/project/merchant-guide.js +1 -264
- package/dist/project/migration.js +1 -125
- package/dist/project/mode-actions.js +1 -309
- package/dist/project/namespace.js +1 -206
- package/dist/project/participation-radar.js +1 -428
- package/dist/project/pipeline-actions.js +1 -109
- package/dist/project/project-store.js +1 -422
- package/dist/project/query.js +1 -153
- package/dist/project/reverse-mapping.d.ts +34 -0
- package/dist/project/reverse-mapping.js +1 -0
- package/dist/project/risk-aggregator.js +1 -295
- package/dist/project/rollback-policy.js +1 -290
- package/dist/project/semantic-assembler.js +1 -345
- package/dist/project/semantic-graph.js +1 -245
- package/dist/project/stage-gate.js +1 -369
- package/dist/project/substep-trace.js +1 -332
- package/dist/project/task-tracker.js +1 -78
- package/dist/role/derivation.d.ts +18 -0
- package/dist/role/derivation.js +1 -0
- package/dist/role/index.d.ts +5 -0
- package/dist/role/index.js +1 -0
- package/dist/role/model.d.ts +8 -0
- package/dist/role/model.js +1 -0
- package/dist/role/resolution.d.ts +11 -0
- package/dist/role/resolution.js +1 -0
- package/dist/role/types.d.ts +11 -0
- package/dist/role/types.js +1 -0
- package/dist/rules.d.ts +2 -0
- package/dist/rules.js +1 -9
- package/dist/safety/confirm-gate.js +1 -88
- package/dist/safety/index.js +1 -3
- package/dist/safety/preview.js +1 -52
- package/dist/schema/call/allocation.js +1 -34
- package/dist/schema/call/arbitration.js +1 -113
- package/dist/schema/call/base.d.ts +15 -15
- package/dist/schema/call/base.js +1 -370
- package/dist/schema/call/bridge-handler.js +1 -265
- package/dist/schema/call/bridge.d.ts +7 -7
- package/dist/schema/call/bridge.js +1 -458
- package/dist/schema/call/contact.js +1 -37
- package/dist/schema/call/demand.js +1 -47
- package/dist/schema/call/guard.js +1 -161
- package/dist/schema/call/handler.js +1 -322
- package/dist/schema/call/index.js +1 -20
- package/dist/schema/call/machine.js +1 -193
- package/dist/schema/call/order.js +1 -35
- package/dist/schema/call/payment.js +1 -37
- package/dist/schema/call/permission-handler.js +1 -54
- package/dist/schema/call/permission.js +1 -105
- package/dist/schema/call/personal.js +1 -78
- package/dist/schema/call/progress.js +1 -47
- package/dist/schema/call/proof.js +1 -33
- package/dist/schema/call/repository.js +1 -77
- package/dist/schema/call/reward.js +1 -30
- package/dist/schema/call/semantic.js +1 -1657
- package/dist/schema/call/service.js +1 -178
- package/dist/schema/call/treasury.js +1 -71
- package/dist/schema/common/index.js +1 -407
- package/dist/schema/config/index.js +1 -68
- package/dist/schema/evaluation/index.d.ts +4436 -0
- package/dist/schema/evaluation/index.js +1 -0
- package/dist/schema/index.d.ts +4 -0
- package/dist/schema/index.js +1 -13
- package/dist/schema/intent-radar/index.d.ts +284 -0
- package/dist/schema/intent-radar/index.js +1 -0
- package/dist/schema/local/index.d.ts +21 -21
- package/dist/schema/local/index.js +1 -927
- package/dist/schema/local/wip.js +1 -187
- package/dist/schema/messenger/index.d.ts +7 -7
- package/dist/schema/messenger/index.js +1 -475
- package/dist/schema/operations.d.ts +7 -7
- package/dist/schema/operations.js +1 -520
- package/dist/schema/persona/index.d.ts +1985 -0
- package/dist/schema/persona/index.js +1 -0
- package/dist/schema/project/index.d.ts +96 -50
- package/dist/schema/project/index.js +1 -2057
- package/dist/schema/query/index.d.ts +423 -7
- package/dist/schema/query/index.js +1 -1640
- package/dist/schema/schema-query/index.js +1 -104
- package/dist/schema/schema-version.js +1 -76
- package/dist/schema/sync-layer4.d.ts +1 -1
- package/dist/schema/sync-layer4.js +1 -282
- package/dist/schema/task-status.d.ts +168 -0
- package/dist/schema/task-status.js +1 -0
- package/dist/schema/trust/index.js +1 -314
- package/dist/schema/utils/guard-parser.js +1 -419
- package/dist/schema/utils/guard-query-utils.js +1 -46
- package/dist/schema/utils/node-parser.js +1 -369
- package/dist/schema/utils/object-type-utils.js +1 -35
- package/dist/schema/utils/permission-index-utils.js +1 -7
- package/dist/schema/utils/permission-machine-check.js +1 -121
- package/dist/schema/utils/skills-recommendation.js +1 -77
- package/dist/schema-query/index.js +1 -810
- package/dist/schemas/account_operation.output.json +5 -2
- package/dist/schemas/bridge_operation.output.json +5 -2
- package/dist/schemas/evaluation_operation.output.json +782 -0
- package/dist/schemas/evaluation_operation.schema.json +990 -0
- package/dist/schemas/index.json +25 -1
- package/dist/schemas/intent_radar.output.json +232 -0
- package/dist/schemas/intent_radar.schema.json +138 -0
- package/dist/schemas/local_info_operation.output.json +5 -2
- package/dist/schemas/local_mark_operation.output.json +5 -2
- package/dist/schemas/messenger_operation.output.json +5 -2
- package/dist/schemas/onchain_events.output.json +5 -2
- package/dist/schemas/onchain_operations.output.json +5 -2
- package/dist/schemas/onchain_operations.schema.json +6 -6
- package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
- package/dist/schemas/onchain_operations_machine.schema.json +2 -2
- package/dist/schemas/onchain_operations_service.schema.json +3 -3
- package/dist/schemas/onchain_table_data.output.json +6 -3
- package/dist/schemas/persona_operation.output.json +392 -0
- package/dist/schemas/persona_operation.schema.json +250 -0
- package/dist/schemas/project_operation.output.json +28 -8
- package/dist/schemas/query_task_status.output.json +115 -0
- package/dist/schemas/query_task_status.schema.json +24 -0
- package/dist/schemas/query_toolkit.output.json +9 -6
- package/dist/schemas/trust_score.schema.json +1 -1
- package/dist/schemas/wowok_buildin_info.output.json +132 -0
- package/dist/schemas/wowok_buildin_info.schema.json +14 -0
- package/dist/telemetry/index.js +1 -112
- package/dist/telemetry/redact.js +1 -23
- package/dist/telemetry/storage.js +1 -80
- package/dist/tools/handlers/bridge.js +1 -1
- package/dist/tools/handlers/config.js +1 -74
- package/dist/tools/handlers/evaluation.d.ts +2 -0
- package/dist/tools/handlers/evaluation.js +1 -0
- package/dist/tools/handlers/file-export.js +1 -90
- package/dist/tools/handlers/intent-radar.d.ts +2 -0
- package/dist/tools/handlers/intent-radar.js +1 -0
- package/dist/tools/handlers/local.js +1 -53
- package/dist/tools/handlers/messenger.js +1 -188
- package/dist/tools/handlers/onchain.js +1 -1082
- package/dist/tools/handlers/persona.d.ts +4 -0
- package/dist/tools/handlers/persona.js +1 -0
- package/dist/tools/handlers/project.js +1 -211
- package/dist/tools/handlers/query.js +1 -434
- package/dist/tools/handlers/schema-query.js +1 -176
- package/dist/tools/handlers/task-status.d.ts +0 -168
- package/dist/tools/handlers/task-status.js +1 -55
- package/dist/tools/handlers/trust.js +1 -380
- package/dist/tools/handlers/wip.js +1 -90
- package/dist/tools/index.js +1 -1306
- package/dist/tools/retry.js +1 -85
- package/dist/tools/rules-hook.js +1 -23
- package/dist/tools/shared.js +1 -130
- package/dist/tools/types.js +1 -1
- package/dist/tools/upgrade-check.d.ts +19 -0
- package/dist/tools/upgrade-check.js +1 -0
- package/dist/tools/wip-deploy-assist.d.ts +1 -1
- package/dist/tools/wip-deploy-assist.js +1 -278
- package/dist/tools/wrap.js +1 -500
- package/package.json +5 -3
|
@@ -1,104 +1 @@
|
|
|
1
|
-
import { z
|
|
2
|
-
export const SchemaQueryInputSchema = z
|
|
3
|
-
.object({
|
|
4
|
-
action: z
|
|
5
|
-
.enum([
|
|
6
|
-
"list",
|
|
7
|
-
"get",
|
|
8
|
-
"get_output",
|
|
9
|
-
"search",
|
|
10
|
-
"list_operations",
|
|
11
|
-
"get_guard_templates",
|
|
12
|
-
"get_field",
|
|
13
|
-
"search_examples",
|
|
14
|
-
"get_tool_reference",
|
|
15
|
-
"get_guard_design_patterns",
|
|
16
|
-
"get_safety_rules",
|
|
17
|
-
"get_templates",
|
|
18
|
-
])
|
|
19
|
-
.describe("Action to perform: 'list' (all schemas), 'get' (specific input schema), 'get_output' (tool output schema), 'get_field' (field-path query e.g. field_path='data.node'), 'search' (by keyword), 'list_operations' (on-chain operations), 'get_guard_templates' (Guard creation templates + best practices), 'search_examples' (search verified example files by keyword — matches title, description, tags, operation_type, industry), 'get_tool_reference' (MCP tool usage reference: summaries, actions, prerequisites, notes — sunk from wowok-tools skill), 'get_guard_design_patterns' (curated Guard design pattern catalog: business requirement → logic tree template — sunk from wowok-guard skill), 'get_safety_rules' (object reuse/immutability/operation-classification/naming rules — sunk from wowok-safety skill), 'get_templates' (unified template registry: ~90 parameterized templates across 11 object types — guard/machine/service/order/progress/arbitration/treasury/permission/passport/allocation/reward; omit 'template' to list metadata, provide 'template' for full detail, provide 'template' + 'params' to instantiate into executable JSON)."),
|
|
20
|
-
name: z
|
|
21
|
-
.string()
|
|
22
|
-
.optional()
|
|
23
|
-
.describe("Schema/tool name for 'get'/'get_output'/'get_field'/'get_tool_reference' action (e.g., 'onchain_operations', 'onchain_operations_machine'), or pattern id for 'get_guard_design_patterns' (e.g., 'pattern.identity_check_allowlist')."),
|
|
24
|
-
query: z
|
|
25
|
-
.string()
|
|
26
|
-
.optional()
|
|
27
|
-
.describe("Search query for 'search' action, keyword filter for 'get_tool_reference', or host filter for 'get_guard_design_patterns' (e.g. 'service_buy_guard', 'machine_forward', 'reward_claim')."),
|
|
28
|
-
field_path: z
|
|
29
|
-
.string()
|
|
30
|
-
.optional()
|
|
31
|
-
.describe("Dot-separated field path for 'get_field' action (e.g. 'data.node', 'data.node.nodes.0.pairs'). Navigates schema.properties.* and schema.items.*."),
|
|
32
|
-
template: z
|
|
33
|
-
.string()
|
|
34
|
-
.optional()
|
|
35
|
-
.describe("Guard template name for 'get_guard_templates' action. Omit to list all available templates. Available: signer_verification, progress_node_check, order_owner_verification, service_belonging_check, reward_not_claimed, combined_reward_guard. For 'get_templates': unified template id (e.g. 'tpl_buy_guard_whitelist', 'tpl_machine_ecommerce_standard', 'T-S-01', 'T-O-01', 'first_order')."),
|
|
36
|
-
object_type: z
|
|
37
|
-
.enum([
|
|
38
|
-
"guard",
|
|
39
|
-
"machine",
|
|
40
|
-
"service",
|
|
41
|
-
"order",
|
|
42
|
-
"progress",
|
|
43
|
-
"arbitration",
|
|
44
|
-
"treasury",
|
|
45
|
-
"permission",
|
|
46
|
-
"passport",
|
|
47
|
-
"allocation",
|
|
48
|
-
"reward",
|
|
49
|
-
])
|
|
50
|
-
.optional()
|
|
51
|
-
.describe("Object-type filter for 'get_templates' list mode (e.g. 'guard' lists only Guard templates)."),
|
|
52
|
-
params: z
|
|
53
|
-
.string()
|
|
54
|
-
.optional()
|
|
55
|
-
.describe("JSON-encoded parameter object for 'get_templates' instantiation mode (e.g. '{\"whitelist\":[\"0xabc\"]}'). Required params are declared in each template's 'parameters' list (see detail mode)."),
|
|
56
|
-
output_file: z
|
|
57
|
-
.string()
|
|
58
|
-
.optional()
|
|
59
|
-
.describe("When set, writes the response data to this file path (relative to cwd) and returns the path instead of inline data. Use for large schemas that would be truncated. Prefer workspace paths like '.trae/tmp/schema.json' so the Read tool can access them."),
|
|
60
|
-
})
|
|
61
|
-
.strict();
|
|
62
|
-
const SchemaListItemSchema = z
|
|
63
|
-
.object({
|
|
64
|
-
name: z.string().describe("Schema/tool identifier (e.g. 'onchain_operations')."),
|
|
65
|
-
title: z.string().optional().describe("Human-readable title, if known."),
|
|
66
|
-
description: z.string().optional().describe("Short description, if known."),
|
|
67
|
-
})
|
|
68
|
-
.strict();
|
|
69
|
-
const ExampleSearchResultSchema = z
|
|
70
|
-
.object({
|
|
71
|
-
file: z.string().describe("Example file name (e.g. 'rental-ziroom-service-create.json')."),
|
|
72
|
-
title: z.string().describe("Human-readable title from the example metadata."),
|
|
73
|
-
description: z.string().describe("Longer description from the example metadata."),
|
|
74
|
-
tags: z.array(z.string()).describe("Tags from the example metadata."),
|
|
75
|
-
industry: z.string().describe("Industry category (e.g. 'rental', 'retail', 'general')."),
|
|
76
|
-
operation_type: z.string().describe("Operation type (e.g. 'service', 'machine', 'guard', 'permission')."),
|
|
77
|
-
verified: z.boolean().describe("Whether the example is marked as verified."),
|
|
78
|
-
score: z.number().describe("Relevance score — number of fields that matched the query (0-5)."),
|
|
79
|
-
matched_fields: z.array(z.string()).describe("List of fields that matched the query."),
|
|
80
|
-
})
|
|
81
|
-
.strict();
|
|
82
|
-
export const SchemaQueryOutputSchema = z
|
|
83
|
-
.object({
|
|
84
|
-
success: z.boolean().describe("Whether the request was successful"),
|
|
85
|
-
action: z.string().describe("The action that was performed"),
|
|
86
|
-
data: z
|
|
87
|
-
.union([
|
|
88
|
-
z.array(SchemaListItemSchema).describe("List of schema summaries (list/search/list_operations)."),
|
|
89
|
-
z.array(ExampleSearchResultSchema).describe("List of matching examples (search_examples)."),
|
|
90
|
-
z.record(z.unknown()).describe("JSON Schema object (get/get_output/get_field), Guard template data, tool reference data (get_tool_reference), Guard design pattern catalog (get_guard_design_patterns), or safety rules tables (get_safety_rules)."),
|
|
91
|
-
z.null().describe("No data — lookup failed or returned nothing, or data was written to output_file."),
|
|
92
|
-
])
|
|
93
|
-
.describe("Response data — array of schema summaries for list-like actions, array of example results for search_examples, JSON Schema object for get/get_output/get_field, Guard template data for get_guard_templates, null on failure or when output_file is used."),
|
|
94
|
-
message: z.string().describe("Human-readable message describing the result"),
|
|
95
|
-
suggestions: z
|
|
96
|
-
.array(z.string())
|
|
97
|
-
.optional()
|
|
98
|
-
.describe("Suggested next steps or alternatives"),
|
|
99
|
-
output_file_path: z
|
|
100
|
-
.string()
|
|
101
|
-
.optional()
|
|
102
|
-
.describe("When output_file is used, contains the absolute file path where data was written."),
|
|
103
|
-
})
|
|
104
|
-
.strict();
|
|
1
|
+
import{z}from'zod';export const SchemaQueryInputSchema=z['object']({'action':z['enum'](['list','get','get_output','search','list_operations','get_guard_templates','get_field','search_examples','get_tool_reference','get_guard_design_patterns','get_safety_rules','get_templates'])['describe']('Action\x20to\x20perform:\x20\x27list\x27\x20(all\x20schemas),\x20\x27get\x27\x20(specific\x20input\x20schema),\x20\x27get_output\x27\x20(tool\x20output\x20schema),\x20\x27get_field\x27\x20(field-path\x20query\x20e.g.\x20field_path=\x27data.node\x27),\x20\x27search\x27\x20(by\x20keyword),\x20\x27list_operations\x27\x20(on-chain\x20operations),\x20\x27get_guard_templates\x27\x20(Guard\x20creation\x20templates\x20+\x20best\x20practices),\x20\x27search_examples\x27\x20(search\x20verified\x20example\x20files\x20by\x20keyword\x20—\x20matches\x20title,\x20description,\x20tags,\x20operation_type,\x20industry),\x20\x27get_tool_reference\x27\x20(MCP\x20tool\x20usage\x20reference:\x20summaries,\x20actions,\x20prerequisites,\x20notes\x20—\x20sunk\x20from\x20wowok-tools\x20skill),\x20\x27get_guard_design_patterns\x27\x20(curated\x20Guard\x20design\x20pattern\x20catalog:\x20business\x20requirement\x20→\x20logic\x20tree\x20template\x20—\x20sunk\x20from\x20wowok-guard\x20skill),\x20\x27get_safety_rules\x27\x20(object\x20reuse/immutability/operation-classification/naming\x20rules\x20—\x20sunk\x20from\x20wowok-safety\x20skill),\x20\x27get_templates\x27\x20(unified\x20template\x20registry:\x20~90\x20parameterized\x20templates\x20across\x2011\x20object\x20types\x20—\x20guard/machine/service/order/progress/arbitration/treasury/permission/passport/allocation/reward;\x20omit\x20\x27template\x27\x20to\x20list\x20metadata,\x20provide\x20\x27template\x27\x20for\x20full\x20detail,\x20provide\x20\x27template\x27\x20+\x20\x27params\x27\x20to\x20instantiate\x20into\x20executable\x20JSON).'),'name':z['string']()['optional']()['describe']('Schema/tool\x20name\x20for\x20\x27get\x27/\x27get_output\x27/\x27get_field\x27/\x27get_tool_reference\x27\x20action\x20(e.g.,\x20\x27onchain_operations\x27,\x20\x27onchain_operations_machine\x27),\x20or\x20pattern\x20id\x20for\x20\x27get_guard_design_patterns\x27\x20(e.g.,\x20\x27pattern.identity_check_allowlist\x27).'),'query':z['string']()['optional']()['describe']('Search\x20query\x20for\x20\x27search\x27\x20action,\x20keyword\x20filter\x20for\x20\x27get_tool_reference\x27,\x20or\x20host\x20filter\x20for\x20\x27get_guard_design_patterns\x27\x20(e.g.\x20\x27service_buy_guard\x27,\x20\x27machine_forward\x27,\x20\x27reward_claim\x27).'),'field_path':z['string']()['optional']()['describe']('Dot-separated\x20field\x20path\x20for\x20\x27get_field\x27\x20action\x20(e.g.\x20\x27data.node\x27,\x20\x27data.node.nodes.0.pairs\x27).\x20Navigates\x20schema.properties.*\x20and\x20schema.items.*.'),'template':z['string']()['optional']()['describe']('Guard\x20template\x20name\x20for\x20\x27get_guard_templates\x27\x20action.\x20Omit\x20to\x20list\x20all\x20available\x20templates.\x20Available:\x20signer_verification,\x20progress_node_check,\x20order_owner_verification,\x20service_belonging_check,\x20reward_not_claimed,\x20combined_reward_guard.\x20For\x20\x27get_templates\x27:\x20unified\x20template\x20id\x20(e.g.\x20\x27tpl_buy_guard_whitelist\x27,\x20\x27tpl_machine_ecommerce_standard\x27,\x20\x27T-S-01\x27,\x20\x27T-O-01\x27,\x20\x27first_order\x27).'),'object_type':z['enum'](['guard','machine','service','order','progress','arbitration','treasury','permission','passport','allocation','reward'])['optional']()['describe']('Object-type\x20filter\x20for\x20\x27get_templates\x27\x20list\x20mode\x20(e.g.\x20\x27guard\x27\x20lists\x20only\x20Guard\x20templates).'),'params':z['string']()['optional']()['describe']('JSON-encoded\x20parameter\x20object\x20for\x20\x27get_templates\x27\x20instantiation\x20mode\x20(e.g.\x20\x27{\x22whitelist\x22:[\x220xabc\x22]}\x27).\x20Required\x20params\x20are\x20declared\x20in\x20each\x20template\x27s\x20\x27parameters\x27\x20list\x20(see\x20detail\x20mode).'),'output_file':z['string']()['optional']()['describe']('When\x20set,\x20writes\x20the\x20response\x20data\x20to\x20this\x20file\x20path\x20(relative\x20to\x20cwd)\x20and\x20returns\x20the\x20path\x20instead\x20of\x20inline\x20data.\x20Use\x20for\x20large\x20schemas\x20that\x20would\x20be\x20truncated.\x20Prefer\x20workspace\x20paths\x20like\x20\x27.trae/tmp/schema.json\x27\x20so\x20the\x20Read\x20tool\x20can\x20access\x20them.')})['strict']();const SchemaListItemSchema=z['object']({'name':z['string']()['describe']('Schema/tool\x20identifier\x20(e.g.\x20\x27onchain_operations\x27).'),'title':z['string']()['optional']()['describe']('Human-readable\x20title,\x20if\x20known.'),'description':z['string']()['optional']()['describe']('Short\x20description,\x20if\x20known.')})['strict'](),ExampleSearchResultSchema=z['object']({'file':z['string']()['describe']('Example\x20file\x20name\x20(e.g.\x20\x27rental-ziroom-service-create.json\x27).'),'title':z['string']()['describe']('Human-readable\x20title\x20from\x20the\x20example\x20metadata.'),'description':z['string']()['describe']('Longer\x20description\x20from\x20the\x20example\x20metadata.'),'tags':z['array'](z['string']())['describe']('Tags\x20from\x20the\x20example\x20metadata.'),'industry':z['string']()['describe']('Industry\x20category\x20(e.g.\x20\x27rental\x27,\x20\x27retail\x27,\x20\x27general\x27).'),'operation_type':z['string']()['describe']('Operation\x20type\x20(e.g.\x20\x27service\x27,\x20\x27machine\x27,\x20\x27guard\x27,\x20\x27permission\x27).'),'verified':z['boolean']()['describe']('Whether\x20the\x20example\x20is\x20marked\x20as\x20verified.'),'score':z['number']()['describe']('Relevance\x20score\x20—\x20number\x20of\x20fields\x20that\x20matched\x20the\x20query\x20(0-5).'),'matched_fields':z['array'](z['string']())['describe']('List\x20of\x20fields\x20that\x20matched\x20the\x20query.')})['strict']();export const SchemaQueryOutputSchema=z['object']({'success':z['boolean']()['describe']('Whether\x20the\x20request\x20was\x20successful'),'action':z['string']()['describe']('The\x20action\x20that\x20was\x20performed'),'data':z['union']([z['array'](SchemaListItemSchema)['describe']('List\x20of\x20schema\x20summaries\x20(list/search/list_operations).'),z['array'](ExampleSearchResultSchema)['describe']('List\x20of\x20matching\x20examples\x20(search_examples).'),z['record'](z['unknown']())['describe']('JSON\x20Schema\x20object\x20(get/get_output/get_field),\x20Guard\x20template\x20data,\x20tool\x20reference\x20data\x20(get_tool_reference),\x20Guard\x20design\x20pattern\x20catalog\x20(get_guard_design_patterns),\x20or\x20safety\x20rules\x20tables\x20(get_safety_rules).'),z['null']()['describe']('No\x20data\x20—\x20lookup\x20failed\x20or\x20returned\x20nothing,\x20or\x20data\x20was\x20written\x20to\x20output_file.')])['describe']('Response\x20data\x20—\x20array\x20of\x20schema\x20summaries\x20for\x20list-like\x20actions,\x20array\x20of\x20example\x20results\x20for\x20search_examples,\x20JSON\x20Schema\x20object\x20for\x20get/get_output/get_field,\x20Guard\x20template\x20data\x20for\x20get_guard_templates,\x20null\x20on\x20failure\x20or\x20when\x20output_file\x20is\x20used.'),'message':z['string']()['describe']('Human-readable\x20message\x20describing\x20the\x20result'),'suggestions':z['array'](z['string']())['optional']()['describe']('Suggested\x20next\x20steps\x20or\x20alternatives'),'output_file_path':z['string']()['optional']()['describe']('When\x20output_file\x20is\x20used,\x20contains\x20the\x20absolute\x20file\x20path\x20where\x20data\x20was\x20written.')})['strict']();
|
|
@@ -1,76 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const SDK_SCHEMA_VERSION = wowok.SCHEMA_VERSION ?? "1.0.0";
|
|
3
|
-
const checkSchemaCompatibility = wowok
|
|
4
|
-
.checkSchemaCompatibility ??
|
|
5
|
-
((_client, _server) => ({ compatible: true }));
|
|
6
|
-
export const MCP_SCHEMA_VERSION = "1.0.0";
|
|
7
|
-
export function getSchemaVersions() {
|
|
8
|
-
return {
|
|
9
|
-
sdk: SDK_SCHEMA_VERSION,
|
|
10
|
-
mcp: MCP_SCHEMA_VERSION,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export function checkClientSchemaCompatibility(clientSchemaVersion, options = {}) {
|
|
14
|
-
const versions = getSchemaVersions();
|
|
15
|
-
const result = {
|
|
16
|
-
compatible: true,
|
|
17
|
-
warnings: [],
|
|
18
|
-
errors: [],
|
|
19
|
-
versions,
|
|
20
|
-
client_version: clientSchemaVersion,
|
|
21
|
-
};
|
|
22
|
-
if (!clientSchemaVersion) {
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
25
|
-
const sdkCheck = checkSchemaCompatibility(clientSchemaVersion, versions.sdk);
|
|
26
|
-
if (!sdkCheck.compatible) {
|
|
27
|
-
result.compatible = false;
|
|
28
|
-
const message = `SDK schema incompatibility: ${sdkCheck.reason}`;
|
|
29
|
-
if (options.mode === "strict") {
|
|
30
|
-
result.errors.push(message);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
result.warnings.push(message);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const mcpCheck = checkSchemaCompatibility(clientSchemaVersion, versions.mcp);
|
|
37
|
-
if (!mcpCheck.compatible) {
|
|
38
|
-
result.compatible = false;
|
|
39
|
-
const message = `MCP schema incompatibility: ${mcpCheck.reason}`;
|
|
40
|
-
if (options.mode === "strict") {
|
|
41
|
-
result.errors.push(message);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
result.warnings.push(message);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
export function attachSchemaWarning(output, schemaCheck) {
|
|
50
|
-
if (schemaCheck.warnings.length === 0 && schemaCheck.errors.length === 0) {
|
|
51
|
-
return output;
|
|
52
|
-
}
|
|
53
|
-
const warnings = [];
|
|
54
|
-
if (schemaCheck.warnings.length > 0) {
|
|
55
|
-
warnings.push(...schemaCheck.warnings);
|
|
56
|
-
}
|
|
57
|
-
if (schemaCheck.errors.length > 0) {
|
|
58
|
-
warnings.push(...schemaCheck.errors);
|
|
59
|
-
}
|
|
60
|
-
const semantic = output.semantic
|
|
61
|
-
? {
|
|
62
|
-
...output.semantic,
|
|
63
|
-
warnings: [...(output.semantic.warnings || []), ...warnings],
|
|
64
|
-
}
|
|
65
|
-
: undefined;
|
|
66
|
-
return {
|
|
67
|
-
...output,
|
|
68
|
-
semantic,
|
|
69
|
-
schema_warning: {
|
|
70
|
-
compatible: schemaCheck.compatible,
|
|
71
|
-
warnings,
|
|
72
|
-
client_version: schemaCheck.client_version,
|
|
73
|
-
server_versions: schemaCheck.versions,
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
1
|
+
import*as a284a from'@wowok/wowok';const SDK_SCHEMA_VERSION=a284a['SCHEMA_VERSION']??'1.0.0',checkSchemaCompatibility=a284a['checkSchemaCompatibility']??((a,b)=>({'compatible':!![]}));export const MCP_SCHEMA_VERSION='1.0.0';export function getSchemaVersions(){return{'sdk':SDK_SCHEMA_VERSION,'mcp':MCP_SCHEMA_VERSION};}export function checkClientSchemaCompatibility(a,b={}){const c=getSchemaVersions(),d={'compatible':!![],'warnings':[],'errors':[],'versions':c,'client_version':a};if(!a)return d;const e=checkSchemaCompatibility(a,c['sdk']);if(!e['compatible']){d['compatible']=![];const g='SDK\x20schema\x20incompatibility:\x20'+e['reason'];b['mode']==='strict'?d['errors']['push'](g):d['warnings']['push'](g);}const f=checkSchemaCompatibility(a,c['mcp']);if(!f['compatible']){d['compatible']=![];const h='MCP\x20schema\x20incompatibility:\x20'+f['reason'];b['mode']==='strict'?d['errors']['push'](h):d['warnings']['push'](h);}return d;}export function attachSchemaWarning(a,b){if(b['warnings']['length']===0x0&&b['errors']['length']===0x0)return a;const c=[];b['warnings']['length']>0x0&&c['push'](...b['warnings']);b['errors']['length']>0x0&&c['push'](...b['errors']);const d=a['semantic']?{...a['semantic'],'warnings':[...a['semantic']['warnings']||[],...c]}:undefined;return{...a,'semantic':d,'schema_warning':{'compatible':b['compatible'],'warnings':c,'client_version':b['client_version'],'server_versions':b['versions']}};}
|
|
@@ -1,282 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
export const LAYER3_DIR = path.resolve('d:/wowok/agent/mcp/dist/schemas');
|
|
4
|
-
export const LAYER4_DIR = path.resolve('c:/Users/zhou/.trae-cn/mcps/s_wowok-7838e181/solo_agent/mcp_wagent/tools');
|
|
5
|
-
export const TOOLS_17 = [
|
|
6
|
-
'onchain_operations',
|
|
7
|
-
'account_operation',
|
|
8
|
-
'local_mark_operation',
|
|
9
|
-
'local_info_operation',
|
|
10
|
-
'wip_file',
|
|
11
|
-
'messenger_operation',
|
|
12
|
-
'guard2file',
|
|
13
|
-
'machineNode2file',
|
|
14
|
-
'query_toolkit',
|
|
15
|
-
'onchain_table_data',
|
|
16
|
-
'onchain_events',
|
|
17
|
-
'wowok_buildin_info',
|
|
18
|
-
'schema_query',
|
|
19
|
-
'bridge_operation',
|
|
20
|
-
'project_operation',
|
|
21
|
-
'config_operation',
|
|
22
|
-
'trust_score',
|
|
23
|
-
];
|
|
24
|
-
const JSON_SCHEMA_DRAFT7 = 'http://json-schema.org/draft-07/schema#';
|
|
25
|
-
const RECURSIVE_EXTERNAL_FILES = new Set(['guard-node-schema.json']);
|
|
26
|
-
function createExternalFileCache() {
|
|
27
|
-
return new Map();
|
|
28
|
-
}
|
|
29
|
-
function loadExternalFile(filePath, layer3Dir, cache) {
|
|
30
|
-
if (cache.has(filePath)) {
|
|
31
|
-
return cache.get(filePath);
|
|
32
|
-
}
|
|
33
|
-
const fullPath = path.resolve(layer3Dir, filePath);
|
|
34
|
-
if (!fs.existsSync(fullPath)) {
|
|
35
|
-
throw new Error(`External $ref file not found: ${fullPath}`);
|
|
36
|
-
}
|
|
37
|
-
const parsed = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
|
|
38
|
-
cache.set(filePath, parsed);
|
|
39
|
-
return parsed;
|
|
40
|
-
}
|
|
41
|
-
function resolveRefTarget(ref, root, layer3Dir, cache) {
|
|
42
|
-
if (!ref.startsWith('#')) {
|
|
43
|
-
const [filePath, innerPath] = ref.split('#', 2);
|
|
44
|
-
const external = loadExternalFile(filePath, layer3Dir, cache);
|
|
45
|
-
if (!innerPath || innerPath === '/') {
|
|
46
|
-
return external;
|
|
47
|
-
}
|
|
48
|
-
if (!innerPath.startsWith('/')) {
|
|
49
|
-
throw new Error(`Unsupported external $ref format: ${ref}`);
|
|
50
|
-
}
|
|
51
|
-
const parts = innerPath.slice(1).split('/');
|
|
52
|
-
let target = external;
|
|
53
|
-
for (const part of parts) {
|
|
54
|
-
if (target === null || typeof target !== 'object') {
|
|
55
|
-
throw new Error(`Cannot resolve $ref part "${part}" in ${ref}`);
|
|
56
|
-
}
|
|
57
|
-
target = target[part];
|
|
58
|
-
}
|
|
59
|
-
return target;
|
|
60
|
-
}
|
|
61
|
-
if (!ref.startsWith('#/')) {
|
|
62
|
-
throw new Error(`Unsupported $ref (must start with "#/" or be external file): ${ref}`);
|
|
63
|
-
}
|
|
64
|
-
const parts = ref.slice(2).split('/');
|
|
65
|
-
let target = root;
|
|
66
|
-
for (const part of parts) {
|
|
67
|
-
if (target === null || typeof target !== 'object') {
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
target = target[part];
|
|
71
|
-
}
|
|
72
|
-
return target;
|
|
73
|
-
}
|
|
74
|
-
function resolveRefs(node, root, layer3Dir, cache, seen = new Set(), memo = new Map()) {
|
|
75
|
-
if (node === null || typeof node !== 'object') {
|
|
76
|
-
return node;
|
|
77
|
-
}
|
|
78
|
-
if (Array.isArray(node)) {
|
|
79
|
-
return node.map((item) => resolveRefs(item, root, layer3Dir, cache, seen, memo));
|
|
80
|
-
}
|
|
81
|
-
if (typeof node.$ref === 'string') {
|
|
82
|
-
const ref = node.$ref;
|
|
83
|
-
if (!ref.startsWith('#') && RECURSIVE_EXTERNAL_FILES.has(ref.split('#', 2)[0])) {
|
|
84
|
-
return {
|
|
85
|
-
type: 'object',
|
|
86
|
-
additionalProperties: true,
|
|
87
|
-
description: 'Recursive GuardNode computational tree (55 self-referential node types). ' +
|
|
88
|
-
'NOT inlined here to avoid exponential schema bloat. ' +
|
|
89
|
-
"Use schema_query (e.g. action='get' name='onchain_operations_guard') or read guard-node-schema.json " +
|
|
90
|
-
'for the complete node definitions. Key node families: identifier / query / context / ' +
|
|
91
|
-
'logic_* / calc_* / convert_* / vec_* / query_progress_* / query_reward_*.',
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
if (seen.has(ref)) {
|
|
95
|
-
return { $ref: ref, description: node.description };
|
|
96
|
-
}
|
|
97
|
-
if (memo.has(ref)) {
|
|
98
|
-
const cached = memo.get(ref);
|
|
99
|
-
const copy = JSON.parse(JSON.stringify(cached));
|
|
100
|
-
if (node.description && !copy.description) {
|
|
101
|
-
copy.description = node.description;
|
|
102
|
-
}
|
|
103
|
-
return copy;
|
|
104
|
-
}
|
|
105
|
-
const target = resolveRefTarget(ref, root, layer3Dir, cache);
|
|
106
|
-
if (target === undefined || target === null) {
|
|
107
|
-
throw new Error(`Cannot resolve $ref target: ${ref}`);
|
|
108
|
-
}
|
|
109
|
-
const nextSeen = new Set(seen);
|
|
110
|
-
nextSeen.add(ref);
|
|
111
|
-
const externalRoot = ref.startsWith('#')
|
|
112
|
-
? root
|
|
113
|
-
: loadExternalFile(ref.split('#', 2)[0], layer3Dir, cache);
|
|
114
|
-
const resolved = resolveRefs(target, externalRoot, layer3Dir, cache, nextSeen, memo);
|
|
115
|
-
if (node.description && !resolved.description) {
|
|
116
|
-
resolved.description = node.description;
|
|
117
|
-
}
|
|
118
|
-
memo.set(ref, resolved);
|
|
119
|
-
return resolved;
|
|
120
|
-
}
|
|
121
|
-
const result = {};
|
|
122
|
-
for (const [key, value] of Object.entries(node)) {
|
|
123
|
-
result[key] = resolveRefs(value, root, layer3Dir, cache, seen, memo);
|
|
124
|
-
}
|
|
125
|
-
return result;
|
|
126
|
-
}
|
|
127
|
-
function extractSchemaBody(layer3, layer3Dir, cache) {
|
|
128
|
-
const rootForResolution = {
|
|
129
|
-
...layer3,
|
|
130
|
-
definitions: layer3.definitions,
|
|
131
|
-
};
|
|
132
|
-
let body;
|
|
133
|
-
if (layer3.$ref) {
|
|
134
|
-
const ref = layer3.$ref;
|
|
135
|
-
const target = resolveRefTarget(ref, rootForResolution, layer3Dir, cache);
|
|
136
|
-
if (target === undefined || target === null) {
|
|
137
|
-
throw new Error(`Top-level $ref cannot be resolved: ${ref}`);
|
|
138
|
-
}
|
|
139
|
-
const innerRoot = ref.startsWith('#')
|
|
140
|
-
? rootForResolution
|
|
141
|
-
: loadExternalFile(ref.split('#', 2)[0], layer3Dir, cache);
|
|
142
|
-
body = resolveRefs(target, innerRoot, layer3Dir, cache);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
const { $schema, $id, title, definitions, description, ...rest } = layer3;
|
|
146
|
-
body = resolveRefs(rest, rootForResolution, layer3Dir, cache);
|
|
147
|
-
}
|
|
148
|
-
return body;
|
|
149
|
-
}
|
|
150
|
-
function buildDeployedFile(toolName, layer3Dir, layer4Dir, cache) {
|
|
151
|
-
const l3Path = path.join(layer3Dir, `${toolName}.schema.json`);
|
|
152
|
-
const l4Path = path.join(layer4Dir, `${toolName}.json`);
|
|
153
|
-
if (!fs.existsSync(l3Path)) {
|
|
154
|
-
throw new Error(`Layer 3 schema not found: ${l3Path}`);
|
|
155
|
-
}
|
|
156
|
-
const layer3 = JSON.parse(fs.readFileSync(l3Path, 'utf-8'));
|
|
157
|
-
const body = extractSchemaBody(layer3, layer3Dir, cache);
|
|
158
|
-
const argsObj = {
|
|
159
|
-
type: body.type ?? 'object',
|
|
160
|
-
properties: body.properties ?? {},
|
|
161
|
-
required: body.required ?? [],
|
|
162
|
-
$schema: JSON_SCHEMA_DRAFT7,
|
|
163
|
-
};
|
|
164
|
-
if (body.additionalProperties !== undefined) {
|
|
165
|
-
argsObj.additionalProperties = body.additionalProperties;
|
|
166
|
-
}
|
|
167
|
-
if (body.description) {
|
|
168
|
-
argsObj.description = body.description;
|
|
169
|
-
}
|
|
170
|
-
if (body.oneOf) {
|
|
171
|
-
argsObj.oneOf = body.oneOf;
|
|
172
|
-
}
|
|
173
|
-
if (body.anyOf) {
|
|
174
|
-
argsObj.anyOf = body.anyOf;
|
|
175
|
-
}
|
|
176
|
-
if (body.allOf) {
|
|
177
|
-
argsObj.allOf = body.allOf;
|
|
178
|
-
}
|
|
179
|
-
let description = layer3.description ?? `${toolName} operation`;
|
|
180
|
-
if (fs.existsSync(l4Path)) {
|
|
181
|
-
try {
|
|
182
|
-
const existing = JSON.parse(fs.readFileSync(l4Path, 'utf-8'));
|
|
183
|
-
if (existing.description && existing.description.length > 0) {
|
|
184
|
-
description = existing.description;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
if (!description.includes('schema_query')) {
|
|
191
|
-
const hint = `\n\n💡 Schema hint: Use schema_query with action='get' and name='${toolName}' ` +
|
|
192
|
-
`to retrieve the exact parameter schema before calling.`;
|
|
193
|
-
description = description + hint;
|
|
194
|
-
}
|
|
195
|
-
return {
|
|
196
|
-
name: toolName,
|
|
197
|
-
description,
|
|
198
|
-
arguments: argsObj,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
export function syncDeployedToolDescriptors(options = {}) {
|
|
202
|
-
const silent = options.silent ?? false;
|
|
203
|
-
const layer3Dir = options.layer3Dir ?? LAYER3_DIR;
|
|
204
|
-
const layer4Dir = options.layer4Dir ?? LAYER4_DIR;
|
|
205
|
-
const log = (msg) => {
|
|
206
|
-
if (!silent)
|
|
207
|
-
console.log(msg);
|
|
208
|
-
};
|
|
209
|
-
const logErr = (msg) => {
|
|
210
|
-
if (!silent)
|
|
211
|
-
console.error(msg);
|
|
212
|
-
};
|
|
213
|
-
log('🔄 Syncing Layer 4 deployed tool descriptors from Layer 3 ...\n');
|
|
214
|
-
log(`Layer 3 source: ${layer3Dir}`);
|
|
215
|
-
log(`Layer 4 target: ${layer4Dir}\n`);
|
|
216
|
-
if (!fs.existsSync(layer3Dir)) {
|
|
217
|
-
const msg = `Layer 3 directory does not exist: ${layer3Dir}`;
|
|
218
|
-
logErr(`✗ ${msg}`);
|
|
219
|
-
throw new Error(`${msg} (run 'pnpm generate:schemas' first)`);
|
|
220
|
-
}
|
|
221
|
-
if (!fs.existsSync(layer4Dir)) {
|
|
222
|
-
const msg = `Layer 4 directory does not exist: ${layer4Dir}`;
|
|
223
|
-
logErr(`✗ ${msg}`);
|
|
224
|
-
throw new Error(msg);
|
|
225
|
-
}
|
|
226
|
-
const cache = createExternalFileCache();
|
|
227
|
-
let succeeded = 0;
|
|
228
|
-
let failed = 0;
|
|
229
|
-
const failures = [];
|
|
230
|
-
for (const tool of TOOLS_17) {
|
|
231
|
-
try {
|
|
232
|
-
const deployed = buildDeployedFile(tool, layer3Dir, layer4Dir, cache);
|
|
233
|
-
const outputPath = path.join(layer4Dir, `${tool}.json`);
|
|
234
|
-
fs.writeFileSync(outputPath, JSON.stringify(deployed, null, 2) + '\n', 'utf-8');
|
|
235
|
-
const argCount = Object.keys(deployed.arguments.properties).length;
|
|
236
|
-
const requiredCount = deployed.arguments.required.length;
|
|
237
|
-
const unionType = deployed.arguments.oneOf
|
|
238
|
-
? 'oneOf'
|
|
239
|
-
: deployed.arguments.anyOf
|
|
240
|
-
? 'anyOf'
|
|
241
|
-
: deployed.arguments.allOf
|
|
242
|
-
? 'allOf'
|
|
243
|
-
: '';
|
|
244
|
-
const unionInfo = unionType
|
|
245
|
-
? ` [${unionType}=${deployed.arguments[unionType].length}]`
|
|
246
|
-
: '';
|
|
247
|
-
log(` ✓ ${tool.padEnd(28)} props=${String(argCount).padStart(2)} required=${String(requiredCount).padStart(2)}${unionInfo}`);
|
|
248
|
-
succeeded++;
|
|
249
|
-
}
|
|
250
|
-
catch (e) {
|
|
251
|
-
logErr(` ✗ ${tool}: ${e.message}`);
|
|
252
|
-
failures.push({ tool, error: e.message });
|
|
253
|
-
failed++;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
log(`\n✅ Succeeded: ${succeeded}/${TOOLS_17.length}`);
|
|
257
|
-
if (failed > 0) {
|
|
258
|
-
logErr(`❌ Failed: ${failed}`);
|
|
259
|
-
for (const f of failures) {
|
|
260
|
-
logErr(` - ${f.tool}: ${f.error}`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
log('All 17 Layer 4 deployed files are now FULL schemas (no stubs remain).');
|
|
265
|
-
}
|
|
266
|
-
return {
|
|
267
|
-
ok: succeeded,
|
|
268
|
-
failed,
|
|
269
|
-
errors: failures,
|
|
270
|
-
layer3Dir,
|
|
271
|
-
layer4Dir,
|
|
272
|
-
total: TOOLS_17.length,
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
export function shouldAutoSyncAtStartup() {
|
|
276
|
-
const v = process.env.WOWOK_SYNC_LAYER4;
|
|
277
|
-
if (v === undefined || v === '' || v === 'auto')
|
|
278
|
-
return true;
|
|
279
|
-
if (v === 'never' || v === '0' || v === 'false')
|
|
280
|
-
return false;
|
|
281
|
-
return true;
|
|
282
|
-
}
|
|
1
|
+
import*as a285a from'fs';import*as a285b from'path';export const LAYER3_DIR=a285b['resolve']('d:/wowok/agent/mcp/dist/schemas');export const LAYER4_DIR=a285b['resolve']('c:/Users/zhou/.trae-cn/mcps/s_wowok-7838e181/solo_agent/mcp_wagent/tools');export const ALL_TOOLS=['onchain_operations','account_operation','local_mark_operation','local_info_operation','wip_file','messenger_operation','guard2file','machineNode2file','query_toolkit','onchain_table_data','onchain_events','wowok_buildin_info','schema_query','bridge_operation','project_operation','config_operation','trust_score','query_task_status','evaluation_operation','persona_operation','intent_radar'];const JSON_SCHEMA_DRAFT7='http://json-schema.org/draft-07/schema#',RECURSIVE_EXTERNAL_FILES=new Set(['guard-node-schema.json']);function createExternalFileCache(){return new Map();}function loadExternalFile(a,b,c){if(c['has'](a))return c['get'](a);const d=a285b['resolve'](b,a);if(!a285a['existsSync'](d))throw new Error('External\x20$ref\x20file\x20not\x20found:\x20'+d);const e=JSON['parse'](a285a['readFileSync'](d,'utf-8'));return c['set'](a,e),e;}function resolveRefTarget(a,b,c,d){if(!a['startsWith']('#')){const [g,h]=a['split']('#',0x2),i=loadExternalFile(g,c,d);if(!h||h==='/')return i;if(!h['startsWith']('/'))throw new Error('Unsupported\x20external\x20$ref\x20format:\x20'+a);const j=h['slice'](0x1)['split']('/');let k=i;for(const l of j){if(k===null||typeof k!=='object')throw new Error('Cannot\x20resolve\x20$ref\x20part\x20\x22'+l+'\x22\x20in\x20'+a);k=k[l];}return k;}if(!a['startsWith']('#/'))throw new Error('Unsupported\x20$ref\x20(must\x20start\x20with\x20\x22#/\x22\x20or\x20be\x20external\x20file):\x20'+a);const e=a['slice'](0x2)['split']('/');let f=b;for(const m of e){if(f===null||typeof f!=='object')return undefined;f=f[m];}return f;}function resolveRefs(a,b,c,d,e=new Set(),f=new Map()){if(a===null||typeof a!=='object')return a;if(Array['isArray'](a))return a['map'](h=>resolveRefs(h,b,c,d,e,f));if(typeof a['$ref']==='string'){const h=a['$ref'];if(!h['startsWith']('#')&&RECURSIVE_EXTERNAL_FILES['has'](h['split']('#',0x2)[0x0]))return{'type':'object','additionalProperties':!![],'description':'Recursive\x20GuardNode\x20computational\x20tree\x20(55\x20self-referential\x20node\x20types).\x20'+'NOT\x20inlined\x20here\x20to\x20avoid\x20exponential\x20schema\x20bloat.\x20'+'Use\x20schema_query\x20(e.g.\x20action=\x27get\x27\x20name=\x27onchain_operations_guard\x27)\x20or\x20read\x20guard-node-schema.json\x20'+'for\x20the\x20complete\x20node\x20definitions.\x20Key\x20node\x20families:\x20identifier\x20/\x20query\x20/\x20context\x20/\x20'+'logic_*\x20/\x20calc_*\x20/\x20convert_*\x20/\x20vec_*\x20/\x20query_progress_*\x20/\x20query_reward_*.'};if(e['has'](h))return{'$ref':h,'description':a['description']};if(f['has'](h)){const m=f['get'](h),n=JSON['parse'](JSON['stringify'](m));return a['description']&&!n['description']&&(n['description']=a['description']),n;}const i=resolveRefTarget(h,b,c,d);if(i===undefined||i===null)throw new Error('Cannot\x20resolve\x20$ref\x20target:\x20'+h);const j=new Set(e);j['add'](h);const k=h['startsWith']('#')?b:loadExternalFile(h['split']('#',0x2)[0x0],c,d),l=resolveRefs(i,k,c,d,j,f);return a['description']&&!l['description']&&(l['description']=a['description']),f['set'](h,l),l;}const g={};for(const [o,p]of Object['entries'](a)){g[o]=resolveRefs(p,b,c,d,e,f);}return g;}function extractSchemaBody(a,b,c){const d={...a,'definitions':a['definitions']};let e;if(a['$ref']){const f=a['$ref'],g=resolveRefTarget(f,d,b,c);if(g===undefined||g===null)throw new Error('Top-level\x20$ref\x20cannot\x20be\x20resolved:\x20'+f);const h=f['startsWith']('#')?d:loadExternalFile(f['split']('#',0x2)[0x0],b,c);e=resolveRefs(g,h,b,c);}else{const {$schema:i,$id:j,title:k,definitions:l,description:m,...n}=a;e=resolveRefs(n,d,b,c);}return e;}function buildDeployedFile(a,b,c,d){const e=a285b['join'](b,a+'.schema.json'),f=a285b['join'](c,a+'.json');if(!a285a['existsSync'](e))throw new Error('Layer\x203\x20schema\x20not\x20found:\x20'+e);const g=JSON['parse'](a285a['readFileSync'](e,'utf-8')),h=extractSchemaBody(g,b,d),i={'type':h['type']??'object','properties':h['properties']??{},'required':h['required']??[],'$schema':JSON_SCHEMA_DRAFT7};h['additionalProperties']!==undefined&&(i['additionalProperties']=h['additionalProperties']);h['description']&&(i['description']=h['description']);h['oneOf']&&(i['oneOf']=h['oneOf']);h['anyOf']&&(i['anyOf']=h['anyOf']);h['allOf']&&(i['allOf']=h['allOf']);let j=g['description']??a+'\x20operation';if(a285a['existsSync'](f))try{const k=JSON['parse'](a285a['readFileSync'](f,'utf-8'));k['description']&&k['description']['length']>0x0&&(j=k['description']);}catch{}if(!j['includes']('schema_query')){const l='\x0a\x0a💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27'+a+'\x27\x20'+'to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20before\x20calling.';j=j+l;}return{'name':a,'description':j,'arguments':i};}export function syncDeployedToolDescriptors(a={}){const b=a['silent']??![],c=a['layer3Dir']??LAYER3_DIR,d=a['layer4Dir']??LAYER4_DIR,g=m=>{if(!b)console['log'](m);},h=m=>{if(!b)console['error'](m);};g('🔄\x20Syncing\x20Layer\x204\x20deployed\x20tool\x20descriptors\x20from\x20Layer\x203\x20...\x0a'),g('Layer\x203\x20source:\x20'+c),g('Layer\x204\x20target:\x20\x20'+d+'\x0a');if(!a285a['existsSync'](c)){const m='Layer\x203\x20directory\x20does\x20not\x20exist:\x20'+c;h('✗\x20'+m);throw new Error(m+'\x20(run\x20\x27pnpm\x20generate:schemas\x27\x20first)');}if(!a285a['existsSync'](d)){const n='Layer\x204\x20directory\x20does\x20not\x20exist:\x20'+d;h('✗\x20'+n);throw new Error(n);}const i=createExternalFileCache();let j=0x0,k=0x0;const l=[];for(const o of ALL_TOOLS){try{const p=buildDeployedFile(o,c,d,i),q=a285b['join'](d,o+'.json');a285a['writeFileSync'](q,JSON['stringify'](p,null,0x2)+'\x0a','utf-8');const r=Object['keys'](p['arguments']['properties'])['length'],s=p['arguments']['required']['length'],t=p['arguments']['oneOf']?'oneOf':p['arguments']['anyOf']?'anyOf':p['arguments']['allOf']?'allOf':'',u=t?'\x20['+t+'='+p['arguments'][t]['length']+']':'';g('\x20\x20✓\x20'+o['padEnd'](0x1c)+'\x20props='+String(r)['padStart'](0x2)+'\x20\x20required='+String(s)['padStart'](0x2)+u),j++;}catch(v){h('\x20\x20✗\x20'+o+':\x20'+v['message']),l['push']({'tool':o,'error':v['message']}),k++;}}g('\x0a✅\x20Succeeded:\x20'+j+'/'+ALL_TOOLS['length']);if(k>0x0){h('❌\x20Failed:\x20'+k);for(const w of l){h('\x20\x20\x20-\x20'+w['tool']+':\x20'+w['error']);}}else g('All\x20'+ALL_TOOLS['length']+'\x20Layer\x204\x20deployed\x20files\x20are\x20now\x20FULL\x20schemas\x20(no\x20stubs\x20remain).');return{'ok':j,'failed':k,'errors':l,'layer3Dir':c,'layer4Dir':d,'total':ALL_TOOLS['length']};}export function shouldAutoSyncAtStartup(){const a=process['env']['WOWOK_SYNC_LAYER4'];if(a===undefined||a===''||a==='auto')return!![];if(a==='never'||a==='0'||a==='false')return![];return!![];}
|