@wowok/agent-mcp 3.3.9 → 3.4.1
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/field-capability.js +1 -1
- package/dist/chain-semantics/freeze-map.js +1 -1
- package/dist/chain-semantics/fund-flow.js +1 -1
- package/dist/chain-semantics/guard-verbs.js +1 -1
- package/dist/chain-semantics/index.d.ts +1 -0
- package/dist/chain-semantics/index.js +1 -1
- package/dist/chain-semantics/object-graph.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 +26 -4
- 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 +26 -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 +22 -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.d.ts +61 -0
- package/dist/composition/param-disclosure.js +1 -0
- 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 +17 -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/customer/account-events.js +1 -1
- package/dist/data/api/api.spec.js +1 -1
- package/dist/data/api/cli.js +1 -1
- package/dist/data/api/server.d.ts +1 -0
- package/dist/data/api/server.js +1 -1
- package/dist/data/projection/store.d.ts +3 -1
- package/dist/data/projection/store.js +1 -1
- package/dist/data/projection/types.d.ts +32 -0
- package/dist/data/sync/cdc.d.ts +1 -2
- package/dist/data/sync/cdc.js +1 -1
- package/dist/data/sync/cdc.spec.js +1 -1
- package/dist/data/sync/store.d.ts +5 -0
- package/dist/data/sync/store.js +1 -1
- package/dist/data/sync/types.d.ts +2 -0
- 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/guard-scan.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/index.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/allocation-templates.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/arb-fund-facts.d.ts +1 -0
- package/dist/knowledge/arb-fund-facts.js +1 -1
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/arbitration-puzzle.js +1 -1
- package/dist/knowledge/arbitration-risk.d.ts +1 -0
- package/dist/knowledge/arbitration-risk.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +2 -2
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/judgment-baselines.json +21 -2
- package/dist/knowledge/baselines/rules/allocation.json +6 -6
- package/dist/knowledge/baselines/rules/arb.json +2 -2
- package/dist/knowledge/baselines/rules/guard.json +11 -11
- package/dist/knowledge/baselines/rules/oracle.json +120 -0
- package/dist/knowledge/baselines/rules/order.json +1 -1
- package/dist/knowledge/baselines/rules/plan.json +385 -18
- package/dist/knowledge/baselines/rules/progress.json +20 -2
- package/dist/knowledge/baselines/semantic-facts.js +1 -1
- package/dist/knowledge/builtin-templates.d.ts +25 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/catalog-facts.d.ts +4 -0
- package/dist/knowledge/catalog-facts.js +1 -0
- package/dist/knowledge/commission-landing.js +1 -1
- package/dist/knowledge/component-schema.d.ts +64 -0
- package/dist/knowledge/component-schema.js +1 -0
- 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/entity-recipient-guard.js +1 -1
- package/dist/knowledge/event-semantics.js +1 -1
- package/dist/knowledge/fee-param-bindings.d.ts +26 -0
- package/dist/knowledge/fee-param-bindings.js +1 -0
- 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.d.ts +2 -2
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-anchor-reach.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-ledger.js +1 -1
- package/dist/knowledge/guard-lint.d.ts +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/industry-strategy.js +1 -1
- package/dist/knowledge/jsonrpc-enum.d.ts +52 -3
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/knob-docs.d.ts +5 -0
- package/dist/knowledge/knob-docs.js +1 -0
- package/dist/knowledge/machine-templates.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 +4 -0
- package/dist/knowledge/onchain-constants.js +1 -1
- package/dist/knowledge/order-ledger.js +1 -1
- package/dist/knowledge/param-schema.d.ts +93 -0
- package/dist/knowledge/param-schema.js +1 -0
- package/dist/knowledge/param-tiers.d.ts +25 -0
- package/dist/knowledge/param-tiers.js +1 -0
- package/dist/knowledge/passport-ledger.d.ts +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 +108 -0
- package/dist/knowledge/pattern-resolutions.js +1 -0
- 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/safety-rules.js +1 -1
- package/dist/knowledge/scenario-modes.d.ts +2 -0
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/scenario-topology.js +1 -1
- package/dist/knowledge/semantic-ir.d.ts +4 -0
- package/dist/knowledge/semantic-ir.js +1 -1
- package/dist/knowledge/service-allocation-semantics.js +1 -1
- package/dist/knowledge/service-ledger.d.ts +1 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/service-templates.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/strategy-manuals.d.ts +1 -1
- package/dist/knowledge/strategy-manuals.js +1 -1
- package/dist/knowledge/supply-chain.d.ts +9 -0
- package/dist/knowledge/supply-chain.js +1 -1
- package/dist/knowledge/template-loader.d.ts +114 -6
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-nav.d.ts +9 -0
- package/dist/knowledge/template-nav.js +1 -0
- package/dist/knowledge/template-prose.d.ts +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.d.ts +95 -0
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/template-test-profiles.d.ts +17 -0
- package/dist/knowledge/template-test-profiles.js +1 -0
- package/dist/knowledge/template-validation.d.ts +1 -0
- package/dist/knowledge/template-validation.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/treasury-templates.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/radar-core.js +1 -1
- package/dist/participation/time-window.d.ts +37 -0
- package/dist/participation/time-window.js +1 -0
- 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.d.ts +1 -0
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.d.ts +52 -22
- 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.d.ts +1 -0
- 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 +2 -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/relationship/registry.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/review/repository.js +1 -1
- package/dist/runtime/instance-registry.d.ts +7 -1
- package/dist/runtime/instance-registry.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +106 -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/arbitration.js +1 -1
- package/dist/schema/call/base.d.ts +264 -0
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +34 -6
- package/dist/schema/call/demand.d.ts +15 -6
- package/dist/schema/call/demand.js +1 -1
- package/dist/schema/call/error-codes.d.ts +1 -1
- package/dist/schema/call/error-codes.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/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 +131 -43
- 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 +224 -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 +116 -1
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +166 -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 +157 -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 +28 -0
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +343 -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 +251 -4
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +271 -78
- 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 +98 -2
- package/dist/schemas/benchmark_migration_operation.output.json +341 -12
- package/dist/schemas/benchmark_migration_operation.schema.json +42 -3
- package/dist/schemas/bridge_operation.output.json +98 -2
- package/dist/schemas/bridge_operation.schema.json +5 -5
- 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 +586 -4
- package/dist/schemas/evaluation_operation.schema.json +194 -3
- package/dist/schemas/goal_operation.schema.json +183 -0
- package/dist/schemas/guard2file.schema.json +1 -1
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/industry_pack_operation.output.json +771 -1
- package/dist/schemas/industry_pack_operation.schema.json +28 -4
- package/dist/schemas/keeper_operation.output.json +96 -2
- package/dist/schemas/local_cache_operation.output.json +98 -2
- package/dist/schemas/local_history_operation.output.json +98 -2
- package/dist/schemas/local_info_operation.output.json +98 -2
- package/dist/schemas/local_mark_operation.output.json +98 -2
- package/dist/schemas/machineNode2file.schema.json +1 -1
- package/dist/schemas/messenger_operation.output.json +107 -2
- package/dist/schemas/messenger_operation.schema.json +41 -34
- package/dist/schemas/monitor_events.output.json +96 -2
- package/dist/schemas/monitor_subscription.output.json +96 -2
- package/dist/schemas/onchain_events.output.json +108 -14
- package/dist/schemas/onchain_operations.output.json +326 -11
- package/dist/schemas/onchain_operations.schema.json +1343 -734
- package/dist/schemas/onchain_operations_allocation.schema.json +35 -19
- package/dist/schemas/onchain_operations_arbitration.schema.json +16 -8
- package/dist/schemas/onchain_operations_contact.schema.json +12 -4
- package/dist/schemas/onchain_operations_demand.schema.json +33 -17
- package/dist/schemas/onchain_operations_gen_passport.schema.json +12 -4
- package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -1
- package/dist/schemas/onchain_operations_guard.schema.json +297 -111
- package/dist/schemas/onchain_operations_machine.schema.json +56 -39
- package/dist/schemas/onchain_operations_order.schema.json +67 -42
- package/dist/schemas/onchain_operations_payment.schema.json +27 -12
- package/dist/schemas/onchain_operations_permission.schema.json +363 -232
- package/dist/schemas/onchain_operations_personal.schema.json +43 -28
- package/dist/schemas/onchain_operations_progress.schema.json +49 -32
- package/dist/schemas/onchain_operations_proof.schema.json +12 -4
- package/dist/schemas/onchain_operations_repository.schema.json +17 -8
- package/dist/schemas/onchain_operations_reward.schema.json +36 -20
- package/dist/schemas/onchain_operations_service.schema.json +230 -130
- package/dist/schemas/onchain_operations_treasury.schema.json +36 -20
- package/dist/schemas/onchain_table_data.output.json +276 -19
- package/dist/schemas/onchain_table_data.schema.json +104 -64
- 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 +1054 -146
- package/dist/schemas/query_toolkit.schema.json +144 -13
- package/dist/schemas/schema_query.schema.json +1 -1
- package/dist/schemas/watch_operation.output.json +86 -3
- package/dist/schemas/wip_file.output.json +8 -0
- package/dist/schemas/workflow_operation.schema.json +5 -4
- package/dist/schemas/wowok_buildin_info.schema.json +1 -1
- package/dist/task/playbook.js +1 -1
- package/dist/tools/handlers/benchmark-migration.d.ts +12 -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/messenger.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +24 -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/onchain.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/sanitize-output.js +1 -1
- package/dist/tools/sanitize-output.spec.js +1 -1
- package/dist/tools/transport-integrity.d.ts +7 -0
- package/dist/tools/transport-integrity.js +1 -0
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/upgrade-check.d.ts +22 -0
- package/dist/tools/upgrade-check.js +1 -1
- package/dist/tools/wrap.d.ts +6 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +7 -6
- 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{strictParse}from'../../schema/index.js';import{PersonaOperationInputSchema}from'../../schema/persona/index.js';import{GENERIC_PERSONA,analyzePersonaContext,applyAnalysisToCurrent,applyDeltaToCurrent,countPersonaLines,distillGoalToProposal,effectiveAnalyzeQuestions,gatherGoalEvidence,getEffectivePersona,getPersonaStore,listIndustryDefaults,personaToContextText,personaToInjection,syncExperienceToCurrent,validatePersona,resolveStrategyIntents,suggestLevers,resolveLocalRegion,proposeLocalRegionSave}from'../../persona/index.js';import{goalStore}from'../../goal/GoalStore.js';import{getScorecardStore}from'../../strategy/store.js';import{scoreScorecard}from'../../strategy/scorecard.js';import{resolveNetwork}from'./network.js';import{Account}from'@wowok/wowok/w/local';import{SYSTEM_OVERRIDE_SETTINGS}from'../../persona/overrides.js';import{CONFIRMATION_RULES}from'../../knowledge/safety-rules.js';import{getFailMode}from'../../safety/confirm-gate.js';const PERSONA_CONTROLS={'confirm_modes':['full','streamlined','quiet'],'overrides':SYSTEM_OVERRIDE_SETTINGS['map'](a=>({'id':a['id'],'default':a['default'],'allowed':[...a['allowed']],...a['surface']?{'surface':a['surface']}:{}})),'locked_rules':CONFIRMATION_RULES['filter'](a=>getFailMode(a['level'])==='closed'&&a['id']!=='publish_immutable')['map'](a=>({'id':a['id'],'level':a['level']})),'policy_keys':['confirm.mode','confirm.batch_standard','confirm.session_remember','confirm.intent_bypass','budget.daily_wow','allowlist','audit']};async function resolveDefaultAccountAddress(){try{const a=new Account(),b=await a['default'](![]);return b?.['address'];}catch{return undefined;}}async function resolvePersonaReadAccount(a){if(a)return a;return resolveDefaultAccountAddress();}export async function handlePersonaOperation(a){const b=strictParse(PersonaOperationInputSchema,a,'persona_operation\x20input'),c=getPersonaStore();let d;switch(b['action']){case'get':{const e=await resolvePersonaReadAccount(b['account']),f=await getEffectivePersona(e,b['industry'],b['role']);let g=null;try{const h=f['industries'][0x0];if(e&&f['role']==='merchant'&&h){const i=await getScorecardStore()['latest'](e,h);g=i?.['collected_at']??null;}}catch{g=null;}d={'action':'get','target_account':e,'effective':f,'analyze_questions':effectiveAnalyzeQuestions(f['layer']),'context_text':personaToContextText(f,{'lastStrategyReviewAt':g}),'injection':personaToInjection(f),'controls':PERSONA_CONTROLS};break;}case'list':{d={'action':'list','personas':await c['list'](),'defaults':listIndustryDefaults()};break;}case'set':{const j=b['scope']==='account'&&b['account']?await c['get']('account',b['account']):await c['get']('system'),k={'version':0x1,'scope':b['scope'],'account':b['scope']==='account'?b['account']:undefined,'role':b['role'],'industries':b['industries'],'long_term':b['long_term']??j?.['long_term']??{},'current':b['current']??j?.['current']??{},'updated_at':Date['now']()},l=validatePersona(k);if(l['length']>0x0)throw new Error('persona\x20invalid:\x20'+l['join'](';\x20'));await c['put'](k),d={'action':'set','persona':k,'line_count':countPersonaLines(k)};break;}case'analyze':{d={'action':'analyze','analysis':analyzePersonaContext(b['context'])};break;}case'apply':{const m=analyzePersonaContext(b['context']),n=await applyAnalysisToCurrent(b['scope'],b['account'],m,b['mode']??'merge',b['role'],b['industries']);d={'action':'apply','persona':n,'effective':await getEffectivePersona(b['account'],undefined,n['role']),'applied':m['suggestions']};break;}case'apply_delta':{if(b['scope']==='account'&&!b['account'])throw new Error('\x27account\x27\x20is\x20required\x20when\x20scope=\x27account\x27');const o=await applyDeltaToCurrent(b['scope'],b['account'],b['delta'],b['role'],b['industries']);d={'action':'apply_delta','persona':o['persona'],'effective':o['effective'],'applied':o['applied']};break;}case'sync':{const p=await syncExperienceToCurrent(b['account']);d={'action':'sync','persona':p['persona'],'applied':p['applied'],'effective':p['effective']};break;}case'remove':{const q=b['scope']==='account'&&b['account']?await c['delete']('account',b['account']):await c['delete']('system');d={'action':'remove','removed':q};break;}case'strategy':{const r=await resolvePersonaReadAccount(b['account']),s=await getEffectivePersona(r,undefined,b['role']),t=b['role']??s['role'],u=b['strategy']??s['layer']['strategy']??[],v=resolveStrategyIntents(t,u),w=v['flatMap'](suggestLevers);d={'action':'strategy','role':t,'intents':v,'suggestions':w,'note':t==='merchant'?'':'strategy→lever\x20mapping\x20is\x20a\x20producer-side\x20concept;\x20only\x20merchant\x20personas\x20map\x20to\x20infrastructure\x20levers.'};break;}case'region_hint':{let x;try{x=await resolveLocalRegion();}catch{x=undefined;}const y=b['propose']!==undefined?proposeLocalRegionSave(b['propose']):undefined;d={'action':'region_hint','hint':x,'proposal':y,'note':x===undefined&&y===undefined?'No\x20locally-stored\x20delivery\x20address;\x20pass\x20`propose`\x20to\x20create\x20a\x20consent-gated\x20save\x20proposal.':undefined};break;}case'distill':{const z=await resolveNetwork(b['network']),A=await goalStore['get'](z,b['goal_id']);if(!A)throw new Error('goal\x20not\x20found:\x20'+b['goal_id']+'\x20(network\x20'+z+')');const B=gatherGoalEvidence(A);let C=null;try{const E=A['binding']?.['account'];if(E){const F=await getEffectivePersona(E),G=F['industries'][0x0];if(G){const H=await getScorecardStore()['latest'](E,G);if(H){const I=H['posture']??F['layer']['profiles']?.['merchant']?.['merchant']?.['posture']??'balanced';C={'snapshot_id':H['id'],'industry':G,'posture':I,'overall':scoreScorecard(H['collection'],I)['overall']};}}}}catch{C=null;}const D=distillGoalToProposal(A,B,C);d={'action':'distill','summary':D['summary'],'current_delta':D['current_delta'],'evidence':B,'apply_via':D['apply_via'],'goal':{'id':A['id'],'title':A['title'],...A['outcome']?{'outcome_success':A['outcome']['success']}:{}}};break;}default:throw new Error('Unknown\x20persona_operation\x20action');}return{'content':[{'type':'text','text':JSON['stringify']({'result':d})}],'structuredContent':{'result':d}};}export{GENERIC_PERSONA};
|
|
1
|
+
import{strictParse}from'../../schema/index.js';import{PersonaOperationInputSchema}from'../../schema/persona/index.js';import{GENERIC_PERSONA,analyzePersonaContext,applyAnalysisToCurrent,applyDeltaToCurrent,countPersonaLines,distillGoalToProposal,effectiveAnalyzeQuestions,gatherGoalEvidence,getEffectivePersona,getPersonaStore,listIndustryDefaults,personaToContextText,personaToInjection,syncExperienceToCurrent,validatePersona,resolveStrategyIntents,suggestLevers,resolveLocalRegion,proposeLocalRegionSave}from'../../persona/index.js';import{goalStore}from'../../goal/GoalStore.js';import{getScorecardStore}from'../../strategy/store.js';import{scoreScorecard}from'../../strategy/scorecard.js';import{resolveNetwork}from'./network.js';import{Account}from'@wowok/wowok/w/local';import{SYSTEM_OVERRIDE_SETTINGS}from'../../persona/overrides.js';import{CONFIRMATION_RULES}from'../../knowledge/safety-rules.js';import{getFailMode}from'../../safety/confirm-gate.js';const PERSONA_CONTROLS={'confirm_modes':['full','streamlined','quiet'],'overrides':SYSTEM_OVERRIDE_SETTINGS['map'](a=>({'id':a['id'],'default':a['default'],'allowed':[...a['allowed']],...a['surface']?{'surface':a['surface']}:{}})),'locked_rules':CONFIRMATION_RULES['filter'](a=>getFailMode(a['level'])==='closed'&&a['id']!=='publish_immutable')['map'](a=>({'id':a['id'],'level':a['level']})),'policy_keys':['confirm.mode','confirm.batch_standard','confirm.session_remember','confirm.intent_bypass','budget.daily_wow','allowlist','audit']};async function resolveDefaultAccountAddress(){try{const a=new Account(),b=await a['default'](![]);return b?.['address'];}catch{return undefined;}}async function resolvePersonaReadAccount(a){if(a)return a;return resolveDefaultAccountAddress();}export async function handlePersonaOperation(a){const b=strictParse(PersonaOperationInputSchema,a,'persona_operation\x20input'),c=getPersonaStore();let d;switch(b['action']){case'get':{const e=await resolvePersonaReadAccount(b['account']),f=await getEffectivePersona(e,b['industry'],b['role']);let g=null;try{const h=f['industries'][0x0];if(e&&f['role']==='merchant'&&h){const i=await getScorecardStore()['latest'](e,h);g=i?.['collected_at']??null;}}catch{g=null;}d={'action':'get','target_account':e,'effective':f,'analyze_questions':effectiveAnalyzeQuestions(f['layer']),'context_text':personaToContextText(f,{'lastStrategyReviewAt':g}),'injection':personaToInjection(f),'controls':PERSONA_CONTROLS};break;}case'list':{d={'action':'list','personas':await c['list'](),'defaults':listIndustryDefaults()};break;}case'set':{if(b['long_term']!==undefined&&b['confirm']!==!![])throw new Error('persona\x20set\x20with\x20a\x20long_term\x20payload\x20requires\x20explicit\x20human\x20confirmation:\x20show\x20the\x20user\x20the\x20'+'full\x20long_term\x20layer\x20being\x20written\x20(identity,\x20industries,\x20strategy,\x20rules)\x20and\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20current-layer\x20sets\x20need\x20no\x20confirmation.');const j=b['scope']==='account'&&b['account']?await c['get']('account',b['account']):await c['get']('system'),k={'version':0x1,'scope':b['scope'],'account':b['scope']==='account'?b['account']:undefined,'role':b['role'],'industries':b['industries'],'long_term':b['long_term']??j?.['long_term']??{},'current':b['current']??j?.['current']??{},'updated_at':Date['now']()},l=validatePersona(k);if(l['length']>0x0)throw new Error('persona\x20invalid:\x20'+l['join'](';\x20'));await c['put'](k),d={'action':'set','persona':k,'line_count':countPersonaLines(k)};break;}case'analyze':{d={'action':'analyze','analysis':analyzePersonaContext(b['context'])};break;}case'apply':{const m=analyzePersonaContext(b['context']),n=await applyAnalysisToCurrent(b['scope'],b['account'],m,b['mode']??'merge',b['role'],b['industries']);d={'action':'apply','persona':n,'effective':await getEffectivePersona(b['account'],undefined,n['role']),'applied':m['suggestions']};break;}case'apply_delta':{if(b['scope']==='account'&&!b['account'])throw new Error('\x27account\x27\x20is\x20required\x20when\x20scope=\x27account\x27');const o=await applyDeltaToCurrent(b['scope'],b['account'],b['delta'],b['role'],b['industries']);d={'action':'apply_delta','persona':o['persona'],'effective':o['effective'],'applied':o['applied']};break;}case'sync':{const p=await syncExperienceToCurrent(b['account']);d={'action':'sync','persona':p['persona'],'applied':p['applied'],'effective':p['effective']};break;}case'remove':{const q=b['scope']==='account'&&b['account']?await c['delete']('account',b['account']):await c['delete']('system');d={'action':'remove','removed':q};break;}case'strategy':{const r=await resolvePersonaReadAccount(b['account']),s=await getEffectivePersona(r,undefined,b['role']),t=b['role']??s['role'],u=b['strategy']??s['layer']['strategy']??[],v=resolveStrategyIntents(t,u),w=v['flatMap'](suggestLevers);d={'action':'strategy','role':t,'intents':v,'suggestions':w,'note':t==='merchant'?'':'strategy→lever\x20mapping\x20is\x20a\x20producer-side\x20concept;\x20only\x20merchant\x20personas\x20map\x20to\x20infrastructure\x20levers.'};break;}case'region_hint':{let x;try{x=await resolveLocalRegion();}catch{x=undefined;}const y=b['propose']!==undefined?proposeLocalRegionSave(b['propose']):undefined;d={'action':'region_hint','hint':x,'proposal':y,'note':x===undefined&&y===undefined?'No\x20locally-stored\x20delivery\x20address;\x20pass\x20`propose`\x20to\x20create\x20a\x20consent-gated\x20save\x20proposal.':undefined};break;}case'distill':{const z=await resolveNetwork(b['network']),A=await goalStore['get'](z,b['goal_id']);if(!A)throw new Error('goal\x20not\x20found:\x20'+b['goal_id']+'\x20(network\x20'+z+')');const B=gatherGoalEvidence(A);let C=null;try{const E=A['binding']?.['account'];if(E){const F=await getEffectivePersona(E),G=F['industries'][0x0];if(G){const H=await getScorecardStore()['latest'](E,G);if(H){const I=H['posture']??F['layer']['profiles']?.['merchant']?.['merchant']?.['posture']??'balanced';C={'snapshot_id':H['id'],'industry':G,'posture':I,'overall':scoreScorecard(H['collection'],I)['overall']};}}}}catch{C=null;}const D=distillGoalToProposal(A,B,C);d={'action':'distill','summary':D['summary'],'current_delta':D['current_delta'],'evidence':B,'apply_via':D['apply_via'],'goal':{'id':A['id'],'title':A['title'],...A['outcome']?{'outcome_success':A['outcome']['success']}:{}}};break;}default:throw new Error('Unknown\x20persona_operation\x20action');}return{'content':[{'type':'text','text':JSON['stringify']({'result':d})}],'structuredContent':{'result':d}};}export{GENERIC_PERSONA};
|
|
@@ -6,6 +6,14 @@ export interface ProfileFollowUp {
|
|
|
6
6
|
}
|
|
7
7
|
export declare function buildProfileFollowUps(prof: any): ProfileFollowUp[];
|
|
8
8
|
export declare function balanceScopeNote(coinPageAttached: boolean): string;
|
|
9
|
+
export declare function balanceFreshnessFace(network: string): {
|
|
10
|
+
source: "live";
|
|
11
|
+
cached: boolean;
|
|
12
|
+
network: string;
|
|
13
|
+
fetched_at: string;
|
|
14
|
+
note: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const NETWORK_FIELD_BY_QUERY: Readonly<Record<string, "network" | "context_network">>;
|
|
9
17
|
export declare function handleWatchQueryOperations(args: unknown): Promise<ToolDispatchResult>;
|
|
10
18
|
export declare function queryPayloadAliases(result: any): Record<string, unknown>;
|
|
11
19
|
export declare function fundExitAuditNote(result: any): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{strictParse,WatchQueryOperationsSchema,OnchainTableDataSchema,OnchainEventsInputSchema,ProtocolInfoQuerySchema}from'../../schema/index.js';import{checkUpgrade,readChainStamp}from'../upgrade-check.js';import{currentBuildFingerprint,compareReportFingerprint,setComparisonChainEpoch}from'../build-fingerprint.js';import{getUniversalTemplate}from'../../knowledge/universal-template.js';import{getGettingStarted}from'../../knowledge/getting-started.js';import{query_local_mark_list,query_account_list,query_local_info_list,query_local_token_list,query_account,GetLocalNamesByAddresses,query_personal,query_table,query_tableItem,queryTableItem_RepositoryData,queryTableItem_PermissionPerm,queryTableItem_RewardRecord,queryTableItem_DemandPresenter,queryTableItem_TreasuryHistory,queryTableItem_MachineNode,queryTableItem_ProgressHistory,queryTableItem_AddressMark,queryTableItem_EntityRegistrar,queryTableItem_EntityLinker,queryTableItem_EntityContact,queryTableItem_ObjectLinkerCore,queryTableItem_ObjectLinkerTx,queryTableItem_EntityOrder,queryOrdersByUser,query_affiliations,query_address_profile,query_address_profiles,objectTypeFromAddress,ObjectType,query_received,queryProtocolInfo,query_events,query_transaction,query_object_history,query_address_activity,query_checkpoint,generateNodeComments,query_object_last_updated,Config,LocalMark,ENTRYPOINT}from'@wowok/wowok';import{resolveSupplyChainGraph}from'../../knowledge/supply-chain.js';import{SCENARIO_CHAINS,SCENARIO_BRIDGE_REGISTRY,SCENARIO_TOPOLOGY_VERSION}from'../../knowledge/scenario-topology.js';import{assembleContext}from'../../playbooks/service-build/context-assembly.js';import{buildMachineGraph,fetchMachineNodes}from'../../playbooks/service-build/machine-nodes.js';import{generateBusinessReport}from'../../playbooks/service-build/reverse-mapping.js';import{handleServicePanorama}from'../../playbooks/service-build/service-panorama.js';import{handleServiceQuote}from'../../playbooks/service-build/service-quote.js';import{handleMachinePanorama}from'../../playbooks/service-build/machine-panorama.js';import{handleObjectPanorama}from'../../playbooks/service-build/object-panorama.js';import{handleParticipationRadar}from'../../playbooks/service-build/participation-radar.js';import{handleRelationshipProfile}from'../../playbooks/service-build/relationship-profile.js';import{handleOnchainTopology}from'../../playbooks/service-build/topology-query.js';import{buildUserInjection}from'../../evaluation/injection.js';import{handleReviewPack}from'../../review/index.js';import{buildWorkspaceLists}from'../../knowledge/workspace-lists.js';import{buildAccountMarks}from'../../knowledge/account-marks.js';import{migrationPreflight}from'../../knowledge/migration-preflight.js';import{buildDataSemantic}from'../../schema/call/semantic.js';import{enrichWorkflowGuidance}from'../../knowledge/workflow-guidance.js';import{buildOrderFundFacts}from'../../knowledge/arb-fund-facts.js';import{batchQueryObjectsByIds,fetchServiceOrders,lastUnresolvedInputs,LINKER_RING_LIMIT}from'../../graph/onchain/sdk-batch.js';import{recoverObjectHeldReceipts}from'../../graph/onchain/object-held-receipts.js';import{formatChainValue,annotateObjectMonetaryFields,annotateTableItemMonetaryFields,annotateEventsMonetaryFields,annotateBalanceChanges,resolveParentObjectTokenType,convertTokenValue}from'../../knowledge/fund-layer.js';import{normalizeAccountOrMark}from'./messenger.js';import{resolveAddress}from'./name-resolution.js';function ownerAddrOf(a){if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];const c=Object['values'](b)['find'](d=>typeof d==='string'&&d['length']>0x14);if(typeof c==='string')return c;}return null;}const serviceCoinTypeCache=new Map();async function coinTypesOfServices(a,b){const c=new Map();if(!a||a['length']===0x0)return c;const d=[];for(const e of a){const f=(b??'')+'|'+e['toLowerCase'](),h=serviceCoinTypeCache['get'](f);if(h!==undefined)c['set'](e,h);else d['push'](e);}if(d['length']===0x0)return c;try{const i=await batchQueryObjectsByIds(d,b);for(const j of i){if(!j?.['object'])continue;const k=j?.['type_raw']??j?.['type']??'',l=k['match'](/<(.+)>$/);if(!l)continue;serviceCoinTypeCache['set']((b??'')+'|'+String(j['object'])['toLowerCase'](),l[0x1]),c['set'](j['object'],l[0x1]);}}catch{}return c;}async function mergeServiceAnalysis(a,b){const c=a?.['object'],d=a?.['kind']==='Service'||c&&(c['type']==='Service'||(c['type_raw']??'')['includes']('::service::'));if(!d||!a)return;let e=null;try{const s=await query_object_last_updated({'object':a['address'],'network':b['network']});s?.['timestamp_ms']&&(e={'timestamp_ms':s['timestamp_ms'],'digest':s['digest'],'sender':s['sender']});}catch{}const f=a?.['reverse_core'],g=a?.['reverse_tx'],h=Array['isArray'](f?.['items'])?f['items']['length']:0x0,i=Array['isArray'](g?.['items'])?g['items']['length']:0x0,j=(i>0x0?g['items']:[])['filter'](t=>objectTypeFromAddress(t?.['who'])===ObjectType['Order']),k=j['length'],l=k>=LINKER_RING_LIMIT,m=Array['isArray'](a?.['reputation']?.['votes'])?a['reputation']['votes']:[],n=c?.['type_raw']??c?.['type']??'',o=n['match'](/<(.+)>$/),p=o?o[0x1]:null,q=p?(p['split']('::')['pop']()??p)['toUpperCase']():null,r=Array['isArray'](c?.['sales'])?c['sales']:[];a['service_analysis']={'description':c?.['description']??null,'sales_count':r['length'],'live_sales_count':r['filter'](t=>t&&!t['suspension'])['length'],'paused_sales_count':r['filter'](t=>t&&t['suspension'])['length'],'orders_count':k,'orders_count_truncated':l,'like_count':m['filter'](t=>t&&t['like'])['length'],'dislike_count':m['filter'](t=>t&&t['dislike'])['length'],'favor_count':m['filter'](t=>t&&t['favor'])['length'],'votes':m['map'](t=>({'who':t?.['who']??null,'like':!!t?.['like'],'dislike':!!t?.['dislike'],'favor':!!t?.['favor'],'time':t?.['time']??null})),'coin_type':p,'token_symbol':q,'location':c?.['location']??null,'bPublished':c?.['bPublished']??null,'bPaused':c?.['bPaused']??null,'related_core_count':h,'related_tx_count':i,'related_object_count':h+i,'onchain_last_updated':e};}export function buildProfileFollowUps(a){if(!a||typeof a!=='object')return[];const b=typeof a['address']==='string'?a['address']:undefined;if(!b)return[];const c=a['kind']==='user'||!a['is_system_singleton']&&!a['object'],d=[];if(c){const e=Array['isArray'](a['permission_membership']?.['items'])?a['permission_membership']['items']:[],f=Array['isArray'](a['order_membership']?.['items'])?a['order_membership']['items']:[];e['length']>0x0&&d['push']({'label':'Permission\x20organizations\x20('+e['length']+')','detail':'Expand\x20each\x20Permission\x20the\x20address\x20belongs\x20to\x20—\x20owner/admin/entity\x20standing\x20and\x20what\x20the\x20org\x20governs.','call':{'query_type':'onchain_objects','objects':e['map'](g=>g['who'])['filter'](Boolean)}}),f['length']>0x0&&d['push']({'label':'Order\x20footprint\x20('+f['length']+')','detail':'The\x20orders\x20this\x20address\x20participates\x20in\x20(buyer\x20vs\x20operator\x20roles).','call':{'query_type':'onchain_table_item_entity_order','address':b}}),d['push']({'label':'Public\x20personal\x20profile','detail':'Social/IM\x20links,\x20public\x20info\x20records,\x20voting\x20history,\x20referrer.','call':{'query_type':'onchain_personal_profile','address':b}}),d['push']({'label':'Reverse\x20map','detail':'Related\x20objects\x20and\x20the\x20deterministic\x20business\x20report\x20for\x20this\x20address.','call':{'query_type':'reverse_map','context_objects':[b]}});}else a['object']&&d['push']({'label':'Full\x20object\x20body','detail':'The\x20complete\x20on-chain\x20object\x20fields\x20(one\x20targeted\x20read).','call':{'query_type':'onchain_objects','objects':[b]}}),d['push']({'label':'Reverse\x20map','detail':'Related\x20objects\x20and\x20the\x20deterministic\x20business\x20report.','call':{'query_type':'reverse_map','context_objects':[b]}});return d['push']({'label':'Recent\x20on-chain\x20activity','detail':'Newest\x20transactions\x20touching\x20this\x20address.','call':{'query_type':'onchain_address_activity','address':b}}),d['slice'](0x0,0x3);}async function annotateAccountBalance(a,b){if(!a||typeof a!=='object')return;const e={},f=(j,k)=>{if(j===null||j===undefined)return undefined;if(typeof j!=='string'&&typeof j!=='number'&&typeof j!=='bigint')return undefined;if(typeof k!=='string'||!k)return undefined;return formatChainValue(j,k,b);},g=a['balance'];if(g&&typeof g==='object'){const j=g['coinType'],k=await f(g['totalBalance'],j);if(k)e['balance.totalBalance']=k;if(g['lockedBalance']!==undefined){const l=await f(g['lockedBalance'],j);if(l)e['balance.lockedBalance']=l;}}const h=a['coin']?.['data'];if(Array['isArray'](h))for(let m=0x0;m<h['length'];m++){const n=h[m],o=await f(n?.['balance'],n?.['coinType']);if(o)e['coin.data['+m+'].balance']=o;}if(Object['keys'](e)['length']>0x0){if(b)for(const p of Object['keys'](e)){const q=e[p];e[p]={...q,'text':q['text']+'\x20—\x20network:\x20'+b};}a['_money_display']=e;}}export function balanceScopeNote(a){return a?'The\x20balance\x20figure\x20reflects\x20the\x20aggregated\x20total\x20only;\x20the\x20coin\x20list\x20below\x20is\x20just\x20the\x20FIRST\x20PAGE\x20(top\x205)\x20'+'of\x20independently\x20owned\x20Coin\x20objects\x20—\x20a\x20refund\x20can\x20land\x20as\x20its\x20own\x20Coin\x20object\x20beyond\x20this\x20page.\x20'+'Verify\x20fund\x20arrival\x20via\x20the\x20transaction\x20digest\x20(onchain_transaction)\x20or\x20the\x20full\x20coin-object\x20listing\x20'+'(coin={cursor,limit})\x20before\x20drawing\x20conclusions.':'The\x20balance\x20figure\x20reflects\x20the\x20aggregated\x20total\x20only;\x20independently\x20owned\x20Coin\x20objects\x20are\x20not\x20'+'enumerated\x20here\x20—\x20verify\x20fund\x20arrival\x20via\x20the\x20transaction\x20digest\x20or\x20a\x20coin-objects\x20query\x20before\x20'+'drawing\x20conclusions.';}const NETWORK_FIELD_BY_QUERY={'account_balance':'network','onchain_personal_profile':'network','onchain_objects':'network','onchain_received':'network','onchain_transaction':'network','onchain_block':'network','onchain_object_history':'network','onchain_last_updated':'network','onchain_address_activity':'network','token_value_convert':'network','address_profile':'network','address_profiles':'network','service_supply_chain':'network','assemble_context':'context_network','reverse_map':'context_network','service_panorama':'context_network','service_quote':'context_network','machine_panorama':'context_network','object_panorama':'context_network','review_pack':'context_network','participation_radar':'context_network','relationship_profile':'context_network','onchain_topology':'context_network','workspace_lists':'context_network','marks_of_account':'context_network'};function requestedNetworkForQuery(a,b){const c=NETWORK_FIELD_BY_QUERY[b];if(!c)return undefined;const d=a[c];return typeof d==='string'&&d['length']>0x0?d:undefined;}const LOCAL_FAMILY_QUERIES=new Set(['local_mark_list','account_list','local_info_list','token_list','local_names']);function normalizeNetworkFieldAlias(a){const b=a['query_type'];if(typeof b!=='string')return;if(LOCAL_FAMILY_QUERIES['has'](b)){delete a['network'],delete a['context_network'];return;}const c=NETWORK_FIELD_BY_QUERY[b];if(!c)return;const d=c==='network'?'context_network':'network';a[c]===undefined&&a[d]!==undefined&&(a[c]=a[d],delete a[d]);}export async function handleWatchQueryOperations(a){let c=a;if(a!==null&&typeof a==='object'&&!Array['isArray'](a)){const l={...a};normalizeNetworkFieldAlias(l),c=l;}const d=strictParse(WatchQueryOperationsSchema,c,'watch_and_query\x20input');let f,g,h;switch(d['query_type']){case'local_mark_list':{const m=await query_local_mark_list(d['filter']||{});f={'query_type':'local_mark_list','result':m};break;}case'account_list':{const n=await query_account_list(d['filter']);f={'query_type':'account_list','result':n};break;}case'local_info_list':{const o=await query_local_info_list(d['filter'],d['account']);f={'query_type':'local_info_list','result':o};break;}case'token_list':{const p=await query_local_token_list(d['filter']||{});f={'query_type':'token_list','result':p};break;}case'account_balance':{const q=await query_account({'name_or_address':d['name_or_address'],'token_type':d['token_type'],'balance':d['balance'],'coin':d['coin'],'network':d['network']}),r=d['network']??await Config['Instance']()['network_get']();await annotateAccountBalance(q,r);let s=![];if(q['balance']&&!d['coin']&&!q['object']&&!q['hint'])try{const t=await query_account({'name_or_address':d['name_or_address'],'coin':{'cursor':null,'limit':0x5},'token_type':d['token_type'],'network':d['network']});t['coin']&&(q['coin']=t['coin'],s=!![]);}catch{}q['_balance_scope_note']=balanceScopeNote(s),f={'query_type':'account_balance','result':q};break;}case'local_names':{const u=await GetLocalNamesByAddresses(d['addresses']);f={'query_type':'local_names','result':u};break;}case'onchain_personal_profile':{const v=await query_personal({'account':d['account'],'no_cache':d['no_cache'],'network':d['network']});f={'query_type':'onchain_personal_profile','result':v};break;}case'onchain_objects':{const w=d['no_cache']??!![],x=await batchQueryObjectsByIds(d['objects'],d['network'],w),y=lastUnresolvedInputs(),z={'objects':x,'_read_freshness':{'source':w?'live':'session_cache','no_cache':w,'fetched_at':new Date()['toISOString'](),'note':w?'Forced-fresh\x20read.\x20This\x20is\x20the\x20DEFAULT\x20because\x20a\x20stale\x20value\x20here\x20can\x20invert\x20a\x20fund-movement\x20conclusion.':'Session\x20cache\x20was\x20used\x20(no_cache:false).\x20Pass\x20no_cache:true\x20before\x20concluding\x20that\x20money\x20did\x20or\x20did\x20not\x20move.'},...x['length']===0x0&&y['length']>0x0?{'_empty_reason':{'kind':'unresolved_inputs','unresolved':y,'note':'These\x20inputs\x20resolved\x20to\x20neither\x20a\x20registered\x20LocalMark\x20nor\x20a\x20valid\x20address\x20on\x20network\x20\x27'+(d['network']??'current')+'\x27.\x20LocalMark\x20names\x20are\x20NETWORK-SCOPED\x20—\x20an\x20object\x20created\x20on\x20testnet\x20is\x20invisible\x20on\x20localnet/mainnet.\x20Either\x20register\x20the\x20mark\x20here\x20(local_mark_operation)\x20or\x20pass\x20the\x20full\x200x\x20address.\x20This\x20is\x20NOT\x20evidence\x20that\x20the\x20objects\x20are\x20absent\x20on\x20chain.'}}:{},...x['length']<d['objects']['length']?{'_unreturned':{'requested':d['objects']['length'],'returned':x['length'],'missing':d['objects']['map'](A=>typeof A==='string'?A:A?.['name_or_address']??A?.['object']??A?.['address'])['filter'](A=>typeof A==='string'&&A!=='')['filter'](A=>!x['some'](B=>typeof B?.['object']==='string'&&B['object']['toLowerCase']()===A['toLowerCase']())),'note':'These\x20requested\x20ids\x20were\x20NOT\x20returned\x20—\x20either\x20absent\x20on\x20chain,\x20filtered\x20by\x20the\x20reader\x27s\x20type\x20support,\x20or\x20unparseable.\x20This\x20is\x20NOT\x20proof\x20of\x20nonexistence:\x20verify\x20via\x20an\x20alternative\x20read\x20(object_panorama\x20/\x20a\x20direct\x20address\x20query)\x20before\x20concluding\x20an\x20object\x20is\x20gone.'}}:{}};if(z&&z['objects']&&Array['isArray'](z['objects'])){z['objects']=z['objects']['map'](A=>{if(A&&A['data']&&A['data']['type']==='Guard'&&A['data']['root'])try{const B=generateNodeComments(A['data']['root']);return{...A,'_guard_node_comments':B};}catch(C){return A;}return A;}),z['objects']=z['objects']['map'](A=>{if(A&&A['data']&&A['data']['type']==='Progress'&&A['data']['current']===''){const B=A['data']['machine'],C=A['data']['task'];return{...A,'_diagnostic':{'issue':'Progress.current\x20is\x20empty\x20—\x20order\x20workflow\x20is\x20stuck\x20at\x20the\x20initial\x20state','cause':'The\x20Machine\x27s\x20entry\x20node\x20(prev_node=\x27\x27)\x20likely\x20has\x20no\x20forwards\x20defined.\x20'+'When\x20Progress\x20starts,\x20it\x20looks\x20up\x20the\x20entry\x20node\x27s\x20forwards\x20to\x20determine\x20'+'the\x20next\x20node.\x20Without\x20forwards,\x20Progress\x20cannot\x20advance\x20and\x20the\x20order\x20'+'is\x20permanently\x20stuck.','machine_object_id':B??null,'bound_order_id':C??null,'fix':['1.\x20Query\x20the\x20Machine\x20object\x20(use\x20query_toolkit\x20with\x20query_type=\x27onchain_objects\x27\x20and\x20objects=['+JSON['stringify'](B)+']).','2.\x20Inspect\x20node.pairs\x20for\x20the\x20entry\x20node\x20(prev_node=\x27\x27).','3.\x20If\x20forwards\x20is\x20empty:\x20this\x20is\x20the\x20root\x20cause.\x20The\x20Machine\x20must\x20be\x20republished\x20with\x20at\x20least\x20one\x20forward\x20on\x20the\x20entry\x20node.','4.\x20To\x20republish:\x20clone\x20the\x20Machine\x20nodes,\x20add\x20a\x20forward\x20to\x20the\x20entry\x20node\x27s\x20pairs,\x20then\x20create\x20a\x20new\x20Machine\x20(Machine\x20nodes\x20are\x20immutable\x20after\x20publish\x20—\x20see\x20P0-2\x20schema\x20validation\x20that\x20now\x20blocks\x20this).','5.\x20Rebind\x20the\x20new\x20Machine\x20to\x20the\x20Service\x20(service.machine\x20field)\x20and\x20create\x20a\x20new\x20Order\x20to\x20test.'],'reference':'P0-2\x20schema\x20refinement\x20in\x20MachineNodePairSchema\x20ensures\x20new\x20Machines\x20cannot\x20be\x20published\x20with\x20empty\x20entry-node\x20forwards.\x20This\x20diagnostic\x20catches\x20legacy\x20Machines\x20that\x20predate\x20the\x20fix.'}};}return A;});for(const A of z['objects']){const B=A?.['data']??A;if((A?.['type']??B?.['type'])!=='Progress')continue;const C=A?.['object']??B?.['object'];if(!C)continue;try{const D=await enrichWorkflowGuidance({'progressRef':C,'network':d['network'],'noCache':d['no_cache']});if(D?.['guidance']){A['_workflow_guidance']=D['guidance'];if(D['text'])A['_workflow_guidance_text']=D['text'];}}catch{}}for(const E of z['objects']){const F=E?.['data']??E;if((E?.['type']??F?.['type'])!=='Arb')continue;const G=E?.['object']??F?.['object'];if(!G)continue;try{const H=await buildOrderFundFacts({'arbRef':G,'network':d['network'],'noCache':w});H&&(E['_order_fund_facts']=H['structured'],E['_order_fund_facts_text']=H['text']);}catch{}}for(const I of z['objects']){try{await annotateObjectMonetaryFields(I,d['network']);}catch{}}}f={'query_type':'onchain_objects','result':z};break;}case'onchain_received':{const J=d['name_or_address'],K=typeof J==='string'?J:J?.['name_or_address'],L=await query_received({'name_or_address':normalizeAccountOrMark(d['name_or_address']),'type':d['type'],'cursor':d['cursor'],'limit':d['limit'],'no_cache':d['no_cache'],'network':d['network']}),M=L;if(d['type']==='CoinWrapper'&&M&&!Array['isArray'](M)&&Array['isArray'](M['received'])&&M['received']['length']===0x0&&typeof K==='string'&&K!==''&&!K['toLowerCase']()['startsWith']('0x00')){const N=await recoverObjectHeldReceipts(K,{'network':d['network'],'no_cache':d['no_cache']});N&&N['receipts']['length']>0x0&&(M['received']=N['receipts']['map'](O=>({'id':O['id'],'balance':O['amount'],'payment':O['payment'],'type':O['type'],'version':O['version'],'digest':O['digest']})),M['token_type']=N['token_type'],M['balance']=N['receipts']['reduce']((O,P)=>O+BigInt(P['amount']||'0'),0x0n),h='allocation-transaction-effects');}if(M&&typeof M==='object'&&typeof M['balance']==='bigint'){const O=M['token_type'];M['balance']=M['balance']['toString']();if(Array['isArray'](M['received']))for(const P of M['received']){P&&typeof P['balance']==='bigint'&&(P['balance']=P['balance']['toString']());}if(O)try{const Q={'balance':await formatChainValue(M['balance'],O,d['network'])};if(Array['isArray'](M['received']))for(let R=0x0;R<M['received']['length'];R++){const S=M['received'][R]?.['balance'];S!==undefined&&S!==null&&(Q['received['+R+'].balance']=await formatChainValue(S,O,d['network']));}M['_money_display']=Q;}catch{}}f={'query_type':'onchain_received','result':M};break;}case'onchain_transaction':{const T=Y=>query_transaction({'digest':d['digest'],'no_cache':d['no_cache'],'network':Y}),U=Y=>/could not find the referenced transaction|not found/i['test'](Y instanceof Error?Y['message']:String(Y));let V;if(d['network'])V=await T(d['network']);else{const Y=await Config['Instance']()['network_get']();try{V=await T(undefined);}catch(Z){if(!U(Z))throw Z;}if(!V){const a0=[];for(const a1 of Object['values'](ENTRYPOINT)){if(a1===Y)continue;a0['push'](a1);try{const a2=await T(a1);if(a2){V=a2,g=a1;break;}}catch{}}if(!V)throw new Error('Transaction\x20digest\x20not\x20found\x20on\x20the\x20session\x20default\x20network\x20('+Y+')\x20'+('or\x20any\x20other\x20probed\x20network\x20('+[Y,...a0]['join'](',\x20')+').\x20')+'This\x20is\x20an\x20all-network\x20miss\x20—\x20record\x20it\x20as\x20\x22did\x20not\x20commit\x22\x20(never\x20as\x20\x22unverified\x22).\x20'+'If\x20you\x20know\x20the\x20digest\x27s\x20network,\x20pass\x20network\x20explicitly.');}}const W=d['network']??g;try{await annotateBalanceChanges(V?.['balance_changes'],W);}catch{}g&&(V['_network_probe']='NOT\x20found\x20on\x20the\x20session\x20default\x20network;\x20FOUND\x20on\x20\x27'+g+'\x27\x20—\x20every\x20field\x20'+('below\x20(status,\x20gas,\x20balance\x20changes)\x20was\x20READ\x20FROM\x20'+g+'.\x20Never\x20cite\x20this\x20')+'result\x20as\x20session-default-network\x20data.');const X=fundExitAuditNote(V);X&&(V['_fund_exit_audit']=X);f={'query_type':'onchain_transaction','result':V};break;}case'onchain_block':{const a3=await query_checkpoint({'block':d['block'],'network':d['network']});f={'query_type':'onchain_block','result':a3};break;}case'onchain_object_history':{const a4=await query_object_history({'object':d['object'],'cursor':d['cursor'],'limit':d['limit'],'order':d['order'],'no_cache':d['no_cache'],'network':d['network']});f={'query_type':'onchain_object_history','result':a4};break;}case'onchain_last_updated':{const a5=d['objects']??[],a6=await Promise['allSettled'](a5['map'](a8=>query_object_last_updated({'object':a8,'network':d['network']}))),a7=a5['map']((a8,a9)=>{const aa=a6[a9],ab=aa['status']==='fulfilled'?aa['value']:null;return{'object':a8,'timestamp_ms':ab?.['timestamp_ms']?String(ab['timestamp_ms']):null,'digest':ab?.['digest']??null,'sender':ab?.['sender']??null};});f={'query_type':'onchain_last_updated','result':{'items':a7}};break;}case'onchain_address_activity':{const a8=typeof d['name_or_address']==='string'?d['name_or_address']:d['name_or_address']['name_or_address'],a9=await query_address_activity({'name_or_address':a8,'direction':d['direction'],'cursor':d['cursor'],'limit':d['limit'],'order':d['order'],'no_cache':d['no_cache'],'network':d['network']});f={'query_type':'onchain_address_activity','result':a9};break;}case'token_value_convert':{const aa=d['raw']!==undefined,ab=d['unit']!==undefined;if(aa===ab)throw new Error('token_value_convert:\x20provide\x20EXACTLY\x20ONE\x20of\x20\x27raw\x27\x20(u64\x20smallest\x20units\x20→\x20unit\x20value)\x20'+('or\x20\x27unit\x27\x20(unit\x20value\x20→\x20u64\x20raw).\x20Received\x20raw='+JSON['stringify'](d['raw'])+',\x20')+('unit='+JSON['stringify'](d['unit'])+'.'));const ac=await convertTokenValue(d['token_type'],aa?{'raw':d['raw']}:{'unit':d['unit']},d['network']);f={'query_type':'token_value_convert','result':ac};break;}case'address_profile':{const ad=await query_address_profile({'address':d['address'],'no_cache':d['no_cache'],'network':d['network']});await mergeServiceAnalysis(ad,{'no_cache':d['no_cache'],'network':d['network']});ad&&typeof ad==='object'&&(ad['follow_ups']=buildProfileFollowUps(ad));f={'query_type':'address_profile','result':ad};break;}case'address_profiles':{const ae=await query_address_profiles({'addresses':d['addresses'],'no_cache':d['no_cache'],'network':d['network']});await Promise['all'](ae['map'](af=>mergeServiceAnalysis(af,{'no_cache':d['no_cache'],'network':d['network']})));for(const af of ae??[]){af&&typeof af==='object'&&(af['follow_ups']=buildProfileFollowUps(af));}f={'query_type':'address_profiles','result':ae};break;}case'service_supply_chain':{const ag=await resolveSupplyChainGraph(typeof d['address']==='string'?d['address']:d['address']?.['name_or_address']??String(d['address']),d['network']);f={'query_type':'service_supply_chain','result':ag};break;}case'assemble_context':{f={'query_type':'assemble_context','result':await assembleContext(d)};break;}case'reverse_map':{if(!d['context_objects']||d['context_objects']['length']===0x0)throw new Error('reverse_map\x20requires\x20\x27context_objects\x27\x20—\x20an\x20array\x20of\x20object\x20IDs\x20or\x20LocalMark\x20names\x20(include\x20the\x20Service;\x20add\x20Machine/Allocation\x20for\x20refund-path\x20detection).');const ah=d['context_network']??await Config['Instance']()['network_get'](),ai=await batchQueryObjectsByIds(d['context_objects'],ah,!![]);let aj,ak,al=null;{const an=ai['find'](ap=>{const aq=ap?.['machine']??ap?.['data']?.['machine'];return typeof aq==='string'&&/^0x[0-9a-fA-F]/['test'](aq);});if(an)try{al=String(an['object']??an['id']??'');const ap=await LocalMark['Instance']()['list']({'address':al});if(ap[0x0]?.['name'])an['name']=ap[0x0]['name'];}catch{}const ao=an?String(an['machine']??an['data']?.['machine']):null;if(ao)try{const aq=ai['some'](as=>String(as?.['object']??as?.['id']??'')['toLowerCase']()===ao['toLowerCase']());!aq&&ai['push'](...await batchQueryObjectsByIds([ao],ah,!![]));const ar=await fetchMachineNodes(ao,ah);aj=ar['map'](as=>({'name':String(as?.['name']??'')}))['filter'](as=>as['name']['length']>0x0),ak=buildMachineGraph(ar)['edges']['map'](as=>({'from':as['from'],'to':as['to']}));}catch{}}let am;if(al)try{const as=await fetchServiceOrders(al,ah),at=(as?.['items']??[])['slice'](0x0,0xa)['map'](au=>typeof au?.['who']==='string'?au['who']:'')['filter'](au=>au!=='');if(at['length']>0x0){const au=await batchQueryObjectsByIds(at,ah,!![]);am=au['filter'](av=>av?.['type']===ObjectType['Order'])['map'](av=>({'id':av['object'],'created_at_ms':Number(av?.['time'])||undefined,'claimed_by':av?.['claimed_by']??null}));}}catch{}f={'query_type':'reverse_map','result':{'action':'reverse_map','objects_queried':ai['length'],'report':generateBusinessReport({'objects':ai,'machine_nodes':aj,'machine_edges':ak,'orders':am,'now_ms':Date['now'](),'order_amount':d['reverse_order_amount']})}};break;}case'service_panorama':f={'query_type':'service_panorama','result':await handleServicePanorama(d)};break;case'service_quote':f={'query_type':'service_quote','result':await handleServiceQuote(d)};break;case'machine_panorama':f={'query_type':'machine_panorama','result':await handleMachinePanorama(d)};break;case'object_panorama':f={'query_type':'object_panorama','result':await handleObjectPanorama(d)};break;case'review_pack':f={'query_type':'review_pack','result':await handleReviewPack(d)};break;case'participation_radar':f={'query_type':'participation_radar','result':await handleParticipationRadar(d)};break;case'relationship_profile':f={'query_type':'relationship_profile','result':await handleRelationshipProfile(d)};break;case'onchain_topology':f={'query_type':'onchain_topology','result':await handleOnchainTopology(d,undefined,await buildUserInjection(d['context_account']?.['toLowerCase']()))};break;case'workspace_lists':f={'query_type':'workspace_lists','result':await buildWorkspaceLists({'network':d['context_network'],'no_cache':d['no_cache'],'account':d['account'],'light':d['light']})};break;case'marks_of_account':f={'query_type':'marks_of_account','result':await buildAccountMarks({'network':d['context_network'],'no_cache':d['no_cache'],'account':d['account'],'light':d['light']})};break;case'migration_preflight':f={'query_type':'migration_preflight','result':await migrationPreflight({'account':d['account'],'source_network':d['source_network'],'target_network':d['target_network'],'no_cache':d['no_cache']})};break;case'scenario_topology':{const av=d['chain_id'];f={'query_type':'scenario_topology','result':{'version':SCENARIO_TOPOLOGY_VERSION,'chains':av?SCENARIO_CHAINS['filter'](aw=>aw['id']===av):SCENARIO_CHAINS,'bridges':SCENARIO_BRIDGE_REGISTRY}};break;}default:throw new Error('Unknown\x20query\x20type.\x20Valid\x20query_types\x20are:\x20\x22local_mark_list\x22,\x20\x22account_list\x22,\x20\x22local_info_list\x22,\x20\x22token_list\x22,\x20\x22account_balance\x22,\x20\x22local_names\x22,\x20\x22onchain_personal_profile\x22,\x20\x22onchain_objects\x22,\x20\x22onchain_received\x22,\x20\x22onchain_transaction\x22,\x20\x22onchain_object_history\x22,\x20\x22onchain_last_updated\x22,\x20\x22onchain_address_activity\x22,\x20\x22token_value_convert\x22,\x20\x22address_profile\x22,\x20\x22address_profiles\x22,\x20\x22service_supply_chain\x22,\x20\x22relationship_profile\x22,\x20\x22onchain_topology\x22,\x20\x22workspace_lists\x22,\x20\x22marks_of_account\x22,\x20\x22migration_preflight\x22.\x20For\x20table\x20queries,\x20use\x20the\x20\x22onchain_table_data\x22\x20tool.');}const j=requestedNetworkForQuery(d,f['query_type']);let k;if(NETWORK_FIELD_BY_QUERY[f['query_type']]){const aw=j??g??await Config['Instance']()['network_get']();k={'network':aw,'network_source':j?'explicit':g?'probed':'default'};}return{'content':[{'type':'text','text':JSON['stringify']({...k,...h?{'read_path':h}:{},'result':f})}],'structuredContent':{'result':f,...queryPayloadAliases(f),...k??{},...h?{'read_path':h}:{},'semantic':buildDataSemantic(f,{'operation_type':'query_toolkit','data':d})}};}export function queryPayloadAliases(a){const b=a?.['result'];if(!b||typeof b!=='object')return{};const c={};if(Array['isArray'](b['objects']))c['objects']=b['objects'];if(Array['isArray'](b['received']))c['received']=b['received'];if(b['balance']&&typeof b['balance']==='object')c['balance']=b['balance'];if(Object['keys'](c)['length']===0x0)return{};const d=Object['keys'](c)['filter'](e=>!e['startsWith']('_'));return c['_read_hint']='The\x20\x27result\x27\x20key\x20appears\x20twice\x20by\x20design:\x20structuredContent.result\x20is\x20the\x20per-query_type\x20envelope,\x20'+'so\x20the\x20authoritative\x20path\x20for\x20each\x20field\x20is\x20'+(d['map'](e=>'structuredContent.result.result.'+e)['join']('\x20and\x20')+'.\x20')+('The\x20top-level\x20'+d['join'](',\x20')+'\x20above\x20are\x20additive\x20copies\x20of\x20the\x20same\x20data.'),c;}export function fundExitAuditNote(a){const b=Array['isArray'](a?.['object_changes'])?a['object_changes']:[],c=b['filter'](f=>f?.['type']==='deleted'||f?.['type']==='wrapped'||f?.['type']==='unwrapped');if(c['length']===0x0)return undefined;const d=c['filter'](f=>f?.['synthesized']===!![]),e=['FUND-EXIT\x20AUDIT:\x20this\x20transaction\x20consumed\x20'+c['length']+'\x20object(s)\x20'+('('+c['map'](f=>f['type']+'\x20'+f['id'])['join'](',\x20')+').\x20A\x20consumed\x20object\x20is\x20a\x20money/object\x20')+'exit\x20door\x20—\x20trace\x20where\x20its\x20contents\x20went\x20via\x20balance_changes\x20(per-owner\x20deltas)\x20before\x20concluding.'];return d['length']>0x0&&e['push'](d['length']+'\x20removal(s)\x20reconstructed\x20from\x20the\x20tx\x20effects\x20(synthesized=true,\x20no\x20'+'object_type):\x20the\x20node\x27s\x20objectChanges\x20omitted\x20the\x20consumed\x20object\x27s\x20live\x20state.\x20Resolve\x20its\x20'+'type\x20via\x20onchain_object_history\x20on\x20the\x20id\x20if\x20needed.'),e['push']('Fallback\x20when\x20an\x20exit\x20still\x20lacks\x20object-level\x20evidence:\x20diff\x20two\x20query_toolkit\x20onchain_received\x20'+'snapshots\x20taken\x20before\x20and\x20after\x20this\x20digest\x20(full-set\x20difference)\x20—\x20object-level\x20records\x20are\x20'+'eventually\x20the\x20ground\x20truth\x20even\x20when\x20events\x20are\x20empty.'),e['join']('\x20');}export async function handleOnchainTableData(a){const b=strictParse(OnchainTableDataSchema,a,'onchain_table_data\x20input');let c;switch(b['query_type']){case'onchain_table':{const d=await query_table({'parent':b['parent'],'cursor':b['cursor'],'limit':b['limit'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table','result':d};break;}case'onchain_table_item_repository_data':{const f=await queryTableItem_RepositoryData({'parent':b['parent'],'name':b['name'],'entity':b['entity'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_repository_data','result':f};break;}case'onchain_table_item_permission_perm':{const g=await queryTableItem_PermissionPerm({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_permission_perm','result':g};break;}case'onchain_table_item_reward_record':{const h=await queryTableItem_RewardRecord({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});if(h)try{const j=await resolveParentObjectTokenType(b['parent'],b['network']);await annotateTableItemMonetaryFields(h,j,b['network']);}catch{}c={'query_type':'onchain_table_item_reward_record','result':h};break;}case'onchain_table_item_demand_presenter':{const k=await queryTableItem_DemandPresenter({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_demand_presenter','result':k};break;}case'onchain_table_item_treasury_history':{const l=await queryTableItem_TreasuryHistory({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});if(l)try{const m=await resolveParentObjectTokenType(b['parent'],b['network']);await annotateTableItemMonetaryFields(l,m,b['network']);}catch{}c={'query_type':'onchain_table_item_treasury_history','result':l};break;}case'onchain_table_item_machine_node':{const n=await queryTableItem_MachineNode({'parent':b['parent'],'key':b['key'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_machine_node','result':n};break;}case'onchain_table_item_progress_history':{const p=await queryTableItem_ProgressHistory({'parent':b['parent'],'u64':b['u64'],'no_cache':![],'network':b['network']});c={'query_type':'onchain_table_item_progress_history','result':p};break;}case'onchain_table_item_address_mark':{const q=await queryTableItem_AddressMark({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_address_mark','result':q};break;}case'onchain_table_item_entity_registrar':{const s=await queryTableItem_EntityRegistrar({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_registrar','result':s};break;}case'onchain_table_item_entity_linker':{const t=await queryTableItem_EntityLinker({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_linker','result':t};break;}case'onchain_table_item_entity_contact':{const u=await queryTableItem_EntityContact({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_contact','result':u};break;}case'onchain_table_item_entity_order':{const v=await queryTableItem_EntityOrder({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_order','result':v};break;}case'onchain_orders_of_user':{const w=typeof b['address']==='string'?b['address']:b['address']?.['name_or_address']??String(b['address']),x=await resolveAddress(w,'address');let y;try{y=await queryOrdersByUser({'address':x,'no_cache':b['no_cache'],'network':b['network']});}catch(z){const A=z instanceof Error?z['message']:String(z);if(/dynamicFieldNotFound/i['test'](A))y=[];else throw z;}c={'query_type':'onchain_orders_of_user','result':y};break;}case'onchain_orders_of_users':{const B=b['addresses']??[],C=[],D=await Promise['allSettled'](B['map'](async O=>{const P=String(O?.['name_or_address']??''),Q=await resolveAddress(P,'address');try{const R=await queryOrdersByUser({'address':Q,'no_cache':b['no_cache'],'network':b['network']});return{'account':P,'views':Array['isArray'](R)?R:[]};}catch(S){const T=S instanceof Error?S['message']:String(S);if(/dynamicFieldNotFound/i['test'](T))return{'account':P,'views':[]};throw S;}})),E=[];for(let O=0x0;O<B['length'];O++){const P=D[O];if(P['status']==='fulfilled')E['push'](P['value']);else{const Q=P['reason']instanceof Error?P['reason']['message']:String(P['reason']);C['push'](String(B[O]?.['name_or_address']??'?')+':\x20'+Q);}}const F=Array['from'](new Set(E['flatMap'](R=>R['views']['map'](S=>typeof S?.['order']?.['object']==='string'?S['order']['object']:typeof S?.['order']==='string'?S['order']:'')['filter'](Boolean)))),G=new Map();try{if(F['length']>0x0){const R=await batchQueryObjectsByIds(F,b['network']);for(const S of R){if(S&&S['type']===ObjectType['Order'])G['set'](S['object'],S);}}}catch{C['push']('order\x20details\x20unavailable\x20(non-blocking)');}const H=new Map(),I=new Map(),J=new Map();try{const T=new Set();for(const U of G['values']()){if(U?.['progress'])T['add'](U['progress']);if(U?.['allocation'])T['add'](U['allocation']);}if(T['size']>0x0){const V=await batchQueryObjectsByIds(Array['from'](T),b['network']);for(const W of V){if(!W?.['object'])continue;if(W['type']===ObjectType['Progress']){const X=W?.['current'];H['set'](W['object'],typeof X==='string'&&X!==''?X:null),I['set'](W['object'],Number(W?.['current_time'])||null);}else{if(W['type']===ObjectType['Allocation']){const Y=Number(W?.['balance']??0x0);J['set'](W['object'],Number['isFinite'](Y)&&Y===0x0?'allocated':'pending');}}}}}catch{C['push']('progress/allocation\x20details\x20unavailable\x20(non-blocking)');}const K=new Map();try{const Z=await Promise['allSettled'](F['map'](a0=>query_object_last_updated({'object':a0,'network':b['network'],'previous_transaction':G['get'](a0)?.['previousTransaction']??null})));for(let a0=0x0;a0<F['length'];a0++){const a1=Z[a0];K['set'](F[a0],a1['status']==='fulfilled'&&a1['value']?.['timestamp_ms']?Number(a1['value']['timestamp_ms'])||null:null);}}catch{C['push']('order\x20updated\x20times\x20unavailable\x20(non-blocking)');}const L=await coinTypesOfServices(Array['from'](new Set(Array['from'](G['values']())['map'](a2=>typeof a2?.['service']==='string'?a2['service']:'')['filter'](Boolean))),b['network']),M=async(a2,a3)=>{if(a3===null||a3===undefined||a3==='')return{'display':'','tip':''};if(!a2)return{'display':a3,'tip':''};try{const a4=await formatChainValue(a3,a2,b['network']);if(a4['precision_known'])return{'display':a4['symbol']?a4['display']+'\x20'+a4['symbol']:a4['display'],'tip':a4['text']};return{'display':a3,'tip':''};}catch{return{'display':a3,'tip':''};}},N=[];for(const a2 of F){const a3=G['get'](a2),a4=E['filter'](a8=>a8['views']['some'](a9=>(typeof a9?.['order']?.['object']==='string'?a9['order']['object']:a9?.['order'])===a2))['map'](a8=>{const a9=a8['views']['find'](aa=>(typeof aa?.['order']?.['object']==='string'?aa['order']['object']:aa?.['order'])===a2);return{'account':a8['account'],'is_owner':!!a9?.['is_owner'],'is_agent':!!a9?.['is_agent'],'time':a9?.['time']};}),a5=L['get'](String(a3?.['service']??''))??null,a6=a3?.['amount']!==null&&a3?.['amount']!==undefined?String(a3['amount']):'',a7=await M(a5,a6);N['push']({'order':a2,'roles':a4,'time':a3?Number(a3['time'])||0x0:0x0,'updated_ms':K['get'](a2)??null,'amount':a6,'amount_display':a7['display'],'amount_tip':a7['tip'],'service':a3?.['service']??null,'machine':a3?.['machine']??null,'progress':a3?.['progress']??null,'allocation':a3?.['allocation']??null,'owner':ownerAddrOf(a3?.['builder']??a3?.['owner']),'claimed_by':a3?.['claimed_by']??null,'required_info':a3?.['required_info']??null,'progress_next':a3?.['progress']?H['get'](a3['progress'])??null:null,'progress_since':a3?.['progress']?I['get'](a3['progress'])??null:null,'allocation_state':a3?.['allocation']?J['get'](a3['allocation'])??'pending':'none','disputes':Array['isArray'](a3?.['dispute'])?a3['dispute']:[],'agents':Array['isArray'](a3?.['agent'])?a3['agent']:[],'items':await Promise['all']((Array['isArray'](a3?.['items'])?a3['items']:[])['map'](async a8=>{const a9=a8?.['price']!==null&&a8?.['price']!==undefined?String(a8['price']):'0';return{'name':String(a8?.['name']??''),'price':a9,'price_display':(await M(a5,a9))['display'],'quantity':String(a8?.['quantity']??'0'),'wip_hash':String(a8?.['wip_hash']??'')};}))});}c={'query_type':'onchain_orders_of_users','result':N,...C['length']>0x0?{'account_errors':C}:{}};break;}case'onchain_table_item_object_linker_core':{const a8=await queryTableItem_ObjectLinkerCore({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_object_linker_core','result':a8};break;}case'onchain_table_item_object_linker_tx':{const a9=await queryTableItem_ObjectLinkerTx({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_object_linker_tx','result':a9};break;}case'onchain_affiliations_of_object':{const aa=await query_affiliations({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']}),ab=aa?.['entries'];Array['isArray'](ab)&&(aa['entries']=ab['filter'](ac=>{const ad=typeof ac?.['who']==='string'?ac['who']:'';return!!ad&&!!objectTypeFromAddress(ad);}));c={'query_type':'onchain_affiliations_of_object','result':aa};break;}case'address_profile':{const ac=await query_address_profile({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});await mergeServiceAnalysis(ac,{'no_cache':b['no_cache'],'network':b['network']});ac&&typeof ac==='object'&&(ac['follow_ups']=buildProfileFollowUps(ac));c={'query_type':'address_profile','result':ac};break;}case'service_supply_chain':{const ad=await resolveSupplyChainGraph(typeof b['address']==='string'?b['address']:b['address']?.['name_or_address']??String(b['address']),b['network']);c={'query_type':'service_supply_chain','result':ad};break;}case'onchain_table_item_generic':{const ae=await query_tableItem({'parent':b['parent'],'key':{'type':b['key_type'],'value':b['key_value']},'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_generic','result':ae};break;}default:{const af=['onchain_table','onchain_table_item_repository_data','onchain_table_item_permission_perm','onchain_table_item_reward_record','onchain_table_item_demand_presenter','onchain_table_item_treasury_history','onchain_table_item_machine_node','onchain_table_item_progress_history','onchain_table_item_address_mark','onchain_table_item_entity_registrar','onchain_table_item_entity_linker','onchain_table_item_entity_contact','onchain_table_item_entity_order','onchain_orders_of_user','onchain_orders_of_users','onchain_table_item_object_linker_core','onchain_table_item_object_linker_tx','onchain_table_item_generic','onchain_affiliations_of_object','address_profile','service_supply_chain'];throw new Error('Unknown\x20table\x20query_type\x20\x22'+b['query_type']+'\x22.\x20Valid\x20query_types\x20are:\x20'+af['map'](ag=>'\x22'+ag+'\x22')['join'](',\x20')+'.');}}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c,'semantic':buildDataSemantic(c,{'operation_type':'onchain_table_data','data':b})}};}export async function handleOnchainEvents(a){const b=strictParse(OnchainEventsInputSchema,a,'onchain_events\x20input'),c=await query_events({'type':b['type'],'cursor':b['cursor']?{'eventSeq':String(b['cursor']['eventSeq']),'txDigest':b['cursor']['txDigest']}:null,'limit':b['limit']??null,'order':b['order']??null,'no_cache':b['no_cache'],'network':b['network']});try{await annotateEventsMonetaryFields(c?.['data'],b['network']);}catch{}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c,'semantic':buildDataSemantic(c,{'operation_type':'onchain_events','data':b})}};}function mcpLayerInfoResponse(a){return{'content':[{'type':'text','text':JSON['stringify']({'result':a})}],'structuredContent':{'result':a}};}export async function handleWowokInfo(a){const b=strictParse(ProtocolInfoQuerySchema,a,'wowok_buildin_info\x20input'),c=b['info'];if(c==='upgrade_check')return mcpLayerInfoResponse({'info':'upgrade_check','result':await checkUpgrade()});if(c==='universal_template')return mcpLayerInfoResponse({'info':'universal_template','result':getUniversalTemplate()});if(c==='getting\x20started')return mcpLayerInfoResponse({'info':'getting\x20started','result':getGettingStarted()});if(c==='build_fingerprint'){const e=b['compare'];if(e!=null){const h=await readChainStamp();return setComparisonChainEpoch(h['fetched']?h['epoch']:null),mcpLayerInfoResponse({'info':'build_fingerprint','result':{'comparison':compareReportFingerprint(e)}});}const f=currentBuildFingerprint(),g=await readChainStamp();return setComparisonChainEpoch(g['fetched']?g['epoch']:null),mcpLayerInfoResponse({'info':'build_fingerprint','result':{'fingerprint':f,'chain_stamp':g}});}const d=await queryProtocolInfo(b);return{'content':[{'type':'text','text':JSON['stringify']({'result':d})}],'structuredContent':{'result':d}};}
|
|
1
|
+
import{strictParse,WatchQueryOperationsSchema,OnchainTableDataSchema,OnchainEventsInputSchema,ProtocolInfoQuerySchema}from'../../schema/index.js';import{checkUpgrade,readChainStamp}from'../upgrade-check.js';import{currentBuildFingerprint,compareReportFingerprint,setComparisonChainEpoch}from'../build-fingerprint.js';import{getUniversalTemplate}from'../../knowledge/universal-template.js';import{getGettingStarted}from'../../knowledge/getting-started.js';import{query_local_mark_list,query_account_list,query_local_info_list,query_local_token_list,query_account,GetLocalNamesByAddresses,query_personal,query_table,query_tableItem,queryTableItem_RepositoryData,queryTableItem_PermissionPerm,queryTableItem_RewardRecord,queryTableItem_DemandPresenter,queryTableItem_TreasuryHistory,queryTableItem_MachineNode,queryTableItem_ProgressHistory,queryTableItem_AddressMark,queryTableItem_EntityRegistrar,queryTableItem_EntityLinker,queryTableItem_EntityContact,queryTableItem_ObjectLinkerCore,queryTableItem_ObjectLinkerTx,queryTableItem_EntityOrder,queryOrdersByUser,query_affiliations,query_address_profile,query_address_profiles,objectTypeFromAddress,ObjectType,query_received,queryProtocolInfo,query_events,query_transaction,query_object_history,query_address_activity,query_checkpoint,generateNodeComments,query_object_last_updated,Config,LocalMark,GetAccountOrMark_Address,ENTRYPOINT}from'@wowok/wowok';import{listInFlightMarkers,recentReturnedDigests,recentLandedTombstones}from'../../composition/inflight.js';import{resolveSupplyChainGraph}from'../../knowledge/supply-chain.js';import{attachWinnerDerivation}from'./winner-derivation.js';import{aggregateOrdersViaIndex}from'../../knowledge/jsonrpc-enum.js';import{resolveNetwork}from'./network.js';import{SCENARIO_CHAINS,SCENARIO_BRIDGE_REGISTRY,SCENARIO_TOPOLOGY_VERSION}from'../../knowledge/scenario-topology.js';import{assembleContext}from'../../playbooks/service-build/context-assembly.js';import{buildMachineGraph,fetchMachineNodes}from'../../playbooks/service-build/machine-nodes.js';import{generateBusinessReport}from'../../playbooks/service-build/reverse-mapping.js';import{handleServicePanorama}from'../../playbooks/service-build/service-panorama.js';import{handleServiceQuote}from'../../playbooks/service-build/service-quote.js';import{handleMachinePanorama}from'../../playbooks/service-build/machine-panorama.js';import{handleObjectPanorama}from'../../playbooks/service-build/object-panorama.js';import{handleParticipationRadar}from'../../playbooks/service-build/participation-radar.js';import{handleRelationshipProfile}from'../../playbooks/service-build/relationship-profile.js';import{handleOnchainTopology}from'../../playbooks/service-build/topology-query.js';import{buildUserInjection}from'../../evaluation/injection.js';import{handleReviewPack}from'../../review/index.js';import{buildWorkspaceLists}from'../../knowledge/workspace-lists.js';import{buildAccountMarks}from'../../knowledge/account-marks.js';import{migrationPreflight}from'../../knowledge/migration-preflight.js';import{buildDataSemantic}from'../../schema/call/semantic.js';import{enrichWorkflowGuidance}from'../../knowledge/workflow-guidance.js';import{buildOrderFundFacts}from'../../knowledge/arb-fund-facts.js';import{batchQueryObjectsByIds,fetchServiceOrders,lastUnresolvedInputs,LINKER_RING_LIMIT}from'../../graph/onchain/sdk-batch.js';import{recoverObjectHeldReceipts}from'../../graph/onchain/object-held-receipts.js';import{formatChainValue,annotateObjectMonetaryFields,annotateTableItemMonetaryFields,annotateEventsMonetaryFields,annotateBalanceChanges,resolveParentObjectTokenType,convertTokenValue}from'../../knowledge/fund-layer.js';import{normalizeAccountOrMark}from'./messenger.js';import{resolveAddress}from'./name-resolution.js';function ownerAddrOf(a){if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];const c=Object['values'](b)['find'](d=>typeof d==='string'&&d['length']>0x14);if(typeof c==='string')return c;}return null;}const serviceCoinTypeCache=new Map();async function coinTypesOfServices(a,b){const c=new Map();if(!a||a['length']===0x0)return c;const d=[];for(const e of a){const f=(b??'')+'|'+e['toLowerCase'](),h=serviceCoinTypeCache['get'](f);if(h!==undefined)c['set'](e,h);else d['push'](e);}if(d['length']===0x0)return c;try{const i=await batchQueryObjectsByIds(d,b);for(const j of i){if(!j?.['object'])continue;const k=j?.['type_raw']??j?.['type']??'',l=k['match'](/<(.+)>$/);if(!l)continue;serviceCoinTypeCache['set']((b??'')+'|'+String(j['object'])['toLowerCase'](),l[0x1]),c['set'](j['object'],l[0x1]);}}catch{}return c;}async function mergeServiceAnalysis(a,b){const c=a?.['object'],d=a?.['kind']==='Service'||c&&(c['type']==='Service'||(c['type_raw']??'')['includes']('::service::'));if(!d||!a)return;let e=null;try{const s=await query_object_last_updated({'object':a['address'],'network':b['network']});s?.['timestamp_ms']&&(e={'timestamp_ms':s['timestamp_ms'],'digest':s['digest'],'sender':s['sender']});}catch{}const f=a?.['reverse_core'],g=a?.['reverse_tx'],h=Array['isArray'](f?.['items'])?f['items']['length']:0x0,i=Array['isArray'](g?.['items'])?g['items']['length']:0x0,j=(i>0x0?g['items']:[])['filter'](t=>objectTypeFromAddress(t?.['who'])===ObjectType['Order']),k=j['length'],l=k>=LINKER_RING_LIMIT,m=Array['isArray'](a?.['reputation']?.['votes'])?a['reputation']['votes']:[],n=c?.['type_raw']??c?.['type']??'',o=n['match'](/<(.+)>$/),p=o?o[0x1]:null,q=p?(p['split']('::')['pop']()??p)['toUpperCase']():null,r=Array['isArray'](c?.['sales'])?c['sales']:[];a['service_analysis']={'description':c?.['description']??null,'sales_count':r['length'],'live_sales_count':r['filter'](t=>t&&!t['suspension'])['length'],'paused_sales_count':r['filter'](t=>t&&t['suspension'])['length'],'orders_count':k,'orders_count_truncated':l,'like_count':m['filter'](t=>t&&t['like'])['length'],'dislike_count':m['filter'](t=>t&&t['dislike'])['length'],'favor_count':m['filter'](t=>t&&t['favor'])['length'],'votes':m['map'](t=>({'who':t?.['who']??null,'like':!!t?.['like'],'dislike':!!t?.['dislike'],'favor':!!t?.['favor'],'time':t?.['time']??null})),'coin_type':p,'token_symbol':q,'location':c?.['location']??null,'bPublished':c?.['bPublished']??null,'bPaused':c?.['bPaused']??null,'related_core_count':h,'related_tx_count':i,'related_object_count':h+i,'onchain_last_updated':e};}export function buildProfileFollowUps(a){if(!a||typeof a!=='object')return[];const b=typeof a['address']==='string'?a['address']:undefined;if(!b)return[];const c=a['kind']==='user'||!a['is_system_singleton']&&!a['object'],d=[];if(c){const e=Array['isArray'](a['permission_membership']?.['items'])?a['permission_membership']['items']:[],f=Array['isArray'](a['order_membership']?.['items'])?a['order_membership']['items']:[];e['length']>0x0&&d['push']({'label':'Permission\x20organizations\x20('+e['length']+')','detail':'Expand\x20each\x20Permission\x20the\x20address\x20belongs\x20to\x20—\x20owner/admin/entity\x20standing\x20and\x20what\x20the\x20org\x20governs.','call':{'query_type':'onchain_objects','objects':e['map'](g=>g['who'])['filter'](Boolean)}}),f['length']>0x0&&d['push']({'label':'Order\x20footprint\x20('+f['length']+')','detail':'The\x20orders\x20this\x20address\x20participates\x20in\x20(buyer\x20vs\x20operator\x20roles).','call':{'query_type':'onchain_table_item_entity_order','address':b}}),d['push']({'label':'Public\x20personal\x20profile','detail':'Social/IM\x20links,\x20public\x20info\x20records,\x20voting\x20history,\x20referrer.','call':{'query_type':'onchain_personal_profile','address':b}}),d['push']({'label':'Reverse\x20map','detail':'Related\x20objects\x20and\x20the\x20deterministic\x20business\x20report\x20for\x20this\x20address.','call':{'query_type':'reverse_map','context_objects':[b]}});}else a['object']&&d['push']({'label':'Full\x20object\x20body','detail':'The\x20complete\x20on-chain\x20object\x20fields\x20(one\x20targeted\x20read).','call':{'query_type':'onchain_objects','objects':[b]}}),d['push']({'label':'Reverse\x20map','detail':'Related\x20objects\x20and\x20the\x20deterministic\x20business\x20report.','call':{'query_type':'reverse_map','context_objects':[b]}});return d['push']({'label':'Recent\x20on-chain\x20activity','detail':'Newest\x20transactions\x20touching\x20this\x20address.','call':{'query_type':'onchain_address_activity','address':b}}),d['slice'](0x0,0x3);}async function annotateAccountBalance(a,b){if(!a||typeof a!=='object')return;const e={},f=(k,l)=>{if(k===null||k===undefined)return undefined;if(typeof k!=='string'&&typeof k!=='number'&&typeof k!=='bigint')return undefined;if(typeof l!=='string'||!l)return undefined;return formatChainValue(k,l,b);},g=a['balance'];if(g&&typeof g==='object'){const k=g['coinType'],l=await f(g['totalBalance'],k);if(l)e['balance.totalBalance']=l;if(g['lockedBalance']!==undefined){const m=await f(g['lockedBalance'],k);if(m)e['balance.lockedBalance']=m;}}const h=a['object'];if(h&&typeof h==='object'&&(typeof h['balance']==='string'||typeof h['balance']==='number')&&String(h['balance'])!==''){const n=typeof h['type']==='string'?h['type']:undefined,o=n?.['match'](/<([^>]+)>/)?.[0x1]??n,p=await f(h['balance'],o);if(p)e['object.balance']=p;a['_balance_shape']='object_address:\x20the\x20queried\x20name/address\x20resolved\x20to\x20an\x20ON-CHAIN\x20OBJECT\x20—\x20its\x20funds\x20surface\x20as\x20'+'`object.balance`\x20(the\x20object\x27s\x20own\x20coin\x20balance),\x20NOT\x20as\x20`balance.totalBalance`\x20(the\x20account-aggregate\x20'+'shape).\x20Same\x20units,\x20different\x20key:\x20read\x20BOTH\x20keys,\x20or\x20branch\x20on\x20this\x20note,\x20when\x20polling\x20balances\x20'+'(ks7\x20F-14:\x20a\x20funded\x20escrow\x20was\x20reported\x20as\x200\x20because\x20only\x20the\x20aggregate\x20key\x20was\x20read).';}const j=a['coin']?.['data'];if(Array['isArray'](j))for(let q=0x0;q<j['length'];q++){const r=j[q],s=await f(r?.['balance'],r?.['coinType']);if(s)e['coin.data['+q+'].balance']=s;}if(Object['keys'](e)['length']>0x0){if(b)for(const t of Object['keys'](e)){const u=e[t];e[t]={...u,'text':u['text']+'\x20—\x20network:\x20'+b};}a['_money_display']=e;}}export function balanceScopeNote(a){return a?'The\x20balance\x20figure\x20reflects\x20the\x20aggregated\x20total\x20only;\x20the\x20coin\x20list\x20below\x20is\x20just\x20the\x20FIRST\x20PAGE\x20(top\x205)\x20'+'of\x20independently\x20owned\x20Coin\x20objects\x20—\x20a\x20refund\x20can\x20land\x20as\x20its\x20own\x20Coin\x20object\x20beyond\x20this\x20page.\x20'+'Verify\x20fund\x20arrival\x20via\x20the\x20transaction\x20digest\x20(onchain_transaction)\x20or\x20the\x20full\x20coin-object\x20listing\x20'+'(coin={cursor,limit})\x20before\x20drawing\x20conclusions.':'The\x20balance\x20figure\x20reflects\x20the\x20aggregated\x20total\x20only;\x20independently\x20owned\x20Coin\x20objects\x20are\x20not\x20'+'enumerated\x20here\x20—\x20verify\x20fund\x20arrival\x20via\x20the\x20transaction\x20digest\x20or\x20a\x20coin-objects\x20query\x20before\x20'+'drawing\x20conclusions.';}export function balanceFreshnessFace(a){return{'source':'live','cached':![],'network':a,'fetched_at':new Date()['toISOString'](),'note':'Live\x20read\x20—\x20no\x20MCP/SDK\x20session\x20cache;\x20every\x20account_balance\x20call\x20is\x20an\x20independent\x20query\x20against\x20the\x20'+'network\x27s\x20indexer.\x20Figures\x20CAN\x20differ\x20between\x20calls\x20taken\x20moments\x20apart\x20(live\x20F-RQ-12:\x20the\x20same\x20wallet\x20'+'returned\x209.93\x20/\x2021.88\x20/\x2056.28\x20WOW\x20on\x20three\x20consecutive\x20reads)\x20because\x20the\x20aggregate\x20is\x20assembled\x20from\x20'+'independently\x20owned\x20Coin\x20objects\x20and\x20each\x20query\x20may\x20catch\x20a\x20different\x20settle/merge\x20state.\x20To\x20resolve\x20a\x20'+'discrepancy:\x20re-read\x20and\x20compare\x20fetched_at,\x20enumerate\x20the\x20per-object\x20breakdown\x20(coin={cursor,limit}),\x20'+'and\x20prove\x20fund\x20arrival\x20via\x20the\x20transaction\x20digest\x20(onchain_transaction)\x20—\x20never\x20off\x20a\x20single\x20balance\x20read.'};}export const NETWORK_FIELD_BY_QUERY={'account_balance':'network','onchain_personal_profile':'network','onchain_objects':'network','onchain_received':'network','onchain_transaction':'network','onchain_block':'network','onchain_object_history':'network','onchain_last_updated':'network','onchain_address_activity':'network','recover_created_objects':'network','token_value_convert':'network','address_profile':'network','address_profiles':'network','service_supply_chain':'network','assemble_context':'context_network','reverse_map':'context_network','service_panorama':'context_network','service_quote':'context_network','machine_panorama':'context_network','object_panorama':'context_network','review_pack':'context_network','participation_radar':'context_network','order_aggregate':'context_network','relationship_profile':'context_network','onchain_topology':'context_network','workspace_lists':'context_network','marks_of_account':'context_network'};function requestedNetworkForQuery(a,b){const c=NETWORK_FIELD_BY_QUERY[b];if(!c)return undefined;const d=a[c];return typeof d==='string'&&d['length']>0x0?d:undefined;}const LOCAL_FAMILY_QUERIES=new Set(['local_mark_list','account_list','local_info_list','token_list','local_names']);function normalizeNetworkFieldAlias(a){const b=a['query_type'];if(typeof b!=='string')return;if(LOCAL_FAMILY_QUERIES['has'](b)){delete a['network'],delete a['context_network'];return;}const c=NETWORK_FIELD_BY_QUERY[b];if(!c)return;const d=c==='network'?'context_network':'network';a[c]===undefined&&a[d]!==undefined&&(a[c]=a[d],delete a[d]);}export async function handleWatchQueryOperations(a){let c=a;if(a!==null&&typeof a==='object'&&!Array['isArray'](a)){const l={...a};normalizeNetworkFieldAlias(l),c=l;}const d=strictParse(WatchQueryOperationsSchema,c,'watch_and_query\x20input');let f,g,h;switch(d['query_type']){case'local_mark_list':{const m=await query_local_mark_list(d['filter']||{});f={'query_type':'local_mark_list','result':m};break;}case'account_list':{const n=await query_account_list(d['filter']);f={'query_type':'account_list','result':n};break;}case'local_info_list':{const o=await query_local_info_list(d['filter'],d['account']);f={'query_type':'local_info_list','result':o};break;}case'token_list':{const p=await query_local_token_list(d['filter']||{});f={'query_type':'token_list','result':p};break;}case'account_balance':{const q=await query_account({'name_or_address':d['name_or_address'],'token_type':d['token_type'],'balance':d['balance'],'coin':d['coin'],'network':d['network']}),r=d['network']??await Config['Instance']()['network_get']();await annotateAccountBalance(q,r);let s=![];if(q['balance']&&!d['coin']&&!q['object']&&!q['hint'])try{const t=await query_account({'name_or_address':d['name_or_address'],'coin':{'cursor':null,'limit':0x5},'token_type':d['token_type'],'network':d['network']});t['coin']&&(q['coin']=t['coin'],s=!![]);}catch{}q['_balance_scope_note']=balanceScopeNote(s),q['_balance_read_freshness']=balanceFreshnessFace(r),f={'query_type':'account_balance','result':q};break;}case'local_names':{const u=await GetLocalNamesByAddresses(d['addresses']);f={'query_type':'local_names','result':u};break;}case'onchain_personal_profile':{const v=await query_personal({'account':d['account'],'no_cache':d['no_cache'],'network':d['network']});f={'query_type':'onchain_personal_profile','result':v};break;}case'onchain_objects':{const w=d['no_cache']??!![],x=await batchQueryObjectsByIds(d['objects'],d['network'],w),y=lastUnresolvedInputs(),z={'objects':x,'_read_freshness':{'source':w?'live':'session_cache','no_cache':w,'fetched_at':new Date()['toISOString'](),'note':w?'Forced-fresh\x20read.\x20This\x20is\x20the\x20DEFAULT\x20because\x20a\x20stale\x20value\x20here\x20can\x20invert\x20a\x20fund-movement\x20conclusion.':'Session\x20cache\x20was\x20used\x20(no_cache:false).\x20Pass\x20no_cache:true\x20before\x20concluding\x20that\x20money\x20did\x20or\x20did\x20not\x20move.'},...x['length']===0x0&&y['length']>0x0?{'_empty_reason':{'kind':'unresolved_inputs','unresolved':y,'note':'These\x20inputs\x20resolved\x20to\x20neither\x20a\x20registered\x20LocalMark\x20nor\x20a\x20valid\x20address\x20on\x20network\x20\x27'+(d['network']??'current')+'\x27.\x20LocalMark\x20names\x20are\x20NETWORK-SCOPED\x20—\x20an\x20object\x20created\x20on\x20testnet\x20is\x20invisible\x20on\x20localnet/mainnet.\x20Either\x20register\x20the\x20mark\x20here\x20(local_mark_operation)\x20or\x20pass\x20the\x20full\x200x\x20address.\x20This\x20is\x20NOT\x20evidence\x20that\x20the\x20objects\x20are\x20absent\x20on\x20chain.'}}:{},...x['length']<d['objects']['length']?{'_unreturned':{'requested':d['objects']['length'],'returned':x['length'],'missing':d['objects']['map'](A=>typeof A==='string'?A:A?.['name_or_address']??A?.['object']??A?.['address'])['filter'](A=>typeof A==='string'&&A!=='')['filter'](A=>!x['some'](B=>typeof B?.['object']==='string'&&B['object']['toLowerCase']()===A['toLowerCase']())),'note':'These\x20requested\x20ids\x20were\x20NOT\x20returned\x20—\x20either\x20absent\x20on\x20chain,\x20filtered\x20by\x20the\x20reader\x27s\x20type\x20support,\x20or\x20unparseable.\x20This\x20is\x20NOT\x20proof\x20of\x20nonexistence:\x20verify\x20via\x20an\x20alternative\x20read\x20(object_panorama\x20/\x20a\x20direct\x20address\x20query)\x20before\x20concluding\x20an\x20object\x20is\x20gone.'}}:{}};if(z&&z['objects']&&Array['isArray'](z['objects'])){z['objects']=z['objects']['map'](A=>{if(A&&A['data']&&A['data']['type']==='Guard'&&A['data']['root'])try{const B=generateNodeComments(A['data']['root']);return{...A,'_guard_node_comments':B};}catch(C){return A;}return A;}),z['objects']=z['objects']['map'](A=>{if(A&&A['data']&&A['data']['type']==='Progress'&&A['data']['current']===''){const B=A['data']['machine'],C=A['data']['task'];return{...A,'_diagnostic':{'issue':'Progress.current\x20is\x20empty\x20—\x20order\x20workflow\x20is\x20stuck\x20at\x20the\x20initial\x20state','cause':'The\x20Machine\x27s\x20entry\x20node\x20(prev_node=\x27\x27)\x20likely\x20has\x20no\x20forwards\x20defined.\x20'+'When\x20Progress\x20starts,\x20it\x20looks\x20up\x20the\x20entry\x20node\x27s\x20forwards\x20to\x20determine\x20'+'the\x20next\x20node.\x20Without\x20forwards,\x20Progress\x20cannot\x20advance\x20and\x20the\x20order\x20'+'is\x20permanently\x20stuck.','machine_object_id':B??null,'bound_order_id':C??null,'fix':['1.\x20Query\x20the\x20Machine\x20object\x20(use\x20query_toolkit\x20with\x20query_type=\x27onchain_objects\x27\x20and\x20objects=['+JSON['stringify'](B)+']).','2.\x20Inspect\x20node.pairs\x20for\x20the\x20entry\x20node\x20(prev_node=\x27\x27).','3.\x20If\x20forwards\x20is\x20empty:\x20this\x20is\x20the\x20root\x20cause.\x20The\x20Machine\x20must\x20be\x20republished\x20with\x20at\x20least\x20one\x20forward\x20on\x20the\x20entry\x20node.','4.\x20To\x20republish:\x20clone\x20the\x20Machine\x20nodes,\x20add\x20a\x20forward\x20to\x20the\x20entry\x20node\x27s\x20pairs,\x20then\x20create\x20a\x20new\x20Machine\x20(Machine\x20nodes\x20are\x20immutable\x20after\x20publish\x20—\x20see\x20P0-2\x20schema\x20validation\x20that\x20now\x20blocks\x20this).','5.\x20Rebind\x20the\x20new\x20Machine\x20to\x20the\x20Service\x20(service.machine\x20field)\x20and\x20create\x20a\x20new\x20Order\x20to\x20test.'],'reference':'P0-2\x20schema\x20refinement\x20in\x20MachineNodePairSchema\x20ensures\x20new\x20Machines\x20cannot\x20be\x20published\x20with\x20empty\x20entry-node\x20forwards.\x20This\x20diagnostic\x20catches\x20legacy\x20Machines\x20that\x20predate\x20the\x20fix.'}};}return A;});for(const A of z['objects']){const B=A?.['data']??A;if((A?.['type']??B?.['type'])!=='Progress')continue;const C=A?.['object']??B?.['object'];if(!C)continue;try{const D=await enrichWorkflowGuidance({'progressRef':C,'network':d['network'],'noCache':d['no_cache']});if(D?.['guidance']){A['_workflow_guidance']=D['guidance'];if(D['text'])A['_workflow_guidance_text']=D['text'];}}catch{}try{const E=d['winner_node'],F=await attachWinnerDerivation(C,B,d['network'],typeof E==='string'?E:undefined);A['_winner_derivation']=F['winner_derivation'],F['winner_derivation_note']!==undefined&&(A['_winner_derivation_note']=F['winner_derivation_note']);}catch{}}for(const G of z['objects']){const H=G?.['data']??G;if((G?.['type']??H?.['type'])!=='Arb')continue;const I=G?.['object']??H?.['object'];if(!I)continue;try{const J=await buildOrderFundFacts({'arbRef':I,'network':d['network'],'noCache':w});J&&(G['_order_fund_facts']=J['structured'],G['_order_fund_facts_text']=J['text']);}catch{}}for(const K of z['objects']){try{await annotateObjectMonetaryFields(K,d['network']);}catch{}}}f={'query_type':'onchain_objects','result':z};break;}case'onchain_received':{const L=d['name_or_address'],M=typeof L==='string'?L:L?.['name_or_address'],N=await query_received({'name_or_address':normalizeAccountOrMark(d['name_or_address']),'type':d['type'],'cursor':d['cursor'],'limit':d['limit'],'no_cache':d['no_cache'],'network':d['network']}),O=N;if(d['type']==='CoinWrapper'&&O&&!Array['isArray'](O)&&Array['isArray'](O['received'])&&O['received']['length']===0x0&&typeof M==='string'&&M!==''&&!M['toLowerCase']()['startsWith']('0x00')){const P=await recoverObjectHeldReceipts(M,{'network':d['network'],'no_cache':d['no_cache']});P&&P['receipts']['length']>0x0&&(O['received']=P['receipts']['map'](Q=>({'id':Q['id'],'balance':Q['amount'],'payment':Q['payment'],'type':Q['type'],'version':Q['version'],'digest':Q['digest']})),O['token_type']=P['token_type'],O['balance']=P['receipts']['reduce']((Q,R)=>Q+BigInt(R['amount']||'0'),0x0n),h='allocation-transaction-effects');}if(O&&typeof O==='object'&&typeof O['balance']==='bigint'){const Q=O['token_type'];O['balance']=O['balance']['toString']();if(Array['isArray'](O['received']))for(const R of O['received']){R&&typeof R['balance']==='bigint'&&(R['balance']=R['balance']['toString']());}if(Q)try{const S={'balance':await formatChainValue(O['balance'],Q,d['network'])};if(Array['isArray'](O['received']))for(let T=0x0;T<O['received']['length'];T++){const U=O['received'][T]?.['balance'];U!==undefined&&U!==null&&(S['received['+T+'].balance']=await formatChainValue(U,Q,d['network']));}O['_money_display']=S;}catch{}}f={'query_type':'onchain_received','result':O};break;}case'onchain_transaction':{const V=a0=>query_transaction({'digest':d['digest'],'no_cache':d['no_cache'],'network':a0}),W=a0=>/could not find the referenced transaction|not found/i['test'](a0 instanceof Error?a0['message']:String(a0));let X;if(d['network'])X=await V(d['network']);else{const a0=await Config['Instance']()['network_get']();try{X=await V(undefined);}catch(a1){if(!W(a1))throw a1;}if(!X){const a2=[];for(const a3 of Object['values'](ENTRYPOINT)){if(a3===a0)continue;a2['push'](a3);try{const a4=await V(a3);if(a4){X=a4,g=a3;break;}}catch{}}if(!X)throw new Error('Transaction\x20digest\x20not\x20found\x20on\x20the\x20session\x20default\x20network\x20('+a0+')\x20'+('or\x20any\x20other\x20probed\x20network\x20('+[a0,...a2]['join'](',\x20')+').\x20')+'This\x20is\x20an\x20all-network\x20miss\x20—\x20record\x20it\x20as\x20\x22did\x20not\x20commit\x22\x20(never\x20as\x20\x22unverified\x22).\x20'+'If\x20you\x20know\x20the\x20digest\x27s\x20network,\x20pass\x20network\x20explicitly.');}}const Y=d['network']??g;try{await annotateBalanceChanges(X?.['balance_changes'],Y);}catch{}g&&(X['_network_probe']='NOT\x20found\x20on\x20the\x20session\x20default\x20network;\x20FOUND\x20on\x20\x27'+g+'\x27\x20—\x20every\x20field\x20'+('below\x20(status,\x20gas,\x20balance\x20changes)\x20was\x20READ\x20FROM\x20'+g+'.\x20Never\x20cite\x20this\x20')+'result\x20as\x20session-default-network\x20data.');const Z=fundExitAuditNote(X);Z&&(X['_fund_exit_audit']=Z);f={'query_type':'onchain_transaction','result':X};break;}case'onchain_block':{const a5=await query_checkpoint({'block':d['block'],'network':d['network']});f={'query_type':'onchain_block','result':a5};break;}case'onchain_object_history':{const a6=await query_object_history({'object':d['object'],'cursor':d['cursor'],'limit':d['limit'],'order':d['order'],'no_cache':d['no_cache'],'network':d['network']});f={'query_type':'onchain_object_history','result':a6};break;}case'onchain_last_updated':{const a7=d['objects']??[],a8=await Promise['allSettled'](a7['map'](aa=>query_object_last_updated({'object':aa,'network':d['network']}))),a9=a7['map']((aa,ab)=>{const ac=a8[ab],ad=ac['status']==='fulfilled'?ac['value']:null;return{'object':aa,'timestamp_ms':ad?.['timestamp_ms']?String(ad['timestamp_ms']):null,'digest':ad?.['digest']??null,'sender':ad?.['sender']??null};});f={'query_type':'onchain_last_updated','result':{'items':a9}};break;}case'onchain_address_activity':{const aa=typeof d['name_or_address']==='string'?d['name_or_address']:d['name_or_address']['name_or_address'],ab=await query_address_activity({'name_or_address':aa,'direction':d['direction'],'cursor':d['cursor'],'limit':d['limit'],'order':d['order'],'no_cache':d['no_cache'],'network':d['network']});f={'query_type':'onchain_address_activity','result':ab};break;}case'recover_created_objects':{const ac=d['label'],ad=typeof ac==='string'?ac:ac['name_or_address']??'',ae=ad['trim']();let af;if(/^0x[0-9a-fA-F]{1,64}$/['test'](ae))af=ae['toLowerCase']();else try{af=await GetAccountOrMark_Address(ae)??undefined;}catch{af=undefined;}const ag=d['op'],ah=af?.['toLowerCase'](),ai=listInFlightMarkers()['filter'](am=>ag?am['op']===ag:!![])['filter'](am=>ah?!am['buyer']||am['buyer']['toLowerCase']()===ah:!![]),aj=d['limit']??0x14;let ak=null,al;try{ak=await query_address_activity({'name_or_address':ad,'direction':'sent','limit':aj,'no_cache':d['no_cache'],'network':d['network']});}catch(am){al=am instanceof Error?am['message']:String(am);}f={'query_type':'recover_created_objects','result':{'label':ad,...af?{'resolved_address':af}:{},'inflight_markers':ai,'returned_digests':recentReturnedDigests(aj),'landed_tombstones':recentLandedTombstones(),...ak!==null?{'onchain_activity':ak}:{},...al?{'onchain_activity_error':al}:{},'recovery_guidance':'Decision\x20rule,\x20in\x20order:\x20(1)\x20a\x20marker\x20whose\x20digests\x20include\x20a\x20digest\x20that\x20resolves\x20to\x20an\x20'+'EXECUTED\x20transaction\x20(query_toolkit\x20onchain_transaction)\x20—\x20the\x20operation\x20landed:\x20ADOPT\x20its\x20'+'created\x20objects\x20and\x20stop;\x20(2)\x20onchain_activity\x20shows\x20the\x20operation\x27s\x20effects\x20inside\x20the\x20'+'failure\x20window\x20—\x20adopt,\x20stop;\x20(3)\x20markers\x20are\x20open\x20but\x20nothing\x20on-chain\x20—\x20the\x20commit\x20state\x20'+'stayed\x20open:\x20a\x20CORRECTED\x20resubmit\x20is\x20allowed\x20(an\x20identical\x20payload\x20within\x20the\x20intercept\x20'+'window\x20is\x20still\x20held\x20by\x20the\x20verify-first\x20gate);\x20(4)\x20no\x20markers\x20and\x20no\x20activity\x20—\x20nothing\x20'+'landed\x20from\x20THIS\x20process;\x20other\x20sessions/devices\x20may\x20hold\x20state,\x20the\x20chain\x20remains\x20the\x20only\x20truth.'}};break;}case'token_value_convert':{const an=d['raw']!==undefined,ao=d['unit']!==undefined;if(an===ao)throw new Error('token_value_convert:\x20provide\x20EXACTLY\x20ONE\x20of\x20\x27raw\x27\x20(u64\x20smallest\x20units\x20→\x20unit\x20value)\x20'+('or\x20\x27unit\x27\x20(unit\x20value\x20→\x20u64\x20raw).\x20Received\x20raw='+JSON['stringify'](d['raw'])+',\x20')+('unit='+JSON['stringify'](d['unit'])+'.'));const ap=await convertTokenValue(d['token_type'],an?{'raw':d['raw']}:{'unit':d['unit']},d['network']);f={'query_type':'token_value_convert','result':ap};break;}case'address_profile':{const aq=await query_address_profile({'address':d['address'],'no_cache':d['no_cache'],'network':d['network']});await mergeServiceAnalysis(aq,{'no_cache':d['no_cache'],'network':d['network']});aq&&typeof aq==='object'&&(aq['follow_ups']=buildProfileFollowUps(aq));f={'query_type':'address_profile','result':aq};break;}case'address_profiles':{const ar=await query_address_profiles({'addresses':d['addresses'],'no_cache':d['no_cache'],'network':d['network']});await Promise['all'](ar['map'](as=>mergeServiceAnalysis(as,{'no_cache':d['no_cache'],'network':d['network']})));for(const as of ar??[]){as&&typeof as==='object'&&(as['follow_ups']=buildProfileFollowUps(as));}f={'query_type':'address_profiles','result':ar};break;}case'service_supply_chain':{const at=await resolveSupplyChainGraph(typeof d['address']==='string'?d['address']:d['address']?.['name_or_address']??String(d['address']),d['network']);f={'query_type':'service_supply_chain','result':at};break;}case'assemble_context':{f={'query_type':'assemble_context','result':await assembleContext(d)};break;}case'reverse_map':{if(!d['context_objects']||d['context_objects']['length']===0x0)throw new Error('reverse_map\x20requires\x20\x27context_objects\x27\x20—\x20an\x20array\x20of\x20object\x20IDs\x20or\x20LocalMark\x20names\x20(include\x20the\x20Service;\x20add\x20Machine/Allocation\x20for\x20refund-path\x20detection).');const au=d['context_network']??await Config['Instance']()['network_get'](),av=await batchQueryObjectsByIds(d['context_objects'],au,!![]);let aw,ax,ay=null;{const aA=av['find'](aC=>{const aD=aC?.['machine']??aC?.['data']?.['machine'];return typeof aD==='string'&&/^0x[0-9a-fA-F]/['test'](aD);});if(aA)try{ay=String(aA['object']??aA['id']??'');const aC=await LocalMark['Instance']()['list']({'address':ay});if(aC[0x0]?.['name'])aA['name']=aC[0x0]['name'];}catch{}const aB=aA?String(aA['machine']??aA['data']?.['machine']):null;if(aB)try{const aD=av['some'](aF=>String(aF?.['object']??aF?.['id']??'')['toLowerCase']()===aB['toLowerCase']());!aD&&av['push'](...await batchQueryObjectsByIds([aB],au,!![]));const aE=await fetchMachineNodes(aB,au);aw=aE['map'](aF=>({'name':String(aF?.['name']??'')}))['filter'](aF=>aF['name']['length']>0x0),ax=buildMachineGraph(aE)['edges']['map'](aF=>({'from':aF['from'],'to':aF['to']}));}catch{}}let az;if(ay)try{const aF=await fetchServiceOrders(ay,au),aG=(aF?.['items']??[])['slice'](0x0,0xa)['map'](aH=>typeof aH?.['who']==='string'?aH['who']:'')['filter'](aH=>aH!=='');if(aG['length']>0x0){const aH=await batchQueryObjectsByIds(aG,au,!![]);az=aH['filter'](aI=>aI?.['type']===ObjectType['Order'])['map'](aI=>({'id':aI['object'],'created_at_ms':Number(aI?.['time'])||undefined,'claimed_by':aI?.['claimed_by']??null}));}}catch{}f={'query_type':'reverse_map','result':{'action':'reverse_map','objects_queried':av['length'],'report':generateBusinessReport({'objects':av,'machine_nodes':aw,'machine_edges':ax,'orders':az,'now_ms':Date['now'](),'order_amount':d['reverse_order_amount']})}};break;}case'service_panorama':f={'query_type':'service_panorama','result':await handleServicePanorama(d)};break;case'service_quote':f={'query_type':'service_quote','result':await handleServiceQuote(d)};break;case'machine_panorama':f={'query_type':'machine_panorama','result':await handleMachinePanorama(d)};break;case'object_panorama':f={'query_type':'object_panorama','result':await handleObjectPanorama(d)};break;case'review_pack':f={'query_type':'review_pack','result':await handleReviewPack(d)};break;case'participation_radar':f={'query_type':'participation_radar','result':await handleParticipationRadar(d)};break;case'order_aggregate':{const aI=await resolveNetwork(d['context_network']),aJ=await aggregateOrdersViaIndex(aI,{'group':d['group'],'groupId':d['group_id'],'metric':d['metric'],'excludeClaimed':d['exclude_claimed'],'limit':d['limit']});f={'query_type':'order_aggregate','result':{'action':'order_aggregate',...aJ}};break;}case'relationship_profile':f={'query_type':'relationship_profile','result':await handleRelationshipProfile(d)};break;case'onchain_topology':f={'query_type':'onchain_topology','result':await handleOnchainTopology(d,undefined,await buildUserInjection(d['context_account']?.['toLowerCase']()))};break;case'workspace_lists':f={'query_type':'workspace_lists','result':await buildWorkspaceLists({'network':d['context_network'],'no_cache':d['no_cache'],'account':d['account'],'light':d['light']})};break;case'marks_of_account':f={'query_type':'marks_of_account','result':await buildAccountMarks({'network':d['context_network'],'no_cache':d['no_cache'],'account':d['account'],'light':d['light']})};break;case'migration_preflight':f={'query_type':'migration_preflight','result':await migrationPreflight({'account':d['account'],'source_network':d['source_network'],'target_network':d['target_network'],'no_cache':d['no_cache']})};break;case'scenario_topology':{const aK=d['chain_id'];f={'query_type':'scenario_topology','result':{'version':SCENARIO_TOPOLOGY_VERSION,'chains':aK?SCENARIO_CHAINS['filter'](aL=>aL['id']===aK):SCENARIO_CHAINS,'bridges':SCENARIO_BRIDGE_REGISTRY}};break;}default:throw new Error('Unknown\x20query\x20type.\x20Valid\x20query_types\x20are:\x20\x22local_mark_list\x22,\x20\x22account_list\x22,\x20\x22local_info_list\x22,\x20\x22token_list\x22,\x20\x22account_balance\x22,\x20\x22local_names\x22,\x20\x22onchain_personal_profile\x22,\x20\x22onchain_objects\x22,\x20\x22onchain_received\x22,\x20\x22onchain_transaction\x22,\x20\x22onchain_object_history\x22,\x20\x22onchain_last_updated\x22,\x20\x22onchain_address_activity\x22,\x20\x22recover_created_objects\x22,\x20\x22token_value_convert\x22,\x20\x22address_profile\x22,\x20\x22address_profiles\x22,\x20\x22service_supply_chain\x22,\x20\x22relationship_profile\x22,\x20\x22onchain_topology\x22,\x20\x22workspace_lists\x22,\x20\x22marks_of_account\x22,\x20\x22migration_preflight\x22.\x20For\x20table\x20queries,\x20use\x20the\x20\x22onchain_table_data\x22\x20tool.');}const j=requestedNetworkForQuery(d,f['query_type']);let k;if(NETWORK_FIELD_BY_QUERY[f['query_type']]){const aL=j??g??await Config['Instance']()['network_get']();k={'network':aL,'network_source':j?'explicit':g?'probed':'default'};}return{'content':[{'type':'text','text':JSON['stringify']({...k,...h?{'read_path':h}:{},'result':f})}],'structuredContent':{'result':f,...queryPayloadAliases(f),...k??{},...h?{'read_path':h}:{},'semantic':buildDataSemantic(f,{'operation_type':'query_toolkit','data':d})}};}export function queryPayloadAliases(a){const b=a?.['result'];if(!b||typeof b!=='object')return{};const c={};if(Array['isArray'](b['objects']))c['objects']=b['objects'];if(Array['isArray'](b['received']))c['received']=b['received'];if(b['balance']&&typeof b['balance']==='object')c['balance']=b['balance'];if(Object['keys'](c)['length']===0x0)return{};const d=Object['keys'](c)['filter'](e=>!e['startsWith']('_'));return c['_read_hint']='The\x20\x27result\x27\x20key\x20appears\x20twice\x20by\x20design:\x20structuredContent.result\x20is\x20the\x20per-query_type\x20envelope,\x20'+'so\x20the\x20authoritative\x20path\x20for\x20each\x20field\x20is\x20'+(d['map'](e=>'structuredContent.result.result.'+e)['join']('\x20and\x20')+'.\x20')+('The\x20top-level\x20'+d['join'](',\x20')+'\x20above\x20are\x20additive\x20copies\x20of\x20the\x20same\x20data.'),c;}export function fundExitAuditNote(a){const b=Array['isArray'](a?.['object_changes'])?a['object_changes']:[],c=b['filter'](f=>f?.['type']==='deleted'||f?.['type']==='wrapped'||f?.['type']==='unwrapped');if(c['length']===0x0)return undefined;const d=c['filter'](f=>f?.['synthesized']===!![]),e=['FUND-EXIT\x20AUDIT:\x20this\x20transaction\x20consumed\x20'+c['length']+'\x20object(s)\x20'+('('+c['map'](f=>f['type']+'\x20'+f['id'])['join'](',\x20')+').\x20A\x20consumed\x20object\x20is\x20a\x20money/object\x20')+'exit\x20door\x20—\x20trace\x20where\x20its\x20contents\x20went\x20via\x20balance_changes\x20(per-owner\x20deltas)\x20before\x20concluding.'];return d['length']>0x0&&e['push'](d['length']+'\x20removal(s)\x20reconstructed\x20from\x20the\x20tx\x20effects\x20(synthesized=true,\x20no\x20'+'object_type):\x20the\x20node\x27s\x20objectChanges\x20omitted\x20the\x20consumed\x20object\x27s\x20live\x20state.\x20Resolve\x20its\x20'+'type\x20via\x20onchain_object_history\x20on\x20the\x20id\x20if\x20needed.'),e['push']('Fallback\x20when\x20an\x20exit\x20still\x20lacks\x20object-level\x20evidence:\x20diff\x20two\x20query_toolkit\x20onchain_received\x20'+'snapshots\x20taken\x20before\x20and\x20after\x20this\x20digest\x20(full-set\x20difference)\x20—\x20object-level\x20records\x20are\x20'+'eventually\x20the\x20ground\x20truth\x20even\x20when\x20events\x20are\x20empty.'),e['join']('\x20');}export async function handleOnchainTableData(a){const b=strictParse(OnchainTableDataSchema,a,'onchain_table_data\x20input');let c;switch(b['query_type']){case'onchain_table':{const d=await query_table({'parent':b['parent'],'cursor':b['cursor'],'limit':b['limit'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table','result':d};break;}case'onchain_table_item_repository_data':{const f=await queryTableItem_RepositoryData({'parent':b['parent'],'name':b['name'],'entity':b['entity'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_repository_data','result':f};break;}case'onchain_table_item_permission_perm':{const g=await queryTableItem_PermissionPerm({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_permission_perm','result':g};break;}case'onchain_table_item_reward_record':{const h=await queryTableItem_RewardRecord({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});if(h)try{const j=await resolveParentObjectTokenType(b['parent'],b['network']);await annotateTableItemMonetaryFields(h,j,b['network']);}catch{}c={'query_type':'onchain_table_item_reward_record','result':h};break;}case'onchain_table_item_demand_presenter':{const k=await queryTableItem_DemandPresenter({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_demand_presenter','result':k};break;}case'onchain_table_item_treasury_history':{const l=await queryTableItem_TreasuryHistory({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});if(l)try{const m=await resolveParentObjectTokenType(b['parent'],b['network']);await annotateTableItemMonetaryFields(l,m,b['network']);}catch{}c={'query_type':'onchain_table_item_treasury_history','result':l};break;}case'onchain_table_item_machine_node':{const n=await queryTableItem_MachineNode({'parent':b['parent'],'key':b['key'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_machine_node','result':n};break;}case'onchain_table_item_progress_history':{const p=await queryTableItem_ProgressHistory({'parent':b['parent'],'u64':b['u64'],'no_cache':![],'network':b['network']});c={'query_type':'onchain_table_item_progress_history','result':p};break;}case'onchain_table_item_address_mark':{const q=await queryTableItem_AddressMark({'parent':b['parent'],'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_address_mark','result':q};break;}case'onchain_table_item_entity_registrar':{const s=await queryTableItem_EntityRegistrar({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_registrar','result':s};break;}case'onchain_table_item_entity_linker':{const t=await queryTableItem_EntityLinker({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_linker','result':t};break;}case'onchain_table_item_entity_contact':{const u=await queryTableItem_EntityContact({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_contact','result':u};break;}case'onchain_table_item_entity_order':{const v=await queryTableItem_EntityOrder({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_entity_order','result':v};break;}case'onchain_orders_of_user':{const w=typeof b['address']==='string'?b['address']:b['address']?.['name_or_address']??String(b['address']),x=await resolveAddress(w,'address');let y;try{y=await queryOrdersByUser({'address':x,'no_cache':b['no_cache'],'network':b['network']});}catch(z){const A=z instanceof Error?z['message']:String(z);if(/dynamicFieldNotFound/i['test'](A))y=[];else throw z;}c={'query_type':'onchain_orders_of_user','result':y};break;}case'onchain_orders_of_users':{const B=b['addresses']??[],C=[],D=await Promise['allSettled'](B['map'](async O=>{const P=String(O?.['name_or_address']??''),Q=await resolveAddress(P,'address');try{const R=await queryOrdersByUser({'address':Q,'no_cache':b['no_cache'],'network':b['network']});return{'account':P,'views':Array['isArray'](R)?R:[]};}catch(S){const T=S instanceof Error?S['message']:String(S);if(/dynamicFieldNotFound/i['test'](T))return{'account':P,'views':[]};throw S;}})),E=[];for(let O=0x0;O<B['length'];O++){const P=D[O];if(P['status']==='fulfilled')E['push'](P['value']);else{const Q=P['reason']instanceof Error?P['reason']['message']:String(P['reason']);C['push'](String(B[O]?.['name_or_address']??'?')+':\x20'+Q);}}const F=Array['from'](new Set(E['flatMap'](R=>R['views']['map'](S=>typeof S?.['order']?.['object']==='string'?S['order']['object']:typeof S?.['order']==='string'?S['order']:'')['filter'](Boolean)))),G=new Map();try{if(F['length']>0x0){const R=await batchQueryObjectsByIds(F,b['network']);for(const S of R){if(S&&S['type']===ObjectType['Order'])G['set'](S['object'],S);}}}catch{C['push']('order\x20details\x20unavailable\x20(non-blocking)');}const H=new Map(),I=new Map(),J=new Map();try{const T=new Set();for(const U of G['values']()){if(U?.['progress'])T['add'](U['progress']);if(U?.['allocation'])T['add'](U['allocation']);}if(T['size']>0x0){const V=await batchQueryObjectsByIds(Array['from'](T),b['network']);for(const W of V){if(!W?.['object'])continue;if(W['type']===ObjectType['Progress']){const X=W?.['current'];H['set'](W['object'],typeof X==='string'&&X!==''?X:null),I['set'](W['object'],Number(W?.['current_time'])||null);}else{if(W['type']===ObjectType['Allocation']){const Y=Number(W?.['balance']??0x0);J['set'](W['object'],Number['isFinite'](Y)&&Y===0x0?'allocated':'pending');}}}}}catch{C['push']('progress/allocation\x20details\x20unavailable\x20(non-blocking)');}const K=new Map();try{const Z=await Promise['allSettled'](F['map'](a0=>query_object_last_updated({'object':a0,'network':b['network'],'previous_transaction':G['get'](a0)?.['previousTransaction']??null})));for(let a0=0x0;a0<F['length'];a0++){const a1=Z[a0];K['set'](F[a0],a1['status']==='fulfilled'&&a1['value']?.['timestamp_ms']?Number(a1['value']['timestamp_ms'])||null:null);}}catch{C['push']('order\x20updated\x20times\x20unavailable\x20(non-blocking)');}const L=await coinTypesOfServices(Array['from'](new Set(Array['from'](G['values']())['map'](a2=>typeof a2?.['service']==='string'?a2['service']:'')['filter'](Boolean))),b['network']),M=async(a2,a3)=>{if(a3===null||a3===undefined||a3==='')return{'display':'','tip':''};if(!a2)return{'display':a3,'tip':''};try{const a4=await formatChainValue(a3,a2,b['network']);if(a4['precision_known'])return{'display':a4['symbol']?a4['display']+'\x20'+a4['symbol']:a4['display'],'tip':a4['text']};return{'display':a3,'tip':''};}catch{return{'display':a3,'tip':''};}},N=[];for(const a2 of F){const a3=G['get'](a2),a4=E['filter'](a8=>a8['views']['some'](a9=>(typeof a9?.['order']?.['object']==='string'?a9['order']['object']:a9?.['order'])===a2))['map'](a8=>{const a9=a8['views']['find'](aa=>(typeof aa?.['order']?.['object']==='string'?aa['order']['object']:aa?.['order'])===a2);return{'account':a8['account'],'is_owner':!!a9?.['is_owner'],'is_agent':!!a9?.['is_agent'],'time':a9?.['time']};}),a5=L['get'](String(a3?.['service']??''))??null,a6=a3?.['amount']!==null&&a3?.['amount']!==undefined?String(a3['amount']):'',a7=await M(a5,a6);N['push']({'order':a2,'roles':a4,'time':a3?Number(a3['time'])||0x0:0x0,'updated_ms':K['get'](a2)??null,'amount':a6,'amount_display':a7['display'],'amount_tip':a7['tip'],'service':a3?.['service']??null,'machine':a3?.['machine']??null,'progress':a3?.['progress']??null,'allocation':a3?.['allocation']??null,'owner':ownerAddrOf(a3?.['builder']??a3?.['owner']),'claimed_by':a3?.['claimed_by']??null,'required_info':a3?.['required_info']??null,'progress_next':a3?.['progress']?H['get'](a3['progress'])??null:null,'progress_since':a3?.['progress']?I['get'](a3['progress'])??null:null,'allocation_state':a3?.['allocation']?J['get'](a3['allocation'])??'pending':'none','disputes':Array['isArray'](a3?.['dispute'])?a3['dispute']:[],'agents':Array['isArray'](a3?.['agent'])?a3['agent']:[],'items':await Promise['all']((Array['isArray'](a3?.['items'])?a3['items']:[])['map'](async a8=>{const a9=a8?.['price']!==null&&a8?.['price']!==undefined?String(a8['price']):'0';return{'name':String(a8?.['name']??''),'price':a9,'price_display':(await M(a5,a9))['display'],'quantity':String(a8?.['quantity']??'0'),'wip_hash':String(a8?.['wip_hash']??'')};}))});}c={'query_type':'onchain_orders_of_users','result':N,...C['length']>0x0?{'account_errors':C}:{}};break;}case'onchain_table_item_object_linker_core':{const a8=await queryTableItem_ObjectLinkerCore({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_object_linker_core','result':a8};break;}case'onchain_table_item_object_linker_tx':{const a9=await queryTableItem_ObjectLinkerTx({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_object_linker_tx','result':a9};break;}case'onchain_affiliations_of_object':{const aa=await query_affiliations({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']}),ab=aa?.['entries'];Array['isArray'](ab)&&(aa['entries']=ab['filter'](ac=>{const ad=typeof ac?.['who']==='string'?ac['who']:'';return!!ad&&!!objectTypeFromAddress(ad);}));c={'query_type':'onchain_affiliations_of_object','result':aa};break;}case'address_profile':{const ac=await query_address_profile({'address':b['address'],'no_cache':b['no_cache'],'network':b['network']});await mergeServiceAnalysis(ac,{'no_cache':b['no_cache'],'network':b['network']});ac&&typeof ac==='object'&&(ac['follow_ups']=buildProfileFollowUps(ac));c={'query_type':'address_profile','result':ac};break;}case'service_supply_chain':{const ad=await resolveSupplyChainGraph(typeof b['address']==='string'?b['address']:b['address']?.['name_or_address']??String(b['address']),b['network']);c={'query_type':'service_supply_chain','result':ad};break;}case'onchain_table_item_generic':{const ae=await query_tableItem({'parent':b['parent'],'key':{'type':b['key_type'],'value':b['key_value']},'no_cache':b['no_cache'],'network':b['network']});c={'query_type':'onchain_table_item_generic','result':ae};break;}default:{const af=['onchain_table','onchain_table_item_repository_data','onchain_table_item_permission_perm','onchain_table_item_reward_record','onchain_table_item_demand_presenter','onchain_table_item_treasury_history','onchain_table_item_machine_node','onchain_table_item_progress_history','onchain_table_item_address_mark','onchain_table_item_entity_registrar','onchain_table_item_entity_linker','onchain_table_item_entity_contact','onchain_table_item_entity_order','onchain_orders_of_user','onchain_orders_of_users','onchain_table_item_object_linker_core','onchain_table_item_object_linker_tx','onchain_table_item_generic','onchain_affiliations_of_object','address_profile','service_supply_chain'];throw new Error('Unknown\x20table\x20query_type\x20\x22'+b['query_type']+'\x22.\x20Valid\x20query_types\x20are:\x20'+af['map'](ag=>'\x22'+ag+'\x22')['join'](',\x20')+'.');}}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c,'semantic':buildDataSemantic(c,{'operation_type':'onchain_table_data','data':b})}};}export async function handleOnchainEvents(a){const b=strictParse(OnchainEventsInputSchema,a,'onchain_events\x20input'),c=await query_events({'type':b['type'],'cursor':b['cursor']?{'eventSeq':String(b['cursor']['eventSeq']),'txDigest':b['cursor']['txDigest']}:null,'limit':b['limit']??null,'order':b['order']??null,'no_cache':b['no_cache'],'network':b['network']});try{await annotateEventsMonetaryFields(c?.['data'],b['network']);}catch{}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c,'semantic':buildDataSemantic(c,{'operation_type':'onchain_events','data':b})}};}function mcpLayerInfoResponse(a){return{'content':[{'type':'text','text':JSON['stringify']({'result':a})}],'structuredContent':{'result':a}};}export async function handleWowokInfo(a){const b=strictParse(ProtocolInfoQuerySchema,a,'wowok_buildin_info\x20input'),c=b['info'];if(c==='upgrade_check')return mcpLayerInfoResponse({'info':'upgrade_check','result':await checkUpgrade()});if(c==='universal_template')return mcpLayerInfoResponse({'info':'universal_template','result':getUniversalTemplate()});if(c==='getting\x20started')return mcpLayerInfoResponse({'info':'getting\x20started','result':getGettingStarted()});if(c==='build_fingerprint'){const e=b['compare'];if(e!=null){const h=await readChainStamp();return setComparisonChainEpoch(h['fetched']?h['epoch']:null),mcpLayerInfoResponse({'info':'build_fingerprint','result':{'comparison':compareReportFingerprint(e)}});}const f=currentBuildFingerprint(),g=await readChainStamp();return setComparisonChainEpoch(g['fetched']?g['epoch']:null),mcpLayerInfoResponse({'info':'build_fingerprint','result':{'fingerprint':f,'chain_stamp':g}});}const d=await queryProtocolInfo(b);return{'content':[{'type':'text','text':JSON['stringify']({'result':d})}],'structuredContent':{'result':d}};}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface WinnerDerivation {
|
|
2
|
+
node: string;
|
|
3
|
+
who: string;
|
|
4
|
+
participants?: string[];
|
|
5
|
+
at_ms: number;
|
|
6
|
+
basis: string;
|
|
7
|
+
}
|
|
8
|
+
export interface WinnerDerivationFace {
|
|
9
|
+
winner_derivation: WinnerDerivation | null;
|
|
10
|
+
winner_derivation_note?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface HistoryEntryLike {
|
|
13
|
+
node?: unknown;
|
|
14
|
+
next_node?: unknown;
|
|
15
|
+
time?: unknown;
|
|
16
|
+
session?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export declare function winnerBasisText(node: string): string;
|
|
19
|
+
export declare function deriveWinnerFromHistory(entries: HistoryEntryLike[], node: string): WinnerDerivation | null;
|
|
20
|
+
export declare function attachWinnerDerivation(progressAddr: string, progressData: unknown, network: unknown, winnerNode?: string): Promise<WinnerDerivationFace>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{queryTableItem_ProgressHistory,LocalMark}from'@wowok/wowok';const WINNER_SCAN_CAP=0x1f4;export function winnerBasisText(a){return'first\x20History\x20entry\x20for\x20node\x20\x27'+a+'\x27\x20—\x20the\x20first\x20account\x20whose\x20forward\x20completed\x20entry\x20into\x20'+a+';\x20'+'the\x20contest\x20winner\x20under\x20a\x20first-to-node\x20rule\x20(chain\x20data:\x20Progress\x20history,\x20no\x20off-chain\x20input)';}const asNumber=a=>{const b=typeof a==='number'?a:typeof a==='string'?Number(a):NaN;return Number['isFinite'](b)?b:undefined;};export function deriveWinnerFromHistory(a,b){if(typeof b!=='string'||b==='')return null;for(const c of a){if(typeof c?.['next_node']!=='string'||c['next_node']!==b)continue;const d=Array['isArray'](c['session'])?c['session']:[];for(const e of d){const f=asNumber(e?.['weights']),g=asNumber(e?.['threshold']);if(f===undefined||g===undefined||f<g)continue;const h=Array['isArray'](e?.['forwards'])?e['forwards']:[],i=h['map'](j=>typeof j?.['who']==='string'&&j['who']!==''?j['who']:null)['filter'](j=>j!==null);if(i['length']===0x0)continue;return{'node':b,'who':g>0x1?i[i['length']-0x1]:i[0x0],...g>0x1?{'participants':i}:{},'at_ms':asNumber(c['time'])??0x0,'basis':winnerBasisText(b)};}return null;}return null;}export async function attachWinnerDerivation(a,b,c,d){try{const e=b??{},f=typeof e['current']==='string'&&e['current']!==''?e['current']:undefined,g=(typeof d==='string'&&d['trim']()!==''?d['trim']():undefined)??f;if(g===undefined)return{'winner_derivation':null,'winner_derivation_note':'winner_derivation\x20unavailable:\x20the\x20Progress\x20carries\x20no\x20current\x20node\x20and\x20no\x20explicit\x20adjudication\x20node\x20was\x20given'};const h=asNumber(e['history_count'])??0x0;if(h<=0x0)return{'winner_derivation':null,'winner_derivation_note':'no\x20winner:\x20the\x20order\x20has\x20not\x20advanced\x20into\x20\x27'+g+'\x27\x20yet\x20(the\x20Progress\x20history\x20is\x20empty)'};const j=a['startsWith']('0x')?a:await LocalMark['Instance']()['get_address'](a)??a,k=Math['min'](h,WINNER_SCAN_CAP);let l;for(let n=0x0;n<k;n++){let o;try{o=await queryTableItem_ProgressHistory({'parent':j,'u64':n,'no_cache':![],'network':c});}catch{break;}if(o&&typeof o['next_node']==='string'&&o['next_node']===g){l=o;break;}}if(l===undefined){const p=k<h?'\x20(scan\x20capped\x20at\x20the\x20first\x20'+k+'\x20of\x20'+h+'\x20entries)':'';return{'winner_derivation':null,'winner_derivation_note':'no\x20winner:\x20no\x20Progress\x20history\x20entry\x20records\x20entry\x20into\x20\x27'+g+'\x27'+p+'\x20—\x20the\x20order\x20has\x20not\x20advanced\x20to\x20that\x20node'};}const m=deriveWinnerFromHistory([l],g);if(m===null)return{'winner_derivation':null,'winner_derivation_note':'no\x20winner:\x20the\x20first\x20history\x20entry\x20entering\x20\x27'+g+'\x27\x20carries\x20no\x20threshold-reaching\x20session\x20with\x20a\x20named\x20trigger'};return{'winner_derivation':m};}catch{return{'winner_derivation':null,'winner_derivation_note':'winner_derivation\x20unavailable:\x20the\x20Progress\x20history\x20read\x20failed'};}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHash,randomBytes}from'node:crypto';import{readFileSync}from'node:fs';import{Account,verify_wip}from'@wowok/wowok';export const DEFAULT_WIP_STORE_URL=process['env']['WOWOK_WIP_STORE_URL']??'https://wip.store.wowok.net';const MAX_UPLOAD_BYTES=0xc*0x400*0x400,QUOTA_GUIDANCE='Delete\x20one\x20or\x20more\x20stored\x20files\x20with\x20wip_file\x20type=\x27storage_delete\x27\x20(the\x20\x27files\x27\x20list\x20above\x20provides\x20the\x20hashes),\x20then\x20retry\x20the\x20upload.\x20'+'Alternatively,\x20use\x20your\x20own\x20or\x20a\x20third-party\x20wip\x20storage\x20service\x20and\x20upload\x20with\x20storage=\x27custom\x27\x20(recommended:\x20no\x20store\x20quota\x20and\x20full\x20control\x20over\x20your\x20documents).',LARGE_FILE_ADVISORY_BYTES=0x2*0x400*0x400,NETWORK_ADVISORY='This\x20WIP\x20file\x20is\x20large\x20(multi-MB,\x20image-heavy)\x20and\x20therefore\x20sensitive\x20to\x20network\x20conditions:\x20'+'uploads\x20may\x20be\x20slow\x20or\x20fail\x20mid-transfer,\x20and\x20customers\x20fetch\x20the\x20file\x20again\x20when\x20placing\x20orders.\x20'+'Solutions:\x20keep\x20WIP\x20files\x20small\x20(compress\x20images\x20before\x20generate;\x20each\x20image\x20<=\x202MB,\x20total\x20<=\x2010MB),\x20'+'retry\x20the\x20upload\x20on\x20transient\x20network\x20failures,\x20and\x20confirm\x20the\x20returned\x20public\x20URL\x20is\x20reachable\x20'+'afterwards\x20(wip_file\x20type=\x27verify\x27\x20with\x20the\x20URL).';export const FREE_STORE_RETENTION_DAYS=0xb4;export const FREE_STORE_RETENTION_NOTICE='Official\x20free\x20store\x20(wip.store.wowok.net):\x20files\x20are\x20retained\x20for\x20at\x20least\x206\x20months\x20(180\x20days)\x20from\x20upload.\x20'+'This\x20is\x20a\x20free,\x20best-effort\x20service\x20provided\x20as-is\x20—\x20availability\x20and\x20data\x20survival\x20are\x20not\x20guaranteed\x20(force\x20majeure\x20excepted).\x20'+'Expired\x20files\x20are\x20NEVER\x20deleted\x20automatically;\x20deletion\x20past\x20the\x20retention\x20window\x20is\x20a\x20manual\x20administrator\x20action\x20on\x20the\x20storage\x20service.\x20'+'For\x20permanent,\x20self-controlled\x20hosting\x20use\x20storage=\x27custom\x27\x20(recommended).';function resolveBaseUrl(a){const b=a['storage']==='custom'?'custom':'store';if(b==='custom'){if(!a['customBaseUrl'])throw new Error('storage=\x27custom\x27\x20requires\x20\x27customBaseUrl\x27\x20—\x20the\x20base\x20URL\x20of\x20your\x20own\x20or\x20a\x20third-party\x20wip\x20storage\x20service\x20deployment');return{'baseUrl':a['customBaseUrl']['replace'](/\/+$/,''),'storage':b};}return{'baseUrl':DEFAULT_WIP_STORE_URL['replace'](/\/+$/,''),'storage':b};}function sha256Hex(a){return createHash('sha256')['update'](a)['digest']('hex');}async function loadWipBytes(a){if(a['startsWith']('data:')){const b=a['match'](/^data:[^;,]*(?:;charset=[\w-]+)?;base64,(.+)$/);if(!b)throw new Error('Unsupported\x20data\x20URL\x20format\x20for\x20WIP\x20file\x20(expected\x20base64\x20data\x20URL)');return Buffer['from'](b[0x1],'base64');}if(/^https?:\/\//i['test'](a)){const c=await fetch(a);if(!c['ok'])throw new Error('Failed\x20to\x20fetch\x20WIP\x20file\x20from\x20'+a+':\x20'+c['status']+'\x20'+c['statusText']);const d=Buffer['from'](await c['arrayBuffer']());if(d['length']>MAX_UPLOAD_BYTES)throw new Error('WIP\x20file\x20at\x20'+a+'\x20exceeds\x20the\x20'+MAX_UPLOAD_BYTES+'\x20byte\x20transport\x20limit');return d;}return readFileSync(a);}async function signedHeaders(a,b,c){const d=Date['now'](),e=randomBytes(0x10)['toString']('hex'),f=c?'wip:'+b+':'+d+':'+e+':'+c:'wip:'+b+':'+d+':'+e,g=await Account['Instance']()['signData'](a??null,f);return{'address':g['address'],'headers':{'x-wip-timestamp':String(d),'x-wip-nonce':e,'x-wip-public-key':g['publicKey'],'x-wip-signature':g['signature'],'x-wip-address':g['address']}};}async function storagePost(a,b,c,d,e){let f;try{f=await fetch(a+b,{'method':'POST','headers':e?{...c,'content-type':e}:c,'body':d===null?undefined:typeof d==='string'?d:new Uint8Array(d)});}catch(h){throw new Error('WIP\x20storage\x20request\x20to\x20'+a+b+'\x20failed:\x20network\x20error\x20('+(h instanceof Error?h['message']:String(h))+').\x20'+'Large\x20WIP\x20files\x20are\x20sensitive\x20to\x20network\x20conditions\x20—\x20retry\x20the\x20request;\x20if\x20it\x20keeps\x20failing,\x20'+'check\x20connectivity\x20or\x20reduce\x20the\x20file\x20size\x20(compress\x20images\x20before\x20generate).');}let g=null;try{g=await f['json']();}catch{g=null;}return{'status':f['status'],'json':g};}function serverError(a,b,c){const d=c?.['message']??c?.['error']??'unknown\x20error';throw new Error('WIP\x20storage\x20'+a+'\x20failed\x20('+b+'):\x20'+d);}export async function wipStorageUpload(a){const {baseUrl:b,storage:c}=resolveBaseUrl(a),d=await verify_wip(a['wipFilePath'],undefined,undefined);if(!d['valid'])throw new Error('WIP\x20file\x20failed\x20verification\x20and\x20was\x20not\x20uploaded:\x20'+d['error']);const e=await loadWipBytes(a['wipFilePath']);if(e['length']>MAX_UPLOAD_BYTES)throw new Error('WIP\x20file\x20exceeds\x20the\x20'+MAX_UPLOAD_BYTES+'\x20byte\x20transport\x20limit');const {address:f,headers:g}=await signedHeaders(a['account'],'upload',sha256Hex(e)),h={};if(a['name'])h['x-wip-name']=encodeURIComponent(a['name']);const {status:i,json:j}=await storagePost(b,'/api/upload',{...g,...h},e,'application/octet-stream');if(i===0x199&&j?.['error']==='QUOTA_EXCEEDED')return{'type':'upload','storage':c,'base_url':b,'address':f,'error':'QUOTA_EXCEEDED','message':j['message']??'Storage\x20quota\x20exceeded','count':j['count'],'limit':j['limit'],'files':j['files']??[],'guidance':QUOTA_GUIDANCE};i!==0xc8&&i!==0xc9&&serverError('upload',i,j);const k={'type':'upload','storage':c,'base_url':b,'address':f,'hash':j['hash'],'url':j['url'],'size':j['size'],'name':j['name']??a['name'],'signed':j['signed'],'deduplicated':j['deduplicated']===!![]};return e['length']>LARGE_FILE_ADVISORY_BYTES&&(k['network_advisory']=NETWORK_ADVISORY),c==='store'&&(k['retention_notice']=FREE_STORE_RETENTION_NOTICE),k;}export async function wipStorageList(a){const {baseUrl:b,storage:c}=resolveBaseUrl(a),{address:d,headers:e}=await signedHeaders(a['account'],'list',null),{status:f,json:g}=await storagePost(b,'/api/list',e,null);if(f!==0xc8)serverError('list',f,g);const h={'type':'storage_list','storage':c,'base_url':b,'address':g['address']??d,'count':g['count'],'limit':g['limit'],'files':g['files']??[]};return c==='store'&&(h['retention_notice']=FREE_STORE_RETENTION_NOTICE),h;}export async function wipStorageDelete(a){const {baseUrl:b,storage:c}=resolveBaseUrl(a),d=a['hash']['toLowerCase']()['replace'](/^sha256:/,'');if(!/^[0-9a-f]{64}$/['test'](d))throw new Error('Invalid\x20hash\x20\x27'+a['hash']+'\x27\x20—\x20expected\x20a\x2064-character\x20hex\x20sha256\x20digest\x20(meta.hash)');const {address:e,headers:f}=await signedHeaders(a['account'],'delete',d),{status:g,json:h}=await storagePost(b,'/api/delete',f,JSON['stringify']({'hash':d}),'application/json');if(g!==0xc8)serverError('delete',g,h);return{'type':'storage_delete','storage':c,'base_url':b,'address':h['address']??e,'deleted':h['deleted']??d,'remaining':h['remaining']};}
|
|
1
|
+
import{createHash,randomBytes}from'node:crypto';import{readFileSync}from'node:fs';import{Account,verify_wip}from'@wowok/wowok';export const DEFAULT_WIP_STORE_URL=process['env']['WOWOK_WIP_STORE_URL']??'https://wip.store.wowok.net';const MAX_UPLOAD_BYTES=0xc*0x400*0x400,QUOTA_GUIDANCE='Delete\x20one\x20or\x20more\x20stored\x20files\x20with\x20wip_file\x20type=\x27storage_delete\x27\x20(the\x20\x27files\x27\x20list\x20above\x20provides\x20the\x20hashes),\x20then\x20retry\x20the\x20upload.\x20'+'Alternatively,\x20use\x20your\x20own\x20or\x20a\x20third-party\x20wip\x20storage\x20service\x20and\x20upload\x20with\x20storage=\x27custom\x27\x20(recommended:\x20no\x20store\x20quota\x20and\x20full\x20control\x20over\x20your\x20documents).',SIGNER_MISMATCH_GUIDANCE='The\x20uploading\x20account\x20is\x20not\x20among\x20the\x20WIP\x20file\x27s\x20embedded\x20signers.\x20Co-sign\x20the\x20file\x20with\x20the\x20uploading\x20account,\x20then\x20retry:\x20'+'wip_file\x20{\x20type:\x20\x27sign\x27,\x20wipFilePath:\x20\x27<file>\x27,\x20account:\x20\x27<uploading\x20account>\x27\x20}\x20appends\x20its\x20Falcon512\x20signature\x20'+'(multi-signature\x20files\x20keep\x20every\x20existing\x20signature),\x20then\x20wip_file\x20{\x20type:\x20\x27upload\x27,\x20...\x20}\x20again.\x20'+'Alternatively,\x20upload\x20with\x20an\x20account\x20that\x20already\x20appears\x20in\x20the\x20file\x27s\x20signature\x20list.',LARGE_FILE_ADVISORY_BYTES=0x2*0x400*0x400,NETWORK_ADVISORY='This\x20WIP\x20file\x20is\x20large\x20(multi-MB,\x20image-heavy)\x20and\x20therefore\x20sensitive\x20to\x20network\x20conditions:\x20'+'uploads\x20may\x20be\x20slow\x20or\x20fail\x20mid-transfer,\x20and\x20customers\x20fetch\x20the\x20file\x20again\x20when\x20placing\x20orders.\x20'+'Solutions:\x20keep\x20WIP\x20files\x20small\x20(compress\x20images\x20before\x20generate;\x20each\x20image\x20<=\x202MB,\x20total\x20<=\x2010MB),\x20'+'retry\x20the\x20upload\x20on\x20transient\x20network\x20failures,\x20and\x20confirm\x20the\x20returned\x20public\x20URL\x20is\x20reachable\x20'+'afterwards\x20(wip_file\x20type=\x27verify\x27\x20with\x20the\x20URL).';export const FREE_STORE_RETENTION_DAYS=0xb4;export const FREE_STORE_RETENTION_NOTICE='Official\x20free\x20store\x20(wip.store.wowok.net):\x20files\x20are\x20retained\x20for\x20at\x20least\x206\x20months\x20(180\x20days)\x20from\x20upload.\x20'+'This\x20is\x20a\x20free,\x20best-effort\x20service\x20provided\x20as-is\x20—\x20availability\x20and\x20data\x20survival\x20are\x20not\x20guaranteed\x20(force\x20majeure\x20excepted).\x20'+'Expired\x20files\x20are\x20NEVER\x20deleted\x20automatically;\x20deletion\x20past\x20the\x20retention\x20window\x20is\x20a\x20manual\x20administrator\x20action\x20on\x20the\x20storage\x20service.\x20'+'For\x20permanent,\x20self-controlled\x20hosting\x20use\x20storage=\x27custom\x27\x20(recommended).';function resolveBaseUrl(a){const b=a['storage']==='custom'?'custom':'store';if(b==='custom'){if(!a['customBaseUrl'])throw new Error('storage=\x27custom\x27\x20requires\x20\x27customBaseUrl\x27\x20—\x20the\x20base\x20URL\x20of\x20your\x20own\x20or\x20a\x20third-party\x20wip\x20storage\x20service\x20deployment');return{'baseUrl':a['customBaseUrl']['replace'](/\/+$/,''),'storage':b};}return{'baseUrl':DEFAULT_WIP_STORE_URL['replace'](/\/+$/,''),'storage':b};}function sha256Hex(a){return createHash('sha256')['update'](a)['digest']('hex');}async function loadWipBytes(a){if(a['startsWith']('data:')){const b=a['match'](/^data:[^;,]*(?:;charset=[\w-]+)?;base64,(.+)$/);if(!b)throw new Error('Unsupported\x20data\x20URL\x20format\x20for\x20WIP\x20file\x20(expected\x20base64\x20data\x20URL)');return Buffer['from'](b[0x1],'base64');}if(/^https?:\/\//i['test'](a)){const c=await fetch(a);if(!c['ok'])throw new Error('Failed\x20to\x20fetch\x20WIP\x20file\x20from\x20'+a+':\x20'+c['status']+'\x20'+c['statusText']);const d=Buffer['from'](await c['arrayBuffer']());if(d['length']>MAX_UPLOAD_BYTES)throw new Error('WIP\x20file\x20at\x20'+a+'\x20exceeds\x20the\x20'+MAX_UPLOAD_BYTES+'\x20byte\x20transport\x20limit');return d;}return readFileSync(a);}async function signedHeaders(a,b,c){const d=Date['now'](),e=randomBytes(0x10)['toString']('hex'),f=c?'wip:'+b+':'+d+':'+e+':'+c:'wip:'+b+':'+d+':'+e,g=await Account['Instance']()['signData'](a??null,f);return{'address':g['address'],'headers':{'x-wip-timestamp':String(d),'x-wip-nonce':e,'x-wip-public-key':g['publicKey'],'x-wip-signature':g['signature'],'x-wip-address':g['address']}};}async function storagePost(a,b,c,d,e){let f;try{f=await fetch(a+b,{'method':'POST','headers':e?{...c,'content-type':e}:c,'body':d===null?undefined:typeof d==='string'?d:new Uint8Array(d)});}catch(h){throw new Error('WIP\x20storage\x20request\x20to\x20'+a+b+'\x20failed:\x20network\x20error\x20('+(h instanceof Error?h['message']:String(h))+').\x20'+'Large\x20WIP\x20files\x20are\x20sensitive\x20to\x20network\x20conditions\x20—\x20retry\x20the\x20request;\x20if\x20it\x20keeps\x20failing,\x20'+'check\x20connectivity\x20or\x20reduce\x20the\x20file\x20size\x20(compress\x20images\x20before\x20generate).');}let g=null;try{g=await f['json']();}catch{g=null;}return{'status':f['status'],'json':g};}function serverError(a,b,c){const d=c?.['message']??c?.['error']??'unknown\x20error';throw new Error('WIP\x20storage\x20'+a+'\x20failed\x20('+b+'):\x20'+d);}export async function wipStorageUpload(a){const {baseUrl:b,storage:c}=resolveBaseUrl(a),d=await verify_wip(a['wipFilePath'],undefined,undefined);if(!d['valid'])throw new Error('WIP\x20file\x20failed\x20verification\x20and\x20was\x20not\x20uploaded:\x20'+d['error']);const e=await loadWipBytes(a['wipFilePath']);if(e['length']>MAX_UPLOAD_BYTES)throw new Error('WIP\x20file\x20exceeds\x20the\x20'+MAX_UPLOAD_BYTES+'\x20byte\x20transport\x20limit');const {address:f,headers:g}=await signedHeaders(a['account'],'upload',sha256Hex(e)),h={};if(a['name'])h['x-wip-name']=encodeURIComponent(a['name']);const {status:i,json:j}=await storagePost(b,'/api/upload',{...g,...h},e,'application/octet-stream');if(i===0x199&&j?.['error']==='QUOTA_EXCEEDED')return{'type':'upload','storage':c,'base_url':b,'address':f,'error':'QUOTA_EXCEEDED','message':j['message']??'Storage\x20quota\x20exceeded','count':j['count'],'limit':j['limit'],'files':j['files']??[],'guidance':QUOTA_GUIDANCE};if(i===0x193&&/signer/i['test'](String(j?.['message']??j?.['error']??'')))return{'type':'upload','storage':c,'base_url':b,'address':f,'error':'UPLOADER_NOT_AMONG_SIGNERS','message':j['message']??j['error']??'Uploader\x20account\x20is\x20not\x20among\x20the\x20WIP\x20file\x20signers','guidance':SIGNER_MISMATCH_GUIDANCE};i!==0xc8&&i!==0xc9&&serverError('upload',i,j);const k={'type':'upload','storage':c,'base_url':b,'address':f,'hash':j['hash'],'url':j['url'],'size':j['size'],'name':j['name']??a['name'],'signed':j['signed'],'deduplicated':j['deduplicated']===!![]};return e['length']>LARGE_FILE_ADVISORY_BYTES&&(k['network_advisory']=NETWORK_ADVISORY),c==='store'&&(k['retention_notice']=FREE_STORE_RETENTION_NOTICE),k;}export async function wipStorageList(a){const {baseUrl:b,storage:c}=resolveBaseUrl(a),{address:d,headers:e}=await signedHeaders(a['account'],'list',null),{status:f,json:g}=await storagePost(b,'/api/list',e,null);if(f!==0xc8)serverError('list',f,g);const h={'type':'storage_list','storage':c,'base_url':b,'address':g['address']??d,'count':g['count'],'limit':g['limit'],'files':g['files']??[]};return c==='store'&&(h['retention_notice']=FREE_STORE_RETENTION_NOTICE),h;}export async function wipStorageDelete(a){const {baseUrl:b,storage:c}=resolveBaseUrl(a),d=a['hash']['toLowerCase']()['replace'](/^sha256:/,'');if(!/^[0-9a-f]{64}$/['test'](d))throw new Error('Invalid\x20hash\x20\x27'+a['hash']+'\x27\x20—\x20expected\x20a\x2064-character\x20hex\x20sha256\x20digest\x20(meta.hash)');const {address:e,headers:f}=await signedHeaders(a['account'],'delete',d),{status:g,json:h}=await storagePost(b,'/api/delete',f,JSON['stringify']({'hash':d}),'application/json');if(g!==0xc8)serverError('delete',g,h);return{'type':'storage_delete','storage':c,'base_url':b,'address':h['address']??e,'deleted':h['deleted']??d,'remaining':h['remaining']};}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { monitorEventStore, MonitorEventStore, monitorEventId } from "../monitor
|
|
|
4
4
|
export type { MonitorEventRecord, MonitorEventWithSeen, MonitorEventModule, LegacyMonitorState, } from "../monitor/EventStore.js";
|
|
5
5
|
export { monitorLoop, MonitorLoop } from "../monitor/MonitorLoop.js";
|
|
6
6
|
export { MONITOR_CAPTURE_TYPES } from "../monitor/normalize.js";
|
|
7
|
+
export { NETWORK_FIELD_BY_QUERY } from "./handlers/query.js";
|
|
7
8
|
export { resolveGateControls, resolveEffectiveOverrides } from "../persona/index.js";
|
|
8
9
|
export { SYSTEM_OVERRIDE_SETTINGS } from "../persona/index.js";
|
|
9
10
|
export type { PersonaPolicy, SystemOverrideValue } from "../persona/index.js";
|