@wowok/agent-mcp 2.7.2 → 2.7.4
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/runtime.js +1 -1
- package/dist/customer/account-events.d.ts +32 -0
- package/dist/customer/account-events.js +1 -0
- package/dist/customer/customer-advice.d.ts +1 -0
- package/dist/customer/customer-advice.js +1 -1
- package/dist/customer/info-puzzle.js +1 -1
- package/dist/customer/order-strategy.d.ts +1 -1
- package/dist/customer/reminder-system.d.ts +2 -0
- package/dist/customer/reminder-system.js +1 -1
- package/dist/customer/risk-assessment.d.ts +1 -0
- package/dist/customer/risk-assessment.js +1 -1
- package/dist/customer/types.d.ts +2 -0
- package/dist/evaluation/builtins/arbitration-score.d.ts +41 -0
- package/dist/evaluation/builtins/arbitration-score.js +1 -0
- package/dist/evaluation/builtins/index.d.ts +1 -0
- package/dist/evaluation/builtins/index.js +1 -1
- package/dist/evaluation/category-match-rules.d.ts +30 -0
- package/dist/evaluation/category-match-rules.js +1 -0
- package/dist/evaluation/engine.js +1 -1
- package/dist/evaluation/extract.js +1 -1
- package/dist/evaluation/index.d.ts +1 -0
- package/dist/evaluation/index.js +1 -1
- package/dist/evaluation/location-match.d.ts +42 -0
- package/dist/evaluation/location-match.js +1 -0
- package/dist/evaluation/path-reasoning.d.ts +35 -0
- package/dist/evaluation/path-reasoning.js +1 -0
- package/dist/evaluation/region.d.ts +6 -0
- package/dist/evaluation/region.js +1 -1
- package/dist/evaluation/types.d.ts +17 -0
- package/dist/experience/realtime-feedback.js +1 -1
- package/dist/experience/user-profile.d.ts +1 -1
- package/dist/extensions/index.d.ts +6 -0
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/industry-layers.d.ts +75 -0
- package/dist/extensions/industry-layers.js +1 -0
- package/dist/extensions/industry-pack.d.ts +105 -0
- package/dist/extensions/industry-pack.js +1 -0
- package/dist/extensions/metric-registry.js +1 -1
- package/dist/extensions/mode-evaluator.d.ts +1 -1
- package/dist/extensions/registry.d.ts +1 -0
- package/dist/extensions/registry.js +1 -1
- package/dist/graph/base.d.ts +8 -0
- package/dist/graph/base.js +1 -0
- package/dist/harness/index.d.ts +1 -0
- package/dist/harness/index.js +1 -1
- package/dist/harness/plan.d.ts +2 -0
- package/dist/harness/plan.js +1 -1
- package/dist/harness/recover.d.ts +1 -1
- package/dist/harness/types.d.ts +2 -3
- package/dist/index.js +1 -1
- package/dist/knowledge/allocation-confirm.js +1 -1
- package/dist/knowledge/anti-cheat.d.ts +37 -0
- package/dist/knowledge/anti-cheat.js +1 -0
- package/dist/knowledge/arb-confirm.d.ts +28 -0
- package/dist/knowledge/arb-confirm.js +1 -0
- package/dist/knowledge/arb-translation.d.ts +48 -0
- package/dist/knowledge/arb-translation.js +1 -0
- package/dist/knowledge/arbitration-context.js +1 -1
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/bridge-confirm.d.ts +26 -0
- package/dist/knowledge/bridge-confirm.js +1 -0
- package/dist/knowledge/bridge-translation.d.ts +37 -0
- package/dist/knowledge/bridge-translation.js +1 -0
- package/dist/knowledge/contact-confirm.d.ts +27 -0
- package/dist/knowledge/contact-confirm.js +1 -0
- package/dist/knowledge/contact-translation.d.ts +39 -0
- package/dist/knowledge/contact-translation.js +1 -0
- package/dist/knowledge/demand-confirm.js +1 -1
- package/dist/knowledge/demand-context.d.ts +17 -0
- package/dist/knowledge/demand-context.js +1 -0
- package/dist/knowledge/demand-ledger.d.ts +26 -0
- package/dist/knowledge/demand-ledger.js +1 -0
- package/dist/knowledge/demand-puzzle.d.ts +29 -0
- package/dist/knowledge/demand-puzzle.js +1 -0
- package/dist/knowledge/demand-risk.js +1 -1
- package/dist/knowledge/demand-templates.d.ts +12 -0
- package/dist/knowledge/demand-templates.js +1 -0
- package/dist/knowledge/demand-translation.js +1 -1
- package/dist/knowledge/deployment-scanner.js +1 -1
- package/dist/knowledge/evidence-review.d.ts +12 -0
- package/dist/knowledge/evidence-review.js +1 -0
- package/dist/knowledge/examples-scanner-cli.js +1 -1
- package/dist/knowledge/examples-scanner.js +1 -1
- package/dist/knowledge/flywheel-loop.d.ts +0 -1
- package/dist/knowledge/flywheel-loop.js +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-migration.d.ts +1 -1
- package/dist/knowledge/index.d.ts +71 -3
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/machine-render.js +1 -1
- package/dist/knowledge/market-metrics.d.ts +12 -0
- package/dist/knowledge/market-metrics.js +1 -0
- package/dist/knowledge/market-operations.d.ts +46 -0
- package/dist/knowledge/market-operations.js +1 -0
- package/dist/knowledge/mcp-schema-audit-cli.js +1 -1
- package/dist/knowledge/mcp-schema-audit.d.ts +22 -22
- package/dist/knowledge/mcp-schema-audit.js +1 -1
- package/dist/knowledge/onchain-constants.d.ts +2 -2
- package/dist/knowledge/onchain-constants.js +1 -1
- package/dist/knowledge/payment-confirm.d.ts +26 -0
- package/dist/knowledge/payment-confirm.js +1 -0
- package/dist/knowledge/payment-risk.js +1 -1
- package/dist/knowledge/payment-translation.d.ts +37 -0
- package/dist/knowledge/payment-translation.js +1 -0
- package/dist/knowledge/permission-context.d.ts +11 -0
- package/dist/knowledge/permission-context.js +1 -1
- package/dist/knowledge/permission-ledger.d.ts +11 -0
- package/dist/knowledge/permission-ledger.js +1 -1
- package/dist/knowledge/personal-confirm.d.ts +29 -0
- package/dist/knowledge/personal-confirm.js +1 -0
- package/dist/knowledge/personal-risk.js +1 -1
- package/dist/knowledge/personal-translation.d.ts +37 -0
- package/dist/knowledge/personal-translation.js +1 -0
- package/dist/knowledge/process-model.d.ts +1 -11
- package/dist/knowledge/process-model.js +1 -1
- package/dist/knowledge/progress-ledger.js +1 -1
- package/dist/knowledge/progress-risk.js +1 -1
- package/dist/knowledge/progress-templates.js +1 -1
- package/dist/knowledge/progress-translation.js +1 -1
- package/dist/knowledge/proof-context.d.ts +17 -0
- package/dist/knowledge/proof-context.js +1 -0
- package/dist/knowledge/proof-ledger.d.ts +34 -0
- package/dist/knowledge/proof-ledger.js +1 -0
- package/dist/knowledge/proof-puzzle.d.ts +35 -0
- package/dist/knowledge/proof-puzzle.js +1 -0
- package/dist/knowledge/proof-templates.d.ts +22 -0
- package/dist/knowledge/proof-templates.js +1 -0
- package/dist/knowledge/registrar-confirm.d.ts +26 -0
- package/dist/knowledge/registrar-confirm.js +1 -0
- package/dist/knowledge/registrar-risk.js +1 -1
- package/dist/knowledge/registrar-translation.d.ts +37 -0
- package/dist/knowledge/registrar-translation.js +1 -0
- package/dist/knowledge/repository-context.d.ts +12 -0
- package/dist/knowledge/repository-context.js +1 -0
- package/dist/knowledge/repository-ledger.d.ts +25 -0
- package/dist/knowledge/repository-ledger.js +1 -0
- package/dist/knowledge/repository-puzzle.d.ts +30 -0
- package/dist/knowledge/repository-puzzle.js +1 -0
- package/dist/knowledge/repository-templates.d.ts +14 -0
- package/dist/knowledge/repository-templates.js +1 -0
- package/dist/knowledge/resource-confirm.d.ts +25 -0
- package/dist/knowledge/resource-confirm.js +1 -0
- package/dist/knowledge/resource-translation.d.ts +37 -0
- package/dist/knowledge/resource-translation.js +1 -0
- package/dist/knowledge/reward-context.d.ts +2 -2
- package/dist/knowledge/reward-ledger.js +1 -1
- package/dist/knowledge/reward-translation.js +1 -1
- package/dist/knowledge/safety-rules.d.ts +1 -0
- package/dist/knowledge/safety-rules.js +1 -1
- package/dist/knowledge/service-risk.d.ts +1 -1
- package/dist/knowledge/service-risk.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/treasury-context.d.ts +1 -1
- package/dist/knowledge/treasury-context.js +1 -1
- package/dist/knowledge/treasury-ledger.js +1 -1
- package/dist/knowledge/treasury-risk.js +1 -1
- package/dist/knowledge/universal-template.d.ts +22 -0
- package/dist/knowledge/universal-template.js +1 -0
- package/dist/knowledge/util-confirm.d.ts +24 -0
- package/dist/knowledge/util-confirm.js +1 -0
- package/dist/knowledge/util-risk.js +1 -1
- package/dist/knowledge/util-translation.d.ts +39 -0
- package/dist/knowledge/util-translation.js +1 -0
- package/dist/knowledge/workflow-guidance.d.ts +180 -0
- package/dist/knowledge/workflow-guidance.js +1 -0
- package/dist/participation/employee-kpi.d.ts +25 -0
- package/dist/participation/employee-kpi.js +1 -0
- package/dist/participation/employee-store.d.ts +16 -0
- package/dist/participation/employee-store.js +1 -0
- package/dist/participation/index.d.ts +2 -0
- package/dist/participation/index.js +1 -0
- package/dist/persona/defaults.js +1 -1
- package/dist/persona/index.d.ts +9 -2
- package/dist/persona/index.js +1 -1
- package/dist/persona/local-region.d.ts +20 -0
- package/dist/persona/local-region.js +1 -0
- package/dist/persona/model.js +1 -1
- package/dist/persona/overrides.d.ts +10 -0
- package/dist/persona/overrides.js +1 -0
- package/dist/persona/pack-personae.d.ts +11 -0
- package/dist/persona/pack-personae.js +1 -0
- package/dist/persona/strategy-intent.d.ts +20 -0
- package/dist/persona/strategy-intent.js +1 -0
- package/dist/persona/types.d.ts +3 -1
- package/dist/project/business-puzzle.d.ts +1 -1
- package/dist/project/business-puzzle.js +1 -1
- package/dist/project/deployment-doc.js +1 -1
- package/dist/project/edit-planner.js +1 -1
- package/dist/project/evaluation.d.ts +37 -1
- package/dist/project/evaluation.js +1 -1
- package/dist/project/graph-builder.d.ts +2 -2
- package/dist/project/graph-builder.js +1 -1
- package/dist/project/graph.d.ts +3 -6
- package/dist/project/handlers.d.ts +33 -2
- package/dist/project/handlers.js +1 -1
- package/dist/project/index.d.ts +1 -0
- package/dist/project/index.js +1 -1
- package/dist/project/merchant-guide.d.ts +19 -0
- package/dist/project/merchant-guide.js +1 -1
- package/dist/project/mode-actions.js +1 -1
- package/dist/project/rollback-policy.js +1 -1
- package/dist/project/semantic-assembler.d.ts +2 -2
- package/dist/project/semantic-assembler.js +1 -1
- package/dist/project/semantic-graph.d.ts +3 -5
- package/dist/project/workflow-design-assessment.d.ts +24 -0
- package/dist/project/workflow-design-assessment.js +1 -0
- package/dist/safety/confirm-gate.d.ts +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/call/allocation.d.ts +186 -1385
- package/dist/schema/call/arbitration.d.ts +272 -1871
- package/dist/schema/call/base.d.ts +1831 -9076
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +911 -3171
- package/dist/schema/call/contact.d.ts +135 -931
- package/dist/schema/call/demand.d.ts +164 -1194
- package/dist/schema/call/guard.d.ts +298 -1140
- package/dist/schema/call/guard.js +1 -1
- package/dist/schema/call/machine.d.ts +459 -5403
- package/dist/schema/call/machine.js +1 -1
- package/dist/schema/call/order.d.ts +137 -844
- package/dist/schema/call/payment.d.ts +74 -561
- package/dist/schema/call/permission.d.ts +335 -2791
- package/dist/schema/call/personal.d.ts +227 -1814
- package/dist/schema/call/progress.d.ts +140 -843
- package/dist/schema/call/proof.d.ts +42 -258
- package/dist/schema/call/repository.d.ts +324 -2222
- package/dist/schema/call/reward.d.ts +153 -1183
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +376 -3431
- package/dist/schema/call/treasury.d.ts +252 -2158
- package/dist/schema/common/index.d.ts +222 -697
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/config/index.d.ts +18 -161
- package/dist/schema/employee/index.d.ts +99 -0
- package/dist/schema/employee/index.js +1 -0
- package/dist/schema/evaluation/index.d.ts +1035 -3918
- package/dist/schema/evaluation/index.js +1 -1
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +132 -0
- package/dist/schema/industry-pack/index.js +1 -0
- package/dist/schema/intent-radar/index.d.ts +92 -245
- package/dist/schema/intent-radar/index.js +1 -1
- package/dist/schema/local/index.d.ts +2045 -18080
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/local/wip.d.ts +61 -651
- package/dist/schema/local/wip.js +1 -1
- package/dist/schema/messenger/index.d.ts +949 -5557
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +3168 -26468
- package/dist/schema/operations.js +1 -1
- package/dist/schema/permission/index.d.ts +121 -0
- package/dist/schema/permission/index.js +1 -0
- package/dist/schema/persona/index.d.ts +469 -1820
- package/dist/schema/persona/index.js +1 -1
- package/dist/schema/project/index.d.ts +1023 -8450
- package/dist/schema/project/index.js +1 -1
- package/dist/schema/query/index.d.ts +12121 -75556
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +35 -98
- package/dist/schema/schema-query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/task-status.d.ts +26 -132
- package/dist/schema/trust/index.d.ts +194 -1290
- package/dist/schema/utils/guard-parser.js +1 -1
- package/dist/schema/utils/node-parser.js +1 -1
- package/dist/schema/utils/skills-recommendation.d.ts +1 -0
- package/dist/schema/utils/skills-recommendation.js +1 -1
- package/dist/schema/workflow/index.d.ts +161 -0
- package/dist/schema/workflow/index.js +1 -0
- package/dist/schema/workspace/index.d.ts +69 -0
- package/dist/schema/workspace/index.js +1 -0
- package/dist/{schema-query → schema-query-impl}/index.js +1 -1
- package/dist/schemas/account_operation.output.json +3147 -1655
- package/dist/schemas/account_operation.schema.json +225 -218
- package/dist/schemas/bridge_operation.output.json +1168 -653
- package/dist/schemas/bridge_operation.schema.json +736 -504
- package/dist/schemas/config_operation.output.json +185 -179
- package/dist/schemas/config_operation.schema.json +21 -26
- package/dist/schemas/employee_operation.output.json +207 -0
- package/dist/schemas/employee_operation.schema.json +176 -0
- package/dist/schemas/evaluation_operation.output.json +2268 -601
- package/dist/schemas/evaluation_operation.schema.json +2919 -787
- package/dist/schemas/guard2file.output.json +58 -64
- package/dist/schemas/guard2file.schema.json +79 -81
- package/dist/schemas/index.json +41 -11
- package/dist/schemas/industry_pack_operation.output.json +594 -0
- package/dist/schemas/industry_pack_operation.schema.json +55 -0
- package/dist/schemas/intent_radar.output.json +275 -203
- package/dist/schemas/intent_radar.schema.json +124 -126
- package/dist/schemas/local_info_operation.output.json +1174 -660
- package/dist/schemas/local_info_operation.schema.json +119 -125
- package/dist/schemas/local_mark_operation.output.json +1239 -692
- package/dist/schemas/local_mark_operation.schema.json +91 -96
- package/dist/schemas/machineNode2file.output.json +63 -69
- package/dist/schemas/machineNode2file.schema.json +79 -81
- package/dist/schemas/messenger_operation.output.json +2722 -1531
- package/dist/schemas/messenger_operation.schema.json +1482 -1264
- package/dist/schemas/onchain_events.output.json +2590 -978
- package/dist/schemas/onchain_events.schema.json +117 -99
- package/dist/schemas/onchain_operations.output.json +3957 -2312
- package/dist/schemas/onchain_operations.schema.json +20799 -9285
- package/dist/schemas/onchain_operations_allocation.schema.json +171 -107
- package/dist/schemas/onchain_operations_arbitration.schema.json +233 -146
- package/dist/schemas/onchain_operations_contact.schema.json +129 -90
- package/dist/schemas/onchain_operations_demand.schema.json +170 -112
- package/dist/schemas/onchain_operations_gen_passport.schema.json +61 -646
- package/dist/schemas/onchain_operations_gen_proof.schema.json +40 -172
- package/dist/schemas/onchain_operations_guard.schema.json +3765 -294
- package/dist/schemas/onchain_operations_machine.schema.json +536 -163
- package/dist/schemas/onchain_operations_order.schema.json +126 -96
- package/dist/schemas/onchain_operations_payment.schema.json +82 -67
- package/dist/schemas/onchain_operations_permission.schema.json +331 -93
- package/dist/schemas/onchain_operations_personal.schema.json +636 -96
- package/dist/schemas/onchain_operations_progress.schema.json +125 -92
- package/dist/schemas/onchain_operations_proof.schema.json +76 -69
- package/dist/schemas/onchain_operations_repository.schema.json +636 -249
- package/dist/schemas/onchain_operations_reward.schema.json +218 -108
- package/dist/schemas/onchain_operations_service.schema.json +678 -220
- package/dist/schemas/onchain_operations_treasury.schema.json +401 -135
- package/dist/schemas/onchain_table_data.output.json +6833 -2432
- package/dist/schemas/onchain_table_data.schema.json +684 -417
- package/dist/schemas/permission_operation.output.json +173 -0
- package/dist/schemas/permission_operation.schema.json +39 -0
- package/dist/schemas/persona_operation.output.json +1568 -268
- package/dist/schemas/persona_operation.schema.json +346 -205
- package/dist/schemas/project_operation.output.json +6922 -5132
- package/dist/schemas/project_operation.schema.json +1050 -1020
- package/dist/schemas/query_task_status.output.json +195 -99
- package/dist/schemas/query_task_status.schema.json +12 -18
- package/dist/schemas/query_toolkit.output.json +18862 -14561
- package/dist/schemas/query_toolkit.schema.json +614 -522
- package/dist/schemas/schema_query.output.json +127 -129
- package/dist/schemas/schema_query.schema.json +64 -69
- package/dist/schemas/trust_score.output.json +678 -587
- package/dist/schemas/trust_score.schema.json +289 -277
- package/dist/schemas/wip_file.output.json +116 -124
- package/dist/schemas/wip_file.schema.json +142 -143
- package/dist/schemas/workflow_operation.output.json +164 -0
- package/dist/schemas/workflow_operation.schema.json +116 -0
- package/dist/schemas/workspace_operation.output.json +277 -0
- package/dist/schemas/workspace_operation.schema.json +45 -0
- package/dist/schemas/wowok_buildin_info.output.json +1682 -844
- package/dist/schemas/wowok_buildin_info.schema.json +576 -526
- package/dist/tools/handlers/bridge.d.ts +8 -1
- package/dist/tools/handlers/bridge.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/employee.d.ts +2 -0
- package/dist/tools/handlers/employee.js +1 -0
- package/dist/tools/handlers/evaluation.js +1 -1
- package/dist/tools/handlers/file-export.js +1 -1
- package/dist/tools/handlers/industry-pack.d.ts +2 -0
- package/dist/tools/handlers/industry-pack.js +1 -0
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/permission.d.ts +2 -0
- package/dist/tools/handlers/permission.js +1 -0
- package/dist/tools/handlers/persona.js +1 -1
- package/dist/tools/handlers/project.js +1 -1
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/schema-query.js +1 -1
- package/dist/tools/handlers/trust.js +1 -1
- package/dist/tools/handlers/wip.js +1 -1
- package/dist/tools/handlers/workflow.d.ts +2 -0
- package/dist/tools/handlers/workflow.js +1 -0
- package/dist/tools/handlers/workspace.d.ts +4 -0
- package/dist/tools/handlers/workspace.js +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/rules-hook.d.ts +1 -1
- package/dist/tools/rules-hook.js +1 -1
- package/dist/tools/shared.d.ts +1 -1
- package/dist/tools/shared.js +1 -1
- package/dist/tools/types.d.ts +2 -1
- package/package.json +4 -5
- package/dist/knowledge/arbitration-trust.d.ts +0 -24
- package/dist/knowledge/arbitration-trust.js +0 -1
- package/dist/schema/call/bridge-handler.d.ts +0 -8
- package/dist/schema/call/bridge-handler.js +0 -1
- package/dist/schema/sync-layer4.d.ts +0 -21
- package/dist/schema/sync-layer4.js +0 -1
- /package/dist/{schema-query → schema-query-impl}/index.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{GuardNodeSchema}from'../query/index.js';import{CallGuard_DataSchema}from'../call/guard.js';import{isBoolReturningQuery,BOOL_RETURNING_QUERIES}from'./guard-query-utils.js';function detectFormat(a){const b=a['trim']();if(b['startsWith']('{')||b['startsWith']('['))return'json';return'markdown';}function extractJsonFromMarkdown(a){const b=/```(?:json)?\s*\n([\s\S]*?)```/g;let c,d=null;while((c=b['exec'](a))!==null){const e=c[0x1]['trim']();if(e['startsWith']('{')){const f=a['substring'](0x0,c['index']),g=(f['match'](/\n/g)||[])['length']+0x1;d={'json':e,'lineOffset':g};}}return d;}function parseMarkdownToGuardData(a){const b=[],c=extractJsonFromMarkdown(a);if(c)return{'data':c['json'],'errors':[]};const d={},f=a['match'](/(?:^|\n)#+\s*Description[^\n]*\n+([^\n#]+)/i);f&&(d['description']=f[0x1]['trim']());const g=a['match'](/(?:^|\n)#+\s*Table[^\n]*\n+[\s\S]*?(?=(?:\n#+|$))/i);if(g){const j=g[0x0],k=j['match'](/\|[^\n]+\|/g);if(k&&k['length']>0x2){const l=k['slice'](0x2)['map'](m=>{const n=m['split']('|')['filter'](r=>r['trim']())['map'](r=>r['trim']()),o=n[0x2];let p;const q=o['match'](/\d+/);if(q)p=parseInt(q[0x0],0xa);else{const r=o['match'](/^([A-Za-z]+)/);if(r)p=r[0x1];else throw new Error('Invalid\x20value_type\x20in\x20table\x20row:\x20\x22'+o+'\x22.\x20Expected\x20a\x20number\x20(0-19)\x20or\x20type\x20name\x20(e.g.,\x20\x22U64\x22,\x20\x22Address\x22)');}return{'identifier':parseInt(n[0x0],0xa),'b_submission':n[0x1]['toLowerCase']()==='true','value_type':p,'value':n[0x3]==='-'?undefined:n[0x3],'name':n[0x4]==='-'?undefined:n[0x4]};});d['table']=l;}else d['table']=[];}else d['table']=[];const h=a['match'](/(?:^|\n)#+\s*Root[^\n]*\n+([\s\S]*?)(?=(?:\n#+|$))/i);if(h){const m=h[0x1],n=m['match'](/```(?:json)?\s*\n([\s\S]*?)```/);if(n)try{d['root']=JSON['parse'](n[0x1]);}catch(o){b['push']({'message':'Failed\x20to\x20parse\x20root\x20JSON:\x20'+o['message'],'path':'/root'});}}const i=a['match'](/(?:^|\n)#+\s*Rely[^\n]*\n+([\s\S]*?)(?=(?:\n#+|$))/i);if(i){const p=i[0x1],q=p['match'](/\*\*Logic:\*\*\s*(AND|OR)/i),r=p['match'](/^\s*[-*]\s*(\S+)$/gm);if(q||r){const s=q?q[0x1]['toUpperCase']()==='AND':!![],t=r?r['map'](u=>u['replace'](/^\s*[-*]\s*/,'')['trim']()):[];d['rely']={'guards':t,'logic_or':!s};}else{const u=p['match'](/[-*]\s*guards?\s*:\s*\[([^\]]+)\]/i),v=p['match'](/[-*]\s*logic_or\s*:\s*(true|false)/i);(u||v)&&(d['rely']={'guards':u?u[0x1]['split'](',')['map'](w=>w['trim']()['replace'](/['"]/g,'')):[],'logic_or':v?v[0x1]['toLowerCase']()==='true':undefined});}}return{'data':d,'errors':b};}function parseJsonWithSourceMap(a,b=0x0){let c={},d;try{const f=a['split']('\x0a'),g=[0x0];for(let h=0x0;h<f['length'];h++){g['push'](g[h]+f[h]['length']+0x1);}return d=JSON['parse'](a),buildPointers(d,'',c,a,g,b),{'data':d,'map':{'pointers':c}};}catch(j){return null;}}function buildPointers(a,b,c,d,e,f){if(typeof a!=='object'||a===null)return;const g=findValuePosition(d,b,e);g!==undefined&&(c[b]={'value':{'line':g['line']+f,'column':g['column'],'pos':g['pos']}}),Array['isArray'](a)?a['forEach']((h,i)=>{buildPointers(h,b+'/'+i,c,d,e,f);}):Object['keys'](a)['forEach'](h=>{const i=h['replace'](/~/g,'~0')['replace'](/\//g,'~1');buildPointers(a[h],b+'/'+i,c,d,e,f);});}function findValuePosition(a,b,d){if(b===''){const l=a['match'](/\S/);if(l&&l['index']!==undefined)return getPosition(a,l['index'],d);return undefined;}const e=b['split']('/')['slice'](0x1);let f=0x0,g=0x0,h=![],k=![];for(let m=0x0;m<e['length'];m++){const n=e[m]['replace'](/~0/g,'~')['replace'](/~1/g,'/');let o=![];while(f<a['length']){const p=a[f];if(k){k=![],f++;continue;}if(p==='\x5c'){k=!![],f++;continue;}if(p==='\x22'){h=!h,f++;continue;}if(h){f++;continue;}if(p==='{'||p==='['){g++,f++;continue;}if(p==='}'||p===']'){g--,f++;continue;}if(m<e['length']-0x1||!isNaN(Number(n))){if(p==='\x22'&&g===m+0x1){const q=a['indexOf']('\x22',f+0x1);if(q!==-0x1){const r=a['slice'](f+0x1,q);if(r===n||!isNaN(Number(n))&&r===e[m-0x1]){f=q+0x1;while(f<a['length']&&(a[f]==='\x20'||a[f]===':'||a[f]==='\x0a'||a[f]==='\x0d'||a[f]==='\x09')){f++;}o=!![];break;}}}if(!isNaN(Number(n))&&p==='['){
|
|
1
|
+
import{GuardNodeSchema}from'../query/index.js';import{CallGuard_DataSchema}from'../call/guard.js';import{isBoolReturningQuery,BOOL_RETURNING_QUERIES}from'./guard-query-utils.js';function detectFormat(a){const b=a['trim']();if(b['startsWith']('{')||b['startsWith']('['))return'json';return'markdown';}function extractJsonFromMarkdown(a){const b=/```(?:json)?\s*\n([\s\S]*?)```/g;let c,d=null;while((c=b['exec'](a))!==null){const e=c[0x1]['trim']();if(e['startsWith']('{')){const f=a['substring'](0x0,c['index']),g=(f['match'](/\n/g)||[])['length']+0x1;d={'json':e,'lineOffset':g};}}return d;}function parseMarkdownToGuardData(a){const b=[],c=extractJsonFromMarkdown(a);if(c)return{'data':c['json'],'errors':[]};const d={},f=a['match'](/(?:^|\n)#+\s*Description[^\n]*\n+([^\n#]+)/i);f&&(d['description']=f[0x1]['trim']());const g=a['match'](/(?:^|\n)#+\s*Table[^\n]*\n+[\s\S]*?(?=(?:\n#+|$))/i);if(g){const j=g[0x0],k=j['match'](/\|[^\n]+\|/g);if(k&&k['length']>0x2){const l=k['slice'](0x2)['map'](m=>{const n=m['split']('|')['filter'](r=>r['trim']())['map'](r=>r['trim']()),o=n[0x2];let p;const q=o['match'](/\d+/);if(q)p=parseInt(q[0x0],0xa);else{const r=o['match'](/^([A-Za-z]+)/);if(r)p=r[0x1];else throw new Error('Invalid\x20value_type\x20in\x20table\x20row:\x20\x22'+o+'\x22.\x20Expected\x20a\x20number\x20(0-19)\x20or\x20type\x20name\x20(e.g.,\x20\x22U64\x22,\x20\x22Address\x22)');}return{'identifier':parseInt(n[0x0],0xa),'b_submission':n[0x1]['toLowerCase']()==='true','value_type':p,'value':n[0x3]==='-'?undefined:n[0x3],'name':n[0x4]==='-'?undefined:n[0x4]};});d['table']=l;}else d['table']=[];}else d['table']=[];const h=a['match'](/(?:^|\n)#+\s*Root[^\n]*\n+([\s\S]*?)(?=(?:\n#+|$))/i);if(h){const m=h[0x1],n=m['match'](/```(?:json)?\s*\n([\s\S]*?)```/);if(n)try{d['root']=JSON['parse'](n[0x1]);}catch(o){b['push']({'message':'Failed\x20to\x20parse\x20root\x20JSON:\x20'+o['message'],'path':'/root'});}}const i=a['match'](/(?:^|\n)#+\s*Rely[^\n]*\n+([\s\S]*?)(?=(?:\n#+|$))/i);if(i){const p=i[0x1],q=p['match'](/\*\*Logic:\*\*\s*(AND|OR)/i),r=p['match'](/^\s*[-*]\s*(\S+)$/gm);if(q||r){const s=q?q[0x1]['toUpperCase']()==='AND':!![],t=r?r['map'](u=>u['replace'](/^\s*[-*]\s*/,'')['trim']()):[];d['rely']={'guards':t,'logic_or':!s};}else{const u=p['match'](/[-*]\s*guards?\s*:\s*\[([^\]]+)\]/i),v=p['match'](/[-*]\s*logic_or\s*:\s*(true|false)/i);(u||v)&&(d['rely']={'guards':u?u[0x1]['split'](',')['map'](w=>w['trim']()['replace'](/['"]/g,'')):[],'logic_or':v?v[0x1]['toLowerCase']()==='true':undefined});}}return{'data':d,'errors':b};}function parseJsonWithSourceMap(a,b=0x0){let c={},d;try{const f=a['split']('\x0a'),g=[0x0];for(let h=0x0;h<f['length'];h++){g['push'](g[h]+f[h]['length']+0x1);}return d=JSON['parse'](a),buildPointers(d,'',c,a,g,b),{'data':d,'map':{'pointers':c}};}catch(j){return null;}}function buildPointers(a,b,c,d,e,f){if(typeof a!=='object'||a===null)return;const g=findValuePosition(d,b,e);g!==undefined&&(c[b]={'value':{'line':g['line']+f,'column':g['column'],'pos':g['pos']}}),Array['isArray'](a)?a['forEach']((h,i)=>{buildPointers(h,b+'/'+i,c,d,e,f);}):Object['keys'](a)['forEach'](h=>{const i=h['replace'](/~/g,'~0')['replace'](/\//g,'~1');buildPointers(a[h],b+'/'+i,c,d,e,f);});}function findValuePosition(a,b,d){if(b===''){const l=a['match'](/\S/);if(l&&l['index']!==undefined)return getPosition(a,l['index'],d);return undefined;}const e=b['split']('/')['slice'](0x1);let f=0x0,g=0x0,h=![],k=![];for(let m=0x0;m<e['length'];m++){const n=e[m]['replace'](/~0/g,'~')['replace'](/~1/g,'/');let o=![];while(f<a['length']){const p=a[f];if(k){k=![],f++;continue;}if(p==='\x5c'){k=!![],f++;continue;}if(p==='\x22'){h=!h,f++;continue;}if(h){f++;continue;}if(p==='{'||p==='['){g++,f++;continue;}if(p==='}'||p===']'){g--,f++;continue;}if(m<e['length']-0x1||!isNaN(Number(n))){if(p==='\x22'&&g===m+0x1){const q=a['indexOf']('\x22',f+0x1);if(q!==-0x1){const r=a['slice'](f+0x1,q);if(r===n||!isNaN(Number(n))&&r===e[m-0x1]){f=q+0x1;while(f<a['length']&&(a[f]==='\x20'||a[f]===':'||a[f]==='\x0a'||a[f]==='\x0d'||a[f]==='\x09')){f++;}o=!![];break;}}}if(!isNaN(Number(n))&&p==='['){let s=0x1,t=0x0,u=f+0x1;for(let v=f+0x1;v<a['length'];v++){const w=a[v];if(w==='[')s++;if(w===']'){s--;if(s===0x0)break;}if(w===','&&s===0x1){if(t===Number(n)){f=u;while(f<a['length']&&(a[f]==='\x20'||a[f]==='\x0a'||a[f]==='\x0d'||a[f]==='\x09')){f++;}o=!![];break;}t++,u=v+0x1;}}if(o)break;}}f++;}}while(f<a['length']&&(a[f]==='\x20'||a[f]==='\x0a'||a[f]==='\x0d'||a[f]==='\x09')){f++;}return getPosition(a,f,d);}function getPosition(a,b,c){let d=0x1;for(let f=0x0;f<c['length'];f++){if(c[f]>b)break;d=f+0x1;}const e=b-c[d-0x1]+0x1;return{'line':d,'column':e,'pos':b};}function formatZodPath(a){return'/'+a['map'](b=>String(b)['replace'](/~/g,'~0')['replace'](/\//g,'~1'))['join']('/');}export function parseGuardFromText(a){const b=[],c=a['trim'](),d=detectFormat(c);let f,g=null,h=0x0;if(d==='markdown'){const j=parseMarkdownToGuardData(c);if(j['errors']['length']>0x0)return{'success':![],'errors':j['errors']};if(typeof j['data']==='string'){const k=extractJsonFromMarkdown(c);if(k){h=k['lineOffset'];const l=parseJsonWithSourceMap(j['data'],h);if(l)f=l['data'],g=l['map'];else return b['push']({'message':'Failed\x20to\x20parse\x20JSON\x20from\x20markdown\x20code\x20block','path':'/'}),{'success':![],'errors':b};}else f=j['data'];}else f=j['data'];}else try{const m=parseJsonWithSourceMap(c,0x0);if(m)f=m['data'],g=m['map'];else return b['push']({'message':'Failed\x20to\x20parse\x20JSON\x20with\x20source\x20mapping','path':'/'}),{'success':![],'errors':b};}catch(n){const o=n,p=o['message']['match'](/position\s+(\d+)/);let q=0x1,r=0x1;if(p){const s=parseInt(p[0x1],0xa),t=c['substring'](0x0,s)['split']('\x0a');q=t['length'],r=t[t['length']-0x1]['length']+0x1;}return b['push']({'message':'JSON\x20parse\x20error:\x20'+o['message'],'path':'/','line':q,'column':r}),{'success':![],'errors':b};}const i=CallGuard_DataSchema['safeParse'](f);if(i['success']){const u=i['data']['root'];if(typeof u==='object'&&u!==null&&'type'in u){const v=u;if(v['type']==='query'&&v['query']!==undefined){if(!isBoolReturningQuery(v['query'])){const w=typeof v['query']==='number'?'ID\x20'+v['query']:'\x22'+v['query']+'\x22',x=BOOL_RETURNING_QUERIES['slice'](0x0,0x5)['map'](y=>'\x22'+y['name']+'\x22')['join'](',\x20');return{'success':![],'errors':[{'message':'Invalid\x20Guard\x20root:\x20query\x20'+w+'\x20does\x20not\x20return\x20Bool.\x20Only\x20queries\x20that\x20return\x20Bool\x20can\x20be\x20used\x20as\x20root.\x20Examples:\x20'+x+'...\x20Use\x20guard2file\x20to\x20see\x20all\x20Bool-returning\x20queries.','path':'/root/query'}]};}}}return{'success':!![],'data':i['data'],'errors':[]};}for(const y of i['error']['issues']){const z=formatZodPath(y['path']);let A,B;if(g?.['pointers'][z]){const D=g['pointers'][z];if(D['value'])A=D['value']['line'],B=D['value']['column'];else D['key']&&(A=D['key']['line'],B=D['key']['column']);}let C=y['message'];if(y['code']==='invalid_union'){const E=y;if(E['errors']){const F=E['errors']['map'](G=>G['issues']?.['map'](H=>H['message'])['join'](';\x20')||G['message'])['join']('\x20|\x20');C=C+'.\x20Alternatives:\x20'+F;}}b['push']({'message':C,'path':z,'line':A,'column':B});}return{'success':![],'errors':b};}export function formatGuardErrors(a){return a['map'](b=>{let c='Path:\x20'+b['path'];return b['line']!==undefined&&b['column']!==undefined&&(c+='\x20(line\x20'+b['line']+',\x20column\x20'+b['column']+')'),c+='\x0a\x20\x20Error:\x20'+b['message'],c;})['join']('\x0a\x0a');}export function validateGuardNode(a){const b=GuardNodeSchema['safeParse'](a);if(b['success'])return{'success':!![],'errors':[]};const c=b['error']['issues']['map'](d=>({'message':d['message'],'path':formatZodPath(d['path'])}));return{'success':![],'errors':c};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{NodeSchema}from'../call/machine.js';import{MachineNodeSchema,MachineNodePairSchema,MachineForwardSchema}from'../query/index.js';import{writeFileSync}from'fs';function detectFormat(a){const b=a['trim']();if(b['startsWith']('{')||b['startsWith']('['))return'json';return'markdown';}function extractJsonFromMarkdown(a){const b=/```(?:json)?\s*\n([\s\S]*?)```/g;let c,d=null;while((c=b['exec'](a))!==null){const e=c[0x1]['trim']();if(e['startsWith']('[')||e['startsWith']('{')){const f=a['substring'](0x0,c['index']),g=(f['match'](/\n/g)||[])['length']+0x1;d={'json':e,'lineOffset':g};}}return d;}function parseMarkdownToNodeData(a){const b=[],c=extractJsonFromMarkdown(a);if(c)try{const j=JSON['parse'](c['json']);return{'data':j,'errors':[]};}catch(k){return b['push']({'message':'Failed\x20to\x20parse\x20JSON\x20from\x20markdown:\x20'+k['message'],'path':'/'}),{'data':null,'errors':b};}const d={'op':'add'},f=[],g=a['match'](/(?:^|\n)#+\s*Operation[^\n]*\n+[-*]\s*op\s*:\s*(\w+)/i);g&&(d['op']=g[0x1]['toLowerCase']());const h=a['match'](/(?:^|\n)#+\s*Options[^\n]*\n+[-*]\s*bReplace\s*:\s*(true|false)/i);h&&(d['bReplace']=h[0x1]['toLowerCase']()==='true');const i=a['split'](/(?=^##\s*Node[:\s])/m);for(const l of i['slice'](0x1)){const m=l['match'](/^##\s*Node[:\s]+(.+?)(?:\n|$)/im);if(!m)continue;const n=m[0x1]['trim'](),o={'name':n,'pairs':[]},p=l['split'](/(?=^###\s*(?:Pair|Previous Node)[:\s])/m);for(const q of p['slice'](0x1)){const r=q['match'](/(?:^|\n)[-*]\s*prev_node\s*[:]\s*(.+?)(?:\n|$)/im)||q['match'](/^###\s*(?:Pair|Previous Node)[:\s]+(.+?)(?:\n|$)/im),s=q['match'](/(?:^|\n)[-*]\s*threshold\s*[:]\s*(\d+)/i);if(!r)continue;const t={'prev_node':r[0x1]['trim'](),'threshold':s?parseInt(s[0x1],0xa):0x0,'forwards':[]},u=q['match'](/\|[^\n]+\|/g);if(u&&u['length']>0x2)for(const w of u['slice'](0x2)){const x=w['split']('|')['filter'](y=>y['trim']())['map'](y=>y['trim']());if(x['length']>=0x2){const y={'name':x[0x0],'weight':parseInt(x[0x1],0xa)||0x0};x['length']>=0x3&&x[0x2]&&x[0x2]!=='-'&&(y['namedOperator']=x[0x2]),x['length']>=0x4&&x[0x3]&&x[0x3]!=='-'&&(y['permissionIndex']=parseInt(x[0x3],0xa)),x['length']>=0x5&&x[0x4]&&x[0x4]!=='-'&&(y['guard']=x[0x4]),t['forwards']['push'](y);}}const v=q['matchAll'](/(?:^|\n)[-*]\s*(?:forward)?\s*[:]?\s*\n?([\s\S]*?)(?=(?:\n[-*]\s*(?:forward|prev_node|threshold))|\n###|\n##|$)/gi);for(const z of v){const A=z[0x1],B=A['match'](/\s*name\s*[:]\s*(.+?)(?:\n|$)/im),C=A['match'](/\s*weight\s*[:]\s*(\d+)/i);if(B&&C){const D={'name':B[0x1]['trim'](),'weight':parseInt(C[0x1],0xa)},E=A['match'](/\s*namedOperator\s*[:]\s*(.+?)(?:\n|$)/im),F=A['match'](/\s*permissionIndex\s*[:]\s*(\d+)/i),G=A['match'](/\s*guard\s*[:]\s*(.+?)(?:\n|$)/im);E&&(D['namedOperator']=E[0x1]['trim']()),F&&(D['permissionIndex']=parseInt(F[0x1],0xa)),G&&(D['guard']=G[0x1]['trim']()),t['forwards']['push'](D);}}o['pairs']['push'](t);}f['push'](o);}return f['length']>0x0&&(d['nodes']=f),{'data':d,'errors':b};}function formatZodPath(a){return'/'+a['map'](b=>String(b)['replace'](/~/g,'~0')['replace'](/\//g,'~1'))['join']('/');}function parseJsonWithErrors(a){const b=[];try{const c=JSON['parse'](a);return{'data':c,'errors':[]};}catch(d){const f=d,g=f['message']['match'](/position\s+(\d+)/);let h=0x1,i=0x1;if(g){const j=parseInt(g[0x1],0xa),k=a['substring'](0x0,j)['split']('\x0a');h=k['length'],i=k[k['length']-0x1]['length']+0x1;}return b['push']({'message':'JSON\x20parse\x20error:\x20'+f['message'],'path':'/','line':h,'column':i}),{'data':null,'errors':b};}}function validateWithZod(a,b,c=''){const d=[],e=a['safeParse'](b);if(e['success'])return{'success':!![],'data':e['data'],'errors':[]};for(const f of e['error']['issues']){const g=c+formatZodPath(f['path']);d['push']({'message':f['message'],'path':g});}return{'success':![],'errors':d};}export function parseNodeFromText(a){const b=a['trim'](),c=detectFormat(b);let d
|
|
1
|
+
import{NodeSchema}from'../call/machine.js';import{MachineNodeSchema,MachineNodePairSchema,MachineForwardSchema}from'../query/index.js';import{writeFileSync}from'fs';function detectFormat(a){const b=a['trim']();if(b['startsWith']('{')||b['startsWith']('['))return'json';return'markdown';}function extractJsonFromMarkdown(a){const b=/```(?:json)?\s*\n([\s\S]*?)```/g;let c,d=null;while((c=b['exec'](a))!==null){const e=c[0x1]['trim']();if(e['startsWith']('[')||e['startsWith']('{')){const f=a['substring'](0x0,c['index']),g=(f['match'](/\n/g)||[])['length']+0x1;d={'json':e,'lineOffset':g};}}return d;}function parseMarkdownToNodeData(a){const b=[],c=extractJsonFromMarkdown(a);if(c)try{const j=JSON['parse'](c['json']);return{'data':j,'errors':[]};}catch(k){return b['push']({'message':'Failed\x20to\x20parse\x20JSON\x20from\x20markdown:\x20'+k['message'],'path':'/'}),{'data':null,'errors':b};}const d={'op':'add'},f=[],g=a['match'](/(?:^|\n)#+\s*Operation[^\n]*\n+[-*]\s*op\s*:\s*(\w+)/i);g&&(d['op']=g[0x1]['toLowerCase']());const h=a['match'](/(?:^|\n)#+\s*Options[^\n]*\n+[-*]\s*bReplace\s*:\s*(true|false)/i);h&&(d['bReplace']=h[0x1]['toLowerCase']()==='true');const i=a['split'](/(?=^##\s*Node[:\s])/m);for(const l of i['slice'](0x1)){const m=l['match'](/^##\s*Node[:\s]+(.+?)(?:\n|$)/im);if(!m)continue;const n=m[0x1]['trim'](),o={'name':n,'pairs':[]},p=l['split'](/(?=^###\s*(?:Pair|Previous Node)[:\s])/m);for(const q of p['slice'](0x1)){const r=q['match'](/(?:^|\n)[-*]\s*prev_node\s*[:]\s*(.+?)(?:\n|$)/im)||q['match'](/^###\s*(?:Pair|Previous Node)[:\s]+(.+?)(?:\n|$)/im),s=q['match'](/(?:^|\n)[-*]\s*threshold\s*[:]\s*(\d+)/i);if(!r)continue;const t={'prev_node':r[0x1]['trim'](),'threshold':s?parseInt(s[0x1],0xa):0x0,'forwards':[]},u=q['match'](/\|[^\n]+\|/g);if(u&&u['length']>0x2)for(const w of u['slice'](0x2)){const x=w['split']('|')['filter'](y=>y['trim']())['map'](y=>y['trim']());if(x['length']>=0x2){const y={'name':x[0x0],'weight':parseInt(x[0x1],0xa)||0x0};x['length']>=0x3&&x[0x2]&&x[0x2]!=='-'&&(y['namedOperator']=x[0x2]),x['length']>=0x4&&x[0x3]&&x[0x3]!=='-'&&(y['permissionIndex']=parseInt(x[0x3],0xa)),x['length']>=0x5&&x[0x4]&&x[0x4]!=='-'&&(y['guard']=x[0x4]),t['forwards']['push'](y);}}const v=q['matchAll'](/(?:^|\n)[-*]\s*(?:forward)?\s*[:]?\s*\n?([\s\S]*?)(?=(?:\n[-*]\s*(?:forward|prev_node|threshold))|\n###|\n##|$)/gi);for(const z of v){const A=z[0x1],B=A['match'](/\s*name\s*[:]\s*(.+?)(?:\n|$)/im),C=A['match'](/\s*weight\s*[:]\s*(\d+)/i);if(B&&C){const D={'name':B[0x1]['trim'](),'weight':parseInt(C[0x1],0xa)},E=A['match'](/\s*namedOperator\s*[:]\s*(.+?)(?:\n|$)/im),F=A['match'](/\s*permissionIndex\s*[:]\s*(\d+)/i),G=A['match'](/\s*guard\s*[:]\s*(.+?)(?:\n|$)/im);E&&(D['namedOperator']=E[0x1]['trim']()),F&&(D['permissionIndex']=parseInt(F[0x1],0xa)),G&&(D['guard']=G[0x1]['trim']()),t['forwards']['push'](D);}}o['pairs']['push'](t);}f['push'](o);}return f['length']>0x0&&(d['nodes']=f),{'data':d,'errors':b};}function formatZodPath(a){return'/'+a['map'](b=>String(b)['replace'](/~/g,'~0')['replace'](/\//g,'~1'))['join']('/');}function parseJsonWithErrors(a){const b=[];try{const c=JSON['parse'](a);return{'data':c,'errors':[]};}catch(d){const f=d,g=f['message']['match'](/position\s+(\d+)/);let h=0x1,i=0x1;if(g){const j=parseInt(g[0x1],0xa),k=a['substring'](0x0,j)['split']('\x0a');h=k['length'],i=k[k['length']-0x1]['length']+0x1;}return b['push']({'message':'JSON\x20parse\x20error:\x20'+f['message'],'path':'/','line':h,'column':i}),{'data':null,'errors':b};}}function validateWithZod(a,b,c=''){const d=[],e=a['safeParse'](b);if(e['success'])return{'success':!![],'data':e['data'],'errors':[]};for(const f of e['error']['issues']){const g=c+formatZodPath(f['path']);d['push']({'message':f['message'],'path':g});}return{'success':![],'errors':d};}export function parseNodeFromText(a){const b=a['trim'](),c=detectFormat(b);let d;if(c==='markdown'){const f=parseMarkdownToNodeData(b);if(f['errors']['length']>0x0)return{'success':![],'errors':f['errors']};d=f['data'];}else{const g=parseJsonWithErrors(b);if(g['errors']['length']>0x0)return{'success':![],'errors':g['errors']};d=g['data'];}const e=validateWithZod(NodeSchema,d);return{'success':e['success'],'data':e['data'],'errors':e['errors']};}export function parseMachineNodesFromText(a){const b=a['trim'](),c=detectFormat(b);let d,e=[];if(c==='markdown'){const h=parseMarkdownToNodeData(b);if(h['errors']['length']>0x0)return{'success':![],'errors':h['errors']};typeof h['data']==='object'&&h['data']!==null&&'nodes'in h['data']?d=h['data']['nodes']:d=h['data'];}else{const j=parseJsonWithErrors(b);if(j['errors']['length']>0x0)return{'success':![],'errors':j['errors']};d=j['data'];}if(!Array['isArray'](d)){if(typeof d==='object'&&d!==null&&'op'in d)return{'success':![],'errors':[{'message':'Expected\x20JSON\x20array\x20of\x20nodes\x20for\x20json_or_markdown\x20mode.\x20Use\x20schema\x20mode\x20for\x20operations\x20with\x20\x22op\x22\x20field.','path':'/'}]};return{'success':![],'errors':[{'message':'Expected\x20JSON\x20array\x20of\x20nodes','path':'/'}]};}const f=[];for(let k=0x0;k<d['length'];k++){const l=d[k],m=validateWithZod(MachineNodeSchema,l,'/'+k);m['success']&&m['data']?f['push'](m['data']):e['push'](...m['errors']);}if(e['length']>0x0)return{'success':![],'errors':e};const g=f['some'](n=>n['pairs']['some'](o=>o['prev_node']===''));if(!g)return{'success':![],'errors':[{'message':'Machine\x20has\x20no\x20entry\x20forward.\x20At\x20least\x20one\x20node\x20must\x20have\x20a\x20pair\x20with\x20prev_node=\x22\x22\x20(empty\x20string),\x20'+'which\x20defines\x20how\x20Progress\x20advances\x20from\x20the\x20initial\x20state\x20(current=\x22\x22)\x20to\x20the\x20first\x20node.\x20'+'Without\x20an\x20entry\x20forward,\x20the\x20workflow\x20will\x20be\x20permanently\x20stuck.\x20'+'Example:\x20{name:\x20\x22Subscribed\x22,\x20pairs:\x20[{prev_node:\x20\x22\x22,\x20forwards:\x20[{name:\x20\x22Subscribe\x22,\x20weight:\x201}]}]}','path':'/'}]};return{'success':!![],'data':f,'errors':[]};}export function formatNodeErrors(a){return a['map'](b=>{let c='Path:\x20'+b['path'];return b['line']!==undefined&&b['column']!==undefined&&(c+='\x20(line\x20'+b['line']+',\x20column\x20'+b['column']+')'),c+='\x0a\x20\x20Error:\x20'+b['message'],c;})['join']('\x0a\x0a');}export function validateMachineNode(a){return validateWithZod(MachineNodeSchema,a);}export function validateMachineNodePair(a){const b=MachineNodePairSchema['safeParse'](a);if(b['success'])return{'success':!![],'errors':[]};const c=b['error']['issues']['map'](d=>({'message':d['message'],'path':formatZodPath(d['path'])}));return{'success':![],'errors':c};}export function validateMachineForward(a){const b=MachineForwardSchema['safeParse'](a);if(b['success'])return{'success':!![],'errors':[]};const c=b['error']['issues']['map'](d=>({'message':d['message'],'path':formatZodPath(d['path'])}));return{'success':![],'errors':c};}export function machineNodesToJson(a,b={}){const {machineId:c,includeComments:includeComments=!![]}=b;let d='';return includeComments&&c&&(d+='//\x20Machine\x20ID:\x20'+c+'\x0a'),d+=JSON['stringify'](a,null,0x2),d;}export function machineNodesToMarkdown(a,b={}){const {machineName:c,machineAddress:d,machineId:e,includeComments:includeComments=!![]}=b;let f='#\x20Machine\x20Node\x20Definition\x0a\x0a';c&&(f+='**Machine:**\x20'+c+'\x0a\x0a');d&&(f+='**Address:**\x20'+d+'\x0a\x0a');e&&(f+='**ID:**\x20'+e+'\x0a\x0a');f+='**Total\x20Nodes:**\x20'+a['length']+'\x0a\x0a',f+='---\x0a\x0a';for(const g of a){f+='##\x20Node:\x20'+g['name']+'\x0a\x0a';includeComments&&(f+='<!--\x20Node\x20definition\x20with\x20pairs\x20and\x20forwards\x20-->\x0a\x0a');for(const h of g['pairs']){f+='###\x20Pair:\x20'+h['prev_node']+'\x0a\x0a',f+='-\x20**prev_node**:\x20'+h['prev_node']+'\x0a',f+='-\x20**threshold**:\x20'+h['threshold']+'\x0a\x0a';if(h['forwards']&&h['forwards']['length']>0x0){f+='####\x20Forwards\x0a\x0a',f+='|\x20name\x20|\x20weight\x20|\x20namedOperator\x20|\x20permissionIndex\x20|\x20guard\x20|\x0a',f+='|------|--------|---------------|-----------------|-------|\x0a';for(const i of h['forwards']){const j=i['namedOperator']||'',k=i['permissionIndex']?.['toString']()||'',l=i['guard'],m=typeof l==='string'?l:l?.['guard']||'';f+='|\x20'+i['name']+'\x20|\x20'+i['weight']+'\x20|\x20'+j+'\x20|\x20'+k+'\x20|\x20'+m+'\x20|\x0a';}f+='\x0a';}}f+='---\x0a\x0a';}return f+='##\x20JSON\x20Definition\x0a\x0a',includeComments&&(f+='<!--\x20You\x20can\x20also\x20use\x20the\x20JSON\x20format\x20below\x20-->\x0a\x0a'),f+='```json\x0a',includeComments&&e&&(f+='//\x20Machine\x20ID:\x20'+e+'\x0a'),f+=JSON['stringify'](a,null,0x2),f+='\x0a```\x0a',f;}export function saveMachineNodesToFile(a,b,c='json',d={}){const e=c==='json'?machineNodesToJson(a,d):machineNodesToMarkdown(a,d);writeFileSync(b,e,'utf-8');}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare function getSkillsHintForOnchain(operationType: string, data?: unknown): string | undefined;
|
|
2
2
|
export declare function getSkillsHintForProject(action: string): string | undefined;
|
|
3
|
+
export declare function getSkillsHintForEvaluation(action: string): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const SKILLS_BY_OPERATION_TYPE={'service':['wowok-provider'
|
|
1
|
+
const SKILLS_BY_OPERATION_TYPE={'service':['wowok-provider'],'machine':['wowok-machine'],'guard':[],'arbitration':['wowok-arbitrator'],'allocation':['wowok-provider'],'permission':[],'treasury':['wowok-provider'],'reward':['wowok-provider'],'repository':['wowok-provider'],'demand':['wowok-provider','wowok-supplier'],'contact':['wowok-messenger'],'order':['wowok-order'],'progress':['wowok-collaborator'],'personal':[],'payment':[],'proof':[]},SKILLS_BY_PROJECT_ACTION={'create_project':['wowok-onboard','wowok-planner'],'create_project_from_onchain':['wowok-onboard'],'evaluate_project':['wowok-auditor'],'pre_evaluate_check':['wowok-auditor'],'verify_deployment':['wowok-auditor'],'generate_deployment_doc':['wowok-planner'],'migrate_to_mainnet':['wowok-onboard'],'migrate_network':['wowok-onboard'],'clone_project_to_network':['wowok-onboard'],'build_graph':['wowok-planner'],'list_projects':[],'get_project_detail':[],'update_project':[],'add_object':[],'remove_object':[],'update_object':[],'create_version':[],'get_graph':[],'save_evaluation':[],'compare_projects':[],'refresh_objects':[],'get_object_diff':[],'delete_project':[],'assemble_context':[],'get_machine_graph':['wowok-machine'],'get_guard_graph':[],'plan_object_edit':['wowok-machine','wowok-auditor'],'apply_object_edit':[],'patch_machine_nodes':['wowok-machine'],'patch_guard_tree':[],'participation_radar':['wowok-order','wowok-supplier','wowok-collaborator','wowok-messenger']};export function getSkillsHintForOnchain(a,b){const c=SKILLS_BY_OPERATION_TYPE[a];if(!c||c['length']===0x0)return undefined;const d=b?.['publish']===!![],e=!!b?.['order_allocators'],f=d||e,g=f?'SKILLS\x20RECOMMENDED\x20(complex\x20operation\x20—\x20skills\x20provide\x20business-semantic\x20guidance):':'SKILLS\x20RECOMMENDED\x20(optional\x20—\x20skills\x20provide\x20deeper\x20guidance):';return g+'\x20'+c['join'](',\x20')+'.\x20'+'skills\x20focus\x20on\x20business\x20intent\x20→\x20object\x20parameter\x20translation;\x20'+'MCP\x20handles\x20object\x20structure\x20and\x20on-chain\x20execution.\x20'+'If\x20skills\x20are\x20installed,\x20consult\x20them\x20BEFORE\x20this\x20call\x20for\x20design\x20rationale.\x20'+'If\x20not\x20installed,\x20MCP\x20executes\x20independently\x20—\x20this\x20hint\x20is\x20informational\x20only.';}export function getSkillsHintForProject(a){const b=SKILLS_BY_PROJECT_ACTION[a];if(!b||b['length']===0x0)return undefined;return'SKILLS\x20RECOMMENDED\x20(optional\x20—\x20skills\x20provide\x20deeper\x20guidance):\x20'+b['join'](',\x20')+'.\x20'+'skills\x20focus\x20on\x20business\x20intent\x20→\x20object\x20parameter\x20translation;\x20'+'MCP\x20handles\x20project\x20structure\x20and\x20evaluation.\x20'+'If\x20skills\x20are\x20installed,\x20consult\x20them\x20for\x20design/planning\x20rationale.\x20'+'If\x20not\x20installed,\x20MCP\x20executes\x20independently\x20—\x20this\x20hint\x20is\x20informational\x20only.';}const SKILLS_BY_EVALUATION_ACTION={'match_discover':['wowok-market'],'discover_services':['wowok-market'],'discover_demands':['wowok-market'],'arbitration_score':['wowok-market','wowok-arbitrator'],'account_events':['wowok-market'],'market_metrics':['wowok-market'],'anti_cheat':['wowok-market'],'market_operations':['wowok-market']};export function getSkillsHintForEvaluation(a){const b=SKILLS_BY_EVALUATION_ACTION[a];if(!b||b['length']===0x0)return undefined;return'SKILLS\x20RECOMMENDED\x20(optional\x20—\x20skills\x20provide\x20deeper\x20guidance):\x20'+b['join'](',\x20')+'.\x20'+'skills\x20focus\x20on\x20market/operational\x20intent\x20→\x20action\x20parameters;\x20'+'MCP\x20handles\x20enumeration,\x20scoring\x20and\x20on-chain\x20execution.\x20'+'If\x20not\x20installed,\x20MCP\x20executes\x20independently\x20—\x20this\x20hint\x20is\x20informational\x20only.';}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const WorkflowOperateOpSchema: z.ZodEnum<{
|
|
3
|
+
next: "next";
|
|
4
|
+
hold: "hold";
|
|
5
|
+
unhold: "unhold";
|
|
6
|
+
adminUnhold: "adminUnhold";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const WorkflowAccountSchema: z.ZodObject<{
|
|
9
|
+
address: z.ZodString;
|
|
10
|
+
name: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const WorkflowForwardViewSchema: z.ZodObject<{
|
|
13
|
+
next_node: z.ZodString;
|
|
14
|
+
forward: z.ZodString;
|
|
15
|
+
weight: z.ZodNumber;
|
|
16
|
+
threshold: z.ZodNumber;
|
|
17
|
+
guard: z.ZodOptional<z.ZodString>;
|
|
18
|
+
operator_kind: z.ZodEnum<{
|
|
19
|
+
order_holder: "order_holder";
|
|
20
|
+
permission_index: "permission_index";
|
|
21
|
+
named_operator: "named_operator";
|
|
22
|
+
}>;
|
|
23
|
+
permission_index: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
named_operator: z.ZodOptional<z.ZodString>;
|
|
25
|
+
executable_accounts: z.ZodArray<z.ZodObject<{
|
|
26
|
+
address: z.ZodString;
|
|
27
|
+
name: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, z.core.$strip>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export declare const WorkflowTaskSchema: z.ZodObject<{
|
|
31
|
+
progress: z.ZodString;
|
|
32
|
+
current: z.ZodString;
|
|
33
|
+
machine: z.ZodString;
|
|
34
|
+
task: z.ZodNullable<z.ZodString>;
|
|
35
|
+
service: z.ZodOptional<z.ZodString>;
|
|
36
|
+
options: z.ZodArray<z.ZodObject<{
|
|
37
|
+
next_node: z.ZodString;
|
|
38
|
+
forward: z.ZodString;
|
|
39
|
+
weight: z.ZodNumber;
|
|
40
|
+
threshold: z.ZodNumber;
|
|
41
|
+
guard: z.ZodOptional<z.ZodString>;
|
|
42
|
+
operator_kind: z.ZodEnum<{
|
|
43
|
+
order_holder: "order_holder";
|
|
44
|
+
permission_index: "permission_index";
|
|
45
|
+
named_operator: "named_operator";
|
|
46
|
+
}>;
|
|
47
|
+
permission_index: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
named_operator: z.ZodOptional<z.ZodString>;
|
|
49
|
+
executable_accounts: z.ZodArray<z.ZodObject<{
|
|
50
|
+
address: z.ZodString;
|
|
51
|
+
name: z.ZodOptional<z.ZodString>;
|
|
52
|
+
}, z.core.$strip>>;
|
|
53
|
+
}, z.core.$strip>>;
|
|
54
|
+
terminal: z.ZodBoolean;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export declare const WorkflowOperationInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
57
|
+
action: z.ZodLiteral<"list">;
|
|
58
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
network: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
testnet: import("@wowok/wowok").ENTRYPOINT.Testnet;
|
|
61
|
+
localnet: import("@wowok/wowok").ENTRYPOINT.Localnet;
|
|
62
|
+
mainnet: import("@wowok/wowok").ENTRYPOINT.Mainnet;
|
|
63
|
+
}>>;
|
|
64
|
+
no_cache: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
66
|
+
action: z.ZodLiteral<"operate">;
|
|
67
|
+
progress: z.ZodString;
|
|
68
|
+
account: z.ZodOptional<z.ZodString>;
|
|
69
|
+
operate: z.ZodObject<{
|
|
70
|
+
operation: z.ZodObject<{
|
|
71
|
+
next_node_name: z.ZodString;
|
|
72
|
+
forward: z.ZodString;
|
|
73
|
+
}, z.core.$strict>;
|
|
74
|
+
op: z.ZodEnum<{
|
|
75
|
+
next: "next";
|
|
76
|
+
hold: "hold";
|
|
77
|
+
unhold: "unhold";
|
|
78
|
+
adminUnhold: "adminUnhold";
|
|
79
|
+
}>;
|
|
80
|
+
message: z.ZodOptional<z.ZodString>;
|
|
81
|
+
}, z.core.$strict>;
|
|
82
|
+
network: z.ZodOptional<z.ZodEnum<{
|
|
83
|
+
testnet: import("@wowok/wowok").ENTRYPOINT.Testnet;
|
|
84
|
+
localnet: import("@wowok/wowok").ENTRYPOINT.Localnet;
|
|
85
|
+
mainnet: import("@wowok/wowok").ENTRYPOINT.Mainnet;
|
|
86
|
+
}>>;
|
|
87
|
+
no_cache: z.ZodOptional<z.ZodBoolean>;
|
|
88
|
+
}, z.core.$strip>], "action">;
|
|
89
|
+
export declare const WorkflowOperationResultSchema: z.ZodObject<{
|
|
90
|
+
action: z.ZodEnum<{
|
|
91
|
+
list: "list";
|
|
92
|
+
operate: "operate";
|
|
93
|
+
}>;
|
|
94
|
+
tasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
95
|
+
progress: z.ZodString;
|
|
96
|
+
current: z.ZodString;
|
|
97
|
+
machine: z.ZodString;
|
|
98
|
+
task: z.ZodNullable<z.ZodString>;
|
|
99
|
+
service: z.ZodOptional<z.ZodString>;
|
|
100
|
+
options: z.ZodArray<z.ZodObject<{
|
|
101
|
+
next_node: z.ZodString;
|
|
102
|
+
forward: z.ZodString;
|
|
103
|
+
weight: z.ZodNumber;
|
|
104
|
+
threshold: z.ZodNumber;
|
|
105
|
+
guard: z.ZodOptional<z.ZodString>;
|
|
106
|
+
operator_kind: z.ZodEnum<{
|
|
107
|
+
order_holder: "order_holder";
|
|
108
|
+
permission_index: "permission_index";
|
|
109
|
+
named_operator: "named_operator";
|
|
110
|
+
}>;
|
|
111
|
+
permission_index: z.ZodOptional<z.ZodNumber>;
|
|
112
|
+
named_operator: z.ZodOptional<z.ZodString>;
|
|
113
|
+
executable_accounts: z.ZodArray<z.ZodObject<{
|
|
114
|
+
address: z.ZodString;
|
|
115
|
+
name: z.ZodOptional<z.ZodString>;
|
|
116
|
+
}, z.core.$strip>>;
|
|
117
|
+
}, z.core.$strip>>;
|
|
118
|
+
terminal: z.ZodBoolean;
|
|
119
|
+
}, z.core.$strip>>>;
|
|
120
|
+
operate: z.ZodOptional<z.ZodUnknown>;
|
|
121
|
+
note: z.ZodOptional<z.ZodString>;
|
|
122
|
+
}, z.core.$strip>;
|
|
123
|
+
export declare const WorkflowOperationOutputSchema: z.ZodObject<{
|
|
124
|
+
result: z.ZodObject<{
|
|
125
|
+
action: z.ZodEnum<{
|
|
126
|
+
list: "list";
|
|
127
|
+
operate: "operate";
|
|
128
|
+
}>;
|
|
129
|
+
tasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
130
|
+
progress: z.ZodString;
|
|
131
|
+
current: z.ZodString;
|
|
132
|
+
machine: z.ZodString;
|
|
133
|
+
task: z.ZodNullable<z.ZodString>;
|
|
134
|
+
service: z.ZodOptional<z.ZodString>;
|
|
135
|
+
options: z.ZodArray<z.ZodObject<{
|
|
136
|
+
next_node: z.ZodString;
|
|
137
|
+
forward: z.ZodString;
|
|
138
|
+
weight: z.ZodNumber;
|
|
139
|
+
threshold: z.ZodNumber;
|
|
140
|
+
guard: z.ZodOptional<z.ZodString>;
|
|
141
|
+
operator_kind: z.ZodEnum<{
|
|
142
|
+
order_holder: "order_holder";
|
|
143
|
+
permission_index: "permission_index";
|
|
144
|
+
named_operator: "named_operator";
|
|
145
|
+
}>;
|
|
146
|
+
permission_index: z.ZodOptional<z.ZodNumber>;
|
|
147
|
+
named_operator: z.ZodOptional<z.ZodString>;
|
|
148
|
+
executable_accounts: z.ZodArray<z.ZodObject<{
|
|
149
|
+
address: z.ZodString;
|
|
150
|
+
name: z.ZodOptional<z.ZodString>;
|
|
151
|
+
}, z.core.$strip>>;
|
|
152
|
+
}, z.core.$strip>>;
|
|
153
|
+
terminal: z.ZodBoolean;
|
|
154
|
+
}, z.core.$strip>>>;
|
|
155
|
+
operate: z.ZodOptional<z.ZodUnknown>;
|
|
156
|
+
note: z.ZodOptional<z.ZodString>;
|
|
157
|
+
}, z.core.$strip>;
|
|
158
|
+
}, z.core.$strip>;
|
|
159
|
+
export type WorkflowOperationInput = z.infer<typeof WorkflowOperationInputSchema>;
|
|
160
|
+
export type WorkflowTask = z.infer<typeof WorkflowTaskSchema>;
|
|
161
|
+
export type WorkflowForwardView = z.infer<typeof WorkflowForwardViewSchema>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z}from'zod';import{EntrypointSchema,NameOrAddressSchema}from'../common/index.js';export const WorkflowOperateOpSchema=z['enum'](['next','hold','unhold','adminUnhold'])['describe']('Forward\x20operation:\x20\x27next\x27\x20=\x20accomplish\x20the\x20forward;\x20\x27hold\x27\x20=\x20block\x20the\x20forward;\x20'+'\x27unhold\x27\x20=\x20release\x20own\x20hold;\x20\x27adminUnhold\x27\x20=\x20force-release\x20via\x20permission\x20224.');export const WorkflowAccountSchema=z['object']({'address':z['string']()['describe']('Local\x20account\x20address'),'name':z['string']()['optional']()['describe']('Local\x20account\x20name\x20(if\x20any)')})['describe']('A\x20local\x20account\x20that\x20can\x20execute\x20a\x20forward');export const WorkflowForwardViewSchema=z['object']({'next_node':z['string']()['describe']('Target\x20node\x20this\x20forward\x20advances\x20INTO'),'forward':z['string']()['describe']('Forward\x20(operation)\x20name'),'weight':z['number']()['describe']('Forward\x20weight\x20contributed\x20toward\x20the\x20pair\x20threshold'),'threshold':z['number']()['describe']('Pair\x20threshold\x20the\x20forward\x20contributes\x20to'),'guard':z['string']()['optional']()['describe']('Guard\x20bound\x20to\x20this\x20forward\x20—\x20must\x20be\x20verified\x20(passport)\x20before\x20the\x20transition'),'operator_kind':z['enum'](['order_holder','named_operator','permission_index'])['describe']('How\x20this\x20forward\x27s\x20operator\x20is\x20resolved'),'permission_index':z['number']()['optional']()['describe']('Permission\x20index\x20when\x20operator_kind\x20is\x20\x27permission_index\x27'),'named_operator':z['string']()['optional']()['describe']('NamedOperator\x20namespace\x20when\x20operator_kind\x20is\x20\x27named_operator\x27'),'executable_accounts':z['array'](WorkflowAccountSchema)['describe']('LOCAL\x20accounts\x20that\x20can\x20execute\x20this\x20forward\x20(may\x20be\x20empty\x20—\x20then\x20no\x20local\x20account\x20is\x20authorized)')})['describe']('A\x20reachable\x20forward\x20with\x20its\x20permission\x20+\x20guard\x20+\x20executable\x20local\x20accounts');export const WorkflowTaskSchema=z['object']({'progress':z['string']()['describe']('Progress\x20object\x20address'),'current':z['string']()['describe']('Current\x20node\x20of\x20the\x20Progress\x20(\x27\x27\x20=\x20initial)'),'machine':z['string']()['describe']('Machine\x20object\x20address'),'task':z['string']()['nullable']()['describe']('Bound\x20task\x20(Order)\x20address,\x20or\x20null'),'service':z['string']()['optional']()['describe']('Service\x20address\x20(resolved\x20via\x20the\x20bound\x20Order,\x20if\x20any)'),'options':z['array'](WorkflowForwardViewSchema)['describe']('ALL\x20reachable\x20next-node\x20forwards\x20with\x20permission\x20+\x20guard\x20+\x20executable\x20accounts'),'terminal':z['boolean']()['describe']('True\x20when\x20the\x20current\x20node\x20has\x20no\x20outgoing\x20forwards\x20(workflow\x20is\x20stuck\x20or\x20finished)')})['describe']('An\x20active\x20progress\x20object\x20that\x20at\x20least\x20one\x20local\x20account\x20can\x20act\x20on');export const WorkflowOperationInputSchema=z['discriminatedUnion']('action',[z['object']({'action':z['literal']('list'),'limit':z['number']()['int']()['min'](0x1)['max'](0x64)['optional']()['describe']('Max\x20number\x20of\x20active\x20progress\x20tasks\x20to\x20return\x20(default\x2050)'),'network':EntrypointSchema['optional'](),'no_cache':z['boolean']()['optional']()}),z['object']({'action':z['literal']('operate'),'progress':NameOrAddressSchema['describe']('Progress\x20object\x20(name\x20or\x20address)\x20to\x20operate\x20on'),'account':z['string']()['optional']()['describe']('Signing\x20account\x20(name\x20or\x20address).\x20Defaults\x20to\x20the\x20first\x20executable\x20local\x20account.'),'operate':z['object']({'operation':z['object']({'next_node_name':z['string']()['describe']('Target\x20node\x20name'),'forward':z['string']()['describe']('Forward\x20name')})['strict'](),'op':WorkflowOperateOpSchema,'message':z['string']()['optional']()['describe']('Optional\x20human-readable\x20message\x20recorded\x20on-chain')})['strict'](),'network':EntrypointSchema['optional'](),'no_cache':z['boolean']()['optional']()})])['describe']('workflow_operation\x20input.\x20action=\x27list\x27\x20enumerates\x20local-account\x20actionable\x20progress;\x20'+'action=\x27operate\x27\x20advances/holds/unholds\x20a\x20forward\x20as\x20a\x20chosen\x20local\x20account.');export const WorkflowOperationResultSchema=z['object']({'action':z['enum'](['list','operate']),'tasks':z['array'](WorkflowTaskSchema)['optional']()['describe']('Present\x20for\x20action=\x27list\x27'),'operate':z['unknown']()['optional']()['describe']('Present\x20for\x20action=\x27operate\x27\x20(the\x20underlying\x20progress\x20operation\x20result)'),'note':z['string']()['optional']()})['describe']('workflow_operation\x20result');export const WorkflowOperationOutputSchema=z['object']({'result':WorkflowOperationResultSchema})['describe']('workflow_operation\x20output\x20envelope');
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const WorkspaceOperationInputSchema: z.ZodObject<{
|
|
3
|
+
action: z.ZodEnum<{
|
|
4
|
+
rename: "rename";
|
|
5
|
+
list: "list";
|
|
6
|
+
read: "read";
|
|
7
|
+
delete: "delete";
|
|
8
|
+
resolve: "resolve";
|
|
9
|
+
create_file: "create_file";
|
|
10
|
+
create_dir: "create_dir";
|
|
11
|
+
copy: "copy";
|
|
12
|
+
move: "move";
|
|
13
|
+
write: "write";
|
|
14
|
+
}>;
|
|
15
|
+
path: z.ZodOptional<z.ZodString>;
|
|
16
|
+
content: z.ZodOptional<z.ZodString>;
|
|
17
|
+
from: z.ZodOptional<z.ZodString>;
|
|
18
|
+
to: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}, z.core.$strict>;
|
|
20
|
+
export declare const WorkspaceOperationOutputSchema: z.ZodObject<{
|
|
21
|
+
result: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
22
|
+
action: z.ZodLiteral<"resolve">;
|
|
23
|
+
dir: z.ZodString;
|
|
24
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
25
|
+
action: z.ZodLiteral<"list">;
|
|
26
|
+
dir: z.ZodString;
|
|
27
|
+
files: z.ZodArray<z.ZodObject<{
|
|
28
|
+
path: z.ZodString;
|
|
29
|
+
is_dir: z.ZodBoolean;
|
|
30
|
+
size: z.ZodNumber;
|
|
31
|
+
mtime: z.ZodNumber;
|
|
32
|
+
}, z.core.$strip>>;
|
|
33
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
34
|
+
action: z.ZodLiteral<"read">;
|
|
35
|
+
path: z.ZodString;
|
|
36
|
+
content: z.ZodString;
|
|
37
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
38
|
+
action: z.ZodLiteral<"write">;
|
|
39
|
+
path: z.ZodString;
|
|
40
|
+
ok: z.ZodBoolean;
|
|
41
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
42
|
+
action: z.ZodLiteral<"delete">;
|
|
43
|
+
path: z.ZodString;
|
|
44
|
+
ok: z.ZodBoolean;
|
|
45
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
46
|
+
action: z.ZodLiteral<"create_file">;
|
|
47
|
+
path: z.ZodString;
|
|
48
|
+
ok: z.ZodBoolean;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
action: z.ZodLiteral<"create_dir">;
|
|
51
|
+
path: z.ZodString;
|
|
52
|
+
ok: z.ZodBoolean;
|
|
53
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
54
|
+
action: z.ZodLiteral<"copy">;
|
|
55
|
+
from: z.ZodString;
|
|
56
|
+
to: z.ZodString;
|
|
57
|
+
ok: z.ZodBoolean;
|
|
58
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
59
|
+
action: z.ZodLiteral<"move">;
|
|
60
|
+
from: z.ZodString;
|
|
61
|
+
to: z.ZodString;
|
|
62
|
+
ok: z.ZodBoolean;
|
|
63
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
64
|
+
action: z.ZodLiteral<"rename">;
|
|
65
|
+
from: z.ZodString;
|
|
66
|
+
to: z.ZodString;
|
|
67
|
+
ok: z.ZodBoolean;
|
|
68
|
+
}, z.core.$strip>], "action">;
|
|
69
|
+
}, z.core.$strict>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z}from'zod';export const WorkspaceOperationInputSchema=z['object']({'action':z['enum'](['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename'])['describe']('Action:\x20\x27resolve\x27\x20=\x20return\x20the\x20workspace\x20root\x20directory;\x20\x27list\x27\x20=\x20list\x20files;\x20'+'\x27read\x27\x20=\x20read\x20a\x20file\x20(path\x20required);\x20\x27write\x27\x20=\x20write/overwrite\x20a\x20file\x20'+'(path\x20+\x20content\x20required);\x20\x27delete\x27\x20=\x20delete\x20a\x20file\x20or\x20directory\x20(path\x20required).\x20'+'\x27create_file\x27\x20=\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x20'+'\x27create_dir\x27\x20=\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x20'+'\x27copy\x27\x20=\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x20'+'\x27move\x27\x20/\x20\x27rename\x27\x20=\x20move\x20or\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).'),'path':z['string']()['optional']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root\x20(required\x20for\x20read/write/delete/create_file/create_dir).'),'content':z['string']()['optional']()['describe']('File\x20content\x20(required\x20for\x20write;\x20optional\x20for\x20create_file).'),'from':z['string']()['optional']()['describe']('Source\x20path\x20relative\x20to\x20root\x20(required\x20for\x20copy/move/rename).'),'to':z['string']()['optional']()['describe']('Destination\x20path\x20relative\x20to\x20root\x20(required\x20for\x20copy/move/rename).')})['strict']();export const WorkspaceOperationOutputSchema=z['object']({'result':z['discriminatedUnion']('action',[z['object']({'action':z['literal']('resolve'),'dir':z['string']()['describe']('Absolute\x20workspace\x20root\x20directory.')}),z['object']({'action':z['literal']('list'),'dir':z['string']()['describe']('Absolute\x20workspace\x20root\x20directory.'),'files':z['array'](z['object']({'path':z['string']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root.'),'is_dir':z['boolean'](),'size':z['number']()['describe']('File\x20size\x20in\x20bytes\x20(0\x20for\x20directories).'),'mtime':z['number']()['describe']('Last-modified\x20time\x20(epoch\x20ms).')}))['describe']('Files\x20under\x20the\x20workspace\x20root.')}),z['object']({'action':z['literal']('read'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20read\x20file.'),'content':z['string']()['describe']('File\x20content\x20(text).')}),z['object']({'action':z['literal']('write'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20written\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('delete'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20deleted\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('create_file'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20created\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('create_dir'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20created\x20directory.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('copy'),'from':z['string']()['describe']('Absolute\x20source\x20path.'),'to':z['string']()['describe']('Absolute\x20destination\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('move'),'from':z['string']()['describe']('Absolute\x20source\x20path.'),'to':z['string']()['describe']('Absolute\x20destination\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('rename'),'from':z['string']()['describe']('Absolute\x20old\x20path.'),'to':z['string']()['describe']('Absolute\x20new\x20path.'),'ok':z['boolean']()})])})['strict']();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readFileSync,existsSync,writeFileSync,mkdirSync,readdirSync}from'fs';import{resolve,join,dirname}from'path';import{fileURLToPath}from'url';import{TOOLS_REFERENCE,getToolReference,searchToolReference,getToolSequence}from'../knowledge/tools-reference.js';import{GUARD_DESIGN_PATTERNS,getGuardDesignPattern,GUARD_DESIGN_PATTERNS_VERSION}from'../knowledge/guard-design-patterns.js';import{OBJECT_REUSE_RULES,CREATE_VS_MODIFY_PATTERN,IMMUTABILITY_RULES,OPERATION_TYPE_CLASSIFICATION,OPERATION_CLASS_META,NAMING_CONVENTIONS,SAFETY_RULES_VERSION}from'../knowledge/safety-rules.js';import{listTemplates as a295a,getTemplateDetail,instantiateTemplate,getTemplateCounts,TEMPLATE_OBJECT_TYPES}from'../knowledge/template-registry.js';const __filename=fileURLToPath(import.meta.url),__dirname=fileURLToPath(new URL('.',import.meta.url)),SCHEMAS_DIR=resolve(__dirname,'../../dist/schemas'),GUARD_TEMPLATES_PATH_SCRIPTS=resolve(__dirname,'../../scripts/guard-templates.json'),GUARD_TEMPLATES_PATH_DIST=resolve(__dirname,'../../dist/schemas/guard-templates.json'),GUARD_TEMPLATES_PATH=existsSync(GUARD_TEMPLATES_PATH_SCRIPTS)?GUARD_TEMPLATES_PATH_SCRIPTS:GUARD_TEMPLATES_PATH_DIST,EXAMPLES_DIR_SCRIPTS=resolve(__dirname,'../../scripts/examples'),EXAMPLES_DIR_DIST=resolve(__dirname,'../examples');export const EXAMPLES_DIR=existsSync(EXAMPLES_DIR_SCRIPTS)?EXAMPLES_DIR_SCRIPTS:EXAMPLES_DIR_DIST;const WORKSPACE_TMP_DIR=resolve(process['cwd'](),'.trae','tmp');export function areSchemasAvailable(){return existsSync(SCHEMAS_DIR)&&existsSync(join(SCHEMAS_DIR,'index.json'));}export function getSchemaIndex(){try{const a=join(SCHEMAS_DIR,'index.json');if(!existsSync(a))return null;const b=readFileSync(a,'utf-8');return JSON['parse'](b);}catch{return null;}}export function listSchemas(){const a=getSchemaIndex();if(!a)return[];return[...a['tools']||[],...a['operations']||[]];}export function getSchema(a){try{let b=join(SCHEMAS_DIR,a+'.schema.json');!existsSync(b)&&(b=join(SCHEMAS_DIR,a+'.json'));if(!existsSync(b))return null;const c=readFileSync(b,'utf-8'),d=JSON['parse'](c);return resolveSchemaRefs(d);}catch{return null;}}export function getOutputSchema(a){try{const b=join(SCHEMAS_DIR,a+'.output.json');if(!existsSync(b))return null;const c=readFileSync(b,'utf-8'),d=JSON['parse'](c);return resolveSchemaRefs(d);}catch{return null;}}export function getGuardTemplates(a){try{if(!existsSync(GUARD_TEMPLATES_PATH))return null;const b=readFileSync(GUARD_TEMPLATES_PATH,'utf-8'),c=JSON['parse'](b);if(!a)return{'version':c['version'],'description':c['description'],'templates':(c['templates']||[])['map'](e=>({'name':e['name'],'title':e['title'],'description':e['description'],'use_case':e['use_case']})),'query_reference':c['query_reference'],'node_return_types':c['node_return_types']};const d=(c['templates']||[])['find'](e=>e['name']===a);if(!d)return null;return d;}catch{return null;}}export function searchExamples(a){if(!existsSync(EXAMPLES_DIR))return[];let b;try{b=readdirSync(EXAMPLES_DIR);}catch{return[];}const c=a['toLowerCase']()['trim']();if(!c)return[];const d=[];for(const e of b){if(!e['endsWith']('.json'))continue;const f=join(EXAMPLES_DIR,e);try{const g=readFileSync(f,'utf-8'),h=JSON['parse'](g),i=String(h['title']??''),j=String(h['description']??''),k=Array['isArray'](h['tags'])?h['tags']['map'](o=>String(o)):[],l=String(h['operation_type']??''),m=String(h['industry']??''),n=[];i['toLowerCase']()['includes'](c)&&n['push']('title'),j['toLowerCase']()['includes'](c)&&n['push']('description'),k['some'](o=>o['toLowerCase']()===c)&&n['push']('tags'),l&&l['toLowerCase']()===c&&n['push']('operation_type'),m&&m['toLowerCase']()===c&&n['push']('industry'),n['length']>0x0&&d['push']({'file':e,'title':i,'description':j,'tags':k,'industry':m,'operation_type':l,'verified':h['verified']===!![],'score':n['length'],'matched_fields':n});}catch{continue;}}return d['sort']((o,p)=>{if(p['score']!==o['score'])return p['score']-o['score'];return o['file']['localeCompare'](p['file']);}),d;}export function getSchemaField(a,b){const c=getSchema(a);if(!c)return null;const d=b['split']('.')['filter'](Boolean);let e=c;for(const f of d){if(!e||typeof e!=='object')return null;if(e['properties']&&f in e['properties']){e=e['properties'][f];continue;}if(e['items']&&typeof e['items']==='object'){if(/^\d+$/['test'](f)){e=e['items'];continue;}if(e['items']['properties']&&f in e['items']['properties']){e=e['items']['properties'][f];continue;}}if(Array['isArray'](e['oneOf'])||Array['isArray'](e['anyOf'])){const g=e['oneOf']??e['anyOf'];for(const h of g){if(h&&typeof h==='object'&&h['properties']&&f in h['properties']){e=h['properties'][f];break;}}continue;}if(f in e){e=e[f];continue;}return null;}return e;}function resolveSchemaRefs(a,b=new Set()){if(!a||typeof a!=='object')return a;if(Array['isArray'](a))return a['map'](d=>resolveSchemaRefs(d,b));const c={};for(const [d,e]of Object['entries'](a)){if(d==='$ref'&&typeof e==='string'){if(e['startsWith']('#'))c[d]=e;else{const f=loadRefSchema(e,b);f&&Object['assign'](c,resolveSchemaRefs(f,b));}}else typeof e==='object'?c[d]=resolveSchemaRefs(e,b):c[d]=e;}return c;}function loadRefSchema(a,b){if(a['startsWith']('#'))return null;if(b['has'](a))return{'description':'Circular\x20reference\x20to\x20'+a};b['add'](a);try{const c=join(SCHEMAS_DIR,a);if(!existsSync(c))return null;const d=readFileSync(c,'utf-8');return JSON['parse'](d);}catch{return null;}}export function searchSchemas(a){const b=listSchemas(),c=a['toLowerCase']();return b['filter'](d=>{const e=d['name']['toLowerCase']()['includes'](c),f=d['title']?.['toLowerCase']()['includes'](c),g=d['description']?.['toLowerCase']()['includes'](c);return e||f||g;});}export function listOperations(){const a=getSchemaIndex();if(!a)return[];return(a['operations']||[])['filter'](b=>b['name']['startsWith']('onchain_operations_'));}function writeResponseToFile(a,b){try{let c;if(b)c=resolve(process['cwd'](),b);else{!existsSync(WORKSPACE_TMP_DIR)&&mkdirSync(WORKSPACE_TMP_DIR,{'recursive':!![]});const g=Date['now']();c=join(WORKSPACE_TMP_DIR,'schema-'+g+'.json');}const d=dirname(c);!existsSync(d)&&mkdirSync(d,{'recursive':!![]});const f=typeof a==='string'?a:JSON['stringify'](a,null,0x2);return writeFileSync(c,f,'utf-8'),c;}catch(h){return null;}}export function processSchemaQuery(a){const {action:b,name:c,query:d,field_path:f,template:g,output_file:h,object_type:i,params:j}=a;if(b==='get_guard_templates'){const k=getGuardTemplates(g);if(!k)return{'success':![],'action':b,'data':null,'message':g?'Guard\x20template\x20\x27'+g+'\x27\x20not\x20found.\x20Omit\x20\x27template\x27\x20to\x20list\x20all\x20available\x20templates.':'Guard\x20templates\x20file\x20not\x20found.\x20Ensure\x20scripts/guard-templates.json\x20exists.','suggestions':['Omit\x20\x27template\x27\x20to\x20list\x20all\x20available\x20templates.','Available\x20template\x20names:\x20signer_verification,\x20progress_node_check,\x20order_owner_verification,\x20service_belonging_check,\x20reward_not_claimed,\x20combined_reward_guard']};if(h){const l=writeResponseToFile(k,h);if(l)return{'success':!![],'action':b,'data':null,'message':'Guard\x20template'+(g?'\x20\x27'+g+'\x27':'s')+'\x20written\x20to\x20file:\x20'+l,'output_file_path':l,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+l]};}return{'success':!![],'action':b,'data':k,'message':g?'Retrieved\x20Guard\x20template:\x20'+g:'Retrieved\x20'+(Array['isArray'](k['templates'])?k['templates']['length']:0x0)+'\x20Guard\x20templates'};}if(b==='get_templates'){if(!g){const p=a295a(i),q=getTemplateCounts(),r={'total':p['length'],'filter':i??null,'counts_by_object_type':q,'templates':p};if(h){const s=writeResponseToFile(r,h);if(s)return{'success':!![],'action':b,'data':null,'message':p['length']+'\x20templates\x20written\x20to\x20file:\x20'+s,'output_file_path':s,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+s]};}return{'success':!![],'action':b,'data':r,'message':p['length']+'\x20template(s)'+(i?'\x20for\x20object_type=\x27'+i+'\x27':'')+'\x20'+('(total\x20registry:\x20'+Object['values'](q)['reduce']((t,u)=>t+u,0x0)+'\x20across\x20'+TEMPLATE_OBJECT_TYPES['length']+'\x20object\x20types).\x20')+'Provide\x20\x27template\x27\x20(id)\x20for\x20full\x20detail;\x20add\x20\x27params\x27\x20(JSON\x20string)\x20to\x20instantiate.'};}if(!j){const t=getTemplateDetail(g);if(!t)return{'success':![],'action':b,'data':null,'message':'Template\x20\x27'+g+'\x27\x20not\x20found\x20in\x20the\x20unified\x20registry.','suggestions':['Omit\x20\x27template\x27\x20to\x20list\x20all\x20template\x20metadata\x20(id\x20+\x20object_type\x20+\x20parameters).','Filter\x20by\x20object_type:\x20'+TEMPLATE_OBJECT_TYPES['join'](',\x20')]};if(h){const u=writeResponseToFile(t,h);if(u)return{'success':!![],'action':b,'data':null,'message':'Template\x20\x27'+g+'\x27\x20detail\x20written\x20to\x20file:\x20'+u,'output_file_path':u,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+u]};}return{'success':!![],'action':b,'data':t,'message':'Template\x20\x27'+g+'\x27\x20('+t['object_type']+',\x20'+(t['instantiable']?'instantiable':'guidance-only')+').\x20'+'To\x20instantiate,\x20call\x20again\x20with\x20\x27params\x27\x20=\x20JSON\x20object\x20of\x20the\x20declared\x20parameters.'};}let m;try{const v=JSON['parse'](j);if(!v||typeof v!=='object'||Array['isArray'](v))return{'success':![],'action':b,'data':null,'message':'\x27params\x27\x20must\x20be\x20a\x20JSON\x20object\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27),\x20got\x20'+(Array['isArray'](v)?'array':typeof v)+'.'};m=v;}catch(w){return{'success':![],'action':b,'data':null,'message':'Failed\x20to\x20parse\x20\x27params\x27\x20as\x20JSON:\x20'+(w instanceof Error?w['message']:String(w)),'suggestions':['Example:\x20params=\x27{\x22whitelist\x22:[\x220xabc...\x22]}\x27']};}const n=instantiateTemplate(g,m);if(!n['ok'])return{'success':![],'action':b,'data':n['guidance']!==undefined?{'guidance':n['guidance']}:null,'message':'Instantiation\x20failed\x20for\x20\x27'+g+'\x27:\x20'+n['error'],'suggestions':n['missing_params']?['Missing\x20required\x20params:\x20'+n['missing_params']['join'](',\x20'),'Call\x20with\x20\x27template\x27\x20only\x20(no\x20\x27params\x27)\x20to\x20see\x20full\x20parameter\x20declarations.']:['Call\x20with\x20\x27template\x27\x20only\x20(no\x20\x27params\x27)\x20to\x20see\x20full\x20parameter\x20declarations.']};const o={'object_type':n['object_type'],'template_id':n['template_id'],'body':n['body'],...n['notes']?{'notes':n['notes']}:{}};if(h){const x=writeResponseToFile(o,h);if(x)return{'success':!![],'action':b,'data':null,'message':'Instantiated\x20template\x20\x27'+g+'\x27\x20written\x20to\x20file:\x20'+x,'output_file_path':x,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+x]};}return{'success':!![],'action':b,'data':o,'message':'Instantiated\x20\x27'+g+'\x27\x20('+n['object_type']+').\x20'+'Review\x20the\x20body\x20against\x20the\x20onchain_operations\x20schema\x20before\x20submitting.'};}if(b==='search_examples'){if(!d)return{'success':![],'action':b,'data':null,'message':'Search\x20query\x20is\x20required\x20for\x20\x27search_examples\x27\x20action','suggestions':['Provide\x20a\x20\x27query\x27\x20string\x20(e.g.\x20\x27rental\x27,\x20\x27guard\x27,\x20\x27service\x27,\x20\x27machine\x27)','Searchable\x20fields:\x20title,\x20description,\x20tags,\x20operation_type,\x20industry']};const y=searchExamples(d);return{'success':!![],'action':b,'data':y,'message':'Found\x20'+y['length']+'\x20example(s)\x20matching\x20\x27'+d+'\x27','suggestions':y['length']===0x0?['Try\x20broader\x20terms\x20like\x20\x27service\x27,\x20\x27machine\x27,\x20\x27guard\x27,\x20\x27permission\x27','Try\x20an\x20industry\x20name:\x20\x27rental\x27,\x20\x27retail\x27,\x20\x27general\x27','Use\x20\x27get\x27\x20action\x20with\x20a\x20schema\x20name\x20to\x20see\x20the\x20full\x20JSON\x20Schema']:undefined};}if(b==='get_tool_reference'){if(c){const A=getToolReference(c);if(!A)return{'success':![],'action':b,'data':null,'message':'Tool\x20\x27'+c+'\x27\x20not\x20found\x20in\x20the\x20tool\x20reference.','suggestions':['Omit\x20\x27name\x27\x20to\x20list\x20all\x20tools.','Available\x20tools:\x20'+TOOLS_REFERENCE['map'](C=>C['name'])['join'](',\x20')]};const B=getToolSequence(c);return{'success':!![],'action':b,'data':{'tool':A,'call_sequence':B??null},'message':'Retrieved\x20tool\x20reference:\x20'+c};}if(d){const C=searchToolReference(d);return{'success':!![],'action':b,'data':{'tools':C,'count':C['length']},'message':'Found\x20'+C['length']+'\x20tool(s)\x20matching\x20\x27'+d+'\x27','suggestions':C['length']===0x0?['Try\x20a\x20broader\x20keyword\x20(e.g.\x20\x27onchain\x27,\x20\x27guard\x27,\x20\x27schema\x27),\x20or\x20omit\x20\x27query\x27\x20to\x20list\x20all\x20tools.']:undefined};}const z=TOOLS_REFERENCE['map'](D=>({'name':D['name'],'summary':D['summary'],'actions':D['actions']??[],'notes':D['notes']??[]}));return{'success':!![],'action':b,'data':{'tools':z,'count':z['length']},'message':'Retrieved\x20reference\x20for\x20'+z['length']+'\x20MCP\x20tools.\x20Pass\x20name=\x27<tool>\x27\x20for\x20full\x20detail\x20(params,\x20prerequisites,\x20follow-ups).'};}if(b==='get_guard_design_patterns'){if(c){const E=getGuardDesignPattern(c);if(!E)return{'success':![],'action':b,'data':null,'message':'Guard\x20design\x20pattern\x20\x27'+c+'\x27\x20not\x20found.','suggestions':['Omit\x20\x27name\x27\x20to\x20list\x20the\x20full\x20catalog.','Available\x20pattern\x20ids:\x20'+GUARD_DESIGN_PATTERNS['map'](F=>F['id'])['join'](',\x20')]};return{'success':!![],'action':b,'data':{'pattern':E},'message':'Retrieved\x20Guard\x20design\x20pattern:\x20'+c};}if(d){const F=GUARD_DESIGN_PATTERNS['filter'](H=>H['host']===d),G=F['length']>0x0?F:GUARD_DESIGN_PATTERNS['filter'](H=>H['business_requirement']['toLowerCase']()['includes'](d['toLowerCase']())||H['logic_summary']['toLowerCase']()['includes'](d['toLowerCase']()));return{'success':!![],'action':b,'data':{'patterns':G,'count':G['length'],'filtered_by':F['length']>0x0?'host':'keyword'},'message':'Found\x20'+G['length']+'\x20Guard\x20design\x20pattern(s)\x20matching\x20\x27'+d+'\x27','suggestions':G['length']===0x0?['Filter\x20by\x20host:\x20service_buy_guard,\x20service_allocator_guard,\x20machine_forward,\x20progress_submission,\x20reward_claim,\x20repository_write,\x20arbitration_usage,\x20arbitration_voting,\x20gen_passport']:undefined};}const D=GUARD_DESIGN_PATTERNS['map'](H=>({'id':H['id'],'business_requirement':H['business_requirement'],'host':H['host'],'data_source':H['data_source'],'verifier_level':H['verifier_level'],'logic_summary':H['logic_summary'],'key_queries':H['key_queries'],'notes':H['notes']??[]}));return{'success':!![],'action':b,'data':{'patterns':D,'count':D['length'],'version':GUARD_DESIGN_PATTERNS_VERSION},'message':'Retrieved\x20'+D['length']+'\x20Guard\x20design\x20patterns.\x20Pass\x20name=\x27<pattern_id>\x27\x20for\x20full\x20detail\x20(witness\x20types,\x20mitigated\x20risks,\x20industries).'};}if(b==='get_safety_rules')return{'success':!![],'action':b,'data':{'version':SAFETY_RULES_VERSION,'object_reuse_rules':OBJECT_REUSE_RULES,'create_vs_modify_pattern':CREATE_VS_MODIFY_PATTERN,'immutability_rules':IMMUTABILITY_RULES,'operation_type_classification':OPERATION_TYPE_CLASSIFICATION,'operation_class_meta':OPERATION_CLASS_META,'naming_conventions':NAMING_CONVENTIONS},'message':'Retrieved\x20safety\x20rule\x20tables\x20(reuse\x20/\x20immutability\x20/\x20operation\x20classification\x20/\x20naming).\x20'+'Key\x20points:\x20prefer\x20REUSING\x20existing\x20objects\x20(string\x20reference\x20=\x20reuse,\x20object\x20shape\x20=\x20create);\x20'+'Machine\x20publish\x20locks\x20nodes/pairs/forwards,\x20Service\x20publish\x20locks\x20machine/order_allocators/arbitrations\x20(sales\x20stays\x20mutable);\x20'+'Guard\x20is\x20CREATE-only\x20immutable;\x20on-chain\x20writes\x20require\x20explicit\x20user\x20confirmation.'};if(!areSchemasAvailable())return{'success':![],'action':b,'data':null,'message':'Schema\x20files\x20are\x20not\x20available.\x20Please\x20run\x20\x27npm\x20run\x20generate:schemas\x27\x20first.','suggestions':['Run\x20\x27npm\x20run\x20generate:schemas\x27\x20to\x20generate\x20schema\x20files','Ensure\x20the\x20dist/schemas\x20directory\x20exists']};switch(b){case'list':{const H=listSchemas();return{'success':!![],'action':b,'data':H,'message':'Found\x20'+H['length']+'\x20available\x20schemas'};}case'get':{if(!c)return{'success':![],'action':b,'data':null,'message':'Schema\x20name\x20is\x20required\x20for\x20\x27get\x27\x20action','suggestions':['Provide\x20a\x20schema\x20name','Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20schemas']};const I=getSchema(c);if(!I){const J=searchSchemas(c)['slice'](0x0,0x5);return{'success':![],'action':b,'data':null,'message':'Schema\x20\x27'+c+'\x27\x20not\x20found','suggestions':J['length']>0x0?J['map'](K=>'Did\x20you\x20mean:\x20'+K['name']+'?'):['Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20schemas']};}if(h){const K=writeResponseToFile(I,h);if(K)return{'success':!![],'action':b,'data':null,'message':'Schema\x20\x27'+c+'\x27\x20written\x20to\x20file:\x20'+K,'output_file_path':K,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+K]};}return{'success':!![],'action':b,'data':I,'message':'Retrieved\x20schema:\x20'+c};}case'get_field':{if(!c||!f)return{'success':![],'action':b,'data':null,'message':'Both\x20\x27name\x27\x20and\x20\x27field_path\x27\x20are\x20required\x20for\x20\x27get_field\x27\x20action','suggestions':['Example:\x20{action:\x20\x27get_field\x27,\x20name:\x20\x27onchain_operations_machine\x27,\x20field_path:\x20\x27data.node\x27}','Use\x20\x27get\x27\x20action\x20to\x20retrieve\x20the\x20full\x20schema']};const L=getSchemaField(c,f);if(!L)return{'success':![],'action':b,'data':null,'message':'Field\x20path\x20\x27'+f+'\x27\x20not\x20found\x20in\x20schema\x20\x27'+c+'\x27','suggestions':['Check\x20the\x20field\x20path\x20(dot-separated,\x20e.g.\x20\x27data.node\x27)','Use\x20\x27get\x27\x20action\x20to\x20see\x20the\x20full\x20schema\x20structure']};return{'success':!![],'action':b,'data':L,'message':'Retrieved\x20field\x20\x27'+f+'\x27\x20from\x20schema\x20\x27'+c+'\x27'};}case'search':{if(!d)return{'success':![],'action':b,'data':null,'message':'Search\x20query\x20is\x20required\x20for\x20\x27search\x27\x20action'};const M=searchSchemas(d);return{'success':!![],'action':b,'data':M,'message':'Found\x20'+M['length']+'\x20schemas\x20matching\x20\x27'+d+'\x27'};}case'list_operations':{const N=listOperations();return{'success':!![],'action':b,'data':N,'message':'Found\x20'+N['length']+'\x20on-chain\x20operations'};}case'get_output':{if(!c)return{'success':![],'action':b,'data':null,'message':'Tool\x20name\x20is\x20required\x20for\x20\x27get_output\x27\x20action','suggestions':['Provide\x20a\x20tool\x20name','Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20tools\x20and\x20their\x20outputPath']};const O=getOutputSchema(c);if(!O){const P=listSchemas(),Q=P['find'](S=>S['name']===c);if(Q)return{'success':![],'action':b,'data':null,'message':'Tool\x20\x27'+c+'\x27\x20exists\x20but\x20has\x20no\x20output\x20schema\x20file.\x20The\x20tool\x20may\x20not\x20declare\x20an\x20outputSchema,\x20or\x20the\x20schema\x20file\x20was\x20not\x20generated.','suggestions':['Use\x20\x27get\x27\x20action\x20with\x20name=\x27'+c+'\x27\x20to\x20retrieve\x20its\x20input\x20schema']};const R=searchSchemas(c)['slice'](0x0,0x5);return{'success':![],'action':b,'data':null,'message':'Tool\x20\x27'+c+'\x27\x20not\x20found','suggestions':R['length']>0x0?R['map'](S=>'Did\x20you\x20mean:\x20'+S['name']+'?'):['Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20tools']};}if(h){const S=writeResponseToFile(O,h);if(S)return{'success':!![],'action':b,'data':null,'message':'Output\x20schema\x20\x27'+c+'\x27\x20written\x20to\x20file:\x20'+S,'output_file_path':S,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+S]};}return{'success':!![],'action':b,'data':O,'message':'Retrieved\x20output\x20schema:\x20'+c};}default:return{'success':![],'action':b,'data':null,'message':'Unknown\x20action:\x20'+b,'suggestions':['Use\x20\x27list\x27,\x20\x27get\x27,\x20\x27get_field\x27,\x20\x27get_output\x27,\x20\x27search\x27,\x20\x27list_operations\x27,\x20\x27get_guard_templates\x27,\x20or\x20\x27search_examples\x27']};}}
|
|
1
|
+
import{readFileSync,existsSync,writeFileSync,mkdirSync,readdirSync}from'fs';import{resolve,join,dirname}from'path';import{fileURLToPath}from'url';import{TOOLS_REFERENCE,getToolReference,searchToolReference,getToolSequence}from'../knowledge/tools-reference.js';import{GUARD_DESIGN_PATTERNS,getGuardDesignPattern,GUARD_DESIGN_PATTERNS_VERSION}from'../knowledge/guard-design-patterns.js';import{OBJECT_REUSE_RULES,CREATE_VS_MODIFY_PATTERN,IMMUTABILITY_RULES,OPERATION_TYPE_CLASSIFICATION,OPERATION_CLASS_META,NAMING_CONVENTIONS,SAFETY_RULES_VERSION}from'../knowledge/safety-rules.js';import{listTemplates as a347a,getTemplateDetail,instantiateTemplate,getTemplateCounts,TEMPLATE_OBJECT_TYPES}from'../knowledge/template-registry.js';const __filename=fileURLToPath(import.meta.url),__dirname=fileURLToPath(new URL('.',import.meta.url)),SCHEMAS_DIR=resolve(__dirname,'../../dist/schemas'),GUARD_TEMPLATES_PATH_SCRIPTS=resolve(__dirname,'../../scripts/guard-templates.json'),GUARD_TEMPLATES_PATH_DIST=resolve(__dirname,'../../dist/schemas/guard-templates.json'),GUARD_TEMPLATES_PATH=existsSync(GUARD_TEMPLATES_PATH_SCRIPTS)?GUARD_TEMPLATES_PATH_SCRIPTS:GUARD_TEMPLATES_PATH_DIST,EXAMPLES_DIR_SCRIPTS=resolve(__dirname,'../../scripts/examples'),EXAMPLES_DIR_DIST=resolve(__dirname,'../examples');export const EXAMPLES_DIR=existsSync(EXAMPLES_DIR_SCRIPTS)?EXAMPLES_DIR_SCRIPTS:EXAMPLES_DIR_DIST;const WORKSPACE_TMP_DIR=resolve(process['cwd'](),'.trae','tmp');export function areSchemasAvailable(){return existsSync(SCHEMAS_DIR)&&existsSync(join(SCHEMAS_DIR,'index.json'));}export function getSchemaIndex(){try{const a=join(SCHEMAS_DIR,'index.json');if(!existsSync(a))return null;const b=readFileSync(a,'utf-8');return JSON['parse'](b);}catch{return null;}}export function listSchemas(){const a=getSchemaIndex();if(!a)return[];return[...a['tools']||[],...a['operations']||[]];}export function getSchema(a){try{let b=join(SCHEMAS_DIR,a+'.schema.json');!existsSync(b)&&(b=join(SCHEMAS_DIR,a+'.json'));if(!existsSync(b))return null;const c=readFileSync(b,'utf-8'),d=JSON['parse'](c);return resolveSchemaRefs(d);}catch{return null;}}export function getOutputSchema(a){try{const b=join(SCHEMAS_DIR,a+'.output.json');if(!existsSync(b))return null;const c=readFileSync(b,'utf-8'),d=JSON['parse'](c);return resolveSchemaRefs(d);}catch{return null;}}export function getGuardTemplates(a){try{if(!existsSync(GUARD_TEMPLATES_PATH))return null;const b=readFileSync(GUARD_TEMPLATES_PATH,'utf-8'),c=JSON['parse'](b);if(!a)return{'version':c['version'],'description':c['description'],'templates':(c['templates']||[])['map'](e=>({'name':e['name'],'title':e['title'],'description':e['description'],'use_case':e['use_case']})),'query_reference':c['query_reference'],'node_return_types':c['node_return_types']};const d=(c['templates']||[])['find'](e=>e['name']===a);if(!d)return null;return d;}catch{return null;}}export function searchExamples(a){if(!existsSync(EXAMPLES_DIR))return[];let b;try{b=readdirSync(EXAMPLES_DIR);}catch{return[];}const c=a['toLowerCase']()['trim']();if(!c)return[];const d=[];for(const e of b){if(!e['endsWith']('.json'))continue;const f=join(EXAMPLES_DIR,e);try{const g=readFileSync(f,'utf-8'),h=JSON['parse'](g),i=String(h['title']??''),j=String(h['description']??''),k=Array['isArray'](h['tags'])?h['tags']['map'](o=>String(o)):[],l=String(h['operation_type']??''),m=String(h['industry']??''),n=[];i['toLowerCase']()['includes'](c)&&n['push']('title'),j['toLowerCase']()['includes'](c)&&n['push']('description'),k['some'](o=>o['toLowerCase']()===c)&&n['push']('tags'),l&&l['toLowerCase']()===c&&n['push']('operation_type'),m&&m['toLowerCase']()===c&&n['push']('industry'),n['length']>0x0&&d['push']({'file':e,'title':i,'description':j,'tags':k,'industry':m,'operation_type':l,'verified':h['verified']===!![],'score':n['length'],'matched_fields':n});}catch{continue;}}return d['sort']((o,p)=>{if(p['score']!==o['score'])return p['score']-o['score'];return o['file']['localeCompare'](p['file']);}),d;}export function getSchemaField(a,b){const c=getSchema(a);if(!c)return null;const d=b['split']('.')['filter'](Boolean);let e=c;for(const f of d){if(!e||typeof e!=='object')return null;if(e['properties']&&f in e['properties']){e=e['properties'][f];continue;}if(e['items']&&typeof e['items']==='object'){if(/^\d+$/['test'](f)){e=e['items'];continue;}if(e['items']['properties']&&f in e['items']['properties']){e=e['items']['properties'][f];continue;}}if(Array['isArray'](e['oneOf'])||Array['isArray'](e['anyOf'])){const g=e['oneOf']??e['anyOf'];for(const h of g){if(h&&typeof h==='object'&&h['properties']&&f in h['properties']){e=h['properties'][f];break;}}continue;}if(f in e){e=e[f];continue;}return null;}return e;}function resolveSchemaRefs(a,b=new Set()){if(!a||typeof a!=='object')return a;if(Array['isArray'](a))return a['map'](d=>resolveSchemaRefs(d,b));const c={};for(const [d,e]of Object['entries'](a)){if(d==='$ref'&&typeof e==='string'){if(e['startsWith']('#'))c[d]=e;else{const f=loadRefSchema(e,b);f&&Object['assign'](c,resolveSchemaRefs(f,b));}}else typeof e==='object'?c[d]=resolveSchemaRefs(e,b):c[d]=e;}return c;}function loadRefSchema(a,b){if(a['startsWith']('#'))return null;if(b['has'](a))return{'description':'Circular\x20reference\x20to\x20'+a};b['add'](a);try{const c=join(SCHEMAS_DIR,a);if(!existsSync(c))return null;const d=readFileSync(c,'utf-8');return JSON['parse'](d);}catch{return null;}}export function searchSchemas(a){const b=listSchemas(),c=a['toLowerCase']();return b['filter'](d=>{const e=d['name']['toLowerCase']()['includes'](c),f=d['title']?.['toLowerCase']()['includes'](c),g=d['description']?.['toLowerCase']()['includes'](c);return e||f||g;});}export function listOperations(){const a=getSchemaIndex();if(!a)return[];return(a['operations']||[])['filter'](b=>b['name']['startsWith']('onchain_operations_'));}function writeResponseToFile(a,b){try{let c;if(b)c=resolve(process['cwd'](),b);else{!existsSync(WORKSPACE_TMP_DIR)&&mkdirSync(WORKSPACE_TMP_DIR,{'recursive':!![]});const g=Date['now']();c=join(WORKSPACE_TMP_DIR,'schema-'+g+'.json');}const d=dirname(c);!existsSync(d)&&mkdirSync(d,{'recursive':!![]});const f=typeof a==='string'?a:JSON['stringify'](a,null,0x2);return writeFileSync(c,f,'utf-8'),c;}catch(h){return null;}}export function processSchemaQuery(a){const {action:b,name:c,query:d,field_path:f,template:g,output_file:h,object_type:i,params:j}=a;if(b==='get_guard_templates'){const k=getGuardTemplates(g);if(!k)return{'success':![],'action':b,'data':null,'message':g?'Guard\x20template\x20\x27'+g+'\x27\x20not\x20found.\x20Omit\x20\x27template\x27\x20to\x20list\x20all\x20available\x20templates.':'Guard\x20templates\x20file\x20not\x20found.\x20Ensure\x20scripts/guard-templates.json\x20exists.','suggestions':['Omit\x20\x27template\x27\x20to\x20list\x20all\x20available\x20templates.','Available\x20template\x20names:\x20signer_verification,\x20progress_node_check,\x20order_owner_verification,\x20service_belonging_check,\x20reward_not_claimed,\x20combined_reward_guard']};if(h){const l=writeResponseToFile(k,h);if(l)return{'success':!![],'action':b,'data':null,'message':'Guard\x20template'+(g?'\x20\x27'+g+'\x27':'s')+'\x20written\x20to\x20file:\x20'+l,'output_file_path':l,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+l]};}return{'success':!![],'action':b,'data':k,'message':g?'Retrieved\x20Guard\x20template:\x20'+g:'Retrieved\x20'+(Array['isArray'](k['templates'])?k['templates']['length']:0x0)+'\x20Guard\x20templates'};}if(b==='get_templates'){if(!g){const p=a347a(i),q=getTemplateCounts(),r={'total':p['length'],'filter':i??null,'counts_by_object_type':q,'templates':p};if(h){const s=writeResponseToFile(r,h);if(s)return{'success':!![],'action':b,'data':null,'message':p['length']+'\x20templates\x20written\x20to\x20file:\x20'+s,'output_file_path':s,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+s]};}return{'success':!![],'action':b,'data':r,'message':p['length']+'\x20template(s)'+(i?'\x20for\x20object_type=\x27'+i+'\x27':'')+'\x20'+('(total\x20registry:\x20'+Object['values'](q)['reduce']((t,u)=>t+u,0x0)+'\x20across\x20'+TEMPLATE_OBJECT_TYPES['length']+'\x20object\x20types).\x20')+'Provide\x20\x27template\x27\x20(id)\x20for\x20full\x20detail;\x20add\x20\x27params\x27\x20(JSON\x20string)\x20to\x20instantiate.'};}if(!j){const t=getTemplateDetail(g);if(!t)return{'success':![],'action':b,'data':null,'message':'Template\x20\x27'+g+'\x27\x20not\x20found\x20in\x20the\x20unified\x20registry.','suggestions':['Omit\x20\x27template\x27\x20to\x20list\x20all\x20template\x20metadata\x20(id\x20+\x20object_type\x20+\x20parameters).','Filter\x20by\x20object_type:\x20'+TEMPLATE_OBJECT_TYPES['join'](',\x20')]};if(h){const u=writeResponseToFile(t,h);if(u)return{'success':!![],'action':b,'data':null,'message':'Template\x20\x27'+g+'\x27\x20detail\x20written\x20to\x20file:\x20'+u,'output_file_path':u,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+u]};}return{'success':!![],'action':b,'data':t,'message':'Template\x20\x27'+g+'\x27\x20('+t['object_type']+',\x20'+(t['instantiable']?'instantiable':'guidance-only')+').\x20'+'To\x20instantiate,\x20call\x20again\x20with\x20\x27params\x27\x20=\x20JSON\x20object\x20of\x20the\x20declared\x20parameters.'};}let m;try{const v=JSON['parse'](j);if(!v||typeof v!=='object'||Array['isArray'](v))return{'success':![],'action':b,'data':null,'message':'\x27params\x27\x20must\x20be\x20a\x20JSON\x20object\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27),\x20got\x20'+(Array['isArray'](v)?'array':typeof v)+'.'};m=v;}catch(w){return{'success':![],'action':b,'data':null,'message':'Failed\x20to\x20parse\x20\x27params\x27\x20as\x20JSON:\x20'+(w instanceof Error?w['message']:String(w)),'suggestions':['Example:\x20params=\x27{\x22whitelist\x22:[\x220xabc...\x22]}\x27']};}const n=instantiateTemplate(g,m);if(!n['ok'])return{'success':![],'action':b,'data':n['guidance']!==undefined?{'guidance':n['guidance']}:null,'message':'Instantiation\x20failed\x20for\x20\x27'+g+'\x27:\x20'+n['error'],'suggestions':n['missing_params']?['Missing\x20required\x20params:\x20'+n['missing_params']['join'](',\x20'),'Call\x20with\x20\x27template\x27\x20only\x20(no\x20\x27params\x27)\x20to\x20see\x20full\x20parameter\x20declarations.']:['Call\x20with\x20\x27template\x27\x20only\x20(no\x20\x27params\x27)\x20to\x20see\x20full\x20parameter\x20declarations.']};const o={'object_type':n['object_type'],'template_id':n['template_id'],'body':n['body'],...n['notes']?{'notes':n['notes']}:{}};if(h){const x=writeResponseToFile(o,h);if(x)return{'success':!![],'action':b,'data':null,'message':'Instantiated\x20template\x20\x27'+g+'\x27\x20written\x20to\x20file:\x20'+x,'output_file_path':x,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+x]};}return{'success':!![],'action':b,'data':o,'message':'Instantiated\x20\x27'+g+'\x27\x20('+n['object_type']+').\x20'+'Review\x20the\x20body\x20against\x20the\x20onchain_operations\x20schema\x20before\x20submitting.'};}if(b==='search_examples'){if(!d)return{'success':![],'action':b,'data':null,'message':'Search\x20query\x20is\x20required\x20for\x20\x27search_examples\x27\x20action','suggestions':['Provide\x20a\x20\x27query\x27\x20string\x20(e.g.\x20\x27rental\x27,\x20\x27guard\x27,\x20\x27service\x27,\x20\x27machine\x27)','Searchable\x20fields:\x20title,\x20description,\x20tags,\x20operation_type,\x20industry']};const y=searchExamples(d);return{'success':!![],'action':b,'data':y,'message':'Found\x20'+y['length']+'\x20example(s)\x20matching\x20\x27'+d+'\x27','suggestions':y['length']===0x0?['Try\x20broader\x20terms\x20like\x20\x27service\x27,\x20\x27machine\x27,\x20\x27guard\x27,\x20\x27permission\x27','Try\x20an\x20industry\x20name:\x20\x27rental\x27,\x20\x27retail\x27,\x20\x27general\x27','Use\x20\x27get\x27\x20action\x20with\x20a\x20schema\x20name\x20to\x20see\x20the\x20full\x20JSON\x20Schema']:undefined};}if(b==='get_tool_reference'){if(c){const A=getToolReference(c);if(!A)return{'success':![],'action':b,'data':null,'message':'Tool\x20\x27'+c+'\x27\x20not\x20found\x20in\x20the\x20tool\x20reference.','suggestions':['Omit\x20\x27name\x27\x20to\x20list\x20all\x20tools.','Available\x20tools:\x20'+TOOLS_REFERENCE['map'](C=>C['name'])['join'](',\x20')]};const B=getToolSequence(c);return{'success':!![],'action':b,'data':{'tool':A,'call_sequence':B??null},'message':'Retrieved\x20tool\x20reference:\x20'+c};}if(d){const C=searchToolReference(d);return{'success':!![],'action':b,'data':{'tools':C,'count':C['length']},'message':'Found\x20'+C['length']+'\x20tool(s)\x20matching\x20\x27'+d+'\x27','suggestions':C['length']===0x0?['Try\x20a\x20broader\x20keyword\x20(e.g.\x20\x27onchain\x27,\x20\x27guard\x27,\x20\x27schema\x27),\x20or\x20omit\x20\x27query\x27\x20to\x20list\x20all\x20tools.']:undefined};}const z=TOOLS_REFERENCE['map'](D=>({'name':D['name'],'summary':D['summary'],'actions':D['actions']??[],'notes':D['notes']??[]}));return{'success':!![],'action':b,'data':{'tools':z,'count':z['length']},'message':'Retrieved\x20reference\x20for\x20'+z['length']+'\x20MCP\x20tools.\x20Pass\x20name=\x27<tool>\x27\x20for\x20full\x20detail\x20(params,\x20prerequisites,\x20follow-ups).'};}if(b==='get_guard_design_patterns'){if(c){const E=getGuardDesignPattern(c);if(!E)return{'success':![],'action':b,'data':null,'message':'Guard\x20design\x20pattern\x20\x27'+c+'\x27\x20not\x20found.','suggestions':['Omit\x20\x27name\x27\x20to\x20list\x20the\x20full\x20catalog.','Available\x20pattern\x20ids:\x20'+GUARD_DESIGN_PATTERNS['map'](F=>F['id'])['join'](',\x20')]};return{'success':!![],'action':b,'data':{'pattern':E},'message':'Retrieved\x20Guard\x20design\x20pattern:\x20'+c};}if(d){const F=GUARD_DESIGN_PATTERNS['filter'](H=>H['host']===d),G=F['length']>0x0?F:GUARD_DESIGN_PATTERNS['filter'](H=>H['business_requirement']['toLowerCase']()['includes'](d['toLowerCase']())||H['logic_summary']['toLowerCase']()['includes'](d['toLowerCase']()));return{'success':!![],'action':b,'data':{'patterns':G,'count':G['length'],'filtered_by':F['length']>0x0?'host':'keyword'},'message':'Found\x20'+G['length']+'\x20Guard\x20design\x20pattern(s)\x20matching\x20\x27'+d+'\x27','suggestions':G['length']===0x0?['Filter\x20by\x20host:\x20service_buy_guard,\x20service_allocator_guard,\x20machine_forward,\x20progress_submission,\x20reward_claim,\x20repository_write,\x20arbitration_usage,\x20arbitration_voting,\x20gen_passport']:undefined};}const D=GUARD_DESIGN_PATTERNS['map'](H=>({'id':H['id'],'business_requirement':H['business_requirement'],'host':H['host'],'data_source':H['data_source'],'verifier_level':H['verifier_level'],'logic_summary':H['logic_summary'],'key_queries':H['key_queries'],'notes':H['notes']??[]}));return{'success':!![],'action':b,'data':{'patterns':D,'count':D['length'],'version':GUARD_DESIGN_PATTERNS_VERSION},'message':'Retrieved\x20'+D['length']+'\x20Guard\x20design\x20patterns.\x20Pass\x20name=\x27<pattern_id>\x27\x20for\x20full\x20detail\x20(witness\x20types,\x20mitigated\x20risks,\x20industries).'};}if(b==='get_safety_rules')return{'success':!![],'action':b,'data':{'version':SAFETY_RULES_VERSION,'object_reuse_rules':OBJECT_REUSE_RULES,'create_vs_modify_pattern':CREATE_VS_MODIFY_PATTERN,'immutability_rules':IMMUTABILITY_RULES,'operation_type_classification':OPERATION_TYPE_CLASSIFICATION,'operation_class_meta':OPERATION_CLASS_META,'naming_conventions':NAMING_CONVENTIONS},'message':'Retrieved\x20safety\x20rule\x20tables\x20(reuse\x20/\x20immutability\x20/\x20operation\x20classification\x20/\x20naming).\x20'+'Key\x20points:\x20prefer\x20REUSING\x20existing\x20objects\x20(string\x20reference\x20=\x20reuse,\x20object\x20shape\x20=\x20create);\x20'+'Machine\x20publish\x20locks\x20nodes/pairs/forwards,\x20Service\x20publish\x20locks\x20machine/order_allocators/arbitrations\x20(sales\x20stays\x20mutable);\x20'+'Guard\x20is\x20CREATE-only\x20immutable;\x20on-chain\x20writes\x20require\x20explicit\x20user\x20confirmation.'};if(!areSchemasAvailable())return{'success':![],'action':b,'data':null,'message':'Schema\x20files\x20are\x20not\x20available.\x20Please\x20run\x20\x27npm\x20run\x20generate:schemas\x27\x20first.','suggestions':['Run\x20\x27npm\x20run\x20generate:schemas\x27\x20to\x20generate\x20schema\x20files','Ensure\x20the\x20dist/schemas\x20directory\x20exists']};switch(b){case'list':{const H=listSchemas();return{'success':!![],'action':b,'data':H,'message':'Found\x20'+H['length']+'\x20available\x20schemas'};}case'get':{if(!c)return{'success':![],'action':b,'data':null,'message':'Schema\x20name\x20is\x20required\x20for\x20\x27get\x27\x20action','suggestions':['Provide\x20a\x20schema\x20name','Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20schemas']};const I=getSchema(c);if(!I){const J=searchSchemas(c)['slice'](0x0,0x5);return{'success':![],'action':b,'data':null,'message':'Schema\x20\x27'+c+'\x27\x20not\x20found','suggestions':J['length']>0x0?J['map'](K=>'Did\x20you\x20mean:\x20'+K['name']+'?'):['Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20schemas']};}if(h){const K=writeResponseToFile(I,h);if(K)return{'success':!![],'action':b,'data':null,'message':'Schema\x20\x27'+c+'\x27\x20written\x20to\x20file:\x20'+K,'output_file_path':K,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+K]};}return{'success':!![],'action':b,'data':I,'message':'Retrieved\x20schema:\x20'+c};}case'get_field':{if(!c||!f)return{'success':![],'action':b,'data':null,'message':'Both\x20\x27name\x27\x20and\x20\x27field_path\x27\x20are\x20required\x20for\x20\x27get_field\x27\x20action','suggestions':['Example:\x20{action:\x20\x27get_field\x27,\x20name:\x20\x27onchain_operations_machine\x27,\x20field_path:\x20\x27data.node\x27}','Use\x20\x27get\x27\x20action\x20to\x20retrieve\x20the\x20full\x20schema']};const L=getSchemaField(c,f);if(!L)return{'success':![],'action':b,'data':null,'message':'Field\x20path\x20\x27'+f+'\x27\x20not\x20found\x20in\x20schema\x20\x27'+c+'\x27','suggestions':['Check\x20the\x20field\x20path\x20(dot-separated,\x20e.g.\x20\x27data.node\x27)','Use\x20\x27get\x27\x20action\x20to\x20see\x20the\x20full\x20schema\x20structure']};return{'success':!![],'action':b,'data':L,'message':'Retrieved\x20field\x20\x27'+f+'\x27\x20from\x20schema\x20\x27'+c+'\x27'};}case'search':{if(!d)return{'success':![],'action':b,'data':null,'message':'Search\x20query\x20is\x20required\x20for\x20\x27search\x27\x20action'};const M=searchSchemas(d);return{'success':!![],'action':b,'data':M,'message':'Found\x20'+M['length']+'\x20schemas\x20matching\x20\x27'+d+'\x27'};}case'list_operations':{const N=listOperations();return{'success':!![],'action':b,'data':N,'message':'Found\x20'+N['length']+'\x20on-chain\x20operations'};}case'get_output':{if(!c)return{'success':![],'action':b,'data':null,'message':'Tool\x20name\x20is\x20required\x20for\x20\x27get_output\x27\x20action','suggestions':['Provide\x20a\x20tool\x20name','Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20tools\x20and\x20their\x20outputPath']};const O=getOutputSchema(c);if(!O){const P=listSchemas(),Q=P['find'](S=>S['name']===c);if(Q)return{'success':![],'action':b,'data':null,'message':'Tool\x20\x27'+c+'\x27\x20exists\x20but\x20has\x20no\x20output\x20schema\x20file.\x20The\x20tool\x20may\x20not\x20declare\x20an\x20outputSchema,\x20or\x20the\x20schema\x20file\x20was\x20not\x20generated.','suggestions':['Use\x20\x27get\x27\x20action\x20with\x20name=\x27'+c+'\x27\x20to\x20retrieve\x20its\x20input\x20schema']};const R=searchSchemas(c)['slice'](0x0,0x5);return{'success':![],'action':b,'data':null,'message':'Tool\x20\x27'+c+'\x27\x20not\x20found','suggestions':R['length']>0x0?R['map'](S=>'Did\x20you\x20mean:\x20'+S['name']+'?'):['Use\x20\x27list\x27\x20action\x20to\x20see\x20available\x20tools']};}if(h){const S=writeResponseToFile(O,h);if(S)return{'success':!![],'action':b,'data':null,'message':'Output\x20schema\x20\x27'+c+'\x27\x20written\x20to\x20file:\x20'+S,'output_file_path':S,'suggestions':['Use\x20Read\x20tool\x20to\x20open\x20'+S]};}return{'success':!![],'action':b,'data':O,'message':'Retrieved\x20output\x20schema:\x20'+c};}default:return{'success':![],'action':b,'data':null,'message':'Unknown\x20action:\x20'+b,'suggestions':['Use\x20\x27list\x27,\x20\x27get\x27,\x20\x27get_field\x27,\x20\x27get_output\x27,\x20\x27search\x27,\x20\x27list_operations\x27,\x20\x27get_guard_templates\x27,\x20or\x20\x27search_examples\x27']};}}
|