@wowok/agent-mcp 3.4.0 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/chain-semantics/composition-truth.d.ts +102 -0
- package/dist/chain-semantics/composition-truth.js +1 -0
- package/dist/chain-semantics/eval-order.js +1 -1
- package/dist/chain-semantics/fund-flow.js +1 -1
- package/dist/chain-semantics/index.d.ts +1 -0
- package/dist/chain-semantics/index.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/blueprint-view.d.ts +3 -3
- package/dist/composition/blueprint-view.js +1 -1
- package/dist/composition/compile.d.ts +24 -3
- package/dist/composition/compile.js +1 -1
- package/dist/composition/emit-phases.d.ts +206 -0
- package/dist/composition/emit-phases.js +1 -0
- package/dist/composition/generate.d.ts +40 -0
- package/dist/composition/generate.js +1 -0
- package/dist/composition/guard-fill.d.ts +44 -0
- package/dist/composition/guard-fill.js +1 -0
- package/dist/composition/inflight.d.ts +20 -2
- package/dist/composition/inflight.js +1 -1
- package/dist/composition/input-normalize.d.ts +15 -0
- package/dist/composition/input-normalize.js +1 -0
- package/dist/composition/materialize.d.ts +18 -13
- package/dist/composition/materialize.js +1 -1
- package/dist/composition/mode-gates.d.ts +35 -0
- package/dist/composition/mode-gates.js +1 -0
- package/dist/composition/param-disclosure.js +1 -1
- package/dist/composition/plan-retry-ledger.d.ts +21 -0
- package/dist/composition/plan-retry-ledger.js +1 -0
- package/dist/composition/plan.d.ts +7 -2
- package/dist/composition/plan.js +1 -1
- package/dist/composition/product-card.d.ts +94 -0
- package/dist/composition/product-card.js +1 -0
- package/dist/composition/supply-chain-emit.d.ts +46 -0
- package/dist/composition/supply-chain-emit.js +1 -0
- package/dist/config/config-audit.spec.js +1 -1
- package/dist/config/config-warnings.d.ts +2 -0
- package/dist/config/config-warnings.js +1 -0
- package/dist/config/exposure.d.ts +2 -2
- package/dist/config/judgment.d.ts +31 -5
- package/dist/config/judgment.js +1 -1
- package/dist/config/judgment.spec.js +1 -1
- package/dist/config/match-policy-file.d.ts +34 -0
- package/dist/config/match-policy-file.js +1 -0
- package/dist/config/match-policy-file.spec.d.ts +1 -0
- package/dist/config/match-policy-file.spec.js +1 -0
- package/dist/config/rule-engine.d.ts +5 -5
- package/dist/config/rule-engine.js +1 -1
- package/dist/config/runtime.d.ts +0 -1
- package/dist/config/runtime.js +1 -1
- package/dist/config/severity.d.ts +0 -2
- package/dist/config/severity.js +1 -1
- package/dist/config/store-policy.spec.js +1 -1
- package/dist/config/template-params.d.ts +42 -0
- package/dist/config/template-params.js +1 -0
- package/dist/config/template-params.spec.d.ts +1 -0
- package/dist/config/template-params.spec.js +1 -0
- package/dist/data/api/api.spec.js +1 -1
- package/dist/data/api/server.js +1 -1
- package/dist/data/projection/store.d.ts +2 -1
- package/dist/data/projection/store.js +1 -1
- package/dist/data/projection/types.d.ts +22 -0
- package/dist/data/sync/cdc.d.ts +1 -2
- package/dist/data/sync/cdc.js +1 -1
- package/dist/evaluation/acceptance.d.ts +8 -0
- package/dist/evaluation/acceptance.js +1 -1
- package/dist/evaluation/builtins/demand-match.js +1 -1
- package/dist/evaluation/builtins/graph-service.spec.js +1 -1
- package/dist/evaluation/capability.d.ts +2 -0
- package/dist/evaluation/category-match-rules.d.ts +0 -1
- package/dist/evaluation/category-match-rules.js +1 -1
- package/dist/evaluation/composer.d.ts +25 -0
- package/dist/evaluation/composer.js +1 -1
- package/dist/evaluation/engine.js +1 -1
- package/dist/evaluation/extract.d.ts +7 -0
- package/dist/evaluation/extract.js +1 -1
- package/dist/evaluation/game-strategy.d.ts +0 -3
- package/dist/evaluation/game-strategy.js +1 -1
- package/dist/evaluation/match-operation.d.ts +9 -0
- package/dist/evaluation/match-operation.js +1 -1
- package/dist/evaluation/match-policy-resolver.d.ts +9 -0
- package/dist/evaluation/match-policy-resolver.js +1 -0
- package/dist/evaluation/match-policy.d.ts +3 -1
- package/dist/evaluation/match-policy.js +1 -1
- package/dist/evaluation/region.d.ts +0 -6
- package/dist/evaluation/region.js +1 -1
- package/dist/evaluation/standards.d.ts +2 -1
- package/dist/evaluation/standards.js +1 -1
- package/dist/evaluation/structured-lines.d.ts +8 -0
- package/dist/evaluation/structured-lines.js +1 -0
- package/dist/evaluation/types.d.ts +6 -0
- package/dist/experience/realtime-feedback.js +1 -1
- package/dist/extensions/capability-manifest.d.ts +1 -0
- package/dist/extensions/capability-manifest.js +1 -1
- package/dist/extensions/capability.d.ts +91 -0
- package/dist/extensions/capability.js +1 -0
- package/dist/extensions/industry-audit.spec.js +1 -1
- package/dist/extensions/industry-pack.d.ts +13 -0
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/extensions/modes.js +1 -1
- package/dist/extensions/registry.d.ts +0 -2
- package/dist/extensions/registry.js +1 -1
- package/dist/goal/GoalEngine.js +1 -1
- package/dist/graph/onchain/analyze.js +1 -1
- package/dist/graph/onchain/expand.js +1 -1
- package/dist/graph/onchain/exposure.js +1 -1
- package/dist/graph/onchain/facts.js +1 -1
- package/dist/graph/onchain/order-status.d.ts +0 -1
- package/dist/graph/onchain/order-status.js +1 -1
- package/dist/harness/recover.js +1 -1
- package/dist/harness/verify.d.ts +0 -3
- package/dist/harness/verify.js +1 -1
- package/dist/intent/types.d.ts +0 -1
- package/dist/intent/types.js +1 -1
- package/dist/keeper/detectors.js +1 -1
- package/dist/keeper/types.d.ts +0 -1
- package/dist/keeper/types.js +1 -1
- package/dist/knowledge/allocation-risk.d.ts +1 -0
- package/dist/knowledge/allocation-risk.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.d.ts +6 -1
- package/dist/knowledge/allocator-rail-verifier.js +1 -1
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/arbitration-puzzle.js +1 -1
- package/dist/knowledge/arbitration-templates.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +4 -3
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/judgment-baselines.json +21 -2
- package/dist/knowledge/baselines/rules/oracle.json +120 -0
- package/dist/knowledge/baselines/rules/plan.json +384 -17
- package/dist/knowledge/baselines/rules/progress.json +20 -2
- package/dist/knowledge/builtin-templates.d.ts +28 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/component-schema.js +1 -1
- package/dist/knowledge/contact-templates.d.ts +0 -1
- package/dist/knowledge/contact-templates.js +1 -1
- package/dist/knowledge/dynamic-pricing.js +1 -1
- package/dist/knowledge/fee-param-bindings.js +1 -1
- package/dist/knowledge/fund-layer.d.ts +1 -0
- package/dist/knowledge/fund-layer.js +1 -1
- package/dist/knowledge/game-scenarios.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-binding-table.d.ts +52 -0
- package/dist/knowledge/guard-binding-table.js +1 -0
- package/dist/knowledge/guard-binding-verifier.d.ts +30 -0
- package/dist/knowledge/guard-binding-verifier.js +1 -0
- package/dist/knowledge/guard-bindings.js +1 -1
- package/dist/knowledge/guard-blueprint.d.ts +68 -0
- package/dist/knowledge/guard-blueprint.js +1 -0
- package/dist/knowledge/guard-design-patterns.d.ts +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-field-cognition.js +1 -1
- package/dist/knowledge/guard-host-context.d.ts +24 -0
- package/dist/knowledge/guard-host-context.js +1 -0
- package/dist/knowledge/guard-lint.js +1 -1
- package/dist/knowledge/guard-node-gates.d.ts +3 -0
- package/dist/knowledge/guard-node-gates.js +1 -1
- package/dist/knowledge/guard-puzzle.js +1 -1
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-submission-prompt.d.ts +11 -0
- package/dist/knowledge/guard-submission-prompt.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +1 -1
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/guard-translation.js +1 -1
- package/dist/knowledge/index.d.ts +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-generalizer.d.ts +6 -1
- package/dist/knowledge/industry-generalizer.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/jsonrpc-enum.d.ts +38 -0
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/machine-topology.js +1 -1
- package/dist/knowledge/machine-translation.js +1 -1
- package/dist/knowledge/object-dependency.d.ts +31 -0
- package/dist/knowledge/object-dependency.js +1 -0
- package/dist/knowledge/onchain-constants.d.ts +2 -0
- package/dist/knowledge/onchain-constants.js +1 -1
- package/dist/knowledge/param-schema.d.ts +23 -0
- package/dist/knowledge/param-schema.js +1 -1
- package/dist/knowledge/param-tiers.js +1 -1
- package/dist/knowledge/passport-ledger.js +1 -1
- package/dist/knowledge/path-oracle/coverage.d.ts +16 -0
- package/dist/knowledge/path-oracle/coverage.js +1 -0
- package/dist/knowledge/path-oracle/index.d.ts +5 -0
- package/dist/knowledge/path-oracle/index.js +1 -0
- package/dist/knowledge/path-oracle/products/food-delivery.d.ts +2 -0
- package/dist/knowledge/path-oracle/products/food-delivery.js +1 -0
- package/dist/knowledge/path-oracle/schema.d.ts +188 -0
- package/dist/knowledge/path-oracle/schema.js +1 -0
- package/dist/knowledge/pattern-resolutions.d.ts +2 -0
- package/dist/knowledge/pattern-resolutions.js +1 -1
- package/dist/knowledge/progress-ledger.js +1 -1
- package/dist/knowledge/progress-risk.js +1 -1
- package/dist/knowledge/projection.spec.js +1 -1
- package/dist/knowledge/protocol-facts.js +1 -1
- package/dist/knowledge/requirement-families.d.ts +13 -0
- package/dist/knowledge/requirement-families.js +1 -0
- package/dist/knowledge/reward-ledger.js +1 -1
- package/dist/knowledge/scenario-modes.d.ts +1 -0
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/semantic-ir.d.ts +4 -0
- package/dist/knowledge/semantic-ir.js +1 -1
- package/dist/knowledge/service-ledger.d.ts +1 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/sku-name-gate.d.ts +17 -0
- package/dist/knowledge/sku-name-gate.js +1 -0
- package/dist/knowledge/supply-chain.d.ts +9 -0
- package/dist/knowledge/supply-chain.js +1 -1
- package/dist/knowledge/template-loader.d.ts +14 -6
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-nav.d.ts +3 -1
- package/dist/knowledge/template-nav.js +1 -1
- package/dist/knowledge/template-prose.d.ts +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.d.ts +62 -0
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/template-test-profiles.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workflow-guidance.d.ts +5 -0
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/participation/customer-interest.d.ts +4 -0
- package/dist/participation/customer-interest.js +1 -1
- package/dist/participation/node-action-advisor.d.ts +4 -0
- package/dist/participation/node-action-advisor.js +1 -1
- package/dist/participation/radar-core.js +1 -1
- package/dist/participation/time-window.d.ts +11 -0
- package/dist/participation/time-window.js +1 -1
- package/dist/persona/address-format.d.ts +0 -1
- package/dist/persona/address-format.js +1 -1
- package/dist/persona/bridge.js +1 -1
- package/dist/persona/index.d.ts +0 -2
- package/dist/persona/index.js +1 -1
- package/dist/persona/model.js +1 -1
- package/dist/persona/persona-audit.spec.js +1 -1
- package/dist/persona/types.d.ts +6 -0
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/game-theory.d.ts +2 -2
- package/dist/playbooks/service-build/intent-analyzer.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.d.ts +50 -23
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/migration-planner.d.ts +2 -0
- package/dist/playbooks/service-build/migration-planner.js +1 -1
- package/dist/playbooks/service-build/mode-actions.js +1 -1
- package/dist/playbooks/service-build/object-panorama.d.ts +8 -0
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/playbooks/service-build/relationship-profile.js +1 -1
- package/dist/playbooks/service-build/reverse-mapping.d.ts +6 -0
- package/dist/playbooks/service-build/reverse-mapping.js +1 -1
- package/dist/playbooks/service-build/service-panorama.d.ts +1 -0
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/service-quote.js +1 -1
- package/dist/playbooks/service-build/service-quote.spec.js +1 -1
- package/dist/playbooks/service-build/workflow-design-assessment.d.ts +10 -1
- package/dist/playbooks/service-build/workflow-design-assessment.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/review/repository.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +104 -0
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/allocation.d.ts +15 -6
- package/dist/schema/call/allocation.js +1 -1
- package/dist/schema/call/base.d.ts +256 -0
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +32 -6
- package/dist/schema/call/demand.d.ts +15 -6
- package/dist/schema/call/demand.js +1 -1
- package/dist/schema/call/guard.d.ts +8 -8
- package/dist/schema/call/guard.js +1 -1
- package/dist/schema/call/handler.d.ts +3 -0
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +32 -8
- package/dist/schema/call/machine.js +1 -1
- package/dist/schema/call/order.d.ts +26 -8
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/payment.d.ts +20 -8
- package/dist/schema/call/payment.js +1 -1
- package/dist/schema/call/permission-handler.js +1 -1
- package/dist/schema/call/permission.d.ts +330 -114
- package/dist/schema/call/permission.js +1 -1
- package/dist/schema/call/personal.d.ts +10 -4
- package/dist/schema/call/personal.js +1 -1
- package/dist/schema/call/progress.d.ts +16 -4
- package/dist/schema/call/proof.js +1 -1
- package/dist/schema/call/reward.d.ts +10 -4
- package/dist/schema/call/reward.js +1 -1
- package/dist/schema/call/semantic.d.ts +1 -0
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +143 -45
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/call/treasury.d.ts +15 -6
- package/dist/schema/call/treasury.js +1 -1
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/config/index.d.ts +61 -0
- package/dist/schema/config/index.js +1 -1
- package/dist/schema/envelope-unify.d.ts +4 -0
- package/dist/schema/envelope-unify.js +1 -0
- package/dist/schema/evaluation/index.d.ts +216 -19
- package/dist/schema/evaluation/index.js +1 -1
- package/dist/schema/goal/index.d.ts +47 -0
- package/dist/schema/goal/planning.d.ts +115 -1
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +137 -6
- package/dist/schema/industry-pack/index.js +1 -1
- package/dist/schema/industry-pack/modes.d.ts +6 -6
- package/dist/schema/keeper/index.d.ts +26 -0
- package/dist/schema/local/index.d.ts +137 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/local/wip.d.ts +6 -0
- package/dist/schema/local/wip.js +1 -1
- package/dist/schema/messenger/index.d.ts +26 -0
- package/dist/schema/operations.d.ts +345 -84
- package/dist/schema/operations.js +1 -1
- package/dist/schema/persona/index.d.ts +2907 -640
- package/dist/schema/persona/index.js +1 -1
- package/dist/schema/query/bi.d.ts +145 -4
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +266 -73
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +1 -1
- package/dist/schema/schema-query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/utils/permission-machine-check.d.ts +2 -0
- package/dist/schema/utils/permission-machine-check.js +1 -1
- package/dist/schema/watch/index.d.ts +16 -0
- package/dist/schema/watch/index.js +1 -1
- package/dist/schema/workflow/index.d.ts +2 -2
- package/dist/schema/workflow/index.js +1 -1
- package/dist/schema-query-impl/index.d.ts +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +94 -0
- package/dist/schemas/benchmark_migration_operation.output.json +338 -9
- package/dist/schemas/benchmark_migration_operation.schema.json +27 -2
- package/dist/schemas/bridge_operation.output.json +94 -0
- package/dist/schemas/config_operation.output.json +352 -0
- package/dist/schemas/config_operation.schema.json +20 -2
- package/dist/schemas/evaluation_operation.output.json +570 -4
- package/dist/schemas/evaluation_operation.schema.json +194 -3
- package/dist/schemas/goal_operation.schema.json +183 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/industry_pack_operation.output.json +621 -0
- package/dist/schemas/industry_pack_operation.schema.json +20 -2
- package/dist/schemas/keeper_operation.output.json +94 -0
- package/dist/schemas/local_cache_operation.output.json +94 -0
- package/dist/schemas/local_history_operation.output.json +94 -0
- package/dist/schemas/local_info_operation.output.json +94 -0
- package/dist/schemas/local_mark_operation.output.json +94 -0
- package/dist/schemas/messenger_operation.output.json +94 -0
- package/dist/schemas/monitor_events.output.json +94 -0
- package/dist/schemas/monitor_subscription.output.json +94 -0
- package/dist/schemas/onchain_events.output.json +94 -0
- package/dist/schemas/onchain_operations.output.json +313 -1
- package/dist/schemas/onchain_operations.schema.json +1265 -671
- package/dist/schemas/onchain_operations_allocation.schema.json +30 -15
- package/dist/schemas/onchain_operations_arbitration.schema.json +9 -2
- package/dist/schemas/onchain_operations_contact.schema.json +8 -1
- package/dist/schemas/onchain_operations_demand.schema.json +29 -14
- package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -1
- package/dist/schemas/onchain_operations_guard.schema.json +290 -105
- package/dist/schemas/onchain_operations_machine.schema.json +49 -34
- package/dist/schemas/onchain_operations_order.schema.json +63 -40
- package/dist/schemas/onchain_operations_payment.schema.json +26 -11
- package/dist/schemas/onchain_operations_permission.schema.json +362 -235
- package/dist/schemas/onchain_operations_personal.schema.json +27 -15
- package/dist/schemas/onchain_operations_progress.schema.json +45 -30
- package/dist/schemas/onchain_operations_proof.schema.json +9 -2
- package/dist/schemas/onchain_operations_repository.schema.json +8 -1
- package/dist/schemas/onchain_operations_reward.schema.json +32 -17
- package/dist/schemas/onchain_operations_service.schema.json +232 -125
- package/dist/schemas/onchain_operations_treasury.schema.json +32 -17
- package/dist/schemas/onchain_table_data.output.json +258 -6
- package/dist/schemas/onchain_table_data.schema.json +92 -52
- package/dist/schemas/persona_operation.output.json +7752 -0
- package/dist/schemas/persona_operation.schema.json +1232 -4
- package/dist/schemas/query_toolkit.output.json +756 -116
- package/dist/schemas/query_toolkit.schema.json +138 -7
- package/dist/schemas/schema_query.schema.json +1 -1
- package/dist/schemas/watch_operation.output.json +83 -0
- package/dist/schemas/wip_file.output.json +8 -0
- package/dist/schemas/workflow_operation.schema.json +2 -2
- package/dist/tools/handlers/benchmark-migration.d.ts +20 -3
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/evaluation.js +1 -1
- package/dist/tools/handlers/evaluation.spec.js +1 -1
- package/dist/tools/handlers/industry-pack.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +30 -0
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/persona.js +1 -1
- package/dist/tools/handlers/query.d.ts +8 -0
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/winner-derivation.d.ts +20 -0
- package/dist/tools/handlers/winner-derivation.js +1 -0
- package/dist/tools/handlers/wip-upload.js +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/config.js +1 -1
- package/dist/tools/registry/evaluation.js +1 -1
- package/dist/tools/registry/identity.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/transport-integrity.d.ts +7 -0
- package/dist/tools/transport-integrity.js +1 -0
- package/dist/tools/upgrade-check.js +1 -1
- package/dist/tools/wrap.d.ts +5 -0
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
- package/dist/extensions/business-modules.d.ts +0 -54
- package/dist/extensions/business-modules.js +0 -1
- package/dist/schemas/guard-templates.json +0 -379
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from'zod';import{WithPermissionObjectSchema,NamedObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{MachineNodeSchema,MachineForwardSchema}from'../query/index.js';import{ManyAccountOrMark_AddressSchema,NameOrAddressSchema,NameSchema,NotEmptyNameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS,DescriptionSchema,EntrypointSchema}from'../common/index.js';function gateNumber(a){if(a===null||a===undefined||a==='')return 0x0;const b=Number(a);return Number['isFinite'](b)?b:null;}export function machinePublishGateViolation(a){if(!Array['isArray'](a)||a['length']===0x0)return'The\x20Machine\x20has\x20no\x20nodes,\x20so\x20it\x20cannot\x20be\x20published\x20(E_EMPTY_MACHINE).\x20'+'Publish\x20validates\x20the\x20whole\x20graph:\x20add\x20at\x20least\x20one\x20node,\x20including\x20the\x20first\x20node\x20carrying\x20the\x20'+'entry\x20pair\x20(prev_node:\x20\x22\x22)\x20that\x20Progress\x20starts\x20from\x20—\x20send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20'+'(bReplace:true,\x20or\x20op:\x22set\x22),\x20because\x20the\x20graph\x20is\x20frozen\x20the\x20moment\x20publish\x20succeeds.';const b=a,c=new Set(b['map'](e=>e?.['name'])['filter'](e=>typeof e==='string'));let d=![];for(const e of b){const f=Array['isArray'](e?.['pairs'])?e['pairs']:[],g=typeof e?.['name']==='string'?e['name']:'<unnamed\x20node>';for(const h of f){const i=typeof h?.['prev_node']==='string'?h['prev_node']:null,j=Array['isArray'](h?.['forwards'])?h['forwards']:[];if(i===''){if(j['length']===0x0)return'The\x20entry\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20(prev_node:\x20\x22\x22)\x20carries\x20no\x20forward\x20(E_EMPTY_ENTRY_PAIR).\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20\x22\x22\x20and\x20can\x20only\x20leave\x20it\x20through\x20an\x20entry\x20forward,\x20so\x20'+'every\x20order\x20on\x20this\x20Machine\x20would\x20be\x20stuck\x20forever.\x20Add\x20at\x20least\x20one\x20forward\x20to\x20that\x20pair.\x20Do\x20NOT\x20'+'delete\x20the\x20entry\x20pair\x20to\x20silence\x20this\x20—\x20a\x20Machine\x20with\x20no\x20entry\x20edge\x20fails\x20the\x20sibling\x20check\x20instead\x20'+'(E_NO_ENTRY_EDGE).';d=!![];}else{if(i!==null&&!c['has'](i))return'The\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20declares\x20prev_node\x20\x22'+i+'\x22,\x20which\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine\x20'+'(E_EDGE_SOURCE_NOT_FOUND)\x20—\x20that\x20edge\x20is\x20unreachable\x20and\x20its\x20source\x20node\x20can\x20never\x20be\x20entered.\x20'+'Fix\x20the\x20name,\x20or\x20add\x20the\x20missing\x20source\x20node.\x20Mind\x20the\x20direction\x20convention:\x20the\x20pair\x20belongs\x20to\x20'+'the\x20node\x20being\x20advanced\x20INTO,\x20with\x20prev_node\x20naming\x20the\x20node\x20it\x20comes\x20from\x20(the\x20entry\x20edge\x20is\x20the\x20'+'one\x20with\x20the\x20EMPTY\x20prev_node).\x20Export\x20the\x20current\x20graph\x20with\x20machineNode2file\x20before\x20editing.';}let k=0x0;for(const m of j){const n=m?.['namedOperator']!==undefined&&m?.['namedOperator']!==null,o=m?.['permissionIndex']!==undefined&&m?.['permissionIndex']!==null;if(!n&&!o)return'Forward\x20\x22'+(m?.['name']??'<unnamed>')+'\x22\x20of\x20node\x20\x22'+g+'\x22\x20names\x20no\x20operator\x20'+'(E_FORWARD_NO_IDENTITY),\x20so\x20nobody\x20can\x20be\x20authorized\x20to\x20execute\x20it\x20and\x20the\x20Machine\x20cannot\x20be\x20'+'published.\x20Set\x20namedOperator\x20(use\x20\x22\x22\x20for\x20the\x20order\x20payer,\x20or\x20a\x20Progress\x20operator\x20namespace)\x20or\x20'+'permissionIndex\x20(a\x20USER_DEFINED\x20index\x20>=\x201000).\x20A\x20guard\x20does\x20NOT\x20satisfy\x20this:\x20it\x20is\x20a\x20'+'post-verification\x20check,\x20not\x20an\x20identity.';const p=gateNumber(m?.['weight']);if(p!==null)k+=p;}const l=gateNumber(h?.['threshold']);if(l!==null&&k<l){const q=i===''?'entry\x20->\x20'+g:i+'\x20->\x20'+g;return'Pair\x20('+q+')\x20can\x20never\x20migrate:\x20its\x20threshold\x20('+l+')\x20is\x20greater\x20than\x20the\x20sum\x20of\x20its\x20'+('forward\x20weights\x20('+k+')\x20(E_UNREACHABLE_THRESHOLD).\x20Each\x20forward\x20contributes\x20its\x20weight\x20AT\x20')+'MOST\x20ONCE\x20—\x20it\x20is\x20locked\x20by\x20the\x20first\x20operator\x20who\x20accomplishes\x20it,\x20and\x20a\x20second\x20operator\x20re-running\x20'+'it\x20aborts\x20E_NOT_THE_HOLDER\x20—\x20so\x20the\x20reachable\x20maximum\x20is\x20the\x20sum\x20of\x20the\x20DISTINCT\x20forward\x20weights.\x20'+'Lower\x20the\x20threshold,\x20or\x20add\x20one\x20distinct\x20forward\x20per\x20contributing\x20operator\x20(threshold\x202\x20->\x20begin_a\x20+\x20'+'begin_b,\x20each\x20weight\x201).\x20Never\x20try\x20to\x20reach\x20a\x20high\x20threshold\x20by\x20re-running\x20one\x20forward\x20repeatedly.';}}}if(!d)return'The\x20Machine\x20has\x20no\x20entry\x20edge\x20(E_NO_ENTRY_EDGE)\x20—\x20no\x20node\x20declares\x20a\x20pair\x20with\x20prev_node:\x20\x22\x22,\x20so\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20and\x20has\x20no\x20edge\x20to\x20advance\x20on.\x20Add\x20the\x20entry\x20pair\x20to\x20your\x20'+'first\x20node:\x20pairs:[{prev_node:\x22\x22,\x20forwards:[{name:\x22start\x22,\x20weight:1,\x20namedOperator:\x22\x22}]}].\x20The\x20fix\x20must\x20'+'land\x20BEFORE\x20publish\x20—\x20machineNode2file\x20exports\x20the\x20current\x20graph\x20so\x20you\x20can\x20diff\x20it\x20against\x20the\x20fixed\x20one.';return null;}function validateEntryForward(a){for(const b of a){if(!b['pairs'])continue;for(const c of b['pairs']){if(c['prev_node']==='')return!![];}}return![];}const ENTRY_FORWARD_ERROR_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\x27Subscribed\x27,\x20pairs:\x20[{prev_node:\x20\x27\x27,\x20forwards:\x20[{name:\x20\x27Subscribe\x27,\x20weight:\x201}]}]}';export const ProgressNamedOperatorSchema=z['object']({'op':z['union']([z['literal']('add'),z['literal']('set'),z['literal']('remove')]),'name':NotEmptyNameSchema,'operators':ManyAccountOrMark_AddressSchema})['strict']();export const ProgressNewSchema=z['object']({'task':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Task\x20bound\x20to\x20the\x20Progress\x20object.\x20It\x20is\x20an\x20object\x20ID\x20or\x20name'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20Progress\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'progress_namedOperator':ProgressNamedOperatorSchema['optional']()['describe']('Add,\x20set,\x20and\x20remove\x20operators\x20for\x20the\x20permission\x20namespace\x20of\x20the\x20Progress\x20object.'),'namedNew':NamedObjectSchema['optional']()})['strict']();export const NodeAddForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward':z['array'](MachineForwardSchema)['describe']('List\x20of\x20operations\x20between\x20the\x20previous\x20and\x20next\x20nodes.'),'threshold':z['union']([z['number']()['int']()['min'](0x0),z['null']()])['optional']()['describe']('Threshold\x20of\x20operations\x20that\x20need\x20to\x20be\x20completed\x20to\x20migrate\x20from\x20the\x20previous\x20node\x20to\x20the\x20next\x20node.')})['strict']();export const NodeRemoveForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward_name':z['array'](NameSchema)['describe']('List\x20of\x20operation\x20names\x20to\x20delete.')})['strict']();export const NodeRemovePriorNodeDataSchema=z['object']({'prior_node_name':z['array'](NameSchema)['describe']('List\x20of\x20previous\x20node\x20names\x20to\x20delete.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.')})['strict']();export const NodeSchema=z['discriminatedUnion']('op',[z['object']({'op':z['literal']('add'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20or\x20set.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Add\x20nodes.'),z['object']({'op':z['literal']('set'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20or\x20set.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Set\x20nodes.'),z['object']({'op':z['literal']('remove'),'nodes':z['array'](NameSchema)['describe']('List\x20of\x20node\x20names\x20to\x20delete.')})['strict']()['describe']('Delete\x20nodes.'),z['object']({'op':z['literal']('clear')})['strict']()['describe']('Clear\x20all\x20nodes.'),z['object']({'op':z['literal']('exchange'),'node_one':NameSchema['describe']('Name\x20of\x20the\x20first\x20node.'),'node_other':NameSchema['describe']('Name\x20of\x20the\x20second\x20node.')})['strict']()['describe']('Exchange\x20the\x20positions\x20of\x20two\x20nodes.'),z['object']({'op':z['literal']('rename'),'node_name_old':NameSchema['describe']('Name\x20of\x20thenode.'),'node_name_new':NameSchema['describe']('New\x20name\x20of\x20the\x20node.')})['strict']()['describe']('Rename\x20node.'),z['object']({'op':z['literal']('remove\x20prior\x20node'),'pairs':z['array'](NodeRemovePriorNodeDataSchema)['describe']('List\x20of\x20previous-next\x20node\x20pairs\x20to\x20delete.')})['strict']()['describe']('Delete\x20previous-next\x20node\x20pairs.'),z['object']({'op':z['literal']('add\x20forward'),'data':z['array'](NodeAddForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20add.')})['strict']()['describe']('Add\x20operations.'),z['object']({'op':z['literal']('remove\x20forward'),'data':z['array'](NodeRemoveForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20delete.')})['strict']()['describe']('Delete\x20operations.')])['superRefine']((a,b)=>{(a['op']==='add'||a['op']==='set')&&a['bReplace']===!![]&&(!validateEntryForward(a['nodes'])&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':ENTRY_FORWARD_ERROR_MESSAGE}));});export const NodeJsonOrMarkdownFileSchema=z['object']({'json_or_markdown_file':z['string']()['describe']('Path\x20to\x20a\x20JSON\x20or\x20Markdown\x20file\x20containing\x20node\x20array\x20for\x20COMPLETE\x20REPLACEMENT\x20of\x20all\x20nodes.\x0a\x0a**File\x20Format\x20Requirements:**\x0a-\x20Must\x20contain\x20a\x20JSON\x20ARRAY\x20of\x20node\x20objects:\x20[{\x22name\x22:\x20\x22...\x22,\x20\x22pairs\x22:\x20[...]},\x20{...}]\x0a-\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field\x20(use\x20NodeSchema\x20for\x20operations)\x0a-\x20Supports\x20JSON\x20or\x20Markdown\x20(with\x20```json\x20code\x20blocks)\x0a\x0a**Node\x20Structure:**\x0aEach\x20node\x20is\x20a\x20directed\x20graph\x20element\x20representing\x20a\x20workflow\x20STATE\x20that\x20an\x20order\x0acan\x20rest\x20in.\x20Its\x20Pairs\x20are\x20the\x20INCOMING\x20edges\x20—\x20this\x20is\x20the\x20one\x20convention\x20the\x0achain\x20enforces,\x20and\x20getting\x20it\x20backwards\x20silently\x20builds\x20a\x20wrong\x20graph:\x0a-\x20name:\x20Node\x20identifier\x20—\x20the\x20DESTINATION\x20of\x20every\x20pair\x20it\x20owns\x0a-\x20role:\x20(optional)\x20business\x20role\x20tag\x20for\x20display\x20layers\x20—\x20one\x20of\x20draft/active/delivered/final/cancelled.\x20SESSION\x20METADATA\x20ONLY\x20(not\x20stored\x20on-chain;\x20echoed\x20back\x20as\x20a\x20NODE\x20ROLES\x20warning)\x0a-\x20pairs:\x20Array\x20of\x20{prev_node,\x20forwards,\x20threshold}\x20—\x20edges\x20ENTERING\x20this\x20node.\x20The\x20key\x20is\x20`prev_node`;\x20`prior_node`\x20is\x20not\x20recognized\x20and\x20is\x20silently\x20dropped.\x0a-\x20forwards:\x20Operations\x20that\x20advance\x20INTO\x20this\x20node\x20FROM\x20its\x20prev_node\x20(NOT\x20operations\x20available\x20from\x20this\x20node)\x0a-\x20threshold:\x20Weight\x20required\x20to\x20migrate\x20into\x20this\x20node\x20along\x20that\x20pair\x0a\x0aDiagram\x20`A\x20--[Go]-->\x20B`\x20therefore\x20lives\x20in\x20node\x20**B**:\x20{name:\x22B\x22,\x20pairs:[{prev_node:\x22A\x22,\x20forwards:[{name:\x22Go\x22,\x20weight:1}]}]}.\x0a\x0a**Forward\x20names\x20must\x20determine\x20the\x20destination.**\x20`next_node`\x20is\x20a\x20CALLER\x20argument\x0aand\x20the\x20chain\x20resolves\x20(current,\x20next_node,\x20forward)\x20inside\x20the\x0adestination\x20node,\x20so\x20one\x20forward\x20name\x20shared\x20by\x20two\x20destinations\x0afrom\x20the\x20same\x20prev_node\x20is\x20legal\x20and\x20lets\x20the\x20caller\x20pick\x20the\x20outcome\x20—\x20including\x0awhether\x20a\x20refund\x20Allocator\x20ever\x20fires.\x20Give\x20each\x20destination\x20its\x20own\x20forward\x20name.\x0a\x0a**Behavior:**\x0a-\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes\x20(equivalent\x20to\x20\x22set\x22\x20with\x20bReplace=true)\x0a-\x20Auto-detects\x20format\x20based\x20on\x20file\x20content\x0a-\x20If\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information')})['strict']();export const NodeFieldSchema=z['union']([NodeSchema,NodeJsonOrMarkdownFileSchema]);export const CallMachine_DataSchema=z['object']({'object':WithPermissionObjectSchema,'progress_new':ProgressNewSchema['optional']()['describe']('Generate\x20new\x20Progress\x20object.'),'description':DescriptionSchema['optional']()['describe']('Description\x20of\x20the\x20object.'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'node':NodeFieldSchema['optional']()['describe']('CRITICAL:\x20Choose\x20ONE\x20of\x20two\x20mutually\x20exclusive\x20modes:\x0a\x0a**Mode\x201:\x20NodeSchema\x20(incremental\x20operations)**\x0aUse\x20for\x20partial\x20modifications:\x20add,\x20set,\x20remove,\x20clear,\x20exchange,\x20rename,\x20remove\x20prior\x20node,\x20add\x20forward,\x20remove\x20forward.\x0aFormat:\x20{\x20\x22op\x22:\x20\x22add\x22,\x20\x22nodes\x22:\x20[...],\x20\x22bReplace\x22:\x20false\x20}\x0aThis\x20mode\x20modifies\x20existing\x20nodes\x20incrementally.\x0a\x0a**Mode\x202:\x20NodeJsonOrMarkdownFileSchema\x20(complete\x20replacement)**\x0aUse\x20for\x20complete\x20node\x20redefinition\x20from\x20file.\x0aFormat:\x20{\x20\x22json_or_markdown_file\x22:\x20\x22/path/to/nodes.json\x22\x20}\x0aIMPORTANT:\x20This\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes.\x20File\x20must\x20contain\x20node\x20array\x20[{...},\x20{...}],\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field.\x0aSupported\x20formats:\x20JSON\x20array\x20or\x20Markdown\x20with\x20code\x20blocks.\x0aIf\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information.'),'pause':z['boolean']()['optional']()['describe']('Whether\x20to\x20pause\x20generating\x20new\x20Progress\x20objects.\x20Chain\x20truth\x20(the\x20progress-generation\x20entry\x20asserts\x20!bPaused):\x20the\x20pause\x20gates\x20NEW\x20order\x20entry\x20only\x20—\x20in-flight\x20Progress\x20keeps\x20advancing\x20and\x20settling\x20(yfd-ln\x20F-13\x20misread\x20this\x20as\x20a\x20freeze\x20switch;\x20it\x20never\x20was\x20one).'),'publish':z['boolean']()['optional']()['describe']('Whether\x20to\x20publish\x20the\x20object.\x20After\x20the\x20object\x20is\x20published,\x20new\x20Progress\x20objects\x20can\x20be\x20generated;\x20and\x20node\x20settings\x20will\x20no\x20longer\x20be\x20changeable.\x20⚠️\x20PUBLISH\x20IS\x20A\x20ONE-WAY\x20DOOR\x20AND\x20THE\x20CHAIN\x20VALIDATES\x20THE\x20WHOLE\x20GRAPH\x20AT\x20THAT\x20MOMENT:\x20the\x20on-chain\x20publish\x20gate\x20rejects\x20a\x20Machine\x20that\x20is\x20empty,\x20has\x20no\x20entry\x20edge\x20(no\x20pair\x20with\x20prev_node:\x22\x22),\x20has\x20an\x20entry\x20pair\x20with\x20no\x20forward,\x20references\x20a\x20prev_node\x20that\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine,\x20carries\x20a\x20forward\x20with\x20neither\x20namedOperator\x20nor\x20permissionIndex\x20(a\x20guard\x20is\x20NOT\x20an\x20identity),\x20or\x20has\x20a\x20pair\x20whose\x20threshold\x20exceeds\x20the\x20sum\x20of\x20its\x20forward\x20weights\x20(each\x20forward\x20counts\x20at\x20most\x20once).\x20These\x20aborts\x20(machine:17-22)\x20fire\x20BEFORE\x20the\x20publish\x20lands,\x20so\x20the\x20graph\x20is\x20still\x20editable\x20—\x20but\x20after\x20it\x20succeeds,\x20nodes/forwards,\x20Guard\x20bindings\x20and\x20Service.machine\x20are\x20frozen\x20forever,\x20and\x20a\x20broken\x20graph\x20would\x20only\x20surface\x20at\x20the\x20first\x20transition\x20with\x20no\x20repair\x20path.\x20Send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20(bReplace:true\x20or\x20op:\x22set\x22)\x20so\x20the\x20complete\x20graph\x20is\x20validated\x20together.\x20⚠️\x20Before\x20publishing,\x20enumerate\x20the\x20graph\x20STOP\x20NODES\x20(nodes\x20with\x20no\x20outgoing\x20Pair)\x20plus\x20every\x20waiting\x20state\x20(review\x20window,\x20handover,\x20open\x20dispute)\x20and\x20verify\x20each\x20has\x20a\x20defined\x20fund\x20exit\x20in\x20the\x20Service\x20order_allocators\x20—\x20withdrawal\x20(release)\x20AND\x20refund.\x20Machine\x20+\x20Allocator\x20are\x20immutable\x20after\x20publish\x20(IMMUT-001);\x20an\x20uncovered\x20stop\x20node\x20strands\x20funds\x20permanently\x20(rule\x20R-M5-03,\x20checklist\x20pattern.fund_flow_stop_node_coverage).\x20⚠️\x20REBUILD\x20COST\x20DISCLOSURE\x20(S12-②,\x20ksk4\x20F-01):\x20every\x20business\x20constant\x20you\x20bake\x20into\x20this\x20graph\x20(campaign\x20deadline,\x20goal,\x20windows,\x20schedules)\x20becomes\x20immutable\x20WITH\x20the\x20machine.\x20Changing\x20even\x20ONE\x20constant\x20after\x20publish\x20requires:\x20new\x20guard\x20→\x20clone\x20the\x20whole\x20node\x20graph\x20into\x20a\x20NEW\x20machine\x20→\x20publish\x20→\x20a\x20NEW\x20Service\x20→\x20re-hang\x20every\x20repository/reward/arbitration/allocator/WIP\x20→\x20republish\x20(≈5\x20txs\x20/\x20~1\x20min\x20measured\x20on\x20a\x2016-node\x20graph),\x20and\x20in-flight\x20orders\x20stay\x20pointed\x20at\x20the\x20OLD\x20machine\x20forever.\x20THIS\x20OPERATION\x20WILL\x20REQUIRE\x20A\x20NEW\x20SERVICE\x20if\x20any\x20baked-in\x20parameter\x20later\x20changes\x20—\x20finalize\x20mutable\x20business\x20parameters\x20BEFORE\x20publishing\x20(Campaign-structure\x20change\x20is\x20protocol-train\x20scoped;\x20the\x20MCP\x20face\x20cannot\x20patch\x20a\x20published\x20machine).'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Machine\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20its\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'um':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Contact\x20object\x20ID\x20or\x20name.'),'reentry_kind':z['enum'](['none','review-loop','paid-cycle'])['optional']()['describe']('AP-3\x20loop-semantics\x20declaration\x20for\x20the\x20publish\x20audit\x20(ctra\x20F-06\x20root\x20cure):\x20overrides\x20the\x20'+'word-stem\x20loop\x20classifier\x20when\x20the\x20node\x20graph\x20contains\x20a\x20cycle.\x20'+'\x27none\x27\x20=\x20default\x20(word-stem\x20classification)\x20/\x20\x27review-loop\x27\x20=\x20same-order\x20no-charge\x20revisits\x20/\x20'+'\x27paid-cycle\x27\x20=\x20per-revisit\x20fee,\x20fund\x20gate\x20required.\x20'+'MCP-side\x20audit\x20declaration\x20ONLY\x20(pre_publish\x20harness\x20hook)\x20—\x20never\x20sent\x20on-chain;\x20the\x20handler\x20strips\x20it\x20'+'before\x20the\x20SDK\x20call.\x20Mirror\x20of\x20the\x20template\x20frontmatter\x20twin\x20(template-loader).')})['strict']()['superRefine']((a,b)=>{if(a['publish']!==!![])return;const c=a['node'];if(!c||'json_or_markdown_file'in c)return;if(c['op']!=='add'&&c['op']!=='set')return;const d=typeof a['object']==='object'&&a['object']!==null;if(!d&&c['bReplace']!==!![])return;if(!Array['isArray'](c['nodes'])||c['nodes']['length']===0x0||typeof c['nodes'][0x0]!=='object')return;const e=machinePublishGateViolation(c['nodes']);e&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':e});})['describe']('On-chain\x20Machine\x20operations.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20permission,\x20...}\x20to\x20create\x20a\x20Machine.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20\x27permission\x27\x20can\x20be\x20a\x20new\x20Permission\x20object\x20or\x20reference\x20an\x20existing\x20one\x20-\x20check\x20\x27object\x27\x20field\x20description\x20for\x20details.\x20(2)\x20OPERATE\x20EXISTING:\x20Set\x20\x27object\x27\x20field\x20with\x20STRING\x20format\x20(object\x20ID\x20or\x20name).\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED\x20in\x20both\x20cases.\x20STRING\x20for\x20existing,\x20OBJECT\x20for\x20new\x20creation.');export const CallMachine_InputSchema=z['object']({'data':CallMachine_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();export const MachineNode2File_InputSchema=z['object']({'machine':NameOrAddressSchema['describe']('Machine\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['optional']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative).\x20Defaults\x20to\x20the\x20workspace\x20directory\x20when\x20omitted.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'network':EntrypointSchema['optional']()['describe']('Network\x20to\x20read\x20the\x20Machine\x20from:\x20\x27localnet\x27\x20|\x20\x27mainnet\x27\x20|\x20\x27testnet\x27.\x20If\x20omitted,\x20the\x20SDK\x27s\x20current\x20default\x20network\x20is\x20used\x20(check\x20via\x20wowok_buildin_info\x20info=\x27current\x20network\x27);\x20the\x20response\x20echoes\x20the\x20resolved\x20network\x20so\x20an\x20export\x20can\x20never\x20be\x20silently\x20read\x20from\x20the\x20wrong\x20chain\x20(klook\x20B-4:\x20an\x20un-networked\x20\x27not\x20found\x20on\x20chain\x27\x20was\x20actually\x20a\x20testnet\x20read\x20of\x20a\x20localnet\x20object).'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Machine\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20node\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Machine\x20objects.');export const MachineNode2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'machine_object':NameOrAddressSchema['describe']('Machine\x20object\x20ID'),'node_count':z['number']()['describe']('Number\x20of\x20nodes\x20exported'),'network':z['string']()['describe']('Network\x20the\x20Machine\x20was\x20READ\x20from\x20(resolved\x20—\x20the\x20SDK\x20default\x20when\x20the\x20input\x20omitted\x20\x27network\x27)')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('MachineNode2File\x20operation\x20output');export const MachineNode2File_OutputWrappedSchema=z['object']({'result':MachineNode2File_OutputSchema})['strict']()['describe']('MachineNode2File\x20operation\x20output\x20wrapped\x20schema');
|
|
1
|
+
import{z}from'zod';import{WithPermissionObjectSchema,NamedObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{MachineNodeSchema,MachineForwardSchema}from'../query/index.js';import{ManyAccountOrMark_AddressAISchema,NameOrAddressSchema,NameSchema,NotEmptyNameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS,DescriptionSchema,EntrypointSchema}from'../common/index.js';function gateNumber(a){if(a===null||a===undefined||a==='')return 0x0;const b=Number(a);return Number['isFinite'](b)?b:null;}export function machinePublishGateViolation(a){if(!Array['isArray'](a)||a['length']===0x0)return'The\x20Machine\x20has\x20no\x20nodes,\x20so\x20it\x20cannot\x20be\x20published\x20(E_EMPTY_MACHINE).\x20'+'Publish\x20validates\x20the\x20whole\x20graph:\x20add\x20at\x20least\x20one\x20node,\x20including\x20the\x20first\x20node\x20carrying\x20the\x20'+'entry\x20pair\x20(prev_node:\x20\x22\x22)\x20that\x20Progress\x20starts\x20from\x20—\x20send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20'+'(bReplace:true,\x20or\x20op:\x22set\x22),\x20because\x20the\x20graph\x20is\x20frozen\x20the\x20moment\x20publish\x20succeeds.';const b=a,c=new Set(b['map'](e=>e?.['name'])['filter'](e=>typeof e==='string'));let d=![];for(const e of b){const f=Array['isArray'](e?.['pairs'])?e['pairs']:[],g=typeof e?.['name']==='string'?e['name']:'<unnamed\x20node>';for(const h of f){const i=typeof h?.['prev_node']==='string'?h['prev_node']:null,j=Array['isArray'](h?.['forwards'])?h['forwards']:[];if(i===''){if(j['length']===0x0)return'The\x20entry\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20(prev_node:\x20\x22\x22)\x20carries\x20no\x20forward\x20(E_EMPTY_ENTRY_PAIR).\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20\x22\x22\x20and\x20can\x20only\x20leave\x20it\x20through\x20an\x20entry\x20forward,\x20so\x20'+'every\x20order\x20on\x20this\x20Machine\x20would\x20be\x20stuck\x20forever.\x20Add\x20at\x20least\x20one\x20forward\x20to\x20that\x20pair.\x20Do\x20NOT\x20'+'delete\x20the\x20entry\x20pair\x20to\x20silence\x20this\x20—\x20a\x20Machine\x20with\x20no\x20entry\x20edge\x20fails\x20the\x20sibling\x20check\x20instead\x20'+'(E_NO_ENTRY_EDGE).';d=!![];}else{if(i!==null&&!c['has'](i))return'The\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20declares\x20prev_node\x20\x22'+i+'\x22,\x20which\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine\x20'+'(E_EDGE_SOURCE_NOT_FOUND)\x20—\x20that\x20edge\x20is\x20unreachable\x20and\x20its\x20source\x20node\x20can\x20never\x20be\x20entered.\x20'+'Fix\x20the\x20name,\x20or\x20add\x20the\x20missing\x20source\x20node.\x20Mind\x20the\x20direction\x20convention:\x20the\x20pair\x20belongs\x20to\x20'+'the\x20node\x20being\x20advanced\x20INTO,\x20with\x20prev_node\x20naming\x20the\x20node\x20it\x20comes\x20from\x20(the\x20entry\x20edge\x20is\x20the\x20'+'one\x20with\x20the\x20EMPTY\x20prev_node).\x20Export\x20the\x20current\x20graph\x20with\x20machineNode2file\x20before\x20editing.';}let k=0x0;for(const m of j){const n=m?.['namedOperator']!==undefined&&m?.['namedOperator']!==null,o=m?.['permissionIndex']!==undefined&&m?.['permissionIndex']!==null;if(!n&&!o)return'Forward\x20\x22'+(m?.['name']??'<unnamed>')+'\x22\x20of\x20node\x20\x22'+g+'\x22\x20names\x20no\x20operator\x20'+'(E_FORWARD_NO_IDENTITY),\x20so\x20nobody\x20can\x20be\x20authorized\x20to\x20execute\x20it\x20and\x20the\x20Machine\x20cannot\x20be\x20'+'published.\x20Set\x20namedOperator\x20(use\x20\x22\x22\x20for\x20the\x20order\x20payer,\x20or\x20a\x20Progress\x20operator\x20namespace)\x20or\x20'+'permissionIndex\x20(a\x20USER_DEFINED\x20index\x20>=\x201000).\x20A\x20guard\x20does\x20NOT\x20satisfy\x20this:\x20it\x20is\x20a\x20'+'post-verification\x20check,\x20not\x20an\x20identity.';const p=gateNumber(m?.['weight']);if(p!==null)k+=p;}const l=gateNumber(h?.['threshold']);if(l!==null&&k<l){const q=i===''?'entry\x20->\x20'+g:i+'\x20->\x20'+g;return'Pair\x20('+q+')\x20can\x20never\x20migrate:\x20its\x20threshold\x20('+l+')\x20is\x20greater\x20than\x20the\x20sum\x20of\x20its\x20'+('forward\x20weights\x20('+k+')\x20(E_UNREACHABLE_THRESHOLD).\x20Each\x20forward\x20contributes\x20its\x20weight\x20AT\x20')+'MOST\x20ONCE\x20—\x20it\x20is\x20locked\x20by\x20the\x20first\x20operator\x20who\x20accomplishes\x20it,\x20and\x20a\x20second\x20operator\x20re-running\x20'+'it\x20aborts\x20E_NOT_THE_HOLDER\x20—\x20so\x20the\x20reachable\x20maximum\x20is\x20the\x20sum\x20of\x20the\x20DISTINCT\x20forward\x20weights.\x20'+'Lower\x20the\x20threshold,\x20or\x20add\x20one\x20distinct\x20forward\x20per\x20contributing\x20operator\x20(threshold\x202\x20->\x20begin_a\x20+\x20'+'begin_b,\x20each\x20weight\x201).\x20Never\x20try\x20to\x20reach\x20a\x20high\x20threshold\x20by\x20re-running\x20one\x20forward\x20repeatedly.';}}}if(!d)return'The\x20Machine\x20has\x20no\x20entry\x20edge\x20(E_NO_ENTRY_EDGE)\x20—\x20no\x20node\x20declares\x20a\x20pair\x20with\x20prev_node:\x20\x22\x22,\x20so\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20and\x20has\x20no\x20edge\x20to\x20advance\x20on.\x20Add\x20the\x20entry\x20pair\x20to\x20your\x20'+'first\x20node:\x20pairs:[{prev_node:\x22\x22,\x20forwards:[{name:\x22start\x22,\x20weight:1,\x20namedOperator:\x22\x22}]}].\x20The\x20fix\x20must\x20'+'land\x20BEFORE\x20publish\x20—\x20machineNode2file\x20exports\x20the\x20current\x20graph\x20so\x20you\x20can\x20diff\x20it\x20against\x20the\x20fixed\x20one.';return null;}function validateEntryForward(a){for(const b of a){if(!b['pairs'])continue;for(const c of b['pairs']){if(c['prev_node']==='')return!![];}}return![];}const ENTRY_FORWARD_ERROR_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\x27Subscribed\x27,\x20pairs:\x20[{prev_node:\x20\x27\x27,\x20forwards:\x20[{name:\x20\x27Subscribe\x27,\x20weight:\x201}]}]}';export const ProgressNamedOperatorSchema=z['object']({'op':z['union']([z['literal']('add'),z['literal']('set'),z['literal']('remove')]),'name':NotEmptyNameSchema,'operators':ManyAccountOrMark_AddressAISchema})['strict']();export const ProgressNewSchema=z['object']({'task':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Task\x20bound\x20to\x20the\x20Progress\x20object.\x20It\x20is\x20an\x20object\x20ID\x20or\x20name'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20Progress\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'progress_namedOperator':ProgressNamedOperatorSchema['optional']()['describe']('Add,\x20set,\x20and\x20remove\x20operators\x20for\x20the\x20permission\x20namespace\x20of\x20the\x20Progress\x20object.'),'namedNew':NamedObjectSchema['optional']()})['strict']();export const NodeAddForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward':z['array'](MachineForwardSchema)['describe']('List\x20of\x20operations\x20between\x20the\x20previous\x20and\x20next\x20nodes.'),'threshold':z['union']([z['number']()['int']()['min'](0x0),z['null']()])['optional']()['describe']('Threshold\x20of\x20operations\x20that\x20need\x20to\x20be\x20completed\x20to\x20migrate\x20from\x20the\x20previous\x20node\x20to\x20the\x20next\x20node.')})['strict']();export const NodeRemoveForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward_name':z['array'](NameSchema)['describe']('List\x20of\x20operation\x20names\x20to\x20delete.')})['strict']();export const NodeRemovePriorNodeDataSchema=z['object']({'prior_node_name':z['array'](NameSchema)['describe']('List\x20of\x20previous\x20node\x20names\x20to\x20delete.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.')})['strict']();export const NodeSchema=z['discriminatedUnion']('op',[z['object']({'op':z['literal']('add'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20(or\x20replace\x20in\x20place\x20when\x20bReplace=true).'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.\x20This\x20is\x20the\x20ONLY\x20supported\x20way\x20to\x20rewrite\x20nodes\x20on\x20an\x20EXISTING\x20Machine.')})['strict']()['describe']('Add\x20nodes.'),z['object']({'op':z['literal']('set'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20for\x20a\x20freshly\x20CREATED\x20Machine.\x20xk9\x20F-02:\x20REFUSED\x20on\x20an\x20existing\x20Machine\x20—\x20op\x20set\x20implies\x20a\x20clear-and-rewrite\x20of\x20the\x20on-chain\x20node\x20table\x20that\x20permanently\x20corrupts\x20it\x20(E_EMPTY_MACHINE\x20on\x20every\x20later\x20publish,\x20no\x20repair).\x20To\x20rewrite\x20an\x20existing\x20Machine\x20use\x20op:add\x20with\x20bReplace:true.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Set\x20nodes\x20(CREATE-ONLY\x20—\x20refused\x20on\x20an\x20existing\x20Machine;\x20use\x20add+bReplace\x20there).'),z['object']({'op':z['literal']('remove'),'nodes':z['array'](NameSchema)['describe']('List\x20of\x20node\x20names\x20to\x20delete.')})['strict']()['describe']('Delete\x20nodes.'),z['object']({'op':z['literal']('clear')})['strict']()['describe']('Clear\x20all\x20nodes.'),z['object']({'op':z['literal']('exchange'),'node_one':NameSchema['describe']('Name\x20of\x20the\x20first\x20node.'),'node_other':NameSchema['describe']('Name\x20of\x20the\x20second\x20node.')})['strict']()['describe']('Exchange\x20the\x20positions\x20of\x20two\x20nodes.'),z['object']({'op':z['literal']('rename'),'node_name_old':NameSchema['describe']('Name\x20of\x20thenode.'),'node_name_new':NameSchema['describe']('New\x20name\x20of\x20the\x20node.')})['strict']()['describe']('Rename\x20node.'),z['object']({'op':z['literal']('remove\x20prior\x20node'),'pairs':z['array'](NodeRemovePriorNodeDataSchema)['describe']('List\x20of\x20previous-next\x20node\x20pairs\x20to\x20delete.')})['strict']()['describe']('Delete\x20previous-next\x20node\x20pairs.'),z['object']({'op':z['literal']('add\x20forward'),'data':z['array'](NodeAddForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20add.')})['strict']()['describe']('Add\x20operations.'),z['object']({'op':z['literal']('remove\x20forward'),'data':z['array'](NodeRemoveForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20delete.')})['strict']()['describe']('Delete\x20operations.')])['superRefine']((a,b)=>{(a['op']==='add'||a['op']==='set')&&a['bReplace']===!![]&&(!validateEntryForward(a['nodes'])&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':ENTRY_FORWARD_ERROR_MESSAGE}));});export const NodeJsonOrMarkdownFileSchema=z['object']({'json_or_markdown_file':z['string']()['describe']('Path\x20to\x20a\x20JSON\x20or\x20Markdown\x20file\x20containing\x20node\x20array\x20for\x20COMPLETE\x20REPLACEMENT\x20of\x20all\x20nodes.\x0a\x0a**File\x20Format\x20Requirements:**\x0a-\x20Must\x20contain\x20a\x20JSON\x20ARRAY\x20of\x20node\x20objects:\x20[{\x22name\x22:\x20\x22...\x22,\x20\x22pairs\x22:\x20[...]},\x20{...}]\x0a-\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field\x20(use\x20NodeSchema\x20for\x20operations)\x0a-\x20Supports\x20JSON\x20or\x20Markdown\x20(with\x20```json\x20code\x20blocks)\x0a\x0a**Node\x20Structure:**\x0aEach\x20node\x20is\x20a\x20directed\x20graph\x20element\x20representing\x20a\x20workflow\x20STATE\x20that\x20an\x20order\x0acan\x20rest\x20in.\x20Its\x20Pairs\x20are\x20the\x20INCOMING\x20edges\x20—\x20this\x20is\x20the\x20one\x20convention\x20the\x0achain\x20enforces,\x20and\x20getting\x20it\x20backwards\x20silently\x20builds\x20a\x20wrong\x20graph:\x0a-\x20name:\x20Node\x20identifier\x20—\x20the\x20DESTINATION\x20of\x20every\x20pair\x20it\x20owns\x0a-\x20role:\x20(optional)\x20business\x20role\x20tag\x20for\x20display\x20layers\x20—\x20one\x20of\x20draft/active/delivered/final/cancelled.\x20SESSION\x20METADATA\x20ONLY\x20(not\x20stored\x20on-chain;\x20echoed\x20back\x20as\x20a\x20NODE\x20ROLES\x20warning)\x0a-\x20pairs:\x20Array\x20of\x20{prev_node,\x20forwards,\x20threshold}\x20—\x20edges\x20ENTERING\x20this\x20node.\x20The\x20key\x20is\x20`prev_node`;\x20`prior_node`\x20is\x20not\x20recognized\x20and\x20is\x20silently\x20dropped.\x0a-\x20forwards:\x20Operations\x20that\x20advance\x20INTO\x20this\x20node\x20FROM\x20its\x20prev_node\x20(NOT\x20operations\x20available\x20from\x20this\x20node)\x0a-\x20threshold:\x20Weight\x20required\x20to\x20migrate\x20into\x20this\x20node\x20along\x20that\x20pair\x0a\x0aDiagram\x20`A\x20--[Go]-->\x20B`\x20therefore\x20lives\x20in\x20node\x20**B**:\x20{name:\x22B\x22,\x20pairs:[{prev_node:\x22A\x22,\x20forwards:[{name:\x22Go\x22,\x20weight:1}]}]}.\x0a\x0a**Forward\x20names\x20must\x20determine\x20the\x20destination.**\x20`next_node`\x20is\x20a\x20CALLER\x20argument\x0aand\x20the\x20chain\x20resolves\x20(current,\x20next_node,\x20forward)\x20inside\x20the\x0adestination\x20node,\x20so\x20one\x20forward\x20name\x20shared\x20by\x20two\x20destinations\x0afrom\x20the\x20same\x20prev_node\x20is\x20legal\x20and\x20lets\x20the\x20caller\x20pick\x20the\x20outcome\x20—\x20including\x0awhether\x20a\x20refund\x20Allocator\x20ever\x20fires.\x20Give\x20each\x20destination\x20its\x20own\x20forward\x20name.\x0a\x0a**Behavior:**\x0a-\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes\x20(equivalent\x20to\x20\x22set\x22\x20with\x20bReplace=true)\x0a-\x20Auto-detects\x20format\x20based\x20on\x20file\x20content\x0a-\x20If\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information')})['strict']();export const NodeFieldSchema=z['union']([NodeSchema,NodeJsonOrMarkdownFileSchema]);export const CallMachine_DataSchema=z['object']({'object':WithPermissionObjectSchema,'progress_new':ProgressNewSchema['optional']()['describe']('Generate\x20new\x20Progress\x20object.'),'description':DescriptionSchema['optional']()['describe']('Description\x20of\x20the\x20object.'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'node':NodeFieldSchema['optional']()['describe']('CRITICAL:\x20Choose\x20ONE\x20of\x20two\x20mutually\x20exclusive\x20modes:\x0a\x0a**Mode\x201:\x20NodeSchema\x20(incremental\x20operations)**\x0aUse\x20for\x20partial\x20modifications:\x20add,\x20set,\x20remove,\x20clear,\x20exchange,\x20rename,\x20remove\x20prior\x20node,\x20add\x20forward,\x20remove\x20forward.\x0aFormat:\x20{\x20\x22op\x22:\x20\x22add\x22,\x20\x22nodes\x22:\x20[...],\x20\x22bReplace\x22:\x20false\x20}\x0aThis\x20mode\x20modifies\x20existing\x20nodes\x20incrementally.\x0a\x0a**Mode\x202:\x20NodeJsonOrMarkdownFileSchema\x20(complete\x20replacement)**\x0aUse\x20for\x20complete\x20node\x20redefinition\x20from\x20file.\x0aFormat:\x20{\x20\x22json_or_markdown_file\x22:\x20\x22/path/to/nodes.json\x22\x20}\x0aIMPORTANT:\x20This\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes.\x20File\x20must\x20contain\x20node\x20array\x20[{...},\x20{...}],\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field.\x0aSupported\x20formats:\x20JSON\x20array\x20or\x20Markdown\x20with\x20code\x20blocks.\x0aIf\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information.'),'pause':z['boolean']()['optional']()['describe']('Whether\x20to\x20pause\x20generating\x20new\x20Progress\x20objects.\x20Chain\x20truth\x20(the\x20progress-generation\x20entry\x20asserts\x20!bPaused):\x20the\x20pause\x20gates\x20NEW\x20order\x20entry\x20only\x20—\x20in-flight\x20Progress\x20keeps\x20advancing\x20and\x20settling\x20(yfd-ln\x20F-13\x20misread\x20this\x20as\x20a\x20freeze\x20switch;\x20it\x20never\x20was\x20one).'),'publish':z['boolean']()['optional']()['describe']('Whether\x20to\x20publish\x20the\x20object.\x20After\x20the\x20object\x20is\x20published,\x20new\x20Progress\x20objects\x20can\x20be\x20generated;\x20and\x20node\x20settings\x20will\x20no\x20longer\x20be\x20changeable.\x20⚠️\x20PUBLISH\x20IS\x20A\x20ONE-WAY\x20DOOR\x20AND\x20THE\x20CHAIN\x20VALIDATES\x20THE\x20WHOLE\x20GRAPH\x20AT\x20THAT\x20MOMENT:\x20the\x20on-chain\x20publish\x20gate\x20rejects\x20a\x20Machine\x20that\x20is\x20empty,\x20has\x20no\x20entry\x20edge\x20(no\x20pair\x20with\x20prev_node:\x22\x22),\x20has\x20an\x20entry\x20pair\x20with\x20no\x20forward,\x20references\x20a\x20prev_node\x20that\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine,\x20carries\x20a\x20forward\x20with\x20neither\x20namedOperator\x20nor\x20permissionIndex\x20(a\x20guard\x20is\x20NOT\x20an\x20identity),\x20or\x20has\x20a\x20pair\x20whose\x20threshold\x20exceeds\x20the\x20sum\x20of\x20its\x20forward\x20weights\x20(each\x20forward\x20counts\x20at\x20most\x20once).\x20These\x20aborts\x20(machine:17-22)\x20fire\x20BEFORE\x20the\x20publish\x20lands,\x20so\x20the\x20graph\x20is\x20still\x20editable\x20—\x20but\x20after\x20it\x20succeeds,\x20nodes/forwards,\x20Guard\x20bindings\x20and\x20Service.machine\x20are\x20frozen\x20forever,\x20and\x20a\x20broken\x20graph\x20would\x20only\x20surface\x20at\x20the\x20first\x20transition\x20with\x20no\x20repair\x20path.\x20Send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20(bReplace:true\x20or\x20op:\x22set\x22)\x20so\x20the\x20complete\x20graph\x20is\x20validated\x20together.\x20⚠️\x20Before\x20publishing,\x20enumerate\x20the\x20graph\x20STOP\x20NODES\x20(nodes\x20with\x20no\x20outgoing\x20Pair)\x20plus\x20every\x20waiting\x20state\x20(review\x20window,\x20handover,\x20open\x20dispute)\x20and\x20verify\x20each\x20has\x20a\x20defined\x20fund\x20exit\x20in\x20the\x20Service\x20order_allocators\x20—\x20withdrawal\x20(release)\x20AND\x20refund.\x20Machine\x20+\x20Allocator\x20are\x20immutable\x20after\x20publish\x20(IMMUT-001);\x20an\x20uncovered\x20stop\x20node\x20strands\x20funds\x20permanently\x20(rule\x20R-M5-03,\x20checklist\x20pattern.fund_flow_stop_node_coverage).\x20⚠️\x20REBUILD\x20COST\x20DISCLOSURE\x20(S12-②,\x20ksk4\x20F-01):\x20every\x20business\x20constant\x20you\x20bake\x20into\x20this\x20graph\x20(campaign\x20deadline,\x20goal,\x20windows,\x20schedules)\x20becomes\x20immutable\x20WITH\x20the\x20machine.\x20Changing\x20even\x20ONE\x20constant\x20after\x20publish\x20requires:\x20new\x20guard\x20→\x20clone\x20the\x20whole\x20node\x20graph\x20into\x20a\x20NEW\x20machine\x20→\x20publish\x20→\x20a\x20NEW\x20Service\x20→\x20re-hang\x20every\x20repository/reward/arbitration/allocator/WIP\x20→\x20republish\x20(≈5\x20txs\x20/\x20~1\x20min\x20measured\x20on\x20a\x2016-node\x20graph),\x20and\x20in-flight\x20orders\x20stay\x20pointed\x20at\x20the\x20OLD\x20machine\x20forever.\x20THIS\x20OPERATION\x20WILL\x20REQUIRE\x20A\x20NEW\x20SERVICE\x20if\x20any\x20baked-in\x20parameter\x20later\x20changes\x20—\x20finalize\x20mutable\x20business\x20parameters\x20BEFORE\x20publishing\x20(Campaign-structure\x20change\x20is\x20protocol-train\x20scoped;\x20the\x20MCP\x20face\x20cannot\x20patch\x20a\x20published\x20machine).'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Machine\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20its\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'um':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Contact\x20object\x20ID\x20or\x20name.'),'reentry_kind':z['enum'](['none','review-loop','paid-cycle'])['optional']()['describe']('AP-3\x20loop-semantics\x20declaration\x20for\x20the\x20publish\x20audit\x20(ctra\x20F-06\x20root\x20cure):\x20overrides\x20the\x20'+'word-stem\x20loop\x20classifier\x20when\x20the\x20node\x20graph\x20contains\x20a\x20cycle.\x20'+'\x27none\x27\x20=\x20default\x20(word-stem\x20classification)\x20/\x20\x27review-loop\x27\x20=\x20same-order\x20no-charge\x20revisits\x20/\x20'+'\x27paid-cycle\x27\x20=\x20per-revisit\x20fee,\x20fund\x20gate\x20required.\x20'+'MCP-side\x20audit\x20declaration\x20ONLY\x20(pre_publish\x20harness\x20hook)\x20—\x20never\x20sent\x20on-chain;\x20the\x20handler\x20strips\x20it\x20'+'before\x20the\x20SDK\x20call.\x20Mirror\x20of\x20the\x20template\x20frontmatter\x20twin\x20(template-loader).')})['strict']()['superRefine']((a,b)=>{if(a['publish']!==!![])return;const c=a['node'];if(!c||'json_or_markdown_file'in c)return;if(c['op']!=='add'&&c['op']!=='set')return;const d=typeof a['object']==='object'&&a['object']!==null;if(!d&&c['bReplace']!==!![])return;if(!Array['isArray'](c['nodes'])||c['nodes']['length']===0x0||typeof c['nodes'][0x0]!=='object')return;const e=machinePublishGateViolation(c['nodes']);e&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':e});})['describe']('On-chain\x20Machine\x20operations.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20permission,\x20...}\x20to\x20create\x20a\x20Machine.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20\x27permission\x27\x20can\x20be\x20a\x20new\x20Permission\x20object\x20or\x20reference\x20an\x20existing\x20one\x20-\x20check\x20\x27object\x27\x20field\x20description\x20for\x20details.\x20(2)\x20OPERATE\x20EXISTING:\x20Set\x20\x27object\x27\x20field\x20with\x20STRING\x20format\x20(object\x20ID\x20or\x20name).\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED\x20in\x20both\x20cases.\x20STRING\x20for\x20existing,\x20OBJECT\x20for\x20new\x20creation.');export const CallMachine_InputSchema=z['object']({'data':CallMachine_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();export const MachineNode2File_InputSchema=z['object']({'machine':NameOrAddressSchema['describe']('Machine\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['optional']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative).\x20Defaults\x20to\x20the\x20workspace\x20directory\x20when\x20omitted.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'network':EntrypointSchema['optional']()['describe']('Network\x20to\x20read\x20the\x20Machine\x20from:\x20\x27localnet\x27\x20|\x20\x27mainnet\x27\x20|\x20\x27testnet\x27.\x20If\x20omitted,\x20the\x20SDK\x27s\x20current\x20default\x20network\x20is\x20used\x20(check\x20via\x20wowok_buildin_info\x20info=\x27current\x20network\x27);\x20the\x20response\x20echoes\x20the\x20resolved\x20network\x20so\x20an\x20export\x20can\x20never\x20be\x20silently\x20read\x20from\x20the\x20wrong\x20chain\x20(klook\x20B-4:\x20an\x20un-networked\x20\x27not\x20found\x20on\x20chain\x27\x20was\x20actually\x20a\x20testnet\x20read\x20of\x20a\x20localnet\x20object).'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Machine\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20node\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Machine\x20objects.');export const MachineNode2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'machine_object':NameOrAddressSchema['describe']('Machine\x20object\x20ID'),'node_count':z['number']()['describe']('Number\x20of\x20nodes\x20exported'),'network':z['string']()['describe']('Network\x20the\x20Machine\x20was\x20READ\x20from\x20(resolved\x20—\x20the\x20SDK\x20default\x20when\x20the\x20input\x20omitted\x20\x27network\x27)')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('MachineNode2File\x20operation\x20output');export const MachineNode2File_OutputWrappedSchema=z['object']({'result':MachineNode2File_OutputSchema})['strict']()['describe']('MachineNode2File\x20operation\x20output\x20wrapped\x20schema');
|
|
@@ -37,13 +37,19 @@ export declare const OrderRenewSchema: z.ZodObject<{
|
|
|
37
37
|
}, z.core.$strict>;
|
|
38
38
|
export declare const CallOrder_DataSchema: z.ZodObject<{
|
|
39
39
|
object: z.ZodString;
|
|
40
|
-
agent: z.ZodOptional<z.
|
|
40
|
+
agent: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<{
|
|
41
|
+
entities: {
|
|
42
|
+
name_or_address: string;
|
|
43
|
+
local_mark_first: boolean;
|
|
44
|
+
}[];
|
|
45
|
+
check_all_founded: boolean;
|
|
46
|
+
}, string[]>>, z.ZodObject<{
|
|
41
47
|
entities: z.ZodArray<z.ZodObject<{
|
|
42
48
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
43
49
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
44
50
|
}, z.core.$strict>>;
|
|
45
51
|
check_all_founded: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
-
}, z.core.$strict>>;
|
|
52
|
+
}, z.core.$strict>]>>;
|
|
47
53
|
required_info: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
48
54
|
required_info_bind: z.ZodOptional<z.ZodString>;
|
|
49
55
|
progress: z.ZodOptional<z.ZodPreprocess<z.ZodObject<{
|
|
@@ -94,10 +100,13 @@ export declare const CallOrder_DataSchema: z.ZodObject<{
|
|
|
94
100
|
digest: z.ZodOptional<z.ZodString>;
|
|
95
101
|
}, z.core.$strict>>;
|
|
96
102
|
}, z.core.$strict>]>>;
|
|
97
|
-
transfer_to: z.ZodOptional<z.
|
|
103
|
+
transfer_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
|
|
104
|
+
name_or_address: string;
|
|
105
|
+
local_mark_first: boolean;
|
|
106
|
+
}, string>>, z.ZodObject<{
|
|
98
107
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
99
108
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
-
}, z.core.$strict>>;
|
|
109
|
+
}, z.core.$strict>]>>;
|
|
101
110
|
order_renew: z.ZodOptional<z.ZodObject<{
|
|
102
111
|
allocation: z.ZodString;
|
|
103
112
|
type_parameter: z.ZodString;
|
|
@@ -122,13 +131,19 @@ export declare const CallOrder_DataSchema: z.ZodObject<{
|
|
|
122
131
|
export declare const CallOrder_InputSchema: z.ZodObject<{
|
|
123
132
|
data: z.ZodObject<{
|
|
124
133
|
object: z.ZodString;
|
|
125
|
-
agent: z.ZodOptional<z.
|
|
134
|
+
agent: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<{
|
|
135
|
+
entities: {
|
|
136
|
+
name_or_address: string;
|
|
137
|
+
local_mark_first: boolean;
|
|
138
|
+
}[];
|
|
139
|
+
check_all_founded: boolean;
|
|
140
|
+
}, string[]>>, z.ZodObject<{
|
|
126
141
|
entities: z.ZodArray<z.ZodObject<{
|
|
127
142
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
128
143
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
129
144
|
}, z.core.$strict>>;
|
|
130
145
|
check_all_founded: z.ZodDefault<z.ZodBoolean>;
|
|
131
|
-
}, z.core.$strict>>;
|
|
146
|
+
}, z.core.$strict>]>>;
|
|
132
147
|
required_info: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
133
148
|
required_info_bind: z.ZodOptional<z.ZodString>;
|
|
134
149
|
progress: z.ZodOptional<z.ZodPreprocess<z.ZodObject<{
|
|
@@ -179,10 +194,13 @@ export declare const CallOrder_InputSchema: z.ZodObject<{
|
|
|
179
194
|
digest: z.ZodOptional<z.ZodString>;
|
|
180
195
|
}, z.core.$strict>>;
|
|
181
196
|
}, z.core.$strict>]>>;
|
|
182
|
-
transfer_to: z.ZodOptional<z.
|
|
197
|
+
transfer_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
|
|
198
|
+
name_or_address: string;
|
|
199
|
+
local_mark_first: boolean;
|
|
200
|
+
}, string>>, z.ZodObject<{
|
|
183
201
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
184
202
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
185
|
-
}, z.core.$strict>>;
|
|
203
|
+
}, z.core.$strict>]>>;
|
|
186
204
|
order_renew: z.ZodOptional<z.ZodObject<{
|
|
187
205
|
allocation: z.ZodString;
|
|
188
206
|
type_parameter: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from'zod';import{CallEnvSchema,CoinParamSchema,SubmissionCallSchema}from'./base.js';import{OperateSchema,ProgressNextSchema}from'./progress.js';import{AccountOrMark_AddressSchema,DescriptionSchema,LongNameSchema,ManyAccountOrMark_AddressSchema,NameOrAddressSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';import{PaymentInfoSchema}from'../query/index.js';import{TWO_TX_RENEW_RECIPE}from'../../knowledge/protocol-facts.js';export const ArbConfirmSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.'),'confirm':z['boolean']()['describe']('Whether\x20to\x20confirm\x20that\x20the\x20submitted\x20arbitration\x20materials\x20are\x20valid\x20for\x20arbitration.'),'description':DescriptionSchema['optional']()['describe']('Message\x20description\x20for\x20compensation\x20application.'),'proposition':z['array'](LongNameSchema)['optional']()['describe']('Compensation\x20claims.')})['strict']();export const ArbObjectionSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.'),'objection':DescriptionSchema['describe']('Oppose\x20and\x20appeal\x20the\x20arbitration\x20result,\x20request\x20re-arbitration')})['strict']();export const ArbClaimCompensationSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.')})['strict']();export const ArbCaseConcludeSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.')})['strict']();export const OrderRenewSchema=z['object']({'allocation':NameOrAddressSchema['describe']('Allocation\x20object\x20ID\x20or\x20name\x20receiving\x20the\x20renewal\x20funds.'),'type_parameter':z['string']()['describe']('Coin\x20type,\x20e.g.\x20\x220x2::wow::WOW\x22.'),'amount':CoinParamSchema['describe']('Renewal\x20payment.'),'info':PaymentInfoSchema['describe']('PaymentInfo\x20for\x20the\x20new\x20Payment\x20object\x20(remark/index,\x20optional\x20for_object/for_guard).'),'operation':ProgressNextSchema['describe']('Renew\x20forward\x20to\x20advance\x20after\x20the\x20funding\x20lands.'),'message':LongNameSchema['optional']()['describe']('Message\x20attached\x20to\x20the\x20forward\x20advance.')})['strict']();export const CallOrder_DataSchema=z['object']({'object':NameOrAddressSchema['describe']('Order\x20object\x20ID\x20or\x20name.'),'agent':ManyAccountOrMark_AddressSchema['optional']()['describe']('Order\x20agent.\x20Agents\x20can\x20operate\x20the\x20order,\x20such\x20as\x20canceling\x20the\x20order,\x20modifying\x20the\x20order\x20status,\x20etc.;\x20but\x20cannot\x20receive\x20the\x20funds\x20received\x20by\x20the\x20order.'),'required_info':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Credential\x20recorded\x20on\x20the\x20order:\x20the\x20merchant\x27s\x20IM\x20user\x20address\x20resolved\x20from\x20the\x20Service\x27s\x20Contact\x20(zero\x20cost)\x20or\x20a\x20WTS\x20Proof\x20object\x20id\x20(on-chain\x20delivery\x20proof\x20embedding\x20that\x20IM\x20address\x20and\x20timestamp;\x20costs\x20gas).\x20The\x20information\x20itself\x20is\x20delivered\x20via\x20Wowok\x20Messenger.\x20ACCEPTED\x20FORMS\x20(upwc-cat-261017\x20T10\x20live\x20probe):\x20a\x20Contact/Proof\x20object\x20ID\x20(0x…),\x20an\x20account\x20ADDRESS,\x20or\x20a\x20REGISTERED\x20mark\x20name\x20—\x20a\x20bare\x20account\x20display\x20name\x20is\x20not\x20an\x20object\x20reference\x20and\x20fails\x20with\x20\x27not\x20found\x27.\x20WRITE\x20PERMISSION:\x20OWNER-ONLY\x20—\x20only\x20the\x20order\x20owner\x20(the\x20buyer)\x20can\x20set\x20or\x20clear\x20this\x20field;\x20any\x20other\x20signer\x20(including\x20the\x20merchant/service\x20owner)\x20aborts\x20on-chain\x20(MoveAbort\x201,\x20\x27Not\x20the\x20owner\x27).\x20The\x20merchant\x27s\x20role\x20is\x20to\x20READ\x20it\x20and\x20to\x20receive\x20the\x20info\x20over\x20Messenger.\x20ATTESTATION\x20SEMANTICS:\x20the\x20recorded\x20VALUE\x20is\x20self-attested\x20and\x20has\x20no\x20on-chain\x20readback\x20—\x20never\x20trust\x20the\x20value\x20itself\x20as\x20a\x20gate\x20condition.\x20A\x20PRESENCE\x20gate\x20IS\x20legitimate\x20on-chain\x20(query\x20order.required_info\x20is\x20some\x20—\x20see\x20pattern.required_info_evidence_gate):\x20it\x20proves\x20the\x20buyer\x20recorded\x20a\x20credential\x20before\x20handover,\x20without\x20asserting\x20what\x20the\x20credential\x20says.'),'required_info_bind':NameOrAddressSchema['optional']()['describe']('Bind\x20a\x20WTS\x20Proof\x20object\x20as\x20this\x20order\x27s\x20required_info\x20credential\x20—\x20the\x20CONTROLLED\x20alternative\x20to\x20required_info.\x20'+'OWNER-ONLY:\x20the\x20order\x20owner\x20(the\x20buyer)\x20signs;\x20any\x20other\x20signer\x20(including\x20the\x20merchant\x20or\x20an\x20agent)\x20aborts\x20(E_NOT_THE_OWNER).\x20'+'The\x20chain\x20verifies\x20the\x20Proof\x20is\x20about\x20THIS\x20order\x20AND\x20was\x20created\x20by\x20the\x20order\x20holder\x20BEFORE\x20writing,\x20and\x20freezes\x20the\x20Proof\x20'+'object\x20on\x20success\x20—\x20a\x20Proof\x20about\x20another\x20order\x20or\x20created\x20by\x20another\x20account\x20is\x20refused\x20(E_REQUIRED_INFO_PROOF_NOT_BOUND)\x20'+'with\x20NOTHING\x20written,\x20closing\x20the\x20cross-order\x20proof-reuse\x20hole\x20that\x20plain\x20required_info\x20has.\x20The\x20sensitive\x20payload\x20itself\x20'+'(channel\x20name,\x20contact\x20address,\x20...)\x20stays\x20off-chain\x20inside\x20the\x20Proof\x20—\x20exchange/inspect\x20it\x20over\x20Wowok\x20Messenger.\x20'+'ACCEPTED\x20FORMS:\x20a\x20Proof\x20object\x20ID\x20(0x…)\x20or\x20a\x20REGISTERED\x20mark\x20name.\x20Mutually\x20exclusive\x20with\x20required_info\x20in\x20one\x20call\x20'+'(both\x20entries\x20write\x20order.required_info).'),'progress':OperateSchema['optional']()['describe']('Advance\x20order\x20process'),'arb_confirm':ArbConfirmSchema['optional']()['describe']('CUSTOMER-side\x20confirm\x20on\x20an\x20Arb\x20case\x20(the\x20order\x20owner;\x20the\x20arbitration\x20object\x27s\x20own\x20confirm\x20tool\x20is\x20the\x20arbitrator\x27s\x20and\x20rejects\x20customers).\x20'+'Moves\x20the\x20case\x20from\x20state\x200\x20to\x20state\x201.\x20REQUIRED\x20after\x20an\x20arbitrator\x20reset\x20—\x20a\x20reset\x20returns\x20the\x20case\x20to\x20state\x200\x20with\x20the\x20indemnity\x20cleared,\x20'+'and\x20only\x20the\x20customer\x20can\x20advance\x20it\x20again;\x20the\x20fee\x20stays\x20locked\x20until\x20this\x20is\x20called.\x20Not\x20the\x20filing\x20step:\x20filing\x20(dispute)\x20lands\x20the\x20case\x20directly\x20in\x20state\x201.'),'arb_objection':ArbObjectionSchema['optional']()['describe']('Oppose\x20and\x20appeal\x20the\x20arbitration\x20result,\x20request\x20re-arbitration.'),'arb_claim_compensation':ArbClaimCompensationSchema['optional']()['describe']('Specify\x20the\x20adjudicated\x20Arb\x20object\x20to\x20obtain\x20order\x20compensation.\x20ZERO-INDEMNITY\x20GATE\x20(BF-14,\x20chain\x20abort\x2011):\x20'+'when\x20the\x20ruling\x27s\x20indemnity\x20is\x200\x20(a\x20dismissal)\x20the\x20claim\x20is\x20REFUSED\x20on-chain\x20—\x20the\x20case\x20stays\x20open,\x20the\x20dispute\x20'+'fee\x20stays\x20escrowed\x20(withdrawable\x20by\x20the\x20arbitrator\x20only\x20after\x20the\x2030-day\x20window\x20closes\x20with\x20no\x20objection,\x20or\x20'+'blocked\x20while\x20an\x20objection\x20is\x20pending),\x20and\x20`order.claimed_by`\x20is\x20NOT\x20written.\x20A\x20claim\x20that\x20DOES\x20pay\x20(indemnity\x20>\x200)\x20'+'closes\x20the\x20case\x20(state\x205),\x20pays\x20the\x20claimant,\x20writes\x20`order.claimed_by`,\x20and\x20releases\x20the\x20fee\x20path.\x20'+'DIRECTION\x20CAUTION:\x20because\x20only\x20paying\x20claims\x20write\x20`claimed_by`,\x20a\x20dismissal\x20leaves\x20it\x20`none`\x20—\x20refund-style\x20rails\x20'+'gated\x20on\x20`claimed_by\x20==\x20none`\x20stay\x20LIVE\x20after\x20a\x20dismissal,\x20while\x20merchant-recovery\x20rails\x20gated\x20on\x20`claimed_by\x20!=\x20none`\x20'+'can\x20never\x20fire\x20(F-BS-54).\x20Read\x20ruling\x20DIRECTION\x20from\x20`arb.indemnity.amount`\x20(query\x201641),\x20never\x20from\x20`claimed_by`.\x20'+'F05\x20REVERSE\x20GATE\x20(yfd-ln-261024):\x20when\x20this\x20order\x27s\x20escrow\x20is\x20ALREADY\x20fully\x20released\x20(allocation\x20balance\x200\x20of\x20a\x20'+'positive\x20order\x20amount),\x20the\x20claim\x20is\x20REFUSED\x20unless\x20acknowledge_dual_payout\x20is\x20true\x20—\x20pairing\x20a\x20paid\x20compensation\x20'+'with\x20a\x20completed\x20escrow\x20track\x20is\x20a\x20netting\x20decision\x20the\x20operator\x20must\x20state\x20(see\x20acknowledge_dual_payout).'),'acknowledge_dual_payout':z['boolean']()['optional']()['describe']('Explicit\x20opt-in\x20for\x20a\x20KNOWN\x20double\x20payout\x20on\x20the\x20compensation-claim\x20direction\x20(keeper\x20posture\x20拍板⑧\x20dm-mtw-261027):\x20when\x20this\x20order\x27s\x20escrow\x20is\x20'+'already\x20FULLY\x20released\x20(allocation\x20balance\x200\x20of\x20a\x20positive\x20order\x20amount)\x20and\x20this\x20call\x20claims\x20the\x20arbitration\x20'+'compensation\x20on\x20top,\x20the\x20call\x20is\x20REFUSED\x20unless\x20this\x20flag\x20is\x20true.\x20The\x20escrow\x20track\x20and\x20the\x20compensation\x20track\x20'+'are\x20independent\x20by\x20design\x20—\x20the\x20chain\x20will\x20not\x20stop\x20the\x20second\x20payout,\x20so\x20the\x20operator\x20must\x20state\x20the\x20netting\x20'+'decision\x20deliberately.\x20Leave\x20unset\x20for\x20claims\x20on\x20orders\x20whose\x20escrow\x20is\x20intact\x20or\x20partially\x20released.\x20AUTOMATION\x20'+'RULE:\x20this\x20flag\x20is\x20the\x20HUMAN\x20operator\x27s\x20netting\x20decision\x20—\x20an\x20automated\x20keeper\x20that\x20receives\x20dual_payout_unconfirmed\x20'+'must\x20STOP\x20retrying\x20and\x20escalate\x20(never\x20set\x20the\x20flag\x20itself).\x20D-1\x20(ksr\x205R-08):\x20the\x20flag\x20is\x20additionally\x20honored\x20ONLY\x20when\x20the\x20'+'executing\x20store\x20carries\x20a\x20human-recorded\x20preauthorization\x20(config_operation\x20store_dual_payout_set\x20{account,\x20'+'confirm:true},\x20then\x20store_dual_payout_get\x20shows\x20preauthorized=true);\x20without\x20it\x20the\x20gate\x20answers\x20'+'dual_payout_preauthorization_required\x20—\x20record\x20the\x20standing\x20decision\x20first,\x20then\x20re-send.'),'arb_case_conclude':ArbCaseConcludeSchema['optional']()['describe']('DISMISSAL\x20CONVERGER\x20(F-BS-54/56,\x20F-OF2-01):\x20stamp\x20a\x20CONCLUDED,\x20DEFENDANT-FAVORED\x20ruling\x20onto\x20'+'this\x20order\x20through\x20the\x20service\x27s\x20case-conclusion\x20entry\x20so\x20the\x20`claimed_by\x20==\x20none`\x20refund\x20rails\x20close\x20AT\x20RULING\x20'+'TIME\x20instead\x20of\x20staying\x20live\x20forever.\x20PERMISSIONLESS:\x20any\x20keeper\x20(merchant\x20agent,\x20watchdog,\x20'+'even\x20the\x20buyer)\x20may\x20drive\x20it;\x20it\x20writes\x20the\x20claimed_by=case\x20flag\x20and\x20MOVES\x20NO\x20FUNDS.\x20The\x20chain\x20'+'refuses\x20anything\x20but\x20a\x20concluded\x20(Arbitrated/Withdrawn)\x20case\x20leaving\x20NO\x20indemnity\x20'+'(E_CASE_NOT_DISMISSAL_CONCLUSION,\x20abort\x2048).\x20TYPICAL\x20KEEPER\x20LOOP\x20after\x20a\x200-indemnity\x20ruling:\x20'+'arb_claim_compensation\x20aborts\x2011\x20(BF-14\x20zero-indemnity\x20gate)\x20→\x20call\x20THIS\x20to\x20close\x20the\x20refund\x20'+'rails\x20→\x20the\x20escrow\x20can\x20then\x20only\x20exit\x20through\x20the\x20merchant-recovery\x20rails.'),'receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20or\x20other\x20objects\x20received\x20by\x20the\x20order\x20and\x20transfer\x20them\x20to\x20the\x20order\x20owner.\x20'+'Consistent\x20with\x20`owner_receive`\x20on\x20other\x20objects\x20(arbitration/contact/demand/machine/permission/repository/reward/service/treasury).'+RECEIVE_FORMAT_BLOCK_OBJECTS),'transfer_to':AccountOrMark_AddressSchema['optional']()['describe']('Set\x20new\x20owner\x20of\x20the\x20order.\x20Requires\x20order\x20owner\x20permission\x20to\x20set.'),'order_renew':OrderRenewSchema['optional']()['describe']('Renewal\x20in\x20ONE\x20transaction:\x20pays\x20into\x20the\x20order\x27s\x20allocation\x20and\x20advances\x20the\x20renew\x20forward\x20'+'(fund\x20+\x20record\x20+\x20advance\x20in\x20a\x20single\x20step).\x20Replaces\x20the\x20legacy\x203-transaction\x20renewal\x20split.\x20'+'The\x20new\x20Payment\x27s\x20sole\x20recipient\x20is\x20the\x20allocation\x20object\x20itself\x20(enforced\x20on-chain).\x20'+'PRE-STATE\x20CONSTRAINT\x20(esound-mn-261021\x20B-1):\x20guards\x20on\x20the\x20advanced\x20forward\x20read\x20the\x20COMMITTED\x20'+'pre-transaction\x20balance\x20—\x20this\x20same-PTB\x20payment\x20is\x20INVISIBLE\x20to\x20them;\x20NEVER\x20bind\x20an\x20allocation.balance\x20'+'gate\x20to\x20the\x20forward\x20this\x20call\x20advances\x20(it\x20always\x20aborts;\x20identity/signer\x20guards\x20are\x20fine).\x20'+'If\x20the\x20forward\x20DOES\x20carry\x20a\x20balance\x20gate,\x20do\x20NOT\x20call\x20this\x20tool\x20—\x20execute\x20the\x20'+TWO_TX_RENEW_RECIPE)})['strict']()['describe']('On-chain,\x20operate\x20on\x20an\x20Order\x20object.');export const CallOrder_InputSchema=z['object']({'data':CallOrder_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
|
|
1
|
+
import{z}from'zod';import{CallEnvSchema,CoinParamSchema,SubmissionCallSchema}from'./base.js';import{OperateSchema,ProgressNextSchema}from'./progress.js';import{AccountOrMark_AddressAISchema,DescriptionSchema,LongNameSchema,ManyAccountOrMark_AddressAISchema,NameOrAddressSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';import{PaymentInfoSchema}from'../query/index.js';import{TWO_TX_RENEW_RECIPE}from'../../knowledge/protocol-facts.js';export const ArbConfirmSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.'),'confirm':z['boolean']()['describe']('Whether\x20to\x20confirm\x20that\x20the\x20submitted\x20arbitration\x20materials\x20are\x20valid\x20for\x20arbitration.'),'description':DescriptionSchema['optional']()['describe']('Message\x20description\x20for\x20compensation\x20application.'),'proposition':z['array'](LongNameSchema)['optional']()['describe']('Compensation\x20claims.')})['strict']();export const ArbObjectionSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.'),'objection':DescriptionSchema['describe']('Oppose\x20and\x20appeal\x20the\x20arbitration\x20result,\x20request\x20re-arbitration')})['strict']();export const ArbClaimCompensationSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.')})['strict']();export const ArbCaseConcludeSchema=z['object']({'arb':NameOrAddressSchema['describe']('Arb\x20object\x20ID\x20or\x20name.')})['strict']();export const OrderRenewSchema=z['object']({'allocation':NameOrAddressSchema['describe']('Allocation\x20object\x20ID\x20or\x20name\x20receiving\x20the\x20renewal\x20funds.'),'type_parameter':z['string']()['describe']('Coin\x20type,\x20e.g.\x20\x220x2::wow::WOW\x22.'),'amount':CoinParamSchema['describe']('Renewal\x20payment.'),'info':PaymentInfoSchema['describe']('PaymentInfo\x20for\x20the\x20new\x20Payment\x20object\x20(remark/index,\x20optional\x20for_object/for_guard).'),'operation':ProgressNextSchema['describe']('Renew\x20forward\x20to\x20advance\x20after\x20the\x20funding\x20lands.'),'message':LongNameSchema['optional']()['describe']('Message\x20attached\x20to\x20the\x20forward\x20advance.')})['strict']();export const CallOrder_DataSchema=z['object']({'object':NameOrAddressSchema['describe']('Order\x20object\x20ID\x20or\x20name.'),'agent':ManyAccountOrMark_AddressAISchema['optional']()['describe']('Order\x20agent.\x20Agents\x20can\x20operate\x20the\x20order,\x20such\x20as\x20canceling\x20the\x20order,\x20modifying\x20the\x20order\x20status,\x20etc.;\x20but\x20cannot\x20receive\x20the\x20funds\x20received\x20by\x20the\x20order.'),'required_info':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Credential\x20recorded\x20on\x20the\x20order:\x20the\x20merchant\x27s\x20IM\x20user\x20address\x20resolved\x20from\x20the\x20Service\x27s\x20Contact\x20(zero\x20cost)\x20or\x20a\x20WTS\x20Proof\x20object\x20id\x20(on-chain\x20delivery\x20proof\x20embedding\x20that\x20IM\x20address\x20and\x20timestamp;\x20costs\x20gas).\x20The\x20information\x20itself\x20is\x20delivered\x20via\x20Wowok\x20Messenger.\x20ACCEPTED\x20FORMS\x20(upwc-cat-261017\x20T10\x20live\x20probe):\x20a\x20Contact/Proof\x20object\x20ID\x20(0x…),\x20an\x20account\x20ADDRESS,\x20or\x20a\x20REGISTERED\x20mark\x20name\x20—\x20a\x20bare\x20account\x20display\x20name\x20is\x20not\x20an\x20object\x20reference\x20and\x20fails\x20with\x20\x27not\x20found\x27.\x20WRITE\x20PERMISSION:\x20OWNER-ONLY\x20—\x20only\x20the\x20order\x20owner\x20(the\x20buyer)\x20can\x20set\x20or\x20clear\x20this\x20field;\x20any\x20other\x20signer\x20(including\x20the\x20merchant/service\x20owner)\x20aborts\x20on-chain\x20(MoveAbort\x201,\x20\x27Not\x20the\x20owner\x27).\x20The\x20merchant\x27s\x20role\x20is\x20to\x20READ\x20it\x20and\x20to\x20receive\x20the\x20info\x20over\x20Messenger.\x20ATTESTATION\x20SEMANTICS:\x20the\x20recorded\x20VALUE\x20is\x20self-attested\x20and\x20has\x20no\x20on-chain\x20readback\x20—\x20never\x20trust\x20the\x20value\x20itself\x20as\x20a\x20gate\x20condition.\x20A\x20PRESENCE\x20gate\x20IS\x20legitimate\x20on-chain\x20(query\x20order.required_info\x20is\x20some\x20—\x20see\x20pattern.required_info_evidence_gate):\x20it\x20proves\x20the\x20buyer\x20recorded\x20a\x20credential\x20before\x20handover,\x20without\x20asserting\x20what\x20the\x20credential\x20says.'),'required_info_bind':NameOrAddressSchema['optional']()['describe']('Bind\x20a\x20WTS\x20Proof\x20object\x20as\x20this\x20order\x27s\x20required_info\x20credential\x20—\x20the\x20CONTROLLED\x20alternative\x20to\x20required_info.\x20'+'OWNER-ONLY:\x20the\x20order\x20owner\x20(the\x20buyer)\x20signs;\x20any\x20other\x20signer\x20(including\x20the\x20merchant\x20or\x20an\x20agent)\x20aborts\x20(E_NOT_THE_OWNER).\x20'+'The\x20chain\x20verifies\x20the\x20Proof\x20is\x20about\x20THIS\x20order\x20AND\x20was\x20created\x20by\x20the\x20order\x20holder\x20BEFORE\x20writing,\x20and\x20freezes\x20the\x20Proof\x20'+'object\x20on\x20success\x20—\x20a\x20Proof\x20about\x20another\x20order\x20or\x20created\x20by\x20another\x20account\x20is\x20refused\x20(E_REQUIRED_INFO_PROOF_NOT_BOUND)\x20'+'with\x20NOTHING\x20written,\x20closing\x20the\x20cross-order\x20proof-reuse\x20hole\x20that\x20plain\x20required_info\x20has.\x20The\x20sensitive\x20payload\x20itself\x20'+'(channel\x20name,\x20contact\x20address,\x20...)\x20stays\x20off-chain\x20inside\x20the\x20Proof\x20—\x20exchange/inspect\x20it\x20over\x20Wowok\x20Messenger.\x20'+'ACCEPTED\x20FORMS:\x20a\x20Proof\x20object\x20ID\x20(0x…)\x20or\x20a\x20REGISTERED\x20mark\x20name.\x20Mutually\x20exclusive\x20with\x20required_info\x20in\x20one\x20call\x20'+'(both\x20entries\x20write\x20order.required_info).'),'progress':OperateSchema['optional']()['describe']('Advance\x20order\x20process'),'arb_confirm':ArbConfirmSchema['optional']()['describe']('CUSTOMER-side\x20confirm\x20on\x20an\x20Arb\x20case\x20(the\x20order\x20owner;\x20the\x20arbitration\x20object\x27s\x20own\x20confirm\x20tool\x20is\x20the\x20arbitrator\x27s\x20and\x20rejects\x20customers).\x20'+'Moves\x20the\x20case\x20from\x20state\x200\x20to\x20state\x201.\x20REQUIRED\x20after\x20an\x20arbitrator\x20reset\x20—\x20a\x20reset\x20returns\x20the\x20case\x20to\x20state\x200\x20with\x20the\x20indemnity\x20cleared,\x20'+'and\x20only\x20the\x20customer\x20can\x20advance\x20it\x20again;\x20the\x20fee\x20stays\x20locked\x20until\x20this\x20is\x20called.\x20Not\x20the\x20filing\x20step:\x20filing\x20(dispute)\x20lands\x20the\x20case\x20directly\x20in\x20state\x201.'),'arb_objection':ArbObjectionSchema['optional']()['describe']('Oppose\x20and\x20appeal\x20the\x20arbitration\x20result,\x20request\x20re-arbitration.'),'arb_claim_compensation':ArbClaimCompensationSchema['optional']()['describe']('Specify\x20the\x20adjudicated\x20Arb\x20object\x20to\x20obtain\x20order\x20compensation.\x20ZERO-INDEMNITY\x20GATE\x20(BF-14,\x20chain\x20abort\x2011):\x20'+'when\x20the\x20ruling\x27s\x20indemnity\x20is\x200\x20(a\x20dismissal)\x20the\x20claim\x20is\x20REFUSED\x20on-chain\x20—\x20the\x20case\x20stays\x20open,\x20the\x20dispute\x20'+'fee\x20stays\x20escrowed\x20(withdrawable\x20by\x20the\x20arbitrator\x20only\x20after\x20the\x2030-day\x20window\x20closes\x20with\x20no\x20objection,\x20or\x20'+'blocked\x20while\x20an\x20objection\x20is\x20pending),\x20and\x20`order.claimed_by`\x20is\x20NOT\x20written.\x20A\x20claim\x20that\x20DOES\x20pay\x20(indemnity\x20>\x200)\x20'+'closes\x20the\x20case\x20(state\x205),\x20pays\x20the\x20claimant,\x20writes\x20`order.claimed_by`,\x20and\x20releases\x20the\x20fee\x20path.\x20'+'DIRECTION\x20CAUTION:\x20because\x20only\x20paying\x20claims\x20write\x20`claimed_by`,\x20a\x20dismissal\x20leaves\x20it\x20`none`\x20—\x20refund-style\x20rails\x20'+'gated\x20on\x20`claimed_by\x20==\x20none`\x20stay\x20LIVE\x20after\x20a\x20dismissal,\x20while\x20merchant-recovery\x20rails\x20gated\x20on\x20`claimed_by\x20!=\x20none`\x20'+'can\x20never\x20fire\x20(F-BS-54).\x20Read\x20ruling\x20DIRECTION\x20from\x20`arb.indemnity.amount`\x20(query\x201641),\x20never\x20from\x20`claimed_by`.\x20'+'F05\x20REVERSE\x20GATE\x20(yfd-ln-261024):\x20when\x20this\x20order\x27s\x20escrow\x20is\x20ALREADY\x20fully\x20released\x20(allocation\x20balance\x200\x20of\x20a\x20'+'positive\x20order\x20amount),\x20the\x20claim\x20is\x20REFUSED\x20unless\x20acknowledge_dual_payout\x20is\x20true\x20—\x20pairing\x20a\x20paid\x20compensation\x20'+'with\x20a\x20completed\x20escrow\x20track\x20is\x20a\x20netting\x20decision\x20the\x20operator\x20must\x20state\x20(see\x20acknowledge_dual_payout).'),'acknowledge_dual_payout':z['boolean']()['optional']()['describe']('Explicit\x20opt-in\x20for\x20a\x20KNOWN\x20double\x20payout\x20on\x20the\x20compensation-claim\x20direction\x20(keeper\x20posture\x20拍板⑧\x20dm-mtw-261027):\x20when\x20this\x20order\x27s\x20escrow\x20is\x20'+'already\x20FULLY\x20released\x20(allocation\x20balance\x200\x20of\x20a\x20positive\x20order\x20amount)\x20and\x20this\x20call\x20claims\x20the\x20arbitration\x20'+'compensation\x20on\x20top,\x20the\x20call\x20is\x20REFUSED\x20unless\x20this\x20flag\x20is\x20true.\x20The\x20escrow\x20track\x20and\x20the\x20compensation\x20track\x20'+'are\x20independent\x20by\x20design\x20—\x20the\x20chain\x20will\x20not\x20stop\x20the\x20second\x20payout,\x20so\x20the\x20operator\x20must\x20state\x20the\x20netting\x20'+'decision\x20deliberately.\x20Leave\x20unset\x20for\x20claims\x20on\x20orders\x20whose\x20escrow\x20is\x20intact\x20or\x20partially\x20released.\x20AUTOMATION\x20'+'RULE:\x20this\x20flag\x20is\x20the\x20HUMAN\x20operator\x27s\x20netting\x20decision\x20—\x20an\x20automated\x20keeper\x20that\x20receives\x20dual_payout_unconfirmed\x20'+'must\x20STOP\x20retrying\x20and\x20escalate\x20(never\x20set\x20the\x20flag\x20itself).\x20D-1\x20(ksr\x205R-08):\x20the\x20flag\x20is\x20additionally\x20honored\x20ONLY\x20when\x20the\x20'+'executing\x20store\x20carries\x20a\x20human-recorded\x20preauthorization\x20(config_operation\x20store_dual_payout_set\x20{account,\x20'+'confirm:true},\x20then\x20store_dual_payout_get\x20shows\x20preauthorized=true);\x20without\x20it\x20the\x20gate\x20answers\x20'+'dual_payout_preauthorization_required\x20—\x20record\x20the\x20standing\x20decision\x20first,\x20then\x20re-send.'),'arb_case_conclude':ArbCaseConcludeSchema['optional']()['describe']('DISMISSAL\x20CONVERGER\x20(F-BS-54/56,\x20F-OF2-01):\x20stamp\x20a\x20CONCLUDED,\x20DEFENDANT-FAVORED\x20ruling\x20onto\x20'+'this\x20order\x20through\x20the\x20service\x27s\x20case-conclusion\x20entry\x20so\x20the\x20`claimed_by\x20==\x20none`\x20refund\x20rails\x20close\x20AT\x20RULING\x20'+'TIME\x20instead\x20of\x20staying\x20live\x20forever.\x20PERMISSIONLESS:\x20any\x20keeper\x20(merchant\x20agent,\x20watchdog,\x20'+'even\x20the\x20buyer)\x20may\x20drive\x20it;\x20it\x20writes\x20the\x20claimed_by=case\x20flag\x20and\x20MOVES\x20NO\x20FUNDS.\x20The\x20chain\x20'+'refuses\x20anything\x20but\x20a\x20concluded\x20(Arbitrated/Withdrawn)\x20case\x20leaving\x20NO\x20indemnity\x20'+'(E_CASE_NOT_DISMISSAL_CONCLUSION,\x20abort\x2048).\x20TYPICAL\x20KEEPER\x20LOOP\x20after\x20a\x200-indemnity\x20ruling:\x20'+'arb_claim_compensation\x20aborts\x2011\x20(BF-14\x20zero-indemnity\x20gate)\x20→\x20call\x20THIS\x20to\x20close\x20the\x20refund\x20'+'rails\x20→\x20the\x20escrow\x20can\x20then\x20only\x20exit\x20through\x20the\x20merchant-recovery\x20rails.'),'receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20or\x20other\x20objects\x20received\x20by\x20the\x20order\x20and\x20transfer\x20them\x20to\x20the\x20order\x20owner.\x20'+'Consistent\x20with\x20`owner_receive`\x20on\x20other\x20objects\x20(arbitration/contact/demand/machine/permission/repository/reward/service/treasury).'+RECEIVE_FORMAT_BLOCK_OBJECTS),'transfer_to':AccountOrMark_AddressAISchema['optional']()['describe']('Set\x20new\x20owner\x20of\x20the\x20order.\x20Requires\x20order\x20owner\x20permission\x20to\x20set.'),'order_renew':OrderRenewSchema['optional']()['describe']('Renewal\x20in\x20ONE\x20transaction:\x20pays\x20into\x20the\x20order\x27s\x20allocation\x20and\x20advances\x20the\x20renew\x20forward\x20'+'(fund\x20+\x20record\x20+\x20advance\x20in\x20a\x20single\x20step).\x20Replaces\x20the\x20legacy\x203-transaction\x20renewal\x20split.\x20'+'The\x20new\x20Payment\x27s\x20sole\x20recipient\x20is\x20the\x20allocation\x20object\x20itself\x20(enforced\x20on-chain).\x20'+'PRE-STATE\x20CONSTRAINT\x20(esound-mn-261021\x20B-1):\x20guards\x20on\x20the\x20advanced\x20forward\x20read\x20the\x20COMMITTED\x20'+'pre-transaction\x20balance\x20—\x20this\x20same-PTB\x20payment\x20is\x20INVISIBLE\x20to\x20them;\x20NEVER\x20bind\x20an\x20allocation.balance\x20'+'gate\x20to\x20the\x20forward\x20this\x20call\x20advances\x20(it\x20always\x20aborts;\x20identity/signer\x20guards\x20are\x20fine).\x20'+'If\x20the\x20forward\x20DOES\x20carry\x20a\x20balance\x20gate,\x20do\x20NOT\x20call\x20this\x20tool\x20—\x20execute\x20the\x20'+TWO_TX_RENEW_RECIPE)})['strict']()['describe']('On-chain,\x20operate\x20on\x20an\x20Order\x20object.');export const CallOrder_InputSchema=z['object']({'data':CallOrder_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const RevenueSchema: z.ZodObject<{
|
|
3
|
-
recipient: z.
|
|
3
|
+
recipient: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
|
|
4
|
+
name_or_address: string;
|
|
5
|
+
local_mark_first: boolean;
|
|
6
|
+
}, string>>, z.ZodObject<{
|
|
4
7
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
5
8
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
-
}, z.core.$strict>;
|
|
9
|
+
}, z.core.$strict>]>;
|
|
7
10
|
amount: z.ZodUnion<readonly [z.ZodObject<{
|
|
8
11
|
balance: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
9
12
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -19,10 +22,13 @@ export declare const CallPayment_CreateSchema: z.ZodObject<{
|
|
|
19
22
|
type_parameter: z.ZodDefault<z.ZodString>;
|
|
20
23
|
}, z.core.$strict>;
|
|
21
24
|
revenue: z.ZodArray<z.ZodObject<{
|
|
22
|
-
recipient: z.
|
|
25
|
+
recipient: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
|
|
26
|
+
name_or_address: string;
|
|
27
|
+
local_mark_first: boolean;
|
|
28
|
+
}, string>>, z.ZodObject<{
|
|
23
29
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
24
30
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
-
}, z.core.$strict>;
|
|
31
|
+
}, z.core.$strict>]>;
|
|
26
32
|
amount: z.ZodUnion<readonly [z.ZodObject<{
|
|
27
33
|
balance: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
28
34
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -50,10 +56,13 @@ export declare const CallPayment_DataSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
50
56
|
type_parameter: z.ZodDefault<z.ZodString>;
|
|
51
57
|
}, z.core.$strict>;
|
|
52
58
|
revenue: z.ZodArray<z.ZodObject<{
|
|
53
|
-
recipient: z.
|
|
59
|
+
recipient: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
|
|
60
|
+
name_or_address: string;
|
|
61
|
+
local_mark_first: boolean;
|
|
62
|
+
}, string>>, z.ZodObject<{
|
|
54
63
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
55
64
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
56
|
-
}, z.core.$strict>;
|
|
65
|
+
}, z.core.$strict>]>;
|
|
57
66
|
amount: z.ZodUnion<readonly [z.ZodObject<{
|
|
58
67
|
balance: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
59
68
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -81,10 +90,13 @@ export declare const CallPayment_InputSchema: z.ZodObject<{
|
|
|
81
90
|
type_parameter: z.ZodDefault<z.ZodString>;
|
|
82
91
|
}, z.core.$strict>;
|
|
83
92
|
revenue: z.ZodArray<z.ZodObject<{
|
|
84
|
-
recipient: z.
|
|
93
|
+
recipient: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
|
|
94
|
+
name_or_address: string;
|
|
95
|
+
local_mark_first: boolean;
|
|
96
|
+
}, string>>, z.ZodObject<{
|
|
85
97
|
name_or_address: z.ZodOptional<z.ZodString>;
|
|
86
98
|
local_mark_first: z.ZodOptional<z.ZodBoolean>;
|
|
87
|
-
}, z.core.$strict>;
|
|
99
|
+
}, z.core.$strict>]>;
|
|
88
100
|
amount: z.ZodUnion<readonly [z.ZodObject<{
|
|
89
101
|
balance: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
90
102
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from'zod';import{PaymentInfoSchema}from'../query/index.js';import{CoinParamSchema,CallEnvSchema,TypeNamedObjectSchema}from'./base.js';import{
|
|
1
|
+
import{z}from'zod';import{PaymentInfoSchema}from'../query/index.js';import{CoinParamSchema,CallEnvSchema,TypeNamedObjectSchema}from'./base.js';import{AccountOrMark_AddressAISchema,NameOrAddressSchema}from'../common/index.js';export const RevenueSchema=z['object']({'recipient':AccountOrMark_AddressAISchema,'amount':CoinParamSchema})['strict']()['describe']('Payment\x20recipient\x20and\x20amount');export const CallPayment_CreateSchema=z['object']({'object':TypeNamedObjectSchema,'revenue':z['array'](RevenueSchema)['describe']('Array\x20of\x20payment\x20recipients\x20and\x20amounts'),'info':PaymentInfoSchema})['strict']()['describe']('Create\x20a\x20new\x20Payment.\x20USAGE:\x20Set\x20\x27object\x27\x20field\x20with\x20{name,\x20type,\x20...}\x20to\x20create\x20a\x20named\x20Payment.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20Payment\x20is\x20an\x20immutable\x20object\x20-\x20it\x20can\x20only\x20be\x20created,\x20not\x20modified.\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED.');export const CallPayment_ReceiveSchema=z['object']({'object':NameOrAddressSchema['optional']()['describe']('CoinWrapper\x20object\x20ID\x20(0x...)\x20or\x20local\x20name\x20to\x20unwrap.\x20'+'OPTIONAL:\x20when\x20omitted,\x20AUTO-RECEIVE\x20mode\x20unwraps\x20EVERY\x20CoinWrapper\x20'+'currently\x20owned\x20by\x20the\x20caller\x20in\x20a\x20single\x20transaction\x20—\x20no\x20need\x20to\x20look\x20up\x20IDs\x20first.\x20'+'Find\x20received\x20CoinWrappers\x20via\x20query_toolkit\x20with\x20query_type=\x27onchain_received\x27.'),'receive':z['literal'](!![])['describe']('Set\x20to\x20true\x20to\x20activate\x20receive\x20mode.\x20'+'CoinWrapper\x20objects\x20ARE\x20transferred\x20to\x20recipients\x20via\x20transfer::public_transfer\x20(they\x20arrive\x20as\x20owned\x20objects),\x20'+'but\x20they\x20are\x20NOT\x20spendable\x20coins.\x20This\x20mode\x20unwraps\x20a\x20CoinWrapper\x20into\x20actual\x20coins\x20in\x20your\x20wallet.\x20'+'The\x20caller\x20must\x20be\x20the\x20CoinWrapper\x27s\x20owner\x20(the\x20recipient\x20'+'specified\x20in\x20the\x20Allocation\x27s\x20revenue\x20split).\x20'+'When\x20\x27object\x27\x20is\x20omitted,\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller\x20is\x20unwrapped\x20at\x20once.'),'type_parameter':z['string']()['optional']()['describe']('Coin\x20type\x20of\x20the\x20CoinWrapper,\x20e.g.\x20\x270x2::wow::WOW\x27.\x20'+'OPTIONAL:\x20when\x20omitted\x20it\x20is\x20auto-derived\x20from\x20the\x20CoinWrapper\x27s\x20own\x20on-chain\x20type\x20'+'(the\x20inner\x20T\x20of\x20`CoinWrapper<T>`),\x20so\x20{object,\x20receive:true}\x20alone\x20unwraps\x20to\x20spendable\x20coins.\x20'+'Only\x20provide\x20it\x20explicitly\x20when\x20auto-derivation\x20fails.\x20In\x20AUTO-RECEIVE\x20mode\x20(no\x20object)\x20'+'the\x20type\x20is\x20always\x20derived\x20per-wrapper.')})['strict']()['describe']('Receive\x20mode:\x20unwrap\x20a\x20CoinWrapper\x20to\x20the\x20caller\x27s\x20wallet.\x20Use\x20after\x20Allocation\x27s\x20alloc_by_guard\x20creates\x20a\x20Payment\x20with\x20your\x20address\x20as\x20a\x20revenue\x20recipient.\x20The\x20CoinWrapper\x20holds\x20your\x20share\x20—\x20call\x20this\x20to\x20convert\x20it\x20to\x20actual\x20coins\x20in\x20your\x20wallet.\x20Provide\x20\x27object\x27\x20to\x20unwrap\x20a\x20specific\x20CoinWrapper,\x20or\x20OMIT\x20it\x20to\x20auto-unwrap\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller.\x20CHAIN\x20TRUTH:\x20allocation\x20settlement\x20ALWAYS\x20creates\x20one\x20CoinWrapper\x20per\x20recipient\x20row\x20on-chain\x20—\x20there\x20is\x20NO\x20chain-level\x20auto-claim,\x20even\x20when\x20the\x20signer\x20IS\x20the\x20recipient\x20(ptrn-ln-261010\x20C-04).\x20After\x20an\x20alloc\x20where\x20you\x20are\x20a\x20recipient,\x20expect\x20a\x20CoinWrapper\x20under\x20your\x20address\x20and\x20claim\x20it\x20here;\x20a\x20\x27no\x20CoinWrapper\x20found\x27\x20result\x20means\x20the\x20funds\x20were\x20already\x20claimed\x20(verify\x20via\x20account_balance)\x20or\x20your\x20share\x20is\x20held\x20by\x20another\x20object\x20(Order/Entity)\x20and\x20must\x20be\x20claimed\x20through\x20that\x20object\x27s\x20own\x20receive\x20entry.');export const CallPayment_DataSchema=z['union']([CallPayment_CreateSchema,CallPayment_ReceiveSchema])['describe']('On-chain\x20Payment\x20operations.\x20TWO\x20modes:\x0a'+'(1)\x20CREATE:\x20Set\x20\x27object\x27\x20with\x20{name,\x20type_parameter,\x20...},\x20\x27revenue\x27,\x20and\x20\x27info\x27\x20to\x20create\x20a\x20new\x20Payment.\x0a'+'(2)\x20RECEIVE:\x20Set\x20{receive:\x20true}\x20to\x20unwrap\x20CoinWrappers\x20to\x20your\x20wallet.\x20Provide\x20\x27object\x27\x20(<coinwrapper_id_or_name>)\x20to\x20unwrap\x20a\x20specific\x20one,\x20or\x20OMIT\x20it\x20to\x20auto-unwrap\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller.\x20type_parameter\x20optional\x20—\x20auto-derived\x20from\x20the\x20CoinWrapper\x27s\x20type.');export const CallPayment_InputSchema=z['object']({'data':CallPayment_DataSchema,'env':CallEnvSchema['optional']()})['strict']();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CallPermission,GetAccountOrMark_Address}from'@wowok/wowok';import{handleCallResult}from'./handler.js';import{isValidPermissionIndex}from'../utils/permission-index-utils.js';function validatePermissionIndexes(a){const b=[];if(a['table']){const c=a['table'];switch(c['op']){case'add\x20perm\x20by\x20index':case'set\x20perm\x20by\x20index':case'remove\x20perm\x20by\x20index':b['push']({'index':c['index'],'path':'table.'+c['op']+'.index'});break;case'add\x20perm\x20by\x20entity':case'set\x20perm\x20by\x20entity':case'remove\x20perm\x20by\x20entity':for(let d=0x0;d<c['index']['length'];d++){b['push']({'index':c['index'][d],'path':'table.'+c['op']+'.index['+d+']'});}break;}}a['remark']&&(a['remark']['op']==='set'||a['remark']['op']==='remove')&&b['push']({'index':a['remark']['index'],'path':'remark.'+a['remark']['op']+'.index'});for(const {index:e,path:f}of b){if(!isValidPermissionIndex(e))throw new Error('Invalid\x20permission\x20index\x20'+e+'\x20at\x20\x27'+f+'\x27.\x20'+'Builtin\x20indexes\x20must\x20be\x20valid\x20BuiltinPermissionIndex\x20values;\x20'+'user-defined\x20indexes\x20must\x20be\x20in\x20[1000,\x2065535].');}}function validateEntityOps(a){if(!a['entity'])return;const b=a['entity'];if(b['op']==='swap'||b['op']==='replace'||b['op']==='copy'){if(b['entity1']===b['entity2'])throw new Error('Invalid\x20entity\x20'+b['op']+'\x20operation:\x20entity1\x20and\x20entity2\x20are\x20the\x20same\x20('+('\x27'+b['entity1']+'\x27).\x20'+b['op']+'\x20requires\x20two\x20distinct\x20entities.'));}}async function resolveManyEntities(a,b,c,d){const e=a?.['entities'];if(!e||e['length']===0x0)return;const f=c?.['network']?'\x20(network:\x20'+c['network']+')':'',g=[];for(const i of e){const j=i?.['name_or_address']??'';if(!j)continue;const k=await GetAccountOrMark_Address(i);if(!k)g['push'](j);}if(g['length']===0x0)return;const h=g['map'](l=>'\x27'+l+'\x27')['join'](',\x20');if(a?.['check_all_founded']===!![])throw new Error('invalid\x20parameter:'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20or\x20pass\x20the\x20raw\x200x\x20address.');if(g['length']===e['length'])throw new Error('invalid\x20parameter:ALL\x20'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'The\x20operation\x20would\x20write\x20nothing\x20yet\x20still\x20cost\x20gas,\x20so\x20it\x20was\x20refused.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20create\x20the\x20account/mark\x20first,\x20or\x20pass\x20raw\x200x\x20addresses.');d['push']('PARTIAL\x20RESOLUTION:\x20'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20unresolved\x20and\x20will\x20be\x20DROPPED'+f+':\x20'+h+'.\x20'+'Only\x20the\x20resolvable\x20entities\x20will\x20be\x20written\x20on-chain.');}export async function handlePermissionOperations(a,b,c,d=[]){const e=[a['object'],a['remark'],a['table'],a['entity'],a['admin'],a['apply'],a['builder'],a['owner_receive'],a['um']]['some'](i=>i!==undefined);if(!e)throw new Error('invalid\x20parameter:permission\x20call\x20carries\x20NO\x20operation\x20—\x20every\x20field\x20in\x20data\x20is\x20empty\x20or\x20absent.\x20'+'A\x20schema\x20probe\x20must\x20never\x20be\x20a\x20write:\x20passed\x20through,\x20the\x20SDK\x20would\x20mint\x20a\x20NEW\x20Permission\x20object\x20with\x20empty\x20content,\x20an\x20irreversible\x20on-chain\x20spend.\x20'+'State\x20the\x20operation\x20explicitly:\x20{object:{name,...}}\x20to\x20create\x20a\x20Permission,\x20or\x20object\x20as\x20string\x20+\x20table/entity/admin/remark/um/apply/builder/owner_receive\x20to\x20operate\x20an\x20existing\x20one;\x20use\x20the\x20query\x20tool\x20first\x20to\x20inspect.');validatePermissionIndexes(a),validateEntityOps(a);const f=a['table'];f&&'entities'in(f['entity']??{})&&await resolveManyEntities(f['entity'],'table.'+f['op']+'.entity',b,d);a['admin']&&await resolveManyEntities(a['admin']['addresses'],'admin.addresses',b,d);const g=new CallPermission(a),h=await g['call'](b);return handleCallResult(h,c(a));}
|
|
1
|
+
import{CallPermission,GetAccountOrMark_Address}from'@wowok/wowok';import{handleCallResult}from'./handler.js';import{isValidPermissionIndex}from'../utils/permission-index-utils.js';function validatePermissionIndexes(a){const b=[];if(a['table']){const c=a['table'];switch(c['op']){case'add\x20perm\x20by\x20index':case'set\x20perm\x20by\x20index':case'remove\x20perm\x20by\x20index':b['push']({'index':c['index'],'path':'table.'+c['op']+'.index'});break;case'add\x20perm\x20by\x20entity':case'set\x20perm\x20by\x20entity':case'remove\x20perm\x20by\x20entity':for(let d=0x0;d<c['index']['length'];d++){b['push']({'index':c['index'][d],'path':'table.'+c['op']+'.index['+d+']'});}break;}}a['remark']&&(a['remark']['op']==='set'||a['remark']['op']==='remove')&&b['push']({'index':a['remark']['index'],'path':'remark.'+a['remark']['op']+'.index'});for(const {index:e,path:f}of b){if(!isValidPermissionIndex(e))throw new Error('Invalid\x20permission\x20index\x20'+e+'\x20at\x20\x27'+f+'\x27.\x20'+'Builtin\x20indexes\x20must\x20be\x20valid\x20BuiltinPermissionIndex\x20values;\x20'+'user-defined\x20indexes\x20must\x20be\x20in\x20[1000,\x2065535].');}}const STRICT_ADDRESS_RE=/^0[xX][0-9a-fA-F]{64}$/;function checkAddressShape(a,b,c){if(!a)return;if(!/^0[xX]/['test'](a))return;!STRICT_ADDRESS_RE['test'](a)&&c['push']('\x27'+a+'\x27\x20at\x20\x27'+b+'\x27\x20looks\x20like\x20a\x20hex\x20address\x20but\x20is\x20'+a['length']+'\x20chars\x20—\x20a\x20full\x20address\x20is\x200x\x20+\x2064\x20hex\x20chars\x20(66\x20total).\x20'+'The\x20SDK\x20would\x20silently\x20left-pad\x20a\x20short\x20hex\x20string\x20into\x20a\x20DIFFERENT\x20on-chain\x20address,\x20writing\x20the\x20grant\x20to\x20the\x20wrong\x20row.\x20'+'Pass\x20the\x20complete\x2066-char\x20address,\x20or\x20use\x20the\x20account\x27s\x20local\x20mark\x20name\x20instead.');}function validateAddressShapes(a){const b=[],c=a['table'];if(c){if('entities'in(c['entity']??{})){const e=c['entity'];(e['entities']??[])['forEach']((f,g)=>checkAddressShape(f?.['name_or_address'],'table.'+c['op']+'.entity.entities['+g+']',b));}else{const f=c['entity'];checkAddressShape(f?.['name_or_address'],'table.'+c['op']+'.entity',b);}}if(a['admin']){const g=a['admin']['addresses'];(g?.['entities']??[])['forEach']((h,j)=>checkAddressShape(h?.['name_or_address'],'admin.addresses.entities['+j+']',b));}const d=a['entity'];d&&(d['op']==='del'?checkAddressShape(d['entity']?.['name_or_address'],'entity.'+d['op']+'.entity',b):(checkAddressShape(d['entity1']?.['name_or_address'],'entity.'+d['op']+'.entity1',b),checkAddressShape(d['entity2']?.['name_or_address'],'entity.'+d['op']+'.entity2',b)));if(b['length']>0x0)throw new Error('invalid\x20parameter:'+b['length']+'\x20address\x20reference(s)\x20failed\x20strict\x20shape\x20validation:\x0a-\x20'+b['join']('\x0a-\x20'));}function validateEntityOps(a){if(!a['entity'])return;const b=a['entity'];if(b['op']==='swap'||b['op']==='replace'||b['op']==='copy'){if(b['entity1']===b['entity2'])throw new Error('Invalid\x20entity\x20'+b['op']+'\x20operation:\x20entity1\x20and\x20entity2\x20are\x20the\x20same\x20('+('\x27'+b['entity1']+'\x27).\x20'+b['op']+'\x20requires\x20two\x20distinct\x20entities.'));}}async function resolveManyEntities(a,b,c,d){const e=a?.['entities'];if(!e||e['length']===0x0)return;const f=c?.['network']?'\x20(network:\x20'+c['network']+')':'',g=[];for(const i of e){const j=i?.['name_or_address']??'';if(!j)continue;const k=await GetAccountOrMark_Address(i);if(!k)g['push'](j);}if(g['length']===0x0)return;const h=g['map'](l=>'\x27'+l+'\x27')['join'](',\x20');if(a?.['check_all_founded']===!![])throw new Error('invalid\x20parameter:'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20or\x20pass\x20the\x20raw\x200x\x20address.');if(g['length']===e['length'])throw new Error('invalid\x20parameter:ALL\x20'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'The\x20operation\x20would\x20write\x20nothing\x20yet\x20still\x20cost\x20gas,\x20so\x20it\x20was\x20refused.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20create\x20the\x20account/mark\x20first,\x20or\x20pass\x20raw\x200x\x20addresses.');d['push']('PARTIAL\x20RESOLUTION:\x20'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20unresolved\x20and\x20will\x20be\x20DROPPED'+f+':\x20'+h+'.\x20'+'Only\x20the\x20resolvable\x20entities\x20will\x20be\x20written\x20on-chain.');}export async function handlePermissionOperations(a,b,c,d=[]){const e=[a['object'],a['remark'],a['table'],a['entity'],a['admin'],a['apply'],a['builder'],a['owner_receive'],a['um']]['some'](i=>i!==undefined);if(!e)throw new Error('invalid\x20parameter:permission\x20call\x20carries\x20NO\x20operation\x20—\x20every\x20field\x20in\x20data\x20is\x20empty\x20or\x20absent.\x20'+'A\x20schema\x20probe\x20must\x20never\x20be\x20a\x20write:\x20passed\x20through,\x20the\x20SDK\x20would\x20mint\x20a\x20NEW\x20Permission\x20object\x20with\x20empty\x20content,\x20an\x20irreversible\x20on-chain\x20spend.\x20'+'State\x20the\x20operation\x20explicitly:\x20{object:{name,...}}\x20to\x20create\x20a\x20Permission,\x20or\x20object\x20as\x20string\x20+\x20table/entity/admin/remark/um/apply/builder/owner_receive\x20to\x20operate\x20an\x20existing\x20one;\x20use\x20the\x20query\x20tool\x20first\x20to\x20inspect.');validateAddressShapes(a),validatePermissionIndexes(a),validateEntityOps(a);const f=a['table'];f&&'entities'in(f['entity']??{})&&await resolveManyEntities(f['entity'],'table.'+f['op']+'.entity',b,d);a['admin']&&await resolveManyEntities(a['admin']['addresses'],'admin.addresses',b,d);const g=new CallPermission(a),h=await g['call'](b);return handleCallResult(h,c(a));}
|