@wowok/agent-mcp 3.2.7 → 3.3.0
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 +2 -2
- 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/object-graph.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.d.ts +10 -1
- package/dist/composition/compile.js +1 -1
- package/dist/composition/inflight.d.ts +10 -0
- package/dist/composition/inflight.js +1 -1
- package/dist/extensions/business-modules.d.ts +1 -1
- package/dist/extensions/business-modules.js +1 -1
- package/dist/extensions/capability-manifest.js +1 -1
- package/dist/extensions/industry-audit.spec.js +1 -1
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/graph/onchain/edge-schema.js +1 -1
- package/dist/graph/onchain/facts.spec.js +1 -1
- package/dist/graph/onchain/field-manifest.js +1 -1
- package/dist/harness/index.d.ts +1 -0
- package/dist/harness/index.js +1 -1
- package/dist/harness/operation-id.d.ts +1 -0
- package/dist/harness/operation-id.js +1 -0
- package/dist/harness/recover.js +1 -1
- package/dist/index.js +1 -1
- package/dist/intent/types.d.ts +1 -1
- package/dist/intent/types.js +1 -1
- package/dist/keeper/KeeperScan.d.ts +2 -1
- package/dist/keeper/KeeperScan.js +1 -1
- package/dist/keeper/keeper.spec.js +1 -1
- package/dist/keeper/types.d.ts +3 -0
- package/dist/keeper/types.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.d.ts +34 -0
- package/dist/knowledge/allocator-rail-verifier.js +1 -0
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/arbitration-templates.js +1 -1
- package/dist/knowledge/arbitration-venue-order.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +19 -1
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/alloc_audit.json +1 -1
- package/dist/knowledge/baselines/rules/arb.json +1 -1
- package/dist/knowledge/baselines/rules/guard.json +106 -1
- package/dist/knowledge/baselines/rules/machine.json +9 -6
- package/dist/knowledge/baselines/rules/plan.json +40 -17
- package/dist/knowledge/baselines/semantic-facts.js +1 -1
- package/dist/knowledge/builtin-templates.d.ts +1 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/contract-invariants.js +1 -1
- package/dist/knowledge/discount-threshold.d.ts +11 -0
- package/dist/knowledge/discount-threshold.js +1 -1
- package/dist/knowledge/event-semantics.js +1 -1
- package/dist/knowledge/fund-layer.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-anchor-reach.d.ts +1 -1
- package/dist/knowledge/guard-anchor-reach.js +1 -1
- package/dist/knowledge/guard-bindings.js +1 -1
- 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-ledger.js +1 -1
- package/dist/knowledge/guard-lint.js +1 -1
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.d.ts +1 -0
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-submission-brief.d.ts +6 -0
- package/dist/knowledge/guard-submission-brief.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +2 -2
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/industry-strategy.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/machine-ledger.js +1 -1
- package/dist/knowledge/machine-puzzle.d.ts +1 -1
- package/dist/knowledge/machine-puzzle.js +1 -1
- package/dist/knowledge/machine-risk.js +1 -1
- package/dist/knowledge/machine-templates.js +1 -1
- package/dist/knowledge/machine-topology.d.ts +8 -0
- package/dist/knowledge/machine-topology.js +1 -1
- package/dist/knowledge/machine-translation.js +1 -1
- package/dist/knowledge/order-ledger.js +1 -1
- package/dist/knowledge/permission-ledger.js +1 -1
- package/dist/knowledge/protocol-facts.d.ts +16 -0
- package/dist/knowledge/protocol-facts.js +1 -0
- package/dist/knowledge/recipient-constraint.js +1 -1
- package/dist/knowledge/reward-ledger.d.ts +2 -1
- package/dist/knowledge/reward-ledger.js +1 -1
- package/dist/knowledge/reward-templates.js +1 -1
- package/dist/knowledge/safety-rules.d.ts +0 -2
- package/dist/knowledge/safety-rules.js +1 -1
- package/dist/knowledge/scenario-modes.d.ts +7 -0
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/strategy-manuals.js +1 -1
- package/dist/knowledge/template-loader.d.ts +13 -1
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.d.ts +2 -0
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/tool-constraints.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workflow-guidance.d.ts +7 -3
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/monitor/normalize.d.ts +1 -1
- package/dist/monitor/normalize.js +1 -1
- package/dist/monitor/types.d.ts +1 -1
- package/dist/monitor/types.js +1 -1
- package/dist/participation/radar-core.d.ts +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/game-theory.d.ts +1 -0
- package/dist/playbooks/service-build/game-theory.js +1 -1
- package/dist/playbooks/service-build/intent-analyzer.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.d.ts +8 -0
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/object-panorama.d.ts +28 -1
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.d.ts +2 -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-nk4.spec.js +1 -1
- package/dist/playbooks/service-build/reverse-mapping.js +1 -1
- 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/relationship/registry.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/role/profiles.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/safety/preview.d.ts +1 -0
- package/dist/safety/preview.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +19 -1
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/allocation.d.ts +1 -1
- package/dist/schema/call/arbitration.d.ts +8 -8
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.d.ts +52 -5
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +3 -0
- package/dist/schema/call/contact.d.ts +5 -5
- package/dist/schema/call/demand.d.ts +5 -5
- 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 +3 -3
- package/dist/schema/call/guard.js +1 -1
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +13 -5
- package/dist/schema/call/machine.js +1 -1
- package/dist/schema/call/order.d.ts +5 -5
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/permission.d.ts +5 -5
- package/dist/schema/call/personal.d.ts +4 -4
- package/dist/schema/call/progress.d.ts +5 -5
- package/dist/schema/call/progress.js +1 -1
- package/dist/schema/call/proof.js +1 -1
- package/dist/schema/call/receipt.d.ts +8 -0
- package/dist/schema/call/receipt.js +1 -1
- package/dist/schema/call/repository.d.ts +9 -9
- package/dist/schema/call/repository.js +1 -1
- package/dist/schema/call/reward.d.ts +25 -5
- package/dist/schema/call/reward.js +1 -1
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +10 -5
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/call/treasury.d.ts +5 -5
- package/dist/schema/common/index.d.ts +6 -6
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/goal/index.d.ts +17 -1
- package/dist/schema/goal/planning.d.ts +28 -2
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +3 -0
- package/dist/schema/industry-pack/index.js +1 -1
- package/dist/schema/intent-radar/index.d.ts +9 -0
- package/dist/schema/intent-radar/index.js +1 -1
- package/dist/schema/local/index.d.ts +31 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +57 -43
- package/dist/schema/operations.js +1 -1
- package/dist/schema/query/bi.d.ts +22 -6
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +164 -102
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +2 -0
- 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/workflow/index.d.ts +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 +3 -0
- package/dist/schemas/account_operation.schema.json +4 -4
- package/dist/schemas/benchmark_migration_operation.output.json +42 -0
- package/dist/schemas/benchmark_migration_operation.schema.json +40 -3
- package/dist/schemas/bridge_operation.output.json +3 -0
- package/dist/schemas/goal_operation.schema.json +52 -2
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/industry_pack_operation.output.json +8 -0
- package/dist/schemas/industry_pack_operation.schema.json +9 -0
- package/dist/schemas/intent_radar.output.json +8 -2
- package/dist/schemas/intent_radar.schema.json +4 -1
- package/dist/schemas/local_cache_operation.output.json +3 -0
- package/dist/schemas/local_history_operation.output.json +3 -0
- package/dist/schemas/local_info_operation.output.json +3 -0
- package/dist/schemas/local_mark_operation.output.json +3 -0
- package/dist/schemas/messenger_operation.schema.json +4 -4
- package/dist/schemas/monitor_events.schema.json +3 -1
- package/dist/schemas/onchain_events.output.json +275 -11
- package/dist/schemas/onchain_events.schema.json +25 -1
- package/dist/schemas/onchain_operations.output.json +47 -5
- package/dist/schemas/onchain_operations.schema.json +664 -179
- package/dist/schemas/onchain_operations_allocation.schema.json +7 -7
- package/dist/schemas/onchain_operations_arbitration.schema.json +21 -15
- package/dist/schemas/onchain_operations_contact.schema.json +15 -10
- package/dist/schemas/onchain_operations_demand.schema.json +15 -10
- package/dist/schemas/onchain_operations_gen_passport.schema.json +5 -5
- package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -1
- package/dist/schemas/onchain_operations_guard.schema.json +346 -8
- package/dist/schemas/onchain_operations_machine.schema.json +24 -11
- package/dist/schemas/onchain_operations_order.schema.json +17 -12
- package/dist/schemas/onchain_operations_permission.schema.json +10 -5
- package/dist/schemas/onchain_operations_personal.schema.json +2 -2
- package/dist/schemas/onchain_operations_progress.schema.json +17 -12
- package/dist/schemas/onchain_operations_proof.schema.json +6 -6
- package/dist/schemas/onchain_operations_repository.schema.json +19 -14
- package/dist/schemas/onchain_operations_reward.schema.json +96 -15
- package/dist/schemas/onchain_operations_service.schema.json +33 -21
- package/dist/schemas/onchain_operations_treasury.schema.json +15 -10
- package/dist/schemas/onchain_table_data.output.json +7 -7
- package/dist/schemas/query_toolkit.output.json +268 -44
- package/dist/schemas/query_toolkit.schema.json +1 -1
- package/dist/schemas/schema_query.schema.json +7 -2
- package/dist/schemas/workflow_operation.schema.json +5 -5
- package/dist/schemas/wowok_buildin_info.output.json +140 -3
- package/dist/schemas/wowok_buildin_info.schema.json +2 -2
- package/dist/tools/handlers/benchmark-migration.d.ts +66 -1
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/dispatch-expectations.d.ts +0 -1
- package/dist/tools/handlers/dispatch-expectations.js +1 -1
- package/dist/tools/handlers/industry-pack.js +1 -1
- package/dist/tools/handlers/intent-radar.js +1 -1
- package/dist/tools/handlers/keeper.d.ts +1 -1
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +12 -0
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/query.d.ts +1 -0
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/review-chain.js +1 -1
- package/dist/tools/handlers/schema-query.js +1 -1
- package/dist/tools/handlers/workflow.js +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/move-fn-index.gen.js +1 -1
- package/dist/tools/registry/agent.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/files.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/rules-hook.js +1 -1
- package/dist/tools/upgrade-check.d.ts +23 -0
- package/dist/tools/upgrade-check.js +1 -1
- package/dist/tools/wip-deploy-assist.d.ts +6 -0
- package/dist/tools/wip-deploy-assist.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PackageAddress,WOW_SINGLETON_IDS}from'@wowok/wowok';const EOA='EOA',ANY='ANY';export const EDGE_ID_REPOSITORY_POLICY_GUARD='repository.policy_guard';const F_EDGES=[{'id':'service.permission','family':'F','source':'Service','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b06','b09'],'label':'Permission\x20group\x20governing\x20who\x20may\x20operate\x20the\x20service\x20(must\x20differ\x20from\x20the\x20arbitration\x20permission,\x20E33\x20recusal\x20rule)'},{'id':'service.machine','family':'F','source':'Service','target':'Machine','cardinality':'0..1','read':{'kind':'field','path':'machine'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b04'],'contract':{'field':'machine','frozenWhen':'after\x20publish','forbiddenActions':['set','remove'],'allowedActions':[],'unfreeze':null,'moveAnchor':'service.move\x20machine_set_imp\x20/\x20machine_none_imp\x20(assert!(!bPublished))'},'label':'Workflow\x20template\x20the\x20shop\x20fulfills\x20orders\x20through\x20(chosen\x20at\x20publish,\x20permanently\x20frozen)'},{'id':'service.buy_guard','family':'F','source':'Service','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'buy_guard'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b01','b10'],'contract':{'field':'buy_guard','frozenWhen':null,'forbiddenActions':[],'allowedActions':['set','remove'],'unfreeze':null,'moveAnchor':'service.move\x20buy_guard_set_imp\x20/\x20buy_guard_none_imp\x20(no\x20assert!(!bPublished))'},'label':'Gate\x20every\x20buyer\x20must\x20pass\x20before\x20an\x20order\x20can\x20be\x20created'},{'id':'service.arbitration','family':'F','source':'Service','target':'Arbitration','cardinality':'N','read':{'kind':'fields','path':'arbitrations'},'retention':'complete','evidence':'service.move\x20L175-194\x20(≤20)','bridgeIds':['b06'],'contract':{'field':'arbitrations','frozenWhen':'after\x20publish','forbiddenActions':['remove','clear'],'allowedActions':['add'],'unfreeze':'pause\x20+\x20setting_lock_duration\x20elapsed','moveAnchor':'service.move\x20arbitration_remove_imp\x20/\x20arbitration_clear_imp\x20(assert_not_published)'},'label':'Dispute\x20venues\x20the\x20shop\x20designates\x20for\x20order\x20arbitration\x20(up\x20to\x2020;\x20removal\x20locked\x20after\x20publish)'},{'id':'service.reward','family':'F','source':'Service','target':'Reward','cardinality':'N','read':{'kind':'fields','path':'rewards'},'retention':'complete','evidence':'service.move\x20L175-194\x20(≤20)','bridgeIds':['b07'],'contract':{'field':'rewards','frozenWhen':'after\x20publish','forbiddenActions':['remove','clear'],'allowedActions':['add'],'unfreeze':'pause\x20+\x20setting_lock_duration\x20elapsed','moveAnchor':'service.move\x20reward_remove_imp\x20/\x20reward_clear_imp\x20(assert_not_published)'},'label':'Reward\x20pools\x20funding\x20the\x20shop\x27s\x20promotions\x20and\x20rebates\x20(up\x20to\x2020;\x20removal\x20locked\x20after\x20publish)'},{'id':'service.repository','family':'F','source':'Service','target':'Repository','cardinality':'N','read':{'kind':'fields','path':'repositories'},'retention':'complete','evidence':'service.move\x20L175-194\x20(≤100)','bridgeIds':['b02'],'contract':{'field':'repositories','frozenWhen':null,'forbiddenActions':[],'allowedActions':['add','remove','clear'],'unfreeze':null,'moveAnchor':'service.move\x20repository_remove_imp\x20/\x20repository_clear_imp\x20(no\x20assert_not_published)'},'label':'Evidence\x20repositories\x20the\x20shop\x20stores\x20fulfillment\x20proofs\x20in\x20(up\x20to\x20100;\x20freely\x20editable\x20after\x20publish)'},{'id':'service.um','family':'F','source':'Service','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b11'],'label':'Shop\x20membership\x20book\x20—\x20the\x20roster\x20deciding\x20who\x20counts\x20as\x20a\x20shop\x20member\x20(messaging\x20and\x20member-gate\x20flows)'},{'id':'service.order_allocator_guard','family':'F','source':'Service','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['order_allocators','allocators'],'field':'guard'},'retention':'complete','evidence':'service.move\x20L175-194;\x20allocation.move\x20L194-200','bridgeIds':['b05'],'label':'Guards\x20gating\x20how\x20incoming\x20orders\x20split\x20across\x20allocation\x20pools\x20(order-allocator\x20triggers)'},{'id':'order.builder','family':'F','source':'Order','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'builder'},'retention':'complete','evidence':'order.move\x20L60-75\x20(owner;\x20SDK\x20builder)','bridgeIds':['b01'],'label':'Buyer\x20who\x20owns\x20the\x20order\x20(payer-side\x20principal;\x20SDK\x20names\x20the\x20field\x20builder)'},{'id':'order.agent','family':'F','source':'Order','target':EOA,'cardinality':'N','read':{'kind':'fields','path':'agent'},'retention':'complete','evidence':'order.move\x20L60-75,L179\x20(≤10)','label':'Merchant\x20agents\x20authorized\x20by\x20the\x20buyer\x20(<=10,\x20buyer\x20calls\x20agent_set)'},{'id':'order.service','family':'F','source':'Order','target':'Service','cardinality':0x1,'read':{'kind':'field','path':'service'},'retention':'complete','evidence':'order.move\x20L60-75','bridgeIds':['b01'],'label':'Shop\x20fulfilling\x20this\x20order\x20(frozen\x20purchase\x20snapshot\x20of\x20what\x20was\x20bought\x20and\x20from\x20whom)'},{'id':'order.machine','family':'F','source':'Order','target':'Machine','cardinality':'0..1','read':{'kind':'field','path':'machine'},'retention':'complete','evidence':'order.move\x20L130\x20(machine⇒progress)','bridgeIds':['b01','b04'],'label':'Workflow\x20the\x20order\x20advances\x20through\x20(snapshot\x20of\x20the\x20shop\x27s\x20template\x20at\x20purchase\x20time)'},{'id':'order.progress','family':'F','source':'Order','target':'Progress','cardinality':'0..1','read':{'kind':'field','path':'progress'},'retention':'complete','evidence':'order.move\x20L130','bridgeIds':['b04'],'label':'Live\x20fulfillment\x20state\x20of\x20the\x20order\x20(which\x20workflow\x20node\x20it\x20currently\x20sits\x20at)'},{'id':'order.allocation','family':'F','source':'Order','target':'Allocation','cardinality':'0..1','read':{'kind':'field','path':'allocation'},'retention':'complete','evidence':'order.move\x20L130\x20(amount>0⇒allocation)','bridgeIds':['b05'],'label':'Allocation\x20pool\x20routing\x20this\x20order\x27s\x20payouts\x20(present\x20when\x20the\x20order\x20amount\x20>\x200)'},{'id':'order.discount','family':'F','source':'Order','target':'Discount','cardinality':'0..1','read':{'kind':'field','path':'discount'},'retention':'complete','evidence':'order.move\x20L60-75','bridgeIds':['b01'],'label':'Discount\x20the\x20shop\x20granted\x20on\x20this\x20order\x20(price\x20concession\x20of\x20record)'},{'id':'order.dispute','family':'F','source':'Order','target':'Arb','cardinality':'N','read':{'kind':'fields','path':'dispute'},'retention':'complete','evidence':'order.move\x20L60-75','bridgeIds':['b06'],'label':'Dispute\x20cases\x20raised\x20over\x20this\x20order\x20(each\x20case\x20may\x20claw\x20back\x20compensation)'},{'id':'order.claimed_by','family':'F','source':'Order','target':EOA,'cardinality':'0..1','read':{'kind':'field','path':'claimed_by'},'retention':'complete','evidence':'order.move\x20L86-96\x20(single-use)','bridgeIds':['b06'],'label':'Compensation\x20claimant\x20on\x20this\x20order\x20(single-use\x20slot;\x20marks\x20the\x20payout\x20as\x20consumed)'},{'id':'order.required_info','family':'F','source':'Order','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'required_info'},'retention':'complete','evidence':'order.move\x20L73,L77-80\x20(Option<address>\x20im_or_proof:\x20the\x20merchant\x27s\x20IM\x20user\x20address\x20from\x20the\x20Service\x27s\x20Contact,\x20or\x20an\x20on-chain\x20WTS\x20Proof\x20object\x20address)','bridgeIds':['b11','b12'],'label':'Information\x20credential\x20the\x20shop\x20requires\x20after\x20the\x20order\x20(merchant\x20IM\x20address\x20or\x20WTS\x20proof)'},{'id':'discount.service','family':'F','source':'Discount','target':'Service','cardinality':0x1,'read':{'kind':'field','path':'service'},'retention':'complete','evidence':'service.move\x20L109-119\x20(service\x20L117)','bridgeIds':['b01'],'label':'Shop\x20that\x20issued\x20the\x20discount\x20(the\x20party\x20honoring\x20the\x20concession)'},{'id':'progress.machine','family':'F','source':'Progress','target':'Machine','cardinality':0x1,'read':{'kind':'field','path':'machine'},'retention':'complete','evidence':'progress.move\x20L76-86','bridgeIds':['b04'],'contract':{'field':'machine','frozenWhen':'bound\x20at\x20creation','forbiddenActions':['set','remove'],'allowedActions':[],'unfreeze':null,'moveAnchor':'progress.move\x20new_imp\x20(machine\x20bound\x20at\x20creation;\x20no\x20mutation\x20entry)'},'label':'Workflow\x20the\x20progress\x20executes\x20(fixed\x20at\x20creation;\x20determines\x20the\x20node\x20graph)'},{'id':'progress.task','family':'F','source':'Progress','target':'Order','cardinality':'0..1','read':{'kind':'field','path':'task'},'retention':'complete','evidence':'progress.move\x20L76-86','bridgeIds':['b04'],'contract':{'field':'task','frozenWhen':'after\x20task_set','forbiddenActions':['set'],'allowedActions':[],'unfreeze':null,'moveAnchor':'progress.move\x20task_set_imp\x20(assert!\x20option::is_none\x20→\x20E_TASK_ALREADY_SET)'},'label':'Order\x20this\x20progress\x20fulfills\x20(set\x20once;\x20a\x20progress\x20serves\x20at\x20most\x20one\x20order)'},{'id':'progress.named_operator','family':'F','source':'Progress','target':EOA,'cardinality':'N','read':{'kind':'deep','segments':['namedOperator','operators'],'field':''},'retention':'complete','evidence':'progress.move\x20L76-86\x20(≤80)','bridgeIds':['b04'],'label':'Named\x20operators\x20allowed\x20to\x20advance\x20this\x20progress\x20(up\x20to\x2080;\x20runtime-delegated)'},{'id':'progress.context_repository','family':'F','source':'Progress','target':'Repository','cardinality':'N','read':{'kind':'fields','path':'context_repositories'},'retention':'complete','evidence':'progress.move\x20L79,L199-208\x20(MAX_CONTEXT_REPOSITORY_COUNT)','bridgeIds':['b02','b04'],'label':'Runtime\x20evidence\x20repositories\x20consulted\x20while\x20fulfilling\x20the\x20order'},{'id':'machine.permission','family':'F','source':'Machine','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'machine.move\x20L299-308','bridgeIds':['b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20run\x20and\x20advance\x20the\x20workflow'},{'id':'machine.consensus_repository','family':'F','source':'Machine','target':'Repository','cardinality':'N','read':{'kind':'fields','path':'consensus_repositories'},'retention':'complete','evidence':'machine.move\x20L299-308','contract':{'field':'consensus_repositories','frozenWhen':null,'forbiddenActions':[],'allowedActions':['add','remove','clear'],'unfreeze':null,'moveAnchor':'machine.move\x20consensus_repositories_remove_imp\x20(no\x20assert_not_published)'},'label':'Evidence\x20repositories\x20nodes\x20consult\x20to\x20reach\x20execution\x20consensus'},{'id':'machine.um','family':'F','source':'Machine','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'machine.move\x20L299-308','bridgeIds':['b11'],'label':'Workflow\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20participates\x20in\x20running\x20the\x20workflow'},{'id':'allocation.guard','family':'F','source':'Allocation','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['allocators','allocators'],'field':'guard'},'retention':'complete','evidence':'allocation.move\x20L194-200','bridgeIds':['b05'],'contract':{'field':'allocators','frozenWhen':'after\x20create\x20(share)','forbiddenActions':['add','remove','clear','set'],'allowedActions':[],'unfreeze':null,'moveAnchor':'allocation.move\x20create\x20(bound\x20via\x20new_with_balance;\x20no\x20mutation\x20entry)'},'label':'Guards\x20gating\x20each\x20payout\x20segment\x20of\x20the\x20pool\x20(release\x20conditions\x20per\x20allocator)'},{'id':'allocation.payment','family':'F','source':'Allocation','target':'Payment','cardinality':'N','read':{'kind':'fields','path':'payment'},'retention':'complete','evidence':'allocation.move\x20L196-202,L307-316','bridgeIds':['b05','b08'],'label':'Payment\x20receipts\x20emitted\x20by\x20this\x20allocation\x20pool'},{'id':'arbitration.permission','family':'F','source':'Arbitration','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b06','b09'],'label':'Arbitration\x20service\x20permission\x20group\x20(must\x20differ\x20from\x20the\x20shop\x20permission,\x20E33)'},{'id':'arbitration.voting_guard','family':'F','source':'Arbitration','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'voting_guard','field':'guard'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b06','b10'],'label':'Arbitration\x20voting\x20Guards\x20(empty\x20=\x20open\x20to\x20all\x20members)'},{'id':'arbitration.usage_guard','family':'F','source':'Arbitration','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'usage_guard'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b06','b10'],'label':'Gate\x20a\x20party\x20must\x20pass\x20before\x20opening\x20a\x20case\x20at\x20this\x20arbitration\x20service'},{'id':'arbitration.um','family':'F','source':'Arbitration','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b11'],'label':'Arbitration\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20vote\x20on\x20dispute\x20cases\x20(open\x20voting)'},{'id':'arb.order','family':'F','source':'Arb','target':'Order','cardinality':0x1,'read':{'kind':'field','path':'order'},'retention':'complete','evidence':'arb.move\x20L96-111','bridgeIds':['b06'],'label':'Order\x20the\x20arbitration\x20case\x20is\x20about'},{'id':'arb.arbitration_service','family':'F','source':'Arb','target':'Arbitration','cardinality':'0..1','read':{'kind':'field','path':'arbitration'},'retention':'complete','evidence':'arb.move\x20L96-111','bridgeIds':['b06'],'label':'Arbitration\x20service\x20applied\x20to\x20the\x20case'},{'id':'arb.voter','family':'S','source':'Arb','target':EOA,'cardinality':'N','read':{'kind':'structFields','path':'voted','field':'voter'},'retention':'complete','evidence':'arb.move\x20L96-111\x20(voted≤520)','bridgeIds':['b06'],'label':'Actual\x20case\x20voters\x20and\x20weights\x20(<=520)'},{'id':'demand.permission','family':'F','source':'Demand','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b09'],'label':'Demand\x20permission\x20group\x20(the\x20demanding\x20side)'},{'id':'demand.guard','family':'F','source':'Demand','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'guards','field':'guard'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b03','b10'],'label':'Demand\x20acceptance\x20Guards\x20(must\x20be\x20empty\x20for\x20a\x20bare\x20present)'},{'id':'demand.reward','family':'F','source':'Demand','target':'Reward','cardinality':'N','read':{'kind':'fields','path':'rewards'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b07'],'label':'Escrowed\x20reward\x20pools\x20of\x20the\x20demand'},{'id':'demand.um','family':'F','source':'Demand','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b11'],'label':'Demand\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20act\x20on\x20the\x20demanding\x20side'},{'id':'reward.permission','family':'F','source':'Reward','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'reward.move\x20L129','bridgeIds':['b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20configure\x20the\x20reward\x20pool'},{'id':'reward.guard','family':'F','source':'Reward','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'guards','field':'guard'},'retention':'complete','evidence':'reward.move\x20L129','bridgeIds':['b07'],'label':'Guards\x20a\x20claimant\x20must\x20pass\x20before\x20drawing\x20from\x20the\x20pool'},{'id':'reward.um','family':'F','source':'Reward','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'reward.move\x20L129','bridgeIds':['b11'],'label':'Reward\x20membership\x20book\x20—\x20roster\x20of\x20members\x20eligible\x20under\x20member-gated\x20claim\x20rules'},{'id':'repository.permission','family':'F','source':'Repository','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'repository.move\x20(struct)','bridgeIds':['b02','b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20manage\x20the\x20repository'},{'id':'repository.reward','family':'F','source':'Repository','target':'Reward','cardinality':'N','read':{'kind':'fields','path':'rewards'},'retention':'complete','evidence':'repository.move\x20(struct)','bridgeIds':['b07'],'label':'Reward\x20pools\x20held\x20by\x20the\x20repository'},{'id':'repository.um','family':'F','source':'Repository','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'repository.move\x20L461-468,L471-480','bridgeIds':['b11'],'label':'Repository\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20read\x20or\x20write\x20under\x20member\x20policies'},{'id':EDGE_ID_REPOSITORY_POLICY_GUARD,'family':'F','source':'Repository','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['policies','write_guard'],'field':'guard'},'retention':'complete','evidence':'repository.move\x20L106-113\x20(PolicyRule.write_guard),L516-570','bridgeIds':['b02','b10'],'label':'Write-policy\x20Guards\x20gating\x20evidence\x20writes\x20under\x20each\x20repository\x20policy'},{'id':'repository.quote_guard','family':'F','source':'Repository','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['policies'],'field':'quote_guard'},'retention':'complete','evidence':'repository.move\x20L106-113\x20(PolicyRule.quote_guard),L421-428','bridgeIds':['b02','b10'],'label':'Quote/read-policy\x20Guards\x20gating\x20evidence\x20reads\x20under\x20each\x20repository\x20policy'},{'id':'contact.permission','family':'F','source':'Contact','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'contact.move\x20L25-31','bridgeIds':['b09','b11'],'label':'Permission\x20group\x20governing\x20the\x20contact\x20book'},{'id':'contact.im','family':'F','source':'Contact','target':EOA,'cardinality':'N','read':{'kind':'structFields','path':'ims','field':'at'},'retention':'membership','evidence':'contact.move\x20L15,L18-29,L85-105\x20(MAX_IM_COUNT=200)','bridgeIds':['b11'],'contract':{'field':'ims','frozenWhen':null,'forbiddenActions':[],'allowedActions':['add','remove','clear','update'],'unfreeze':null,'moveAnchor':'contact.move\x20im_add_imp\x20/\x20im_remove_imp\x20(roster\x20membership;\x20status/description\x20updatable)'},'label':'IM\x20member\x20entities\x20of\x20the\x20contact\x20book\x20(<=200;\x20membership\x20roster\x20carrying\x20status\x20and\x20join\x20time)'},{'id':'permission.admin','family':'F','source':'Permission','target':EOA,'cardinality':'N','read':{'kind':'fields','path':'admin'},'retention':'complete','evidence':'permission.move\x20L34-42\x20(admin\x20vector)','bridgeIds':['b09'],'label':'Admin\x20EOAs\x20who\x20can\x20mutate\x20the\x20permission\x20group\x27s\x20roles\x20(below\x20the\x20owner)'},{'id':'permission.owner','family':'F','source':'Permission','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'owner'},'retention':'complete','evidence':'permission.move\x20L34-42,L537-543','bridgeIds':['b09'],'contract':{'field':'owner','frozenWhen':null,'forbiddenActions':['add','remove','clear'],'allowedActions':['update'],'unfreeze':null,'moveAnchor':'permission.move\x20transfer\x20(assert_owner;\x20ownership\x20role\x20moves\x20with\x20it)'},'label':'Ultimate\x20owner\x20EOA\x20of\x20the\x20permission\x20group\x20(control-chain\x20root;\x20can\x20transfer\x20the\x20group)'},{'id':'permission.um','family':'F','source':'Permission','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'permission.move\x20L41,L562-571','bridgeIds':['b11'],'label':'Permission\x20group\x27s\x20membership\x20book\x20(who\x20receives\x20the\x20group\x27s\x20messages\x20and\x20notifications)'},{'id':'guard.relies','family':'F','source':'Guard','target':'Guard','cardinality':'N','read':{'kind':'fields','path':'relies'},'retention':'complete','evidence':'guard.move\x20L85-95\x20(≤4,\x20one\x20level)','bridgeIds':['b10'],'maxHops':0x1,'label':'Sub-Guards\x20the\x20Guard\x20relies\x20on\x20(<=4,\x20one\x20level;\x20relied\x20guards\x27\x20own\x20relies\x20are\x20not\x20consulted)'},{'id':'passport.signer','family':'F','source':'Passport','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'signer'},'retention':'complete','evidence':'passport.move\x20L41-49,L94-98','bridgeIds':['b12'],'label':'Identity\x20that\x20verified\x20this\x20passport\x20(credential\x20consumed\x20per\x20transaction)'},{'id':'passport.guard','family':'F','source':'Passport','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'guard','field':'guard'},'retention':'complete','evidence':'passport.move\x20L32-47','bridgeIds':['b10','b12'],'label':'Verification\x20tickets\x20the\x20passport\x20carries\x20(each\x20proving\x20a\x20Guard\x20passed)'},{'id':'passport.ticket_relies','family':'F','source':'Passport','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['guard','relies'],'field':'guard'},'retention':'complete','evidence':'passport.move\x20L32-38,L114-151','bridgeIds':['b10','b12'],'label':'Sub-Guards\x20a\x20verification\x20ticket\x20actually\x20evaluated\x20(ticket-level\x20dependency\x20fanout)'},{'id':'passport.impack','family':'F','source':'Passport','target':ANY,'cardinality':'N','read':{'kind':'fields','path':'impack'},'retention':'complete','evidence':'passport.move\x20L29,L46,L227-242','bridgeIds':['b12'],'label':'Business\x20objects\x20packed\x20into\x20the\x20passport\x20verification\x20context'},{'id':'proof.signer','family':'F','source':'Proof','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'signer'},'retention':'complete','evidence':'proof.move\x20L14-25','bridgeIds':['b12'],'label':'Party\x20who\x20signed\x20the\x20WTS\x20evidence\x20(accountability\x20for\x20the\x20claim)'},{'id':'proof.about','family':'F','source':'Proof','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'about'},'retention':'complete','evidence':'proof.move\x20L14-25','bridgeIds':['b12'],'label':'Object\x20the\x20evidence\x20attests\x20to\x20(the\x20subject\x20of\x20the\x20WTS\x20claim)'},{'id':'treasury.permission','family':'F','source':'Treasury','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'treasury.move\x20L73-83','bridgeIds':['b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20move\x20treasury\x20funds'},{'id':'treasury.um','family':'F','source':'Treasury','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'treasury.move\x20L82,L86-95,L504-510','bridgeIds':['b11'],'label':'Treasury\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20operate\x20treasury\x20flows\x20under\x20member\x20roles'},{'id':'treasury.deposit_guard','family':'F','source':'Treasury','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'external_deposit_guard','field':'guard'},'retention':'complete','evidence':'treasury.move\x20L61-65,L78,L138-194','bridgeIds':['b10'],'label':'Guards\x20authorized\x20to\x20release\x20external\x20deposits\x20into\x20the\x20treasury\x20(carries\x20identifier/store_from_id\x20slots)'},{'id':'treasury.withdraw_guard','family':'F','source':'Treasury','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'external_withdraw_guard','field':'guard'},'retention':'complete','evidence':'treasury.move\x20L67-71,L79,L197-250','bridgeIds':['b10'],'label':'Guards\x20authorized\x20to\x20pay\x20external\x20withdrawals\x20out\x20of\x20the\x20treasury\x20(pays\x20the\x20tx\x20sender\x20only;\x20carries\x20identifier/store_from_id\x20slots)'},{'id':'payment.signer','family':'F','source':'Payment','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'signer'},'retention':'complete','evidence':'payment.move\x20L93-101,L111','bridgeIds':['b08'],'contract':{'field':'signer','frozenWhen':'after\x20create','forbiddenActions':['set','update','remove'],'allowedActions':[],'unfreeze':null,'moveAnchor':'payment.move\x20new\x20(signer\x20=\x20tx_context::sender\x20at\x20creation)'},'label':'EOA\x20that\x20submitted\x20the\x20payment\x20(payer\x20of\x20record)'}],R_EDGES=[{'id':'eoa.permission','family':'R','source':EOA,'target':'Permission','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entityPermission']},'retention':'membership','evidence':'entity_permission.move\x20L32\x20(bits\x201/2/4)','bridgeIds':['b09'],'label':'Permission\x20groups\x20the\x20account\x20currently\x20belongs\x20to\x20(membership;\x20disappears\x20on\x20removal)'},{'id':'eoa.order','family':'R','source':EOA,'target':'Order','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entityOrder']},'retention':'bounded_window','evidence':'entity_order.move\x20L31\x20(FIFO\x205200)','bridgeIds':['b01'],'label':'Orders\x20the\x20account\x20joined\x20as\x20buyer/agent\x20(buyer\x20view,\x20FIFO\x205200)'},{'id':'eoa.contact','family':'R','source':EOA,'target':'Contact','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entityContact']},'retention':'membership','evidence':'entity_contact.move\x20L24','bridgeIds':['b11'],'label':'Contact\x20books\x20the\x20account\x20currently\x20joined'},{'id':'permission.core_binding','family':'R','source':'Permission','target':ANY,'cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['objectLinkerCore']},'retention':'bounded_exact','evidence':'object_linker.move\x20L37,L88\x20(≤5200\x20aborts)','bridgeIds':['b09'],'label':'Business\x20objects\x20this\x20permission\x20group\x20governs\x20(Service/Demand/Machine/...;\x20exact\x20registry,\x20no\x20eviction)'},{'id':'permission.tx_binding','family':'R','source':'Permission','target':ANY,'cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['objectLinkerTx']},'retention':'bounded_window','evidence':'object_linker.move\x20L43\x20(FIFO\x205200\x20operational)','bridgeIds':['b09'],'label':'Objects\x20this\x20permission\x20group\x20has\x20acted\x20on\x20at\x20runtime\x20(FIFO\x205200;\x20oldest\x20evicted)'},{'id':'service.order','family':'R','source':'Service','target':'Order','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['objectLinkerTx'],'filterType':'Order'},'retention':'bounded_window','evidence':'object_linker.move\x20L43,L136-140\x20(FIFO\x205200)','bridgeIds':['b01'],'label':'Orders\x20the\x20shop\x20currently\x20retains\x20in\x20its\x20window\x20(FIFO\x205200,\x20oldest\x20evicted;\x20complete\x20history\x20via\x20the\x20event\x20channel)'},{'id':'target.vote','family':'S','source':ANY,'target':EOA,'cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['registrar']},'retention':'bounded_window','evidence':'registrar.move\x20L154-171\x20(ring\x205200,\x20bits\x200x02/0x04/0x08)','label':'Reputation\x20votes\x20the\x20address\x20has\x20received\x20(like/dislike/favor;\x20ring\x205200,\x20oldest\x20evicted)'},{'id':'entity.profile','family':'S','source':EOA,'target':EOA,'cardinality':'0..1','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entity']},'retention':'membership','evidence':'registrar.move\x20L146-152,L176-179,L236-242,L503-560\x20(AddressInfo\x20current\x20row;\x20description/records\x20mutable\x20by\x20the\x20entity)','label':'Self-published\x20entity\x20profile:\x20description,\x20registration\x20time\x20and\x20typed\x20records\x20(self-edge\x20carrying\x20row\x20attributes)'},{'id':'entity.referrer','family':'S','source':EOA,'target':EOA,'cardinality':'0..1','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entity']},'retention':'membership','evidence':'registrar.move\x20L149,L236-242\x20(AddressInfo.referrer\x20Option<address>;\x20invitation\x20chain)','label':'Account\x20that\x20referred\x20this\x20entity\x20onto\x20the\x20platform\x20(invitation\x20upline)'},{'id':'entity.resource','family':'S','source':EOA,'target':'Resource','cardinality':'0..1','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entity']},'retention':'membership','evidence':'registrar.move\x20L150,L236-241,L265-319\x20(AddressInfo.resource\x20Option<address>;\x20transferable/destroyable)','label':'On-chain\x20Resource\x20identity\x20object\x20held\x20by\x20this\x20entity\x20(transferable,\x20may\x20be\x20destroyed)'}],TABLE_EDGES=[{'id':'permission.entity','family':'R','source':'Permission','target':ANY,'cardinality':'N','read':{'kind':'table','rowType':'PermissionPerm'},'retention':'membership','evidence':'permission.move\x20L34-42\x20(entity\x20may\x20be\x20EOA\x20or\x20Guard\x20address)','bridgeIds':['b04','b09'],'label':'Entity-table\x20members\x20of\x20the\x20permission\x20group\x20(EOA\x20or\x20Guard,\x20carrying\x20perm\x20index\x20bits)'},{'id':'demand.presenter','family':'R','source':'Demand','target':EOA,'cardinality':'N','read':{'kind':'table','rowType':'DemandPresenter'},'retention':'membership','evidence':'demand.move\x20L46-54,L74\x20(presenters\x20table)','bridgeIds':['b03'],'label':'Suppliers\x20that\x20presented\x20to\x20the\x20demand,\x20with\x20acceptance_score'},{'id':'demand.presenter_service','family':'R','source':'Demand','target':'Service','cardinality':'N','read':{'kind':'table','rowType':'DemandPresenter'},'retention':'membership','evidence':'demand.move\x20L46-54,L79-118\x20(ServiceInfo.service\x20Option)','bridgeIds':['b03'],'label':'Services\x20proposed\x20by\x20presenters\x20on\x20the\x20demand\x20(same-row\x20co-edge\x20of\x20demand.presenter;\x20absent\x20for\x20bare\x20presents)'},{'id':'machine.node','family':'W','source':'Machine','target':'MachineNode','cardinality':'N','read':{'kind':'table','rowType':'MachineNode'},'retention':'complete','evidence':'machine.move\x20L299-308\x20(immutable\x20after\x20publish)','bridgeIds':['b04'],'contract':{'field':'nodes','frozenWhen':'after\x20publish','forbiddenActions':['add','remove','update'],'allowedActions':[],'unfreeze':null,'moveAnchor':'machine.move\x20node_add_imp\x20/\x20node_remove_imp\x20/\x20node_rename_imp\x20(assert_not_published)'},'label':'The\x20workflow\x27s\x20step\x20table\x20(full\x20node\x20graph;\x20frozen\x20at\x20publish)'},{'id':'treasury.record','family':'M','source':'Treasury','target':'Payment','cardinality':'N','read':{'kind':'table','rowType':'TreasuryRecord'},'retention':'complete','evidence':'treasury.move\x20L39-46,L77\x20(history:\x20ParentTable<address,Record>,\x20key\x20=\x20Payment;\x20append-only)','bridgeIds':['b08'],'label':'Ledger\x20entries\x20tying\x20each\x20withdrawal/deposit/receive\x20Payment\x20to\x20its\x20op\x20code,\x20signer,\x20external\x20guard\x20and\x20amount'},{'id':'reward.claim','family':'M','source':'Reward','target':EOA,'cardinality':'N','read':{'kind':'table','rowType':'RewardClaimRecord'},'retention':'complete','evidence':'reward.move\x20L117-138,L180-193\x20(record:\x20ParentTable<address,RecipientRecord>;\x20key\x20=\x20claimant)','bridgeIds':['b07'],'label':'Claimants\x20against\x20the\x20reward\x20pool,\x20with\x20lifetime\x20total\x20and\x20per-guard\x20claim\x20legs'},{'id':'repository.data_about','family':'F','source':'Repository','target':ANY,'cardinality':'N','read':{'kind':'table','rowType':'RepositoryData'},'retention':'membership','evidence':'repository.move\x20L455-465,L161-173\x20(data:\x20ParentTable<DataKey{id,key},\x20vector<u8>>)','bridgeIds':['b02'],'label':'Business\x20objects\x20the\x20stored\x20evidence\x20rows\x20are\x20about\x20(DataKey.id,\x20carrying\x20the\x20row\x20key\x20name)'}],W_EDGES=[{'id':'wf.transition','family':'W','source':'MachineNode','target':'MachineNode','cardinality':'N','read':{'kind':'derived','producer':'machineRows'},'retention':'derived','evidence':'machine.move\x20L101\x20NodePair,L269','bridgeIds':['b04'],'label':'Directed\x20hand-off\x20from\x20workflow\x20step\x20to\x20step\x20(carries\x20the\x20advance\x20threshold)'},{'id':'wf.forward_guard','family':'W','source':'MachineNode','target':'Guard','cardinality':'N','read':{'kind':'derived','producer':'machineRows'},'retention':'derived','evidence':'machine.move\x20L63\x20Forward','bridgeIds':['b04','b05','b10','b12'],'label':'Guards\x20evaluated\x20after\x20a\x20step\x20advances\x20(where\x20supply-chain\x20payouts\x20and\x20downstream\x20allocations\x20trigger)'}],M_EDGES=[{'id':'payment.recipient','family':'M','source':'Payment','target':EOA,'cardinality':'N','read':{'kind':'structFields','path':'record','field':'recipient'},'retention':'complete','evidence':'payment.move\x20L93-101\x20(Revenue≤200)','bridgeIds':['b05','b08'],'label':'Payment\x20allocation\x20recipients\x20(with\x20amounts,\x20leg\x20by\x20leg)'},{'id':'payment.from_object','family':'M','source':'Payment','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'from_object'},'retention':'complete','evidence':'payment.move\x20L149-161\x20(framework-only)','bridgeIds':['b05','b08'],'label':'Funding\x20source\x20pool\x20(Treasury/Allocation/Service;\x20framework-settable\x20only)'},{'id':'payment.for_object','family':'M','source':'Payment','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'info.for_object'},'retention':'complete','evidence':'payment.move\x20L93-101\x20(info\x20routing\x20hint)','bridgeIds':['b05','b08'],'label':'Business\x20routing\x20object\x20(user-settable)'},{'id':'payment.for_guard','family':'M','source':'Payment','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'info.for_guard'},'retention':'complete','evidence':'payment.move\x20L93-101','bridgeIds':['b05'],'label':'Guard\x20the\x20payment\x20was\x20routed\x20under\x20(user-settable\x20routing\x20context)'},{'id':'allocation.for_object','family':'M','source':'Allocation','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'payment_info.for_object'},'retention':'complete','evidence':'allocation.move\x20L200;\x20payment.move\x20L66-71','bridgeIds':['b05','b08'],'label':'Business\x20object\x20the\x20pool\x27s\x20payouts\x20are\x20routed\x20for'},{'id':'allocation.for_guard','family':'M','source':'Allocation','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'payment_info.for_guard'},'retention':'complete','evidence':'allocation.move\x20L200;\x20payment.move\x20L66-71','bridgeIds':['b05','b08'],'label':'Gate\x20context\x20the\x20pool\x27s\x20payouts\x20are\x20routed\x20under'}],EVENT_EDGES=[{'id':'service.order_history','family':'E','source':'Service','target':'Order','cardinality':'N','read':{'kind':'event','eventType':PackageAddress+'::order::NewOrderEvent','matchField':'service','targetField':'object'},'retention':'event_full','evidence':'order.move\x20L51-58,L142\x20(NewOrderEvent:\x20object/service/progress/discount/allocation/amount)','label':'Every\x20order\x20ever\x20created\x20in\x20the\x20shop\x20—\x20complete\x20event\x20stream,\x20beyond\x20the\x20FIFO\x205200\x20shop-order\x20window'},{'id':'eoa.order_history','family':'E','source':EOA,'target':'Order','cardinality':'N','read':{'kind':'event','eventType':PackageAddress+'::order::NewOrderEvent','matchSender':!![],'targetField':'object'},'retention':'event_full','evidence':'order.move\x20L51-58,L142\x20+\x20indexer\x20tx\x20sender\x20(the\x20transacting\x20buyer)','label':'Orders\x20the\x20account\x20created\x20as\x20the\x20transacting\x20buyer\x20—\x20complete\x20event\x20stream,\x20beyond\x20the\x20FIFO\x205200\x20buyer\x20window'},{'id':'arb.history','family':'E','source':'Arbitration','target':'Arb','cardinality':'N','read':{'kind':'event','eventType':PackageAddress+'::arb::ArbEvent','matchField':'arbitration','targetField':'object'},'retention':'event_full','evidence':'arb.move\x20L33-43,L122,L227\x20(ArbEvent:\x20case/arbitration/order/status/indemnity)','label':'Every\x20dispute\x20case\x20the\x20arbitration\x20service\x20ever\x20handled\x20—\x20complete\x20event\x20stream;\x20latest\x20status\x20transition\x20wins\x20per\x20case'}];export const EDGE_SCHEMAS=[...F_EDGES,...R_EDGES,...TABLE_EDGES,...W_EDGES,...M_EDGES,...EVENT_EDGES];export const EDGE_SCHEMA_BY_ID=new Map(EDGE_SCHEMAS['map'](a=>[a['id'],a]));export function outgoingSchemaIds(a){return EDGE_SCHEMAS['filter'](b=>b['source']===a||b['source']===ANY)['map'](b=>b['id']);}export const COVERED_OBJECT_TYPES=[...new Set(EDGE_SCHEMAS['flatMap'](a=>[a['source'],a['target']])['filter'](a=>a!==EOA&&a!==ANY&&a!=='MachineNode'))];
|
|
1
|
+
import{PackageAddress,WOW_SINGLETON_IDS}from'@wowok/wowok';const EOA='EOA',ANY='ANY';export const EDGE_ID_REPOSITORY_POLICY_GUARD='repository.policy_guard';const F_EDGES=[{'id':'service.permission','family':'F','source':'Service','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b06','b09'],'label':'Permission\x20group\x20governing\x20who\x20may\x20operate\x20the\x20service\x20(must\x20differ\x20from\x20the\x20arbitration\x20permission,\x20E33\x20recusal\x20rule)'},{'id':'service.machine','family':'F','source':'Service','target':'Machine','cardinality':'0..1','read':{'kind':'field','path':'machine'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b04'],'contract':{'field':'machine','frozenWhen':'after\x20publish','forbiddenActions':['set','remove'],'allowedActions':[],'unfreeze':null,'moveAnchor':'service.move\x20machine_set_imp\x20/\x20machine_none_imp\x20(assert!(!bPublished))'},'label':'Workflow\x20template\x20the\x20shop\x20fulfills\x20orders\x20through\x20(chosen\x20at\x20publish,\x20permanently\x20frozen)'},{'id':'service.buy_guard','family':'F','source':'Service','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'buy_guard'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b01','b10'],'contract':{'field':'buy_guard','frozenWhen':null,'forbiddenActions':[],'allowedActions':['set','remove'],'unfreeze':null,'moveAnchor':'service.move\x20buy_guard_set_imp\x20/\x20buy_guard_none_imp\x20(no\x20assert!(!bPublished))'},'label':'Gate\x20every\x20buyer\x20must\x20pass\x20before\x20an\x20order\x20can\x20be\x20created'},{'id':'service.arbitration','family':'F','source':'Service','target':'Arbitration','cardinality':'N','read':{'kind':'fields','path':'arbitrations'},'retention':'complete','evidence':'service.move\x20L175-194\x20(≤20)','bridgeIds':['b06'],'contract':{'field':'arbitrations','frozenWhen':'after\x20publish','forbiddenActions':['remove','clear'],'allowedActions':['add'],'unfreeze':'pause\x20+\x20setting_lock_duration\x20elapsed','moveAnchor':'service.move\x20arbitration_remove_imp\x20/\x20arbitration_clear_imp\x20(assert_not_published)'},'label':'Dispute\x20venues\x20the\x20shop\x20designates\x20for\x20order\x20arbitration\x20(up\x20to\x2020;\x20removal\x20locked\x20after\x20publish)'},{'id':'service.reward','family':'F','source':'Service','target':'Reward','cardinality':'N','read':{'kind':'fields','path':'rewards'},'retention':'complete','evidence':'service.move\x20L175-194\x20(≤20)','bridgeIds':['b07'],'contract':{'field':'rewards','frozenWhen':'after\x20publish','forbiddenActions':['remove','clear'],'allowedActions':['add'],'unfreeze':'pause\x20+\x20setting_lock_duration\x20elapsed','moveAnchor':'service.move\x20reward_remove_imp\x20/\x20reward_clear_imp\x20(assert_not_published)'},'label':'Reward\x20pools\x20funding\x20the\x20shop\x27s\x20promotions\x20and\x20rebates\x20(up\x20to\x2020;\x20removal\x20locked\x20after\x20publish)'},{'id':'service.repository','family':'F','source':'Service','target':'Repository','cardinality':'N','read':{'kind':'fields','path':'repositories'},'retention':'complete','evidence':'service.move\x20L175-194\x20(≤100)','bridgeIds':['b02'],'contract':{'field':'repositories','frozenWhen':null,'forbiddenActions':[],'allowedActions':['add','remove','clear'],'unfreeze':null,'moveAnchor':'service.move\x20repository_remove_imp\x20/\x20repository_clear_imp\x20(no\x20assert_not_published)'},'label':'Evidence\x20repositories\x20the\x20shop\x20stores\x20fulfillment\x20proofs\x20in\x20(up\x20to\x20100;\x20freely\x20editable\x20after\x20publish)'},{'id':'service.um','family':'F','source':'Service','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'service.move\x20L175-194','bridgeIds':['b11'],'label':'Shop\x20membership\x20book\x20—\x20the\x20roster\x20deciding\x20who\x20counts\x20as\x20a\x20shop\x20member\x20(messaging\x20and\x20member-gate\x20flows)'},{'id':'service.order_allocator_guard','family':'F','source':'Service','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['order_allocators','allocators'],'field':'guard'},'retention':'complete','evidence':'service.move\x20L175-194;\x20allocation.move\x20L194-200','bridgeIds':['b05'],'label':'Guards\x20gating\x20how\x20incoming\x20orders\x20split\x20across\x20allocation\x20pools\x20(order-allocator\x20triggers)'},{'id':'order.builder','family':'F','source':'Order','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'builder'},'retention':'complete','evidence':'order.move\x20L60-75\x20(owner;\x20SDK\x20builder)','bridgeIds':['b01'],'label':'Buyer\x20who\x20owns\x20the\x20order\x20(payer-side\x20principal;\x20SDK\x20names\x20the\x20field\x20builder)'},{'id':'order.agent','family':'F','source':'Order','target':EOA,'cardinality':'N','read':{'kind':'fields','path':'agent'},'retention':'complete','evidence':'order.move\x20L60-75,L179\x20(≤10)','label':'Merchant\x20agents\x20authorized\x20by\x20the\x20buyer\x20(<=10,\x20buyer\x20calls\x20agent_set)'},{'id':'order.service','family':'F','source':'Order','target':'Service','cardinality':0x1,'read':{'kind':'field','path':'service'},'retention':'complete','evidence':'order.move\x20L60-75','bridgeIds':['b01'],'label':'Shop\x20fulfilling\x20this\x20order\x20(frozen\x20purchase\x20snapshot\x20of\x20what\x20was\x20bought\x20and\x20from\x20whom)'},{'id':'order.machine','family':'F','source':'Order','target':'Machine','cardinality':'0..1','read':{'kind':'field','path':'machine'},'retention':'complete','evidence':'order.move\x20L130\x20(machine⇒progress)','bridgeIds':['b01','b04'],'label':'Workflow\x20the\x20order\x20advances\x20through\x20(snapshot\x20of\x20the\x20shop\x27s\x20template\x20at\x20purchase\x20time)'},{'id':'order.progress','family':'F','source':'Order','target':'Progress','cardinality':'0..1','read':{'kind':'field','path':'progress'},'retention':'complete','evidence':'order.move\x20L130','bridgeIds':['b04'],'label':'Live\x20fulfillment\x20state\x20of\x20the\x20order\x20(which\x20workflow\x20node\x20it\x20currently\x20sits\x20at)'},{'id':'order.allocation','family':'F','source':'Order','target':'Allocation','cardinality':'0..1','read':{'kind':'field','path':'allocation'},'retention':'complete','evidence':'order.move\x20L130\x20(amount>0⇒allocation)','bridgeIds':['b05'],'label':'Allocation\x20pool\x20routing\x20this\x20order\x27s\x20payouts\x20(present\x20when\x20the\x20order\x20amount\x20>\x200)'},{'id':'order.discount','family':'F','source':'Order','target':'Discount','cardinality':'0..1','read':{'kind':'field','path':'discount'},'retention':'complete','evidence':'order.move\x20L60-75','bridgeIds':['b01'],'label':'Discount\x20the\x20shop\x20granted\x20on\x20this\x20order\x20(price\x20concession\x20of\x20record)'},{'id':'order.dispute','family':'F','source':'Order','target':'Arb','cardinality':'N','read':{'kind':'fields','path':'dispute'},'retention':'complete','evidence':'order.move\x20L60-75','bridgeIds':['b06'],'label':'Dispute\x20cases\x20raised\x20over\x20this\x20order\x20(each\x20case\x20may\x20claw\x20back\x20compensation)'},{'id':'order.claimed_by','family':'F','source':'Order','target':EOA,'cardinality':'0..1','read':{'kind':'field','path':'claimed_by'},'retention':'complete','evidence':'order.move\x20L86-96\x20(single-use)','bridgeIds':['b06'],'label':'Compensation\x20claimant\x20on\x20this\x20order\x20(single-use\x20slot;\x20marks\x20the\x20payout\x20as\x20consumed)'},{'id':'order.required_info','family':'F','source':'Order','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'required_info'},'retention':'complete','evidence':'order.move\x20L73,L77-80\x20(Option<address>\x20im_or_proof:\x20the\x20merchant\x27s\x20IM\x20user\x20address\x20from\x20the\x20Service\x27s\x20Contact,\x20or\x20an\x20on-chain\x20WTS\x20Proof\x20object\x20address)','bridgeIds':['b11','b12'],'label':'Information\x20credential\x20the\x20shop\x20requires\x20after\x20the\x20order\x20(merchant\x20IM\x20address\x20or\x20WTS\x20proof)'},{'id':'discount.service','family':'F','source':'Discount','target':'Service','cardinality':0x1,'read':{'kind':'field','path':'service'},'retention':'complete','evidence':'service.move\x20L109-119\x20(service\x20L117)','bridgeIds':['b01'],'label':'Shop\x20that\x20issued\x20the\x20discount\x20(the\x20party\x20honoring\x20the\x20concession)'},{'id':'progress.machine','family':'F','source':'Progress','target':'Machine','cardinality':0x1,'read':{'kind':'field','path':'machine'},'retention':'complete','evidence':'progress.move\x20L76-86','bridgeIds':['b04'],'contract':{'field':'machine','frozenWhen':'bound\x20at\x20creation','forbiddenActions':['set','remove'],'allowedActions':[],'unfreeze':null,'moveAnchor':'progress.move\x20new_imp\x20(machine\x20bound\x20at\x20creation;\x20no\x20mutation\x20entry)'},'label':'Workflow\x20the\x20progress\x20executes\x20(fixed\x20at\x20creation;\x20determines\x20the\x20node\x20graph)'},{'id':'progress.task','family':'F','source':'Progress','target':'Order','cardinality':'0..1','read':{'kind':'field','path':'task'},'retention':'complete','evidence':'progress.move\x20L76-86','bridgeIds':['b04'],'contract':{'field':'task','frozenWhen':'after\x20task_set','forbiddenActions':['set'],'allowedActions':[],'unfreeze':null,'moveAnchor':'progress.move\x20task_set_imp\x20(assert!\x20option::is_none\x20→\x20E_TASK_ALREADY_SET)'},'label':'Order\x20this\x20progress\x20fulfills\x20(set\x20once;\x20a\x20progress\x20serves\x20at\x20most\x20one\x20order)'},{'id':'progress.named_operator','family':'F','source':'Progress','target':EOA,'cardinality':'N','read':{'kind':'deep','segments':['namedOperator','operators'],'field':''},'retention':'complete','evidence':'progress.move\x20L76-86\x20(≤80)','bridgeIds':['b04'],'label':'Named\x20operators\x20allowed\x20to\x20advance\x20this\x20progress\x20(up\x20to\x2080;\x20runtime-delegated)'},{'id':'progress.context_repository','family':'F','source':'Progress','target':'Repository','cardinality':'N','read':{'kind':'fields','path':'context_repositories'},'retention':'complete','evidence':'progress.move\x20L79,L199-208\x20(MAX_CONTEXT_REPOSITORY_COUNT)','bridgeIds':['b02','b04'],'label':'Runtime\x20evidence\x20repositories\x20consulted\x20while\x20fulfilling\x20the\x20order'},{'id':'machine.permission','family':'F','source':'Machine','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'machine.move\x20L299-308','bridgeIds':['b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20run\x20and\x20advance\x20the\x20workflow'},{'id':'machine.consensus_repository','family':'F','source':'Machine','target':'Repository','cardinality':'N','read':{'kind':'fields','path':'consensus_repositories'},'retention':'complete','evidence':'machine.move\x20L299-308','contract':{'field':'consensus_repositories','frozenWhen':null,'forbiddenActions':[],'allowedActions':['add','remove','clear'],'unfreeze':null,'moveAnchor':'machine.move\x20consensus_repositories_remove_imp\x20(no\x20assert_not_published)'},'label':'Evidence\x20repositories\x20nodes\x20consult\x20to\x20reach\x20execution\x20consensus'},{'id':'machine.um','family':'F','source':'Machine','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'machine.move\x20L299-308','bridgeIds':['b11'],'label':'Workflow\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20participates\x20in\x20running\x20the\x20workflow'},{'id':'allocation.guard','family':'F','source':'Allocation','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['allocators','allocators'],'field':'guard'},'retention':'complete','evidence':'allocation.move\x20L194-200','bridgeIds':['b05'],'contract':{'field':'allocators','frozenWhen':'after\x20create\x20(share)','forbiddenActions':['add','remove','clear','set'],'allowedActions':[],'unfreeze':null,'moveAnchor':'allocation.move\x20create\x20(bound\x20via\x20new_with_balance;\x20no\x20mutation\x20entry)'},'label':'Guards\x20gating\x20each\x20payout\x20segment\x20of\x20the\x20pool\x20(release\x20conditions\x20per\x20allocator)'},{'id':'allocation.payment','family':'F','source':'Allocation','target':'Payment','cardinality':'N','read':{'kind':'fields','path':'payment'},'retention':'complete','evidence':'allocation.move\x20L196-202,L307-316','bridgeIds':['b05','b08'],'label':'Payment\x20receipts\x20emitted\x20by\x20this\x20allocation\x20pool'},{'id':'arbitration.permission','family':'F','source':'Arbitration','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b06','b09'],'label':'Arbitration\x20service\x20permission\x20group\x20(must\x20differ\x20from\x20the\x20shop\x20permission,\x20E33)'},{'id':'arbitration.voting_guard','family':'F','source':'Arbitration','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'voting_guard','field':'guard'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b06','b10'],'label':'Arbitration\x20voting\x20Guards\x20(empty\x20=\x20open\x20to\x20all\x20members)'},{'id':'arbitration.usage_guard','family':'F','source':'Arbitration','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'usage_guard'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b06','b10'],'label':'Gate\x20a\x20party\x20must\x20pass\x20before\x20opening\x20a\x20case\x20at\x20this\x20arbitration\x20service'},{'id':'arbitration.um','family':'F','source':'Arbitration','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'arbitration.move\x20L48-59','bridgeIds':['b11'],'label':'Arbitration\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20vote\x20on\x20dispute\x20cases\x20(open\x20voting)'},{'id':'arb.order','family':'F','source':'Arb','target':'Order','cardinality':0x1,'read':{'kind':'field','path':'order'},'retention':'complete','evidence':'arb.move\x20L96-111','bridgeIds':['b06'],'label':'Order\x20the\x20arbitration\x20case\x20is\x20about'},{'id':'arb.arbitration_service','family':'F','source':'Arb','target':'Arbitration','cardinality':'0..1','read':{'kind':'field','path':'arbitration'},'retention':'complete','evidence':'arb.move\x20L96-111','bridgeIds':['b06'],'label':'Arbitration\x20service\x20applied\x20to\x20the\x20case'},{'id':'arb.voter','family':'S','source':'Arb','target':EOA,'cardinality':'N','read':{'kind':'structFields','path':'voted','field':'voter'},'retention':'complete','evidence':'arb.move\x20L96-111\x20(voted≤520)','bridgeIds':['b06'],'label':'Actual\x20case\x20voters\x20and\x20weights\x20(<=520)'},{'id':'demand.permission','family':'F','source':'Demand','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b09'],'label':'Demand\x20permission\x20group\x20(the\x20demanding\x20side)'},{'id':'demand.guard','family':'F','source':'Demand','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'guards','field':'guard'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b03','b10'],'label':'Demand\x20acceptance\x20Guards\x20(must\x20be\x20empty\x20for\x20a\x20bare\x20present)'},{'id':'demand.reward','family':'F','source':'Demand','target':'Reward','cardinality':'N','read':{'kind':'fields','path':'rewards'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b07'],'label':'Escrowed\x20reward\x20pools\x20of\x20the\x20demand'},{'id':'demand.um','family':'F','source':'Demand','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'demand.move\x20L68-77','bridgeIds':['b11'],'label':'Demand\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20act\x20on\x20the\x20demanding\x20side'},{'id':'reward.permission','family':'F','source':'Reward','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'reward.move\x20L129','bridgeIds':['b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20configure\x20the\x20reward\x20pool'},{'id':'reward.guard','family':'F','source':'Reward','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'guards','field':'guard'},'retention':'complete','evidence':'reward.move\x20L129','bridgeIds':['b07'],'label':'Guards\x20a\x20claimant\x20must\x20pass\x20before\x20drawing\x20from\x20the\x20pool'},{'id':'reward.um','family':'F','source':'Reward','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'reward.move\x20L129','bridgeIds':['b11'],'label':'Reward\x20membership\x20book\x20—\x20roster\x20of\x20members\x20eligible\x20under\x20member-gated\x20claim\x20rules'},{'id':'repository.permission','family':'F','source':'Repository','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'repository.move\x20(struct)','bridgeIds':['b02','b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20manage\x20the\x20repository'},{'id':'repository.reward','family':'F','source':'Repository','target':'Reward','cardinality':'N','read':{'kind':'fields','path':'rewards'},'retention':'complete','evidence':'repository.move\x20(struct)','bridgeIds':['b07'],'label':'Reward\x20pools\x20held\x20by\x20the\x20repository'},{'id':'repository.um','family':'F','source':'Repository','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'repository.move\x20L461-468,L471-480','bridgeIds':['b11'],'label':'Repository\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20read\x20or\x20write\x20under\x20member\x20policies'},{'id':EDGE_ID_REPOSITORY_POLICY_GUARD,'family':'F','source':'Repository','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['policies','write_guard'],'field':'guard'},'retention':'complete','evidence':'repository.move\x20L106-113\x20(PolicyRule.write_guard),L516-570','bridgeIds':['b02','b10'],'label':'Write-policy\x20Guards\x20gating\x20evidence\x20writes\x20under\x20each\x20repository\x20policy'},{'id':'repository.quote_guard','family':'F','source':'Repository','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['policies'],'field':'quote_guard'},'retention':'complete','evidence':'repository.move\x20L106-113\x20(PolicyRule.quote_guard),L421-428','bridgeIds':['b02','b10'],'label':'Quote/read-policy\x20Guards\x20gating\x20evidence\x20reads\x20under\x20each\x20repository\x20policy'},{'id':'contact.permission','family':'F','source':'Contact','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'contact.move\x20L25-31','bridgeIds':['b09','b11'],'label':'Permission\x20group\x20governing\x20the\x20contact\x20book'},{'id':'contact.im','family':'F','source':'Contact','target':EOA,'cardinality':'N','read':{'kind':'structFields','path':'ims','field':'at'},'retention':'membership','evidence':'contact.move\x20L15,L18-29,L85-105\x20(MAX_IM_COUNT=200)','bridgeIds':['b11'],'contract':{'field':'ims','frozenWhen':null,'forbiddenActions':[],'allowedActions':['add','remove','clear','update'],'unfreeze':null,'moveAnchor':'contact.move\x20im_add_imp\x20/\x20im_remove_imp\x20(roster\x20membership;\x20status/description\x20updatable)'},'label':'IM\x20member\x20entities\x20of\x20the\x20contact\x20book\x20(<=200;\x20membership\x20roster\x20carrying\x20status\x20and\x20join\x20time)'},{'id':'permission.admin','family':'F','source':'Permission','target':EOA,'cardinality':'N','read':{'kind':'fields','path':'admin'},'retention':'complete','evidence':'permission.move\x20L34-42\x20(admin\x20vector)','bridgeIds':['b09'],'label':'Admin\x20EOAs\x20who\x20can\x20mutate\x20the\x20permission\x20group\x27s\x20roles\x20(below\x20the\x20owner)'},{'id':'permission.owner','family':'F','source':'Permission','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'owner'},'retention':'complete','evidence':'permission.move\x20L34-42,L537-543','bridgeIds':['b09'],'contract':{'field':'owner','frozenWhen':null,'forbiddenActions':['add','remove','clear'],'allowedActions':['update'],'unfreeze':null,'moveAnchor':'permission.move\x20transfer\x20(assert_owner;\x20ownership\x20role\x20moves\x20with\x20it)'},'label':'Ultimate\x20owner\x20EOA\x20of\x20the\x20permission\x20group\x20(control-chain\x20root;\x20can\x20transfer\x20the\x20group)'},{'id':'permission.um','family':'F','source':'Permission','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'permission.move\x20L41,L562-571','bridgeIds':['b11'],'label':'Permission\x20group\x27s\x20membership\x20book\x20(who\x20receives\x20the\x20group\x27s\x20messages\x20and\x20notifications)'},{'id':'guard.relies','family':'F','source':'Guard','target':'Guard','cardinality':'N','read':{'kind':'fields','path':'relies'},'retention':'complete','evidence':'guard.move\x20L85-95\x20(≤4,\x20one\x20level)','bridgeIds':['b10'],'maxHops':0x1,'label':'Sub-Guards\x20the\x20Guard\x20relies\x20on\x20(<=4,\x20one\x20level;\x20relied\x20guards\x27\x20own\x20relies\x20are\x20not\x20consulted)'},{'id':'passport.signer','family':'F','source':'Passport','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'signer'},'retention':'complete','evidence':'passport.move\x20L41-49,L94-98','bridgeIds':['b12'],'label':'Identity\x20that\x20verified\x20this\x20passport\x20(credential\x20consumed\x20per\x20transaction)'},{'id':'passport.guard','family':'F','source':'Passport','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'guard','field':'guard'},'retention':'complete','evidence':'passport.move\x20L32-47','bridgeIds':['b10','b12'],'label':'Verification\x20tickets\x20the\x20passport\x20carries\x20(each\x20proving\x20a\x20Guard\x20passed)'},{'id':'passport.ticket_relies','family':'F','source':'Passport','target':'Guard','cardinality':'N','read':{'kind':'deep','segments':['guard','relies'],'field':'guard'},'retention':'complete','evidence':'passport.move\x20L32-38,L114-151','bridgeIds':['b10','b12'],'label':'Sub-Guards\x20a\x20verification\x20ticket\x20actually\x20evaluated\x20(ticket-level\x20dependency\x20fanout)'},{'id':'passport.impack','family':'F','source':'Passport','target':ANY,'cardinality':'N','read':{'kind':'fields','path':'impack'},'retention':'complete','evidence':'passport.move\x20L29,L46,L227-242','bridgeIds':['b12'],'label':'Business\x20objects\x20packed\x20into\x20the\x20passport\x20verification\x20context'},{'id':'proof.signer','family':'F','source':'Proof','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'signer'},'retention':'complete','evidence':'proof.move\x20L14-25','bridgeIds':['b12'],'label':'Party\x20who\x20signed\x20the\x20WTS\x20evidence\x20(accountability\x20for\x20the\x20claim)'},{'id':'proof.about','family':'F','source':'Proof','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'about'},'retention':'complete','evidence':'proof.move\x20L14-25','bridgeIds':['b12'],'label':'About\x20binding\x20—\x20counterparty\x20account\x20address\x20(or\x20a\x20Proof\x20object\x20address);\x20messenger\x20contact\x20semantics\x20only,\x20never\x20a\x20business-object\x20reference\x20(K3\x20contract\x202026-10-12)'},{'id':'treasury.permission','family':'F','source':'Treasury','target':'Permission','cardinality':0x1,'read':{'kind':'field','path':'permission'},'retention':'complete','evidence':'treasury.move\x20L73-83','bridgeIds':['b09'],'label':'Permission\x20group\x20deciding\x20who\x20may\x20move\x20treasury\x20funds'},{'id':'treasury.um','family':'F','source':'Treasury','target':'Contact','cardinality':'0..1','read':{'kind':'field','path':'um'},'retention':'complete','evidence':'treasury.move\x20L82,L86-95,L504-510','bridgeIds':['b11'],'label':'Treasury\x20membership\x20book\x20—\x20roster\x20deciding\x20who\x20may\x20operate\x20treasury\x20flows\x20under\x20member\x20roles'},{'id':'treasury.deposit_guard','family':'F','source':'Treasury','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'external_deposit_guard','field':'guard'},'retention':'complete','evidence':'treasury.move\x20L61-65,L78,L138-194','bridgeIds':['b10'],'label':'Guards\x20authorized\x20to\x20release\x20external\x20deposits\x20into\x20the\x20treasury\x20(carries\x20identifier/store_from_id\x20slots)'},{'id':'treasury.withdraw_guard','family':'F','source':'Treasury','target':'Guard','cardinality':'N','read':{'kind':'structFields','path':'external_withdraw_guard','field':'guard'},'retention':'complete','evidence':'treasury.move\x20L67-71,L79,L197-250','bridgeIds':['b10'],'label':'Guards\x20authorized\x20to\x20pay\x20external\x20withdrawals\x20out\x20of\x20the\x20treasury\x20(pays\x20the\x20tx\x20sender\x20only;\x20carries\x20identifier/store_from_id\x20slots)'},{'id':'payment.signer','family':'F','source':'Payment','target':EOA,'cardinality':0x1,'read':{'kind':'field','path':'signer'},'retention':'complete','evidence':'payment.move\x20L93-101,L111','bridgeIds':['b08'],'contract':{'field':'signer','frozenWhen':'after\x20create','forbiddenActions':['set','update','remove'],'allowedActions':[],'unfreeze':null,'moveAnchor':'payment.move\x20new\x20(signer\x20=\x20tx_context::sender\x20at\x20creation)'},'label':'EOA\x20that\x20submitted\x20the\x20payment\x20(payer\x20of\x20record)'}],R_EDGES=[{'id':'eoa.permission','family':'R','source':EOA,'target':'Permission','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entityPermission']},'retention':'membership','evidence':'entity_permission.move\x20L32\x20(bits\x201/2/4)','bridgeIds':['b09'],'label':'Permission\x20groups\x20the\x20account\x20currently\x20belongs\x20to\x20(membership;\x20disappears\x20on\x20removal)'},{'id':'eoa.order','family':'R','source':EOA,'target':'Order','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entityOrder']},'retention':'bounded_window','evidence':'entity_order.move\x20L31\x20(FIFO\x205200)','bridgeIds':['b01'],'label':'Orders\x20the\x20account\x20joined\x20as\x20buyer/agent\x20(buyer\x20view,\x20FIFO\x205200)'},{'id':'eoa.contact','family':'R','source':EOA,'target':'Contact','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entityContact']},'retention':'membership','evidence':'entity_contact.move\x20L24','bridgeIds':['b11'],'label':'Contact\x20books\x20the\x20account\x20currently\x20joined'},{'id':'permission.core_binding','family':'R','source':'Permission','target':ANY,'cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['objectLinkerCore']},'retention':'bounded_exact','evidence':'object_linker.move\x20L37,L88\x20(≤5200\x20aborts)','bridgeIds':['b09'],'label':'Business\x20objects\x20this\x20permission\x20group\x20governs\x20(Service/Demand/Machine/...;\x20exact\x20registry,\x20no\x20eviction)'},{'id':'permission.tx_binding','family':'R','source':'Permission','target':ANY,'cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['objectLinkerTx']},'retention':'bounded_window','evidence':'object_linker.move\x20L43\x20(FIFO\x205200\x20operational)','bridgeIds':['b09'],'label':'Objects\x20this\x20permission\x20group\x20has\x20acted\x20on\x20at\x20runtime\x20(FIFO\x205200;\x20oldest\x20evicted)'},{'id':'service.order','family':'R','source':'Service','target':'Order','cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['objectLinkerTx'],'filterType':'Order'},'retention':'bounded_window','evidence':'object_linker.move\x20L43,L136-140\x20(FIFO\x205200)','bridgeIds':['b01'],'label':'Orders\x20the\x20shop\x20currently\x20retains\x20in\x20its\x20window\x20(FIFO\x205200,\x20oldest\x20evicted;\x20complete\x20history\x20via\x20the\x20event\x20channel)'},{'id':'target.vote','family':'S','source':ANY,'target':EOA,'cardinality':'N','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['registrar']},'retention':'bounded_window','evidence':'registrar.move\x20L154-171\x20(ring\x205200,\x20bits\x200x02/0x04/0x08)','label':'Reputation\x20votes\x20the\x20address\x20has\x20received\x20(like/dislike/favor;\x20ring\x205200,\x20oldest\x20evicted)'},{'id':'entity.profile','family':'S','source':EOA,'target':EOA,'cardinality':'0..1','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entity']},'retention':'membership','evidence':'registrar.move\x20L146-152,L176-179,L236-242,L503-560\x20(AddressInfo\x20current\x20row;\x20description/records\x20mutable\x20by\x20the\x20entity)','label':'Self-published\x20entity\x20profile:\x20description,\x20registration\x20time\x20and\x20typed\x20records\x20(self-edge\x20carrying\x20row\x20attributes)'},{'id':'entity.referrer','family':'S','source':EOA,'target':EOA,'cardinality':'0..1','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entity']},'retention':'membership','evidence':'registrar.move\x20L149,L236-242\x20(AddressInfo.referrer\x20Option<address>;\x20invitation\x20chain)','label':'Account\x20that\x20referred\x20this\x20entity\x20onto\x20the\x20platform\x20(invitation\x20upline)'},{'id':'entity.resource','family':'S','source':EOA,'target':'Resource','cardinality':'0..1','read':{'kind':'reverse','parent':WOW_SINGLETON_IDS['entity']},'retention':'membership','evidence':'registrar.move\x20L150,L236-241,L265-319\x20(AddressInfo.resource\x20Option<address>;\x20transferable/destroyable)','label':'On-chain\x20Resource\x20identity\x20object\x20held\x20by\x20this\x20entity\x20(transferable,\x20may\x20be\x20destroyed)'}],TABLE_EDGES=[{'id':'permission.entity','family':'R','source':'Permission','target':ANY,'cardinality':'N','read':{'kind':'table','rowType':'PermissionPerm'},'retention':'membership','evidence':'permission.move\x20L34-42\x20(entity\x20may\x20be\x20EOA\x20or\x20Guard\x20address)','bridgeIds':['b04','b09'],'label':'Entity-table\x20members\x20of\x20the\x20permission\x20group\x20(EOA\x20or\x20Guard,\x20carrying\x20perm\x20index\x20bits)'},{'id':'demand.presenter','family':'R','source':'Demand','target':EOA,'cardinality':'N','read':{'kind':'table','rowType':'DemandPresenter'},'retention':'membership','evidence':'demand.move\x20L46-54,L74\x20(presenters\x20table)','bridgeIds':['b03'],'label':'Suppliers\x20that\x20presented\x20to\x20the\x20demand,\x20with\x20acceptance_score'},{'id':'demand.presenter_service','family':'R','source':'Demand','target':'Service','cardinality':'N','read':{'kind':'table','rowType':'DemandPresenter'},'retention':'membership','evidence':'demand.move\x20L46-54,L79-118\x20(ServiceInfo.service\x20Option)','bridgeIds':['b03'],'label':'Services\x20proposed\x20by\x20presenters\x20on\x20the\x20demand\x20(same-row\x20co-edge\x20of\x20demand.presenter;\x20absent\x20for\x20bare\x20presents)'},{'id':'machine.node','family':'W','source':'Machine','target':'MachineNode','cardinality':'N','read':{'kind':'table','rowType':'MachineNode'},'retention':'complete','evidence':'machine.move\x20L299-308\x20(immutable\x20after\x20publish)','bridgeIds':['b04'],'contract':{'field':'nodes','frozenWhen':'after\x20publish','forbiddenActions':['add','remove','update'],'allowedActions':[],'unfreeze':null,'moveAnchor':'machine.move\x20node_add_imp\x20/\x20node_remove_imp\x20/\x20node_rename_imp\x20(assert_not_published)'},'label':'The\x20workflow\x27s\x20step\x20table\x20(full\x20node\x20graph;\x20frozen\x20at\x20publish)'},{'id':'treasury.record','family':'M','source':'Treasury','target':'Payment','cardinality':'N','read':{'kind':'table','rowType':'TreasuryRecord'},'retention':'complete','evidence':'treasury.move\x20L39-46,L77\x20(history:\x20ParentTable<address,Record>,\x20key\x20=\x20Payment;\x20append-only)','bridgeIds':['b08'],'label':'Ledger\x20entries\x20tying\x20each\x20withdrawal/deposit/receive\x20Payment\x20to\x20its\x20op\x20code,\x20signer,\x20external\x20guard\x20and\x20amount'},{'id':'reward.claim','family':'M','source':'Reward','target':EOA,'cardinality':'N','read':{'kind':'table','rowType':'RewardClaimRecord'},'retention':'complete','evidence':'reward.move\x20L117-138,L180-193\x20(record:\x20ParentTable<address,RecipientRecord>;\x20key\x20=\x20claimant)','bridgeIds':['b07'],'label':'Claimants\x20against\x20the\x20reward\x20pool,\x20with\x20lifetime\x20total\x20and\x20per-guard\x20claim\x20legs'},{'id':'repository.data_about','family':'F','source':'Repository','target':ANY,'cardinality':'N','read':{'kind':'table','rowType':'RepositoryData'},'retention':'membership','evidence':'repository.move\x20L455-465,L161-173\x20(data:\x20ParentTable<DataKey{id,key},\x20vector<u8>>)','bridgeIds':['b02'],'label':'Business\x20objects\x20the\x20stored\x20evidence\x20rows\x20are\x20about\x20(DataKey.id,\x20carrying\x20the\x20row\x20key\x20name)'}],W_EDGES=[{'id':'wf.transition','family':'W','source':'MachineNode','target':'MachineNode','cardinality':'N','read':{'kind':'derived','producer':'machineRows'},'retention':'derived','evidence':'machine.move\x20L101\x20NodePair,L269','bridgeIds':['b04'],'label':'Directed\x20hand-off\x20from\x20workflow\x20step\x20to\x20step\x20(carries\x20the\x20advance\x20threshold)'},{'id':'wf.forward_guard','family':'W','source':'MachineNode','target':'Guard','cardinality':'N','read':{'kind':'derived','producer':'machineRows'},'retention':'derived','evidence':'machine.move\x20L63\x20Forward','bridgeIds':['b04','b05','b10','b12'],'label':'Guards\x20evaluated\x20after\x20a\x20step\x20advances\x20(where\x20supply-chain\x20payouts\x20and\x20downstream\x20allocations\x20trigger)'}],M_EDGES=[{'id':'payment.recipient','family':'M','source':'Payment','target':EOA,'cardinality':'N','read':{'kind':'structFields','path':'record','field':'recipient'},'retention':'complete','evidence':'payment.move\x20L93-101\x20(Revenue≤200)','bridgeIds':['b05','b08'],'label':'Payment\x20allocation\x20recipients\x20(with\x20amounts,\x20leg\x20by\x20leg)'},{'id':'payment.from_object','family':'M','source':'Payment','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'from_object'},'retention':'complete','evidence':'payment.move\x20L149-161\x20(framework-only)','bridgeIds':['b05','b08'],'label':'Funding\x20source\x20pool\x20(Treasury/Allocation/Service;\x20framework-settable\x20only)'},{'id':'payment.for_object','family':'M','source':'Payment','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'info.for_object'},'retention':'complete','evidence':'payment.move\x20L93-101\x20(info\x20routing\x20hint)','bridgeIds':['b05','b08'],'label':'Business\x20routing\x20object\x20(user-settable)'},{'id':'payment.for_guard','family':'M','source':'Payment','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'info.for_guard'},'retention':'complete','evidence':'payment.move\x20L93-101','bridgeIds':['b05'],'label':'Guard\x20the\x20payment\x20was\x20routed\x20under\x20(user-settable\x20routing\x20context)'},{'id':'allocation.for_object','family':'M','source':'Allocation','target':ANY,'cardinality':'0..1','read':{'kind':'field','path':'payment_info.for_object'},'retention':'complete','evidence':'allocation.move\x20L200;\x20payment.move\x20L66-71','bridgeIds':['b05','b08'],'label':'Business\x20object\x20the\x20pool\x27s\x20payouts\x20are\x20routed\x20for'},{'id':'allocation.for_guard','family':'M','source':'Allocation','target':'Guard','cardinality':'0..1','read':{'kind':'field','path':'payment_info.for_guard'},'retention':'complete','evidence':'allocation.move\x20L200;\x20payment.move\x20L66-71','bridgeIds':['b05','b08'],'label':'Gate\x20context\x20the\x20pool\x27s\x20payouts\x20are\x20routed\x20under'}],EVENT_EDGES=[{'id':'service.order_history','family':'E','source':'Service','target':'Order','cardinality':'N','read':{'kind':'event','eventType':PackageAddress+'::order::NewOrderEvent','matchField':'service','targetField':'object'},'retention':'event_full','evidence':'order.move\x20L51-58,L142\x20(NewOrderEvent:\x20object/service/progress/discount/allocation/amount)','label':'Every\x20order\x20ever\x20created\x20in\x20the\x20shop\x20—\x20complete\x20event\x20stream,\x20beyond\x20the\x20FIFO\x205200\x20shop-order\x20window'},{'id':'eoa.order_history','family':'E','source':EOA,'target':'Order','cardinality':'N','read':{'kind':'event','eventType':PackageAddress+'::order::NewOrderEvent','matchSender':!![],'targetField':'object'},'retention':'event_full','evidence':'order.move\x20L51-58,L142\x20+\x20indexer\x20tx\x20sender\x20(the\x20transacting\x20buyer)','label':'Orders\x20the\x20account\x20created\x20as\x20the\x20transacting\x20buyer\x20—\x20complete\x20event\x20stream,\x20beyond\x20the\x20FIFO\x205200\x20buyer\x20window'},{'id':'arb.history','family':'E','source':'Arbitration','target':'Arb','cardinality':'N','read':{'kind':'event','eventType':PackageAddress+'::arb::ArbEvent','matchField':'arbitration','targetField':'object'},'retention':'event_full','evidence':'arb.move\x20L33-43,L122,L227\x20(ArbEvent:\x20case/arbitration/order/status/indemnity)','label':'Every\x20dispute\x20case\x20the\x20arbitration\x20service\x20ever\x20handled\x20—\x20complete\x20event\x20stream;\x20latest\x20status\x20transition\x20wins\x20per\x20case'}];export const EDGE_SCHEMAS=[...F_EDGES,...R_EDGES,...TABLE_EDGES,...W_EDGES,...M_EDGES,...EVENT_EDGES];export const EDGE_SCHEMA_BY_ID=new Map(EDGE_SCHEMAS['map'](a=>[a['id'],a]));export function outgoingSchemaIds(a){return EDGE_SCHEMAS['filter'](b=>b['source']===a||b['source']===ANY)['map'](b=>b['id']);}export const COVERED_OBJECT_TYPES=[...new Set(EDGE_SCHEMAS['flatMap'](a=>[a['source'],a['target']])['filter'](a=>a!==EOA&&a!==ANY&&a!=='MachineNode'))];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{describe,expect,it}from'vitest';import{ENTRYPOINT}from'@wowok/wowok';import{FakeDataPlane}from'./dataplane.js';import{expandTopology}from'./expand.js';import{FULL,GAP,fullServiceState,gapServiceState,truncatedServiceState}from'./fixtures.js';import{buildViewport}from'./viewport.js';import{runAnalyzers}from'./analyze.js';import{EVALUATION_SERVICE_INTENTS,resolveExpansionStrategy,withEvaluationBundle}from'./strategy.js';import{projectEvaluationFacts}from'./facts.js';async function evalFacts(a,b){const c=withEvaluationBundle(resolveExpansionStrategy({'intents':[...EVALUATION_SERVICE_INTENTS]})),d=await expandTopology(new FakeDataPlane(a),{'network':ENTRYPOINT['Mainnet'],'seed':b,'edges':c['edges'],'budget':c['budget']}),e=buildViewport(d,b,'neutral'),f=runAnalyzers(e);return projectEvaluationFacts(e,b,f);}const slotOf=(a,b)=>a['slots']['find'](c=>c['slot']===b),factOf=(a,b)=>{const c=a['facts']['find'](d=>d['key']===b);return expect(c,'fact\x20'+b+'\x20must\x20exist')['toBeDefined'](),c;},EMPTY_STATE={'objects':new Map(),'keyedFields':new Map(),'tables':new Map(),'events':new Map()};describe('facts\x20—\x20fully\x20hooked\x20service\x20(TR-13.1)',()=>{it('classifies\x20every\x20required\x20slot\x20present\x20with\x20material\x20facts',async()=>{const a=await evalFacts(fullServiceState(),FULL['svc']);expect(slotOf(a,'service_snapshot')['state'])['toBe']('present'),expect(slotOf(a,'arbitration')['state'])['toBe']('present'),expect(slotOf(a,'reviews')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_orders')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_workflow')['state'])['toBe']('present'),expect(slotOf(a,'fund_safety')['state'])['toBe']('present'),expect(slotOf(a,'transparency')['state'])['toBe']('present'),expect(a['completeness'])['toBe'](0x64);const b=factOf(a,'arbitration.binding');expect(b['state'])['toBe']('present'),expect(b['value'])['toMatchObject']([{'id':FULL['arbsvc']['toLowerCase'](),'paused':![],'votingGuards':0x1,'usageGuard':!![]}]),expect(b['provenance']['path'])['toContain']('service.arbitration'),expect(factOf(a,'reviews.votes')['value'])['toMatchObject']({'total':0x2,'like':0x1,'dislike':0x1,'favor':0x1}),expect(factOf(a,'fulfillment.orders')['value'])['toMatchObject']({'observed':0x2,'completed':0x1,'inProgress':0x1,'unknown':0x0,'windowedAmount':'1000000'});const c=factOf(a,'fulfillment.workflow');expect(c['state'])['toBe']('present'),expect(c['value'])['toMatchObject']({'machine':FULL['mac']['toLowerCase'](),'nodes':0x3}),expect(factOf(a,'fund.compensation')['value'])['toMatchObject']({'fund':'0'});const d=factOf(a,'fund.exposure');expect(d['value'])['toMatchObject']({'windowedCount':0x2,'windowedAmount':'1000000','neededCeiling':'3000000','coverageMet':![]}),expect(d['findingIds'])['toEqual'](['R2:'+FULL['svc']['toLowerCase']()]),expect(factOf(a,'transparency.profile')['findingIds'])['toEqual'](['R6:'+FULL['svc']['toLowerCase']()]);}),it('reuses\x20analyzer\x20findings\x20by\x20reference\x20in\x20the\x20risk\x20dimensions',async()=>{const a=await evalFacts(fullServiceState(),FULL['svc']),b=factOf(a,'risk_trust.findings');expect(b['state'])['toBe']('present'),expect(b['findingIds']['some'](g=>g['startsWith']('R1:')))['toBe'](!![]);const c=factOf(a,'risk_fund.findings');expect(c['state'])['toBe']('present'),expect(c['findingIds'])['toContain']('R2:'+FULL['svc']['toLowerCase']());const d=factOf(a,'risk_behavior.findings');expect(d['state'])['toBe']('present'),expect(d['findingIds'])['toEqual']([]);const e=factOf(a,'risk_workflow.findings');expect(e['state'])['toBe']('present'),expect(e['evidence'])['toContain']('fully\x20materialized');});}),describe('facts\x20—\x20configured-empty\x20shell\x20merchant\x20(TR-13.1)',()=>{it('scores\x20configured\x20absence\x20as\x20empty\x20and\x20the\x20dangling\x20machine\x20as\x20gap',async()=>{const a=await evalFacts(gapServiceState(),GAP['svc']);expect(slotOf(a,'service_snapshot')['state'])['toBe']('present'),expect(slotOf(a,'arbitration')['state'])['toBe']('empty'),expect(factOf(a,'arbitration.binding')['state'])['toBe']('empty'),expect(slotOf(a,'reviews')['state'])['toBe']('empty'),expect(slotOf(a,'fulfillment_orders')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_workflow')['state'])['toBe']('gap'),expect(factOf(a,'fulfillment.workflow')['evidence'])['toContain']('fetch\x20gap'),expect(slotOf(a,'fund_safety')['state'])['toBe']('present'),expect(slotOf(a,'transparency')['state'])['toBe']('present'),expect(a['completeness'])['toBe'](0x39),expect(factOf(a,'risk_workflow.findings')['state'])['toBe']('gap'),expect(factOf(a,'risk_workflow.findings')['provenance']['confidence'])['toBe']('windowed'),expect(factOf(a,'risk_trust.findings')['state'])['toBe']('empty');});}),describe('facts\x20—\x20truncated\x20order\x20window\x20(TR-13.1)',()=>{it('marks\x20the\x20truncated\x20window\x20slot\x20gap\x20and\x20cascades\x20into\x20risk_fund',async()=>{const a=await evalFacts(truncatedServiceState(),FULL['svc']);expect(slotOf(a,'fulfillment_orders')['state'])['toBe']('gap');const b=factOf(a,'fulfillment.orders');expect(b['state'])['toBe']('gap'),expect(b['provenance']['window'])['toBeDefined'](),expect(b['value']['observed'])['toBeGreaterThan'](0x0);const c=factOf(a,'risk_fund.findings');expect(c['state'])['toBe']('gap'),expect(c['evidence'])['toContain']('unverifiable'),expect(slotOf(a,'arbitration')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_workflow')['state'])['toBe']('present'),expect(a['completeness'])['toBe'](0x56);});}),describe('facts\x20—\x20completeness\x20(TR-13.2)',()=>{it('is\x20an\x20integer\x200..100\x20consistent\x20with\x20present/required\x20on\x20every\x20fixture',async()=>{const a=await Promise['all']([evalFacts(fullServiceState(),FULL['svc']),evalFacts(gapServiceState(),GAP['svc']),evalFacts(truncatedServiceState(),FULL['svc'])]);for(const b of a){expect(Number['isInteger'](b['completeness']))['toBe'](!![]),expect(b['completeness'])['toBeGreaterThanOrEqual'](0x0),expect(b['completeness'])['toBeLessThanOrEqual'](0x64);const c=b['slots']['filter'](e=>e['required']&&e['state']==='present')['length'],d=b['slots']['filter'](e=>e['required'])['length'];expect(b['completeness'])['toBe'](Math['round'](c/d*0x64));for(const e of b['facts']){expect(e['provenance']['path']['length'])['toBeGreaterThan'](0x0),expect(e['provenance']['retention'])['toBeDefined'](),expect(e['evidence']['length'])['toBeGreaterThan'](0x0);if(e['dimension']['startsWith']('risk_'))continue;const g=e['dimension']==='fulfillment'?e['key']['includes']('workflow')?'fulfillment_workflow':'fulfillment_orders':e['dimension'];expect(slotOf(b,g)['facts'])['toContain'](e['key']);}}}),it('collapses\x20to\x200\x20with\x20all\x20slots\x20gap\x20when\x20the\x20target\x20is\x20missing',async()=>{const a=await evalFacts(EMPTY_STATE,FULL['svc']);expect(a['slots']['every'](b=>b['state']==='gap'))['toBe'](!![]),expect(a['completeness'])['toBe'](0x0),expect(factOf(a,'risk_behavior.findings')['state'])['toBe']('gap');});}),describe('facts\x20—\x20entity\x20profile\x20attributes',()=>{it('projects\x20viewport-cropped\x20payloads;\x20absence\x20yields\x20no\x20entry',async()=>{const a=await evalFacts(fullServiceState(),FULL['svc']),b=a['profiles']['map'](e=>e['nodeId']);expect(b)['toContain'](FULL['supplier']['toLowerCase']());const c=a['profiles']['find'](e=>e['nodeId']===FULL['supplier']['toLowerCase']());expect(c['description'])['toBe']('Acme\x20logistics\x20co.'),expect(c['registeredAt'])['toBe'](0x18bcfe57b88),expect(c['recordCount'])['toBe'](0x1),expect(c['profileRecords'])['toEqual']([{'name':'region','valueType':0x1,'value':'cn-east'}]);const d=a['profiles']['find'](e=>e['nodeId']===FULL['member']['toLowerCase']());expect(d['hasDescription'])['toBe'](!![]),expect(d['recordCount'])['toBe'](0x0),expect(b)['not']['toContain'](FULL['buyer']['toLowerCase']());});});
|
|
1
|
+
import{describe,expect,it}from'vitest';import{ENTRYPOINT}from'@wowok/wowok';import{FakeDataPlane}from'./dataplane.js';import{expandTopology}from'./expand.js';import{FULL,GAP,fullServiceState,gapServiceState,truncatedServiceState}from'./fixtures.js';import{buildViewport}from'./viewport.js';import{runAnalyzers}from'./analyze.js';import{EVALUATION_SERVICE_INTENTS,resolveExpansionStrategy,withEvaluationBundle}from'./strategy.js';import{projectEvaluationFacts}from'./facts.js';async function evalFacts(a,b){const c=withEvaluationBundle(resolveExpansionStrategy({'intents':[...EVALUATION_SERVICE_INTENTS]})),d=await expandTopology(new FakeDataPlane(a),{'network':ENTRYPOINT['Mainnet'],'seed':b,'edges':c['edges'],'budget':c['budget']}),e=buildViewport(d,b,'neutral'),f=runAnalyzers(e);return projectEvaluationFacts(e,b,f);}async function evalFactsWithFindings(a,b,c){const d=withEvaluationBundle(resolveExpansionStrategy({'intents':[...EVALUATION_SERVICE_INTENTS]})),e=await expandTopology(new FakeDataPlane(a),{'network':ENTRYPOINT['Mainnet'],'seed':b,'edges':d['edges'],'budget':d['budget']}),f=buildViewport(e,b,'neutral');return projectEvaluationFacts(f,b,c);}const slotOf=(a,b)=>a['slots']['find'](c=>c['slot']===b),factOf=(a,b)=>{const c=a['facts']['find'](d=>d['key']===b);return expect(c,'fact\x20'+b+'\x20must\x20exist')['toBeDefined'](),c;},EMPTY_STATE={'objects':new Map(),'keyedFields':new Map(),'tables':new Map(),'events':new Map()};describe('facts\x20—\x20fully\x20hooked\x20service\x20(TR-13.1)',()=>{it('classifies\x20every\x20required\x20slot\x20present\x20with\x20material\x20facts',async()=>{const a=await evalFacts(fullServiceState(),FULL['svc']);expect(slotOf(a,'service_snapshot')['state'])['toBe']('present'),expect(slotOf(a,'arbitration')['state'])['toBe']('present'),expect(slotOf(a,'reviews')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_orders')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_workflow')['state'])['toBe']('present'),expect(slotOf(a,'fund_safety')['state'])['toBe']('present'),expect(slotOf(a,'transparency')['state'])['toBe']('present'),expect(a['completeness'])['toBe'](0x64);const b=factOf(a,'arbitration.binding');expect(b['state'])['toBe']('present'),expect(b['value'])['toMatchObject']([{'id':FULL['arbsvc']['toLowerCase'](),'paused':![],'votingGuards':0x1,'usageGuard':!![]}]),expect(b['provenance']['path'])['toContain']('service.arbitration'),expect(factOf(a,'reviews.votes')['value'])['toMatchObject']({'total':0x2,'like':0x1,'dislike':0x1,'favor':0x1}),expect(factOf(a,'fulfillment.orders')['value'])['toMatchObject']({'observed':0x2,'completed':0x1,'inProgress':0x1,'unknown':0x0,'windowedAmount':'1000000'});const c=factOf(a,'fulfillment.workflow');expect(c['state'])['toBe']('present'),expect(c['value'])['toMatchObject']({'machine':FULL['mac']['toLowerCase'](),'nodes':0x3}),expect(factOf(a,'fund.compensation')['value'])['toMatchObject']({'fund':'0'});const d=factOf(a,'fund.exposure');expect(d['value'])['toMatchObject']({'windowedCount':0x2,'windowedAmount':'1000000','neededCeiling':'3000000','coverageMet':![]}),expect(d['findingIds'])['toEqual'](['R2:'+FULL['svc']['toLowerCase']()]),expect(factOf(a,'transparency.profile')['findingIds'])['toEqual'](['R6:'+FULL['svc']['toLowerCase']()]);}),it('reuses\x20analyzer\x20findings\x20by\x20reference\x20in\x20the\x20risk\x20dimensions',async()=>{const a=await evalFacts(fullServiceState(),FULL['svc']),b=factOf(a,'risk_trust.findings');expect(b['state'])['toBe']('present'),expect(b['findingIds']['some'](g=>g['startsWith']('R1:')))['toBe'](!![]);const c=factOf(a,'risk_fund.findings');expect(c['state'])['toBe']('present'),expect(c['findingIds'])['toContain']('R2:'+FULL['svc']['toLowerCase']());const d=factOf(a,'risk_behavior.findings');expect(d['state'])['toBe']('present'),expect(d['findingIds'])['toEqual']([]);const e=factOf(a,'risk_workflow.findings');expect(e['state'])['toBe']('present'),expect(e['evidence'])['toContain']('fully\x20materialized');});}),describe('facts\x20—\x20configured-empty\x20shell\x20merchant\x20(TR-13.1)',()=>{it('scores\x20configured\x20absence\x20as\x20empty\x20and\x20the\x20dangling\x20machine\x20as\x20gap',async()=>{const a=await evalFacts(gapServiceState(),GAP['svc']);expect(slotOf(a,'service_snapshot')['state'])['toBe']('present'),expect(slotOf(a,'arbitration')['state'])['toBe']('empty'),expect(factOf(a,'arbitration.binding')['state'])['toBe']('empty'),expect(slotOf(a,'reviews')['state'])['toBe']('empty'),expect(slotOf(a,'fulfillment_orders')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_workflow')['state'])['toBe']('gap'),expect(factOf(a,'fulfillment.workflow')['evidence'])['toContain']('fetch\x20gap'),expect(slotOf(a,'fund_safety')['state'])['toBe']('present'),expect(slotOf(a,'transparency')['state'])['toBe']('present'),expect(a['completeness'])['toBe'](0x39),expect(factOf(a,'risk_workflow.findings')['state'])['toBe']('gap'),expect(factOf(a,'risk_workflow.findings')['provenance']['confidence'])['toBe']('windowed'),expect(factOf(a,'risk_trust.findings')['state'])['toBe']('empty');});}),describe('facts\x20—\x20truncated\x20order\x20window\x20(TR-13.1)',()=>{it('marks\x20the\x20truncated\x20window\x20slot\x20gap\x20and\x20cascades\x20into\x20risk_fund',async()=>{const a=await evalFacts(truncatedServiceState(),FULL['svc']);expect(slotOf(a,'fulfillment_orders')['state'])['toBe']('gap');const b=factOf(a,'fulfillment.orders');expect(b['state'])['toBe']('gap'),expect(b['provenance']['window'])['toBeDefined'](),expect(b['value']['observed'])['toBeGreaterThan'](0x0);const c=factOf(a,'risk_fund.findings');expect(c['state'])['toBe']('gap'),expect(c['evidence'])['toContain']('unverifiable'),expect(slotOf(a,'arbitration')['state'])['toBe']('present'),expect(slotOf(a,'fulfillment_workflow')['state'])['toBe']('present'),expect(a['completeness'])['toBe'](0x56);});}),describe('facts\x20—\x20completeness\x20(TR-13.2)',()=>{it('is\x20an\x20integer\x200..100\x20consistent\x20with\x20present/required\x20on\x20every\x20fixture',async()=>{const a=await Promise['all']([evalFacts(fullServiceState(),FULL['svc']),evalFacts(gapServiceState(),GAP['svc']),evalFacts(truncatedServiceState(),FULL['svc'])]);for(const b of a){expect(Number['isInteger'](b['completeness']))['toBe'](!![]),expect(b['completeness'])['toBeGreaterThanOrEqual'](0x0),expect(b['completeness'])['toBeLessThanOrEqual'](0x64);const c=b['slots']['filter'](e=>e['required']&&e['state']==='present')['length'],d=b['slots']['filter'](e=>e['required'])['length'];expect(b['completeness'])['toBe'](Math['round'](c/d*0x64));for(const e of b['facts']){expect(e['provenance']['path']['length'])['toBeGreaterThan'](0x0),expect(e['provenance']['retention'])['toBeDefined'](),expect(e['evidence']['length'])['toBeGreaterThan'](0x0);if(e['dimension']['startsWith']('risk_'))continue;const g=e['dimension']==='fulfillment'?e['key']['includes']('workflow')?'fulfillment_workflow':'fulfillment_orders':e['dimension'];expect(slotOf(b,g)['facts'])['toContain'](e['key']);}}}),it('collapses\x20to\x200\x20with\x20all\x20slots\x20gap\x20when\x20the\x20target\x20is\x20missing',async()=>{const a=await evalFacts(EMPTY_STATE,FULL['svc']);expect(a['slots']['every'](b=>b['state']==='gap'))['toBe'](!![]),expect(a['completeness'])['toBe'](0x0),expect(factOf(a,'risk_behavior.findings')['state'])['toBe']('gap');});}),describe('facts\x20—\x20entity\x20profile\x20attributes',()=>{it('projects\x20viewport-cropped\x20payloads;\x20absence\x20yields\x20no\x20entry',async()=>{const a=await evalFacts(fullServiceState(),FULL['svc']),b=a['profiles']['map'](e=>e['nodeId']);expect(b)['toContain'](FULL['supplier']['toLowerCase']());const c=a['profiles']['find'](e=>e['nodeId']===FULL['supplier']['toLowerCase']());expect(c['description'])['toBe']('Acme\x20logistics\x20co.'),expect(c['registeredAt'])['toBe'](0x18bcfe57b88),expect(c['recordCount'])['toBe'](0x1),expect(c['profileRecords'])['toEqual']([{'name':'region','valueType':0x1,'value':'cn-east'}]);const d=a['profiles']['find'](e=>e['nodeId']===FULL['member']['toLowerCase']());expect(d['hasDescription'])['toBe'](!![]),expect(d['recordCount'])['toBe'](0x0),expect(b)['not']['toContain'](FULL['buyer']['toLowerCase']());});}),describe('facts\x20—\x20N-K5\x20own-scope\x20partition\x20folds\x20neighbor\x20findings',()=>{const a='0x1549f8aa00000000000000000000000000000000000000000000000000000000',b=c=>({'id':'R4:'+c+':accepted→completed','kind':'risk','severity':'medium','title':'Workflow\x20single\x20point:\x20the\x20only\x20Forward\x20before\x20a\x20terminal\x20state\x20has\x20a\x20single\x20operator\x20and\x20no\x20fallback\x20Guard','path':[c,'machine.node','wf.transition','accepted→completed'],'confidence':'exact','roles':['neutral'],'detail':'synthetic\x20single-point\x20finding\x20for\x20the\x20scope\x20test','suggestion':'add\x20a\x20fallback\x20operator'});it('scores\x20only\x20own-machine\x20R4\x20findings;\x20the\x20foreign\x20machine\x27s\x20identical\x20finding\x20is\x20folded\x20as\x20neighbor\x20count',async()=>{const c=await evalFactsWithFindings(fullServiceState(),FULL['svc'],[b(FULL['mac']['toLowerCase']()),b(a)]),d=factOf(c,'risk_workflow.findings');expect(d['state'])['toBe']('present'),expect(d['findingIds'])['toEqual'](['R4:'+FULL['mac']['toLowerCase']()+':accepted→completed']);const e=d['value'];expect(e['findings'])['toHaveLength'](0x1),expect(e['findings'][0x0]['id'])['toBe']('R4:'+FULL['mac']['toLowerCase']()+':accepted→completed'),expect(d['evidence'])['toContain']('1\x20further\x20finding(s)\x20on\x20NEIGHBOR\x20objects'),expect(d['evidence'])['toContain']('do\x20not\x20belong\x20to\x20this\x20object\x27s\x20score');}),it('an\x20all-neighbor\x20finding\x20set\x20matches\x20nothing\x20and\x20reports\x20the\x20folded\x20count\x20on\x20a\x20clean\x20own\x20structure',async()=>{const c=await evalFactsWithFindings(fullServiceState(),FULL['svc'],[b(a)]),d=factOf(c,'risk_workflow.findings');expect(d['state'])['toBe']('present'),expect(d['findingIds'])['toEqual']([]),expect(d['evidence'])['toContain']('No\x20risk\x20fired\x20on\x20this\x20object'),expect(d['evidence'])['toContain']('1\x20finding(s)\x20on\x20neighbor\x20objects');});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PackageAddress}from'@wowok/wowok';const SYS=a=>({'field':'id','disposition':{'kind':'nonAddress','note':'Object\x20identity\x20(UID);\x20system-managed,\x20never\x20a\x20business\x20reference'},'evidence':a}),SERVICE={'object':'Service','moveStruct':'service.move\x20L174-193\x20Service<T>','fields':[SYS('service.move\x20L174-193'),{'field':'description','disposition':{'kind':'attribute','note':'Shop\x20self-description;\x20node\x20property'},'evidence':'service.move\x20L174-193'},{'field':'location','disposition':{'kind':'attribute','note':'Service\x20area\x20/\x20market-opportunity\x20routing\x20key'},'evidence':'service.move\x20L174-193'},{'field':'sales','disposition':{'kind':'attribute','note':'Catalog\x20items\x20for\x20sale\x20(what\x20the\x20shop\x20sells)'},'evidence':'service.move\x20L174-193'},{'field':'repositories','disposition':{'kind':'edge','schema':'service.repository'},'evidence':'service.move\x20L174-193\x20(<=100)'},{'field':'buy_guard','disposition':{'kind':'edge','schema':'service.buy_guard'},'evidence':'service.move\x20L174-193'},{'field':'machine','disposition':{'kind':'edge','schema':'service.machine'},'evidence':'service.move\x20L174-193'},{'field':'bPublished','disposition':{'kind':'attribute','note':'Publish\x20flag;\x20freezes\x20machine/guard\x20settings;\x20analyzer\x20input'},'evidence':'service.move\x20L174-193'},{'field':'bPaused','disposition':{'kind':'attribute','note':'Pause\x20flag;\x20purchasability;\x20analyzer\x20input'},'evidence':'service.move\x20L174-193'},{'field':'customer_required','disposition':{'kind':'attribute','note':'Custom\x20info\x20fields\x20the\x20shop\x20requires\x20from\x20buyers'},'evidence':'service.move\x20L174-193'},{'field':'arbitrations','disposition':{'kind':'edge','schema':'service.arbitration'},'evidence':'service.move\x20L174-193\x20(<=20)'},{'field':'compensation_fund','disposition':{'kind':'attribute','note':'Escrowed\x20compensation\x20balance\x20(arbitration\x20solvency\x20signal)'},'evidence':'service.move\x20L174-193'},{'field':'paused_time','disposition':{'kind':'attribute','note':'When\x20the\x20shop\x20was\x20paused\x20(timestamp-ms)'},'evidence':'service.move\x20L174-193'},{'field':'setting_lock_duration','disposition':{'kind':'attribute','note':'Lock\x20duration\x20gating\x20post-pause\x20setting\x20changes'},'evidence':'service.move\x20L174-193'},{'field':'order_allocators','disposition':{'kind':'edge','schema':'service.order_allocator_guard','note':'Allocators\x20container;\x20guard\x20members\x20are\x20the\x20edge,\x20sharing\x20amounts\x20ride\x20the\x20payload'},'evidence':'service.move\x20L174-193;\x20allocation.move\x20L194-200'},{'field':'rewards','disposition':{'kind':'edge','schema':'service.reward'},'evidence':'service.move\x20L174-193\x20(<=20)'},{'field':'um','disposition':{'kind':'edge','schema':'service.um'},'evidence':'service.move\x20L174-193'},{'field':'permission','disposition':{'kind':'edge','schema':'service.permission'},'evidence':'service.move\x20L174-193'}]},ORDER={'object':'Order','moveStruct':'order.move\x20L59-74\x20Order','fields':[SYS('order.move\x20L59-74'),{'field':'items','disposition':{'kind':'attribute','note':'Purchased\x20line\x20items\x20(what\x20was\x20bought)'},'evidence':'order.move\x20L59-74'},{'field':'discount','disposition':{'kind':'edge','schema':'order.discount'},'evidence':'order.move\x20L59-74'},{'field':'progress','disposition':{'kind':'edge','schema':'order.progress'},'evidence':'order.move\x20L59-74,L130'},{'field':'machine','disposition':{'kind':'edge','schema':'order.machine'},'evidence':'order.move\x20L59-74,L130'},{'field':'amount','disposition':{'kind':'attribute','note':'Total\x20paid\x20(order\x20value\x20signal)'},'evidence':'order.move\x20L59-74'},{'field':'owner','disposition':{'kind':'edge','schema':'order.builder','note':'SDK\x20normalizes\x20owner\x20to\x20builder'},'evidence':'order.move\x20L59-74\x20(owner)'},{'field':'service','disposition':{'kind':'edge','schema':'order.service'},'evidence':'order.move\x20L59-74'},{'field':'dispute','disposition':{'kind':'edge','schema':'order.dispute'},'evidence':'order.move\x20L59-74'},{'field':'agent','disposition':{'kind':'edge','schema':'order.agent'},'evidence':'order.move\x20L59-74,L179\x20(<=10)'},{'field':'allocation','disposition':{'kind':'edge','schema':'order.allocation'},'evidence':'order.move\x20L59-74,L130'},{'field':'claimed_by','disposition':{'kind':'edge','schema':'order.claimed_by'},'evidence':'order.move\x20L59-74,L86-96'},{'field':'required_info','disposition':{'kind':'edge','schema':'order.required_info'},'evidence':'order.move\x20L73,L77-80','oq':'merchant\x20IM\x20address\x20(Service\x27s\x20Contact)\x20or\x20WTS\x20proof\x20(b11/b12)'},{'field':'time','disposition':{'kind':'attribute','note':'Creation\x20time\x20(timestamp-ms)'},'evidence':'order.move\x20L59-74'}]},DISCOUNT={'object':'Discount','moveStruct':'service.move\x20L109-119\x20Discount','fields':[SYS('service.move\x20L109-119'),{'field':'name','disposition':{'kind':'attribute','note':'Discount\x20campaign\x20name'},'evidence':'service.move\x20L109-119'},{'field':'discount_type','disposition':{'kind':'attribute','note':'RATIO\x20(off%)\x20or\x20MINUS\x20(-N)\x20pricing\x20mode'},'evidence':'service.move\x20L109-119'},{'field':'benchmark','disposition':{'kind':'attribute','note':'Minimum-spend\x20condition\x20for\x20the\x20discount'},'evidence':'service.move\x20L109-119'},{'field':'off','disposition':{'kind':'attribute','note':'Discount\x20magnitude\x20(rate\x20or\x20fixed\x20amount)'},'evidence':'service.move\x20L109-119'},{'field':'time_start','disposition':{'kind':'attribute','note':'Validity\x20window\x20start\x20(timestamp-ms)'},'evidence':'service.move\x20L109-119'},{'field':'time_end','disposition':{'kind':'attribute','note':'Validity\x20window\x20end\x20/\x20expiry'},'evidence':'service.move\x20L109-119'},{'field':'service','disposition':{'kind':'edge','schema':'discount.service'},'evidence':'service.move\x20L117','oq':'OQ-3\x20(Discount\x20joins\x20COVERED\x20types)'},{'field':'transferable','disposition':{'kind':'attribute','note':'Whether\x20the\x20discount\x20may\x20be\x20handed\x20to\x20a\x20receiver'},'evidence':'service.move\x20L109-119'}]},PROGRESS={'object':'Progress','moveStruct':'progress.move\x20L75-85\x20Progress','fields':[SYS('progress.move\x20L75-85'),{'field':'machine','disposition':{'kind':'edge','schema':'progress.machine'},'evidence':'progress.move\x20L75-85'},{'field':'context_repositories','disposition':{'kind':'edge','schema':'progress.context_repository'},'evidence':'progress.move\x20L78,L199-208'},{'field':'current','disposition':{'kind':'attribute','note':'Current\x20node\x20name\x20(completion\x20determination\x20input)'},'evidence':'progress.move\x20L75-85'},{'field':'task','disposition':{'kind':'edge','schema':'progress.task'},'evidence':'progress.move\x20L80'},{'field':'namedOperator','disposition':{'kind':'edge','schema':'progress.named_operator','note':'Container\x20struct;\x20operators[]\x20members\x20are\x20the\x20edge'},'evidence':'progress.move\x20L81\x20(<=80)'},{'field':'session','disposition':{'kind':'attribute','note':'Per-node\x20session\x20records\x20(runtime\x20state)'},'evidence':'progress.move\x20L82'},{'field':'history','disposition':{'kind':'attribute','note':'Node-history\x20ParentTableVec\x20(runtime\x20audit\x20trail,\x20not\x20enumerated\x20as\x20edges)'},'evidence':'progress.move\x20L83'},{'field':'current_time','disposition':{'kind':'attribute','note':'Last\x20activity\x20clock\x20(staleness\x20signal)'},'evidence':'progress.move\x20L84'}]},MACHINE={'object':'Machine','moveStruct':'machine.move\x20L298-307\x20Machine','fields':[SYS('machine.move\x20L298-307'),{'field':'description','disposition':{'kind':'attribute','note':'Workflow\x20description'},'evidence':'machine.move\x20L298-307'},{'field':'nodes','disposition':{'kind':'edge','schema':'machine.node','coSchemas':['wf.transition','wf.forward_guard'],'note':'ParentLinkedTable\x20walk\x20yields\x20node\x20rows;\x20transitions\x20and\x20forward\x20guards\x20derive\x20from\x20the\x20same\x20rows'},'evidence':'machine.move\x20L301'},{'field':'consensus_repositories','disposition':{'kind':'edge','schema':'machine.consensus_repository'},'evidence':'machine.move\x20L302'},{'field':'bPaused','disposition':{'kind':'attribute','note':'Workflow\x20pause\x20flag'},'evidence':'machine.move\x20L298-307'},{'field':'bPublished','disposition':{'kind':'attribute','note':'Publish\x20flag;\x20freezes\x20the\x20node\x20table'},'evidence':'machine.move\x20L298-307'},{'field':'um','disposition':{'kind':'edge','schema':'machine.um'},'evidence':'machine.move\x20L305'},{'field':'permission','disposition':{'kind':'edge','schema':'machine.permission'},'evidence':'machine.move\x20L306'}]},ALLOCATION={'object':'Allocation','moveStruct':'allocation.move\x20L196-202\x20Allocation<T>','fields':[SYS('allocation.move\x20L196-202'),{'field':'balance','disposition':{'kind':'attribute','note':'Remaining\x20pool\x20balance\x20(solvency\x20signal)'},'evidence':'allocation.move\x20L196-202'},{'field':'allocators','disposition':{'kind':'edge','schema':'allocation.guard','note':'Allocator\x20segments;\x20guard\x20members\x20are\x20the\x20edge,\x20sharing\x20amounts\x20ride\x20the\x20payload'},'evidence':'allocation.move\x20L199,L194-200'},{'field':'payment_info','disposition':{'kind':'edge','schema':'allocation.for_object','coSchemas':['allocation.for_guard'],'note':'PaymentInfo\x20captured\x20at\x20pool\x20create;\x20remark/index\x20are\x20attributes'},'evidence':'allocation.move\x20L200;\x20payment.move\x20L66-71'},{'field':'payment','disposition':{'kind':'edge','schema':'allocation.payment'},'evidence':'allocation.move\x20L201,L307-316'}]},ARBITRATION={'object':'Arbitration','moveStruct':'arbitration.move\x20L47-58\x20Arbitration<T>','fields':[SYS('arbitration.move\x20L47-58'),{'field':'description','disposition':{'kind':'attribute','note':'Arbitration\x20service\x20self-description'},'evidence':'arbitration.move\x20L47-58'},{'field':'location','disposition':{'kind':'attribute','note':'Jurisdiction\x20/\x20service\x20area'},'evidence':'arbitration.move\x20L47-58'},{'field':'voting_guard','disposition':{'kind':'edge','schema':'arbitration.voting_guard','note':'Empty\x20vector\x20=\x20open\x20voting;\x20members\x20carry\x20vote\x20weight'},'evidence':'arbitration.move\x20L51'},{'field':'usage_guard','disposition':{'kind':'edge','schema':'arbitration.usage_guard'},'evidence':'arbitration.move\x20L52'},{'field':'fee','disposition':{'kind':'attribute','note':'Case\x20filing\x20fee'},'evidence':'arbitration.move\x20L53'},{'field':'balance','disposition':{'kind':'attribute','note':'Service\x20balance\x20(solvency\x20signal)'},'evidence':'arbitration.move\x20L54'},{'field':'bPaused','disposition':{'kind':'attribute','note':'Service\x20pause\x20flag'},'evidence':'arbitration.move\x20L55'},{'field':'um','disposition':{'kind':'edge','schema':'arbitration.um'},'evidence':'arbitration.move\x20L56'},{'field':'permission','disposition':{'kind':'edge','schema':'arbitration.permission'},'evidence':'arbitration.move\x20L57'}]},ARB={'object':'Arb','moveStruct':'arb.move\x20L95-110\x20Arb<T>','fields':[SYS('arb.move\x20L95-110'),{'field':'description','disposition':{'kind':'attribute','note':'Case\x20description'},'evidence':'arb.move\x20L95-110'},{'field':'order','disposition':{'kind':'edge','schema':'arb.order'},'evidence':'arb.move\x20L98'},{'field':'arbitration','disposition':{'kind':'edge','schema':'arb.arbitration_service'},'evidence':'arb.move\x20L99'},{'field':'voted','disposition':{'kind':'edge','schema':'arb.voter','note':'Voter\x20members\x20are\x20the\x20edge;\x20weights/agrees\x20ride\x20the\x20payload'},'evidence':'arb.move\x20L100\x20(<=520)'},{'field':'proposition','disposition':{'kind':'attribute','note':'Propositions\x20and\x20votes\x20(state-machine\x20input)'},'evidence':'arb.move\x20L101'},{'field':'fee','disposition':{'kind':'attribute','note':'Escrowed\x20case\x20fee'},'evidence':'arb.move\x20L102'},{'field':'feedback','disposition':{'kind':'attribute','note':'Ruling\x20feedback\x20text'},'evidence':'arb.move\x20L103'},{'field':'indemnity','disposition':{'kind':'attribute','note':'Ruled\x20indemnity\x20(compensation\x20outcome)'},'evidence':'arb.move\x20L104'},{'field':'voting_deadline','disposition':{'kind':'attribute','note':'Voting\x20deadline\x20(timestamp-ms)'},'evidence':'arb.move\x20L105'},{'field':'objection','disposition':{'kind':'attribute','note':'Objection\x20record'},'evidence':'arb.move\x20L106'},{'field':'status','disposition':{'kind':'attribute','note':'Case\x20state-machine\x20stage\x20(analyzer\x20input)'},'evidence':'arb.move\x20L107'},{'field':'compensation_time','disposition':{'kind':'attribute','note':'When\x20compensation\x20executed\x20(timestamp-ms)'},'evidence':'arb.move\x20L108'},{'field':'time','disposition':{'kind':'attribute','note':'Case\x20creation\x20time\x20(timestamp-ms)'},'evidence':'arb.move\x20L109'}]},DEMAND={'object':'Demand','moveStruct':'demand.move\x20L67-76\x20Demand','fields':[SYS('demand.move\x20L67-76'),{'field':'description','disposition':{'kind':'attribute','note':'What\x20the\x20demanding\x20side\x20asks\x20for'},'evidence':'demand.move\x20L67-76'},{'field':'location','disposition':{'kind':'attribute','note':'Demand\x20area'},'evidence':'demand.move\x20L67-76'},{'field':'rewards','disposition':{'kind':'edge','schema':'demand.reward'},'evidence':'demand.move\x20L71'},{'field':'guards','disposition':{'kind':'edge','schema':'demand.guard','note':'Empty\x20=\x20bare\x20present\x20(no\x20acceptance\x20gate)'},'evidence':'demand.move\x20L72'},{'field':'presenters','disposition':{'kind':'edge','schema':'demand.presenter','coSchemas':['demand.presenter_service'],'note':'One\x20ParentTable\x20read\x20backs\x20both\x20the\x20presenter\x20edge\x20and\x20the\x20same-row\x20sub-service\x20co-edge'},'evidence':'demand.move\x20L73,L46-54'},{'field':'um','disposition':{'kind':'edge','schema':'demand.um'},'evidence':'demand.move\x20L74'},{'field':'permission','disposition':{'kind':'edge','schema':'demand.permission'},'evidence':'demand.move\x20L75'}]},REWARD={'object':'Reward','moveStruct':'reward.move\x20L129-138\x20Reward<T>','fields':[SYS('reward.move\x20L129-138'),{'field':'description','disposition':{'kind':'attribute','note':'Pool\x20purpose\x20description'},'evidence':'reward.move\x20L129-138'},{'field':'guards','disposition':{'kind':'edge','schema':'reward.guard','note':'Members\x20carry\x20recipient/amount/expiration\x20semantics\x20in\x20the\x20payload'},'evidence':'reward.move\x20L132'},{'field':'balance','disposition':{'kind':'attribute','note':'Remaining\x20pool\x20balance\x20(solvency\x20signal)'},'evidence':'reward.move\x20L133'},{'field':'guard_not_added_expiration_time','disposition':{'kind':'attribute','note':'Claim-window\x20expiry\x20when\x20guards\x20were\x20never\x20added'},'evidence':'reward.move\x20L134'},{'field':'record','disposition':{'kind':'edge','schema':'reward.claim'},'evidence':'reward.move\x20L135,L117-138'},{'field':'um','disposition':{'kind':'edge','schema':'reward.um'},'evidence':'reward.move\x20L136'},{'field':'permission','disposition':{'kind':'edge','schema':'reward.permission'},'evidence':'reward.move\x20L137'}]},REPOSITORY={'object':'Repository','moveStruct':'repository.move\x20L461-469\x20Repository','fields':[SYS('repository.move\x20L461-469'),{'field':'description','disposition':{'kind':'attribute','note':'Repository\x20description'},'evidence':'repository.move\x20L461-469'},{'field':'policies','disposition':{'kind':'edge','schema':'repository.policy_guard','coSchemas':['repository.quote_guard'],'note':'PolicyRule\x20vector;\x20write_guard[].guard\x20members\x20and\x20quote_guard\x20are\x20two\x20deep\x20edges;\x20policy\x20name\x20is\x20an\x20attribute'},'evidence':'repository.move\x20L464,L106-113'},{'field':'data','disposition':{'kind':'edge','schema':'repository.data_about','note':'DataKey.id\x20carries\x20the\x20about-object;\x20row\x20key\x20name\x20rides\x20the\x20payload'},'evidence':'repository.move\x20L465,L456-459'},{'field':'rewards','disposition':{'kind':'edge','schema':'repository.reward'},'evidence':'repository.move\x20L466'},{'field':'um','disposition':{'kind':'edge','schema':'repository.um'},'evidence':'repository.move\x20L467'},{'field':'permission','disposition':{'kind':'edge','schema':'repository.permission'},'evidence':'repository.move\x20L468'}]},CONTACT={'object':'Contact','moveStruct':'contact.move\x20L25-31\x20Contact','fields':[SYS('contact.move\x20L25-31'),{'field':'description','disposition':{'kind':'attribute','note':'Roster\x20description'},'evidence':'contact.move\x20L25-31'},{'field':'location','disposition':{'kind':'attribute','note':'Roster\x20area'},'evidence':'contact.move\x20L25-31'},{'field':'ims','disposition':{'kind':'edge','schema':'contact.im','note':'Im.at\x20members\x20are\x20the\x20edge;\x20status/join_time/description\x20ride\x20the\x20payload'},'evidence':'contact.move\x20L29,L18-23,L85-105','oq':'OQ-1\x20(at\x20verified\x20EOA)'},{'field':'permission','disposition':{'kind':'edge','schema':'contact.permission'},'evidence':'contact.move\x20L30'}]},PERMISSION={'object':'Permission','moveStruct':'permission.move\x20L33-41\x20Permission','fields':[SYS('permission.move\x20L33-41'),{'field':'owner','disposition':{'kind':'edge','schema':'permission.owner'},'evidence':'permission.move\x20L35,L537-543'},{'field':'admin','disposition':{'kind':'edge','schema':'permission.admin'},'evidence':'permission.move\x20L36'},{'field':'description','disposition':{'kind':'attribute','note':'Group\x20description'},'evidence':'permission.move\x20L37'},{'field':'remark','disposition':{'kind':'attribute','note':'Permission\x20remark\x20records'},'evidence':'permission.move\x20L38'},{'field':'table','disposition':{'kind':'edge','schema':'permission.entity','note':'ParentLinkedTable\x20of\x20EOA/Guard\x20members\x20with\x20perm-index\x20bits'},'evidence':'permission.move\x20L39'},{'field':'um','disposition':{'kind':'edge','schema':'permission.um'},'evidence':'permission.move\x20L40'}]},GUARD={'object':'Guard','moveStruct':'guard.move\x20L84-94\x20Guard','fields':[SYS('guard.move\x20L84-94'),{'field':'description','disposition':{'kind':'attribute','note':'Gate\x20description'},'evidence':'guard.move\x20L84-94'},{'field':'table','disposition':{'kind':'attribute','note':'Submission\x20slot\x20definitions\x20(identifier\x20->\x20type\x20mapping;\x20Gate\x20analysis\x20property)'},'evidence':'guard.move\x20L87'},{'field':'validated','disposition':{'kind':'attribute','note':'Validated\x20slot\x20types\x20(Gate\x20analysis\x20property)'},'evidence':'guard.move\x20L88'},{'field':'input','disposition':{'kind':'attribute','note':'Static\x20input\x20bytes\x20for\x20the\x20gate\x20predicate'},'evidence':'guard.move\x20L89'},{'field':'relies','disposition':{'kind':'edge','schema':'guard.relies'},'evidence':'guard.move\x20L90\x20(<=4,\x20one\x20level)'},{'field':'relies_logic_and','disposition':{'kind':'attribute','note':'AND/OR\x20combination\x20of\x20relied\x20gates'},'evidence':'guard.move\x20L91'},{'field':'immutable','disposition':{'kind':'attribute','note':'Whether\x20the\x20gate\x20definition\x20is\x20frozen'},'evidence':'guard.move\x20L92'},{'field':'rep','disposition':{'kind':'attribute','note':'Last\x20query-validation\x20outcome\x20flag'},'evidence':'guard.move\x20L93'}]},PASSPORT={'object':'Passport','moveStruct':'passport.move\x20L41-50\x20Passport','fields':[SYS('passport.move\x20L41-50'),{'field':'guard','disposition':{'kind':'edge','schema':'passport.guard','coSchemas':['passport.ticket_relies'],'note':'GuardInfo\x20tickets;\x20ticket.guard\x20is\x20the\x20primary\x20edge,\x20ticket.relies\x20the\x20same-ticket\x20co-edge;\x20result/impack\x20flags\x20are\x20attributes'},'evidence':'passport.move\x20L43,L32-39'},{'field':'result','disposition':{'kind':'attribute','note':'Overall\x20verification\x20outcome'},'evidence':'passport.move\x20L44'},{'field':'tx_hash','disposition':{'kind':'attribute','note':'Verification\x20transaction\x20digest'},'evidence':'passport.move\x20L45'},{'field':'impack','disposition':{'kind':'edge','schema':'passport.impack'},'evidence':'passport.move\x20L46,L227-242'},{'field':'time','disposition':{'kind':'attribute','note':'Verification\x20time\x20(timestamp-ms)'},'evidence':'passport.move\x20L47'},{'field':'signer','disposition':{'kind':'edge','schema':'passport.signer'},'evidence':'passport.move\x20L48,L94-98'},{'field':'has_verified','disposition':{'kind':'attribute','note':'Whether\x20the\x20credential\x20was\x20consumed'},'evidence':'passport.move\x20L49'}]},PROOF={'object':'Proof','moveStruct':'proof.move\x20L13-24\x20Proof','fields':[SYS('proof.move\x20L13-24'),{'field':'description','disposition':{'kind':'attribute','note':'Evidence\x20description'},'evidence':'proof.move\x20L13-24'},{'field':'proof','disposition':{'kind':'attribute','note':'Evidence\x20payload\x20string'},'evidence':'proof.move\x20L13-24'},{'field':'item_count','disposition':{'kind':'attribute','note':'Item\x20count\x20covered\x20by\x20the\x20evidence'},'evidence':'proof.move\x20L13-24'},{'field':'server_pubkey','disposition':{'kind':'attribute','note':'Witness\x20server\x20public\x20key'},'evidence':'proof.move\x20L13-24'},{'field':'server_signature','disposition':{'kind':'attribute','note':'Witness\x20server\x20signature'},'evidence':'proof.move\x20L13-24'},{'field':'about','disposition':{'kind':'edge','schema':'proof.about'},'evidence':'proof.move\x20L20'},{'field':'signer','disposition':{'kind':'edge','schema':'proof.signer'},'evidence':'proof.move\x20L21'},{'field':'proof_type','disposition':{'kind':'attribute','note':'Evidence\x20kind\x20discriminator'},'evidence':'proof.move\x20L22'},{'field':'time','disposition':{'kind':'attribute','note':'Signing\x20time\x20(timestamp-ms)'},'evidence':'proof.move\x20L23'}]},TREASURY={'object':'Treasury','moveStruct':'treasury.move\x20L72-83\x20Treasury<T>','fields':[SYS('treasury.move\x20L72-83'),{'field':'description','disposition':{'kind':'attribute','note':'Treasury\x20description'},'evidence':'treasury.move\x20L72-83'},{'field':'balance','disposition':{'kind':'attribute','note':'Current\x20balance\x20(solvency\x20signal)'},'evidence':'treasury.move\x20L75'},{'field':'history','disposition':{'kind':'edge','schema':'treasury.record'},'evidence':'treasury.move\x20L76,L39-46'},{'field':'external_deposit_guard','disposition':{'kind':'edge','schema':'treasury.deposit_guard'},'evidence':'treasury.move\x20L77,L61-65,L138-194'},{'field':'external_withdraw_guard','disposition':{'kind':'edge','schema':'treasury.withdraw_guard'},'evidence':'treasury.move\x20L78,L67-71,L197-250'},{'field':'inflow','disposition':{'kind':'attribute','note':'Lifetime\x20inflow\x20(throughput\x20signal)'},'evidence':'treasury.move\x20L79'},{'field':'outflow','disposition':{'kind':'attribute','note':'Lifetime\x20outflow\x20(throughput\x20signal)'},'evidence':'treasury.move\x20L80'},{'field':'um','disposition':{'kind':'edge','schema':'treasury.um'},'evidence':'treasury.move\x20L81'},{'field':'permission','disposition':{'kind':'edge','schema':'treasury.permission'},'evidence':'treasury.move\x20L82'}]},PAYMENT={'object':'Payment','moveStruct':'payment.move\x20L93-101\x20Payment<T>','fields':[SYS('payment.move\x20L93-101'),{'field':'amount','disposition':{'kind':'attribute','note':'Total\x20payment\x20amount'},'evidence':'payment.move\x20L93-101'},{'field':'time','disposition':{'kind':'attribute','note':'Payment\x20time\x20(timestamp-ms)'},'evidence':'payment.move\x20L93-101'},{'field':'info','disposition':{'kind':'edge','schema':'payment.for_object','coSchemas':['payment.for_guard'],'note':'PaymentInfo\x20struct;\x20for_object/for_guard\x20are\x20the\x20two\x20routing\x20edges;\x20remark/index\x20are\x20attributes'},'evidence':'payment.move\x20L97,L66-71'},{'field':'from_object','disposition':{'kind':'edge','schema':'payment.from_object'},'evidence':'payment.move\x20L98,L149-161'},{'field':'signer','disposition':{'kind':'edge','schema':'payment.signer'},'evidence':'payment.move\x20L99,L111'},{'field':'record','disposition':{'kind':'edge','schema':'payment.recipient','note':'Revenue\x20entries;\x20recipient\x20members\x20are\x20the\x20edge,\x20amounts\x20ride\x20the\x20payload'},'evidence':'payment.move\x20L100,L93-101\x20(<=200)'}]},COIN_WRAPPER={'object':'CoinWrapper','moveStruct':'payment.move\x20L40-44\x20CoinWrapper<T>','fields':[SYS('payment.move\x20L40-44'),{'field':'balance','disposition':{'kind':'transient','note':'Escrowed\x20coin\x20inside\x20the\x20in-flight\x20wrapper;\x20consumed\x20by\x20unwrap'},'evidence':'payment.move\x20L42'},{'field':'payment','disposition':{'kind':'transient','note':'Back-reference\x20to\x20the\x20Payment\x20under\x20construction;\x20process\x20object,\x20deliberately\x20not\x20a\x20graph\x20edge'},'evidence':'payment.move\x20L43,L46-53'}]},RESOURCE={'object':'Resource','moveStruct':'resource.move\x20L18-21\x20Resource','fields':[SYS('resource.move\x20L18-21'),{'field':'table','disposition':{'kind':'nonAddress','note':'AddressTag\x20rows\x20(user\x20tags/nick);\x20projected\x20as\x20node\x20attributes\x20for\x20display,\x20deliberately\x20no\x20structural\x20edge'},'evidence':'resource.move\x20L20'}]},ENTITY_ORDERS={'object':'EntityOrders','moveStruct':'entity_order.move\x20L31-34\x20EntityOrders','fields':[SYS('entity_order.move\x20L31-34'),{'field':'table','disposition':{'kind':'edge','schema':'eoa.order','note':'Per-entity\x20FIFO\x205200\x20order-membership\x20rows\x20(role\x20bits\x20in\x20payload)'},'evidence':'entity_order.move\x20L33,L12'}]},ENTITY_PERMISSION={'object':'EntityPermission','moveStruct':'entity_permission.move\x20L32-35\x20EntityPermission','fields':[SYS('entity_permission.move\x20L32-35'),{'field':'table','disposition':{'kind':'edge','schema':'eoa.permission'},'evidence':'entity_permission.move\x20L34,L32\x20(role\x20bits)'}]},ENTITY_CONTACT={'object':'EntityContact','moveStruct':'entity_contact.move\x20L24-27\x20EntityContact','fields':[SYS('entity_contact.move\x20L24-27'),{'field':'table','disposition':{'kind':'edge','schema':'eoa.contact'},'evidence':'entity_contact.move\x20L26'}]},ENTITY={'object':'Entity','moveStruct':'registrar.move\x20L176-179\x20Entity\x20(0xaab)','fields':[SYS('registrar.move\x20L176-179'),{'field':'table','disposition':{'kind':'edge','schema':'entity.profile','coSchemas':['entity.referrer','entity.resource'],'note':'One\x20AddressInfo\x20row\x20per\x20account\x20backs\x20three\x20co-edges;\x20description/records\x20are\x20attributes'},'evidence':'registrar.move\x20L178,L146-152,L236-242'}]},REGISTRAR={'object':'Registrar','moveStruct':'registrar.move\x20L171-174\x20Registrar\x20(0xaaa)','fields':[SYS('registrar.move\x20L171-174'),{'field':'table','disposition':{'kind':'edge','schema':'target.vote','note':'Per-target\x20ring\x205200\x20of\x20like/dislike/favor\x20votes'},'evidence':'registrar.move\x20L173,L154-171'}]},OBJECT_LINKER_CORE={'object':'ObjectLinkerCore','moveStruct':'object_linker.move\x20L37-40\x20ObjectLinkerCore','fields':[SYS('object_linker.move\x20L37-40'),{'field':'table','disposition':{'kind':'edge','schema':'permission.core_binding','note':'Exact\x20(non-evicting)\x20linker\x20registry'},'evidence':'object_linker.move\x20L39,L88'}]},OBJECT_LINKER_TX={'object':'ObjectLinkerTx','moveStruct':'object_linker.move\x20L43-46\x20ObjectLinkerTx','fields':[SYS('object_linker.move\x20L43-46'),{'field':'table','disposition':{'kind':'edge','schema':'permission.tx_binding','coSchemas':['service.order'],'note':'FIFO\x205200\x20runtime\x20buffer;\x20service.order\x20is\x20the\x20Order-filtered\x20view\x20of\x20the\x20same\x20rows'},'evidence':'object_linker.move\x20L45,L136-140'}]},EVENT_STREAMS={'object':'EventStreams','moveStruct':'append-only\x20event\x20streams\x20(channel\x20D;\x20no\x20struct\x20fields)','fields':[{'field':PackageAddress+'::order::NewOrderEvent','disposition':{'kind':'edge','schema':'service.order_history','coSchemas':['eoa.order_history']},'evidence':'order.move\x20L51-58,L142','oq':'OQ-2/OQ-4'},{'field':PackageAddress+'::arb::ArbEvent','disposition':{'kind':'edge','schema':'arb.history'},'evidence':'arb.move\x20L33-43,L122,L227','oq':'OQ-4'}]};export const FIELD_MANIFEST=[SERVICE,ORDER,DISCOUNT,PROGRESS,MACHINE,ALLOCATION,ARBITRATION,ARB,DEMAND,REWARD,REPOSITORY,CONTACT,PERMISSION,GUARD,PASSPORT,PROOF,TREASURY,PAYMENT,COIN_WRAPPER,RESOURCE,ENTITY_ORDERS,ENTITY_PERMISSION,ENTITY_CONTACT,ENTITY,REGISTRAR,OBJECT_LINKER_CORE,OBJECT_LINKER_TX,EVENT_STREAMS];export const MANIFEST_BY_OBJECT=new Map(FIELD_MANIFEST['map'](a=>[a['object'],a]));export const BUSINESS_OBJECTS=['Service','Order','Discount','Progress','Machine','Allocation','Arbitration','Arb','Demand','Reward','Repository','Contact','Permission','Guard','Passport','Proof','Treasury','Payment'];
|
|
1
|
+
import{PackageAddress}from'@wowok/wowok';const SYS=a=>({'field':'id','disposition':{'kind':'nonAddress','note':'Object\x20identity\x20(UID);\x20system-managed,\x20never\x20a\x20business\x20reference'},'evidence':a}),SERVICE={'object':'Service','moveStruct':'service.move\x20L174-193\x20Service<T>','fields':[SYS('service.move\x20L174-193'),{'field':'description','disposition':{'kind':'attribute','note':'Shop\x20self-description;\x20node\x20property'},'evidence':'service.move\x20L174-193'},{'field':'location','disposition':{'kind':'attribute','note':'Service\x20area\x20/\x20market-opportunity\x20routing\x20key'},'evidence':'service.move\x20L174-193'},{'field':'sales','disposition':{'kind':'attribute','note':'Catalog\x20items\x20for\x20sale\x20(what\x20the\x20shop\x20sells)'},'evidence':'service.move\x20L174-193'},{'field':'repositories','disposition':{'kind':'edge','schema':'service.repository'},'evidence':'service.move\x20L174-193\x20(<=100)'},{'field':'buy_guard','disposition':{'kind':'edge','schema':'service.buy_guard'},'evidence':'service.move\x20L174-193'},{'field':'machine','disposition':{'kind':'edge','schema':'service.machine'},'evidence':'service.move\x20L174-193'},{'field':'bPublished','disposition':{'kind':'attribute','note':'Publish\x20flag;\x20freezes\x20machine/guard\x20settings;\x20analyzer\x20input'},'evidence':'service.move\x20L174-193'},{'field':'bPaused','disposition':{'kind':'attribute','note':'Pause\x20flag;\x20purchasability;\x20analyzer\x20input'},'evidence':'service.move\x20L174-193'},{'field':'customer_required','disposition':{'kind':'attribute','note':'Custom\x20info\x20fields\x20the\x20shop\x20requires\x20from\x20buyers'},'evidence':'service.move\x20L174-193'},{'field':'arbitrations','disposition':{'kind':'edge','schema':'service.arbitration'},'evidence':'service.move\x20L174-193\x20(<=20)'},{'field':'compensation_fund','disposition':{'kind':'attribute','note':'Escrowed\x20compensation\x20balance\x20(arbitration\x20solvency\x20signal)'},'evidence':'service.move\x20L174-193'},{'field':'paused_time','disposition':{'kind':'attribute','note':'When\x20the\x20shop\x20was\x20paused\x20(timestamp-ms)'},'evidence':'service.move\x20L174-193'},{'field':'setting_lock_duration','disposition':{'kind':'attribute','note':'Lock\x20duration\x20gating\x20post-pause\x20setting\x20changes'},'evidence':'service.move\x20L174-193'},{'field':'order_allocators','disposition':{'kind':'edge','schema':'service.order_allocator_guard','note':'Allocators\x20container;\x20guard\x20members\x20are\x20the\x20edge,\x20sharing\x20amounts\x20ride\x20the\x20payload'},'evidence':'service.move\x20L174-193;\x20allocation.move\x20L194-200'},{'field':'rewards','disposition':{'kind':'edge','schema':'service.reward'},'evidence':'service.move\x20L174-193\x20(<=20)'},{'field':'um','disposition':{'kind':'edge','schema':'service.um'},'evidence':'service.move\x20L174-193'},{'field':'permission','disposition':{'kind':'edge','schema':'service.permission'},'evidence':'service.move\x20L174-193'}]},ORDER={'object':'Order','moveStruct':'order.move\x20L59-74\x20Order','fields':[SYS('order.move\x20L59-74'),{'field':'items','disposition':{'kind':'attribute','note':'Purchased\x20line\x20items\x20(what\x20was\x20bought)'},'evidence':'order.move\x20L59-74'},{'field':'discount','disposition':{'kind':'edge','schema':'order.discount'},'evidence':'order.move\x20L59-74'},{'field':'progress','disposition':{'kind':'edge','schema':'order.progress'},'evidence':'order.move\x20L59-74,L130'},{'field':'machine','disposition':{'kind':'edge','schema':'order.machine'},'evidence':'order.move\x20L59-74,L130'},{'field':'amount','disposition':{'kind':'attribute','note':'Total\x20paid\x20(order\x20value\x20signal)'},'evidence':'order.move\x20L59-74'},{'field':'owner','disposition':{'kind':'edge','schema':'order.builder','note':'SDK\x20normalizes\x20owner\x20to\x20builder'},'evidence':'order.move\x20L59-74\x20(owner)'},{'field':'service','disposition':{'kind':'edge','schema':'order.service'},'evidence':'order.move\x20L59-74'},{'field':'dispute','disposition':{'kind':'edge','schema':'order.dispute'},'evidence':'order.move\x20L59-74'},{'field':'agent','disposition':{'kind':'edge','schema':'order.agent'},'evidence':'order.move\x20L59-74,L179\x20(<=10)'},{'field':'allocation','disposition':{'kind':'edge','schema':'order.allocation'},'evidence':'order.move\x20L59-74,L130'},{'field':'claimed_by','disposition':{'kind':'edge','schema':'order.claimed_by'},'evidence':'order.move\x20L59-74,L86-96'},{'field':'required_info','disposition':{'kind':'edge','schema':'order.required_info'},'evidence':'order.move\x20L73,L77-80','oq':'merchant\x20IM\x20address\x20(Service\x27s\x20Contact)\x20or\x20WTS\x20proof\x20(b11/b12)'},{'field':'time','disposition':{'kind':'attribute','note':'Creation\x20time\x20(timestamp-ms)'},'evidence':'order.move\x20L59-74'}]},DISCOUNT={'object':'Discount','moveStruct':'service.move\x20L109-119\x20Discount','fields':[SYS('service.move\x20L109-119'),{'field':'name','disposition':{'kind':'attribute','note':'Discount\x20campaign\x20name'},'evidence':'service.move\x20L109-119'},{'field':'discount_type','disposition':{'kind':'attribute','note':'RATIO\x20(off%)\x20or\x20MINUS\x20(-N)\x20pricing\x20mode'},'evidence':'service.move\x20L109-119'},{'field':'benchmark','disposition':{'kind':'attribute','note':'Minimum-spend\x20condition\x20for\x20the\x20discount'},'evidence':'service.move\x20L109-119'},{'field':'off','disposition':{'kind':'attribute','note':'Discount\x20magnitude\x20(rate\x20or\x20fixed\x20amount)'},'evidence':'service.move\x20L109-119'},{'field':'time_start','disposition':{'kind':'attribute','note':'Validity\x20window\x20start\x20(timestamp-ms)'},'evidence':'service.move\x20L109-119'},{'field':'time_end','disposition':{'kind':'attribute','note':'Validity\x20window\x20end\x20/\x20expiry'},'evidence':'service.move\x20L109-119'},{'field':'service','disposition':{'kind':'edge','schema':'discount.service'},'evidence':'service.move\x20L117','oq':'OQ-3\x20(Discount\x20joins\x20COVERED\x20types)'},{'field':'transferable','disposition':{'kind':'attribute','note':'Whether\x20the\x20discount\x20may\x20be\x20handed\x20to\x20a\x20receiver'},'evidence':'service.move\x20L109-119'}]},PROGRESS={'object':'Progress','moveStruct':'progress.move\x20L75-85\x20Progress','fields':[SYS('progress.move\x20L75-85'),{'field':'machine','disposition':{'kind':'edge','schema':'progress.machine'},'evidence':'progress.move\x20L75-85'},{'field':'context_repositories','disposition':{'kind':'edge','schema':'progress.context_repository'},'evidence':'progress.move\x20L78,L199-208'},{'field':'current','disposition':{'kind':'attribute','note':'Current\x20node\x20name\x20(completion\x20determination\x20input)'},'evidence':'progress.move\x20L75-85'},{'field':'task','disposition':{'kind':'edge','schema':'progress.task'},'evidence':'progress.move\x20L80'},{'field':'namedOperator','disposition':{'kind':'edge','schema':'progress.named_operator','note':'Container\x20struct;\x20operators[]\x20members\x20are\x20the\x20edge'},'evidence':'progress.move\x20L81\x20(<=80)'},{'field':'session','disposition':{'kind':'attribute','note':'Per-node\x20session\x20records\x20(runtime\x20state)'},'evidence':'progress.move\x20L82'},{'field':'history','disposition':{'kind':'attribute','note':'Node-history\x20ParentTableVec\x20(runtime\x20audit\x20trail,\x20not\x20enumerated\x20as\x20edges)'},'evidence':'progress.move\x20L83'},{'field':'current_time','disposition':{'kind':'attribute','note':'Last\x20activity\x20clock\x20(staleness\x20signal)'},'evidence':'progress.move\x20L84'}]},MACHINE={'object':'Machine','moveStruct':'machine.move\x20L298-307\x20Machine','fields':[SYS('machine.move\x20L298-307'),{'field':'description','disposition':{'kind':'attribute','note':'Workflow\x20description'},'evidence':'machine.move\x20L298-307'},{'field':'nodes','disposition':{'kind':'edge','schema':'machine.node','coSchemas':['wf.transition','wf.forward_guard'],'note':'ParentLinkedTable\x20walk\x20yields\x20node\x20rows;\x20transitions\x20and\x20forward\x20guards\x20derive\x20from\x20the\x20same\x20rows'},'evidence':'machine.move\x20L301'},{'field':'consensus_repositories','disposition':{'kind':'edge','schema':'machine.consensus_repository'},'evidence':'machine.move\x20L302'},{'field':'bPaused','disposition':{'kind':'attribute','note':'Workflow\x20pause\x20flag'},'evidence':'machine.move\x20L298-307'},{'field':'bPublished','disposition':{'kind':'attribute','note':'Publish\x20flag;\x20freezes\x20the\x20node\x20table'},'evidence':'machine.move\x20L298-307'},{'field':'um','disposition':{'kind':'edge','schema':'machine.um'},'evidence':'machine.move\x20L305'},{'field':'permission','disposition':{'kind':'edge','schema':'machine.permission'},'evidence':'machine.move\x20L306'}]},ALLOCATION={'object':'Allocation','moveStruct':'allocation.move\x20L196-202\x20Allocation<T>','fields':[SYS('allocation.move\x20L196-202'),{'field':'balance','disposition':{'kind':'attribute','note':'Remaining\x20pool\x20balance\x20(solvency\x20signal)'},'evidence':'allocation.move\x20L196-202'},{'field':'allocators','disposition':{'kind':'edge','schema':'allocation.guard','note':'Allocator\x20segments;\x20guard\x20members\x20are\x20the\x20edge,\x20sharing\x20amounts\x20ride\x20the\x20payload'},'evidence':'allocation.move\x20L199,L194-200'},{'field':'payment_info','disposition':{'kind':'edge','schema':'allocation.for_object','coSchemas':['allocation.for_guard'],'note':'PaymentInfo\x20captured\x20at\x20pool\x20create;\x20remark/index\x20are\x20attributes'},'evidence':'allocation.move\x20L200;\x20payment.move\x20L66-71'},{'field':'payment','disposition':{'kind':'edge','schema':'allocation.payment'},'evidence':'allocation.move\x20L201,L307-316'}]},ARBITRATION={'object':'Arbitration','moveStruct':'arbitration.move\x20L47-58\x20Arbitration<T>','fields':[SYS('arbitration.move\x20L47-58'),{'field':'description','disposition':{'kind':'attribute','note':'Arbitration\x20service\x20self-description'},'evidence':'arbitration.move\x20L47-58'},{'field':'location','disposition':{'kind':'attribute','note':'Jurisdiction\x20/\x20service\x20area'},'evidence':'arbitration.move\x20L47-58'},{'field':'voting_guard','disposition':{'kind':'edge','schema':'arbitration.voting_guard','note':'Empty\x20vector\x20=\x20open\x20voting;\x20members\x20carry\x20vote\x20weight'},'evidence':'arbitration.move\x20L51'},{'field':'usage_guard','disposition':{'kind':'edge','schema':'arbitration.usage_guard'},'evidence':'arbitration.move\x20L52'},{'field':'fee','disposition':{'kind':'attribute','note':'Case\x20filing\x20fee'},'evidence':'arbitration.move\x20L53'},{'field':'balance','disposition':{'kind':'attribute','note':'Service\x20balance\x20(solvency\x20signal)'},'evidence':'arbitration.move\x20L54'},{'field':'bPaused','disposition':{'kind':'attribute','note':'Service\x20pause\x20flag'},'evidence':'arbitration.move\x20L55'},{'field':'um','disposition':{'kind':'edge','schema':'arbitration.um'},'evidence':'arbitration.move\x20L56'},{'field':'permission','disposition':{'kind':'edge','schema':'arbitration.permission'},'evidence':'arbitration.move\x20L57'}]},ARB={'object':'Arb','moveStruct':'arb.move\x20L95-110\x20Arb<T>','fields':[SYS('arb.move\x20L95-110'),{'field':'description','disposition':{'kind':'attribute','note':'Case\x20description'},'evidence':'arb.move\x20L95-110'},{'field':'order','disposition':{'kind':'edge','schema':'arb.order'},'evidence':'arb.move\x20L98'},{'field':'arbitration','disposition':{'kind':'edge','schema':'arb.arbitration_service'},'evidence':'arb.move\x20L99'},{'field':'voted','disposition':{'kind':'edge','schema':'arb.voter','note':'Voter\x20members\x20are\x20the\x20edge;\x20weights/agrees\x20ride\x20the\x20payload'},'evidence':'arb.move\x20L100\x20(<=520)'},{'field':'proposition','disposition':{'kind':'attribute','note':'Propositions\x20and\x20votes\x20(state-machine\x20input)'},'evidence':'arb.move\x20L101'},{'field':'fee','disposition':{'kind':'attribute','note':'Escrowed\x20case\x20fee'},'evidence':'arb.move\x20L102'},{'field':'feedback','disposition':{'kind':'attribute','note':'Ruling\x20feedback\x20text'},'evidence':'arb.move\x20L103'},{'field':'indemnity','disposition':{'kind':'attribute','note':'Ruled\x20indemnity\x20(compensation\x20outcome)'},'evidence':'arb.move\x20L104'},{'field':'voting_deadline','disposition':{'kind':'attribute','note':'Voting\x20deadline\x20(timestamp-ms)'},'evidence':'arb.move\x20L105'},{'field':'objection','disposition':{'kind':'attribute','note':'Objection\x20record'},'evidence':'arb.move\x20L106'},{'field':'status','disposition':{'kind':'attribute','note':'Case\x20state-machine\x20stage\x20(analyzer\x20input)'},'evidence':'arb.move\x20L107'},{'field':'compensation_time','disposition':{'kind':'attribute','note':'When\x20compensation\x20executed\x20(timestamp-ms)'},'evidence':'arb.move\x20L108'},{'field':'time','disposition':{'kind':'attribute','note':'Case\x20creation\x20time\x20(timestamp-ms)'},'evidence':'arb.move\x20L109'}]},DEMAND={'object':'Demand','moveStruct':'demand.move\x20L67-76\x20Demand','fields':[SYS('demand.move\x20L67-76'),{'field':'description','disposition':{'kind':'attribute','note':'What\x20the\x20demanding\x20side\x20asks\x20for'},'evidence':'demand.move\x20L67-76'},{'field':'location','disposition':{'kind':'attribute','note':'Demand\x20area'},'evidence':'demand.move\x20L67-76'},{'field':'rewards','disposition':{'kind':'edge','schema':'demand.reward'},'evidence':'demand.move\x20L71'},{'field':'guards','disposition':{'kind':'edge','schema':'demand.guard','note':'Empty\x20=\x20bare\x20present\x20(no\x20acceptance\x20gate)'},'evidence':'demand.move\x20L72'},{'field':'presenters','disposition':{'kind':'edge','schema':'demand.presenter','coSchemas':['demand.presenter_service'],'note':'One\x20ParentTable\x20read\x20backs\x20both\x20the\x20presenter\x20edge\x20and\x20the\x20same-row\x20sub-service\x20co-edge'},'evidence':'demand.move\x20L73,L46-54'},{'field':'um','disposition':{'kind':'edge','schema':'demand.um'},'evidence':'demand.move\x20L74'},{'field':'permission','disposition':{'kind':'edge','schema':'demand.permission'},'evidence':'demand.move\x20L75'}]},REWARD={'object':'Reward','moveStruct':'reward.move\x20L129-138\x20Reward<T>','fields':[SYS('reward.move\x20L129-138'),{'field':'description','disposition':{'kind':'attribute','note':'Pool\x20purpose\x20description'},'evidence':'reward.move\x20L129-138'},{'field':'guards','disposition':{'kind':'edge','schema':'reward.guard','note':'Members\x20carry\x20recipient/amount/expiration\x20semantics\x20in\x20the\x20payload'},'evidence':'reward.move\x20L132'},{'field':'balance','disposition':{'kind':'attribute','note':'Remaining\x20pool\x20balance\x20(solvency\x20signal)'},'evidence':'reward.move\x20L133'},{'field':'guard_not_added_expiration_time','disposition':{'kind':'attribute','note':'No-guard\x20window:\x20blocks\x20guard_add\x20AND\x20balance\x20withdraw\x20until\x20elapsed'},'evidence':'reward.move\x20L134'},{'field':'record','disposition':{'kind':'edge','schema':'reward.claim'},'evidence':'reward.move\x20L135,L117-138'},{'field':'um','disposition':{'kind':'edge','schema':'reward.um'},'evidence':'reward.move\x20L136'},{'field':'permission','disposition':{'kind':'edge','schema':'reward.permission'},'evidence':'reward.move\x20L137'}]},REPOSITORY={'object':'Repository','moveStruct':'repository.move\x20L461-469\x20Repository','fields':[SYS('repository.move\x20L461-469'),{'field':'description','disposition':{'kind':'attribute','note':'Repository\x20description'},'evidence':'repository.move\x20L461-469'},{'field':'policies','disposition':{'kind':'edge','schema':'repository.policy_guard','coSchemas':['repository.quote_guard'],'note':'PolicyRule\x20vector;\x20write_guard[].guard\x20members\x20and\x20quote_guard\x20are\x20two\x20deep\x20edges;\x20policy\x20name\x20is\x20an\x20attribute'},'evidence':'repository.move\x20L464,L106-113'},{'field':'data','disposition':{'kind':'edge','schema':'repository.data_about','note':'DataKey.id\x20carries\x20the\x20about-object;\x20row\x20key\x20name\x20rides\x20the\x20payload'},'evidence':'repository.move\x20L465,L456-459'},{'field':'rewards','disposition':{'kind':'edge','schema':'repository.reward'},'evidence':'repository.move\x20L466'},{'field':'um','disposition':{'kind':'edge','schema':'repository.um'},'evidence':'repository.move\x20L467'},{'field':'permission','disposition':{'kind':'edge','schema':'repository.permission'},'evidence':'repository.move\x20L468'}]},CONTACT={'object':'Contact','moveStruct':'contact.move\x20L25-31\x20Contact','fields':[SYS('contact.move\x20L25-31'),{'field':'description','disposition':{'kind':'attribute','note':'Roster\x20description'},'evidence':'contact.move\x20L25-31'},{'field':'location','disposition':{'kind':'attribute','note':'Roster\x20area'},'evidence':'contact.move\x20L25-31'},{'field':'ims','disposition':{'kind':'edge','schema':'contact.im','note':'Im.at\x20members\x20are\x20the\x20edge;\x20status/join_time/description\x20ride\x20the\x20payload'},'evidence':'contact.move\x20L29,L18-23,L85-105','oq':'OQ-1\x20(at\x20verified\x20EOA)'},{'field':'permission','disposition':{'kind':'edge','schema':'contact.permission'},'evidence':'contact.move\x20L30'}]},PERMISSION={'object':'Permission','moveStruct':'permission.move\x20L33-41\x20Permission','fields':[SYS('permission.move\x20L33-41'),{'field':'owner','disposition':{'kind':'edge','schema':'permission.owner'},'evidence':'permission.move\x20L35,L537-543'},{'field':'admin','disposition':{'kind':'edge','schema':'permission.admin'},'evidence':'permission.move\x20L36'},{'field':'description','disposition':{'kind':'attribute','note':'Group\x20description'},'evidence':'permission.move\x20L37'},{'field':'remark','disposition':{'kind':'attribute','note':'Permission\x20remark\x20records'},'evidence':'permission.move\x20L38'},{'field':'table','disposition':{'kind':'edge','schema':'permission.entity','note':'ParentLinkedTable\x20of\x20EOA/Guard\x20members\x20with\x20perm-index\x20bits'},'evidence':'permission.move\x20L39'},{'field':'um','disposition':{'kind':'edge','schema':'permission.um'},'evidence':'permission.move\x20L40'}]},GUARD={'object':'Guard','moveStruct':'guard.move\x20L84-94\x20Guard','fields':[SYS('guard.move\x20L84-94'),{'field':'description','disposition':{'kind':'attribute','note':'Gate\x20description'},'evidence':'guard.move\x20L84-94'},{'field':'table','disposition':{'kind':'attribute','note':'Submission\x20slot\x20definitions\x20(identifier\x20->\x20type\x20mapping;\x20Gate\x20analysis\x20property)'},'evidence':'guard.move\x20L87'},{'field':'validated','disposition':{'kind':'attribute','note':'Validated\x20slot\x20types\x20(Gate\x20analysis\x20property)'},'evidence':'guard.move\x20L88'},{'field':'input','disposition':{'kind':'attribute','note':'Static\x20input\x20bytes\x20for\x20the\x20gate\x20predicate'},'evidence':'guard.move\x20L89'},{'field':'relies','disposition':{'kind':'edge','schema':'guard.relies'},'evidence':'guard.move\x20L90\x20(<=4,\x20one\x20level)'},{'field':'relies_logic_and','disposition':{'kind':'attribute','note':'AND/OR\x20combination\x20of\x20relied\x20gates'},'evidence':'guard.move\x20L91'},{'field':'immutable','disposition':{'kind':'attribute','note':'Whether\x20the\x20gate\x20definition\x20is\x20frozen'},'evidence':'guard.move\x20L92'},{'field':'rep','disposition':{'kind':'attribute','note':'Last\x20query-validation\x20outcome\x20flag'},'evidence':'guard.move\x20L93'}]},PASSPORT={'object':'Passport','moveStruct':'passport.move\x20L41-50\x20Passport','fields':[SYS('passport.move\x20L41-50'),{'field':'guard','disposition':{'kind':'edge','schema':'passport.guard','coSchemas':['passport.ticket_relies'],'note':'GuardInfo\x20tickets;\x20ticket.guard\x20is\x20the\x20primary\x20edge,\x20ticket.relies\x20the\x20same-ticket\x20co-edge;\x20result/impack\x20flags\x20are\x20attributes'},'evidence':'passport.move\x20L43,L32-39'},{'field':'result','disposition':{'kind':'attribute','note':'Overall\x20verification\x20outcome'},'evidence':'passport.move\x20L44'},{'field':'tx_hash','disposition':{'kind':'attribute','note':'Verification\x20transaction\x20digest'},'evidence':'passport.move\x20L45'},{'field':'impack','disposition':{'kind':'edge','schema':'passport.impack'},'evidence':'passport.move\x20L46,L227-242'},{'field':'time','disposition':{'kind':'attribute','note':'Verification\x20time\x20(timestamp-ms)'},'evidence':'passport.move\x20L47'},{'field':'signer','disposition':{'kind':'edge','schema':'passport.signer'},'evidence':'passport.move\x20L48,L94-98'},{'field':'has_verified','disposition':{'kind':'attribute','note':'Whether\x20the\x20credential\x20was\x20consumed'},'evidence':'passport.move\x20L49'}]},PROOF={'object':'Proof','moveStruct':'proof.move\x20L13-24\x20Proof','fields':[SYS('proof.move\x20L13-24'),{'field':'description','disposition':{'kind':'attribute','note':'Evidence\x20description'},'evidence':'proof.move\x20L13-24'},{'field':'proof','disposition':{'kind':'attribute','note':'Evidence\x20payload\x20string'},'evidence':'proof.move\x20L13-24'},{'field':'item_count','disposition':{'kind':'attribute','note':'Item\x20count\x20covered\x20by\x20the\x20evidence'},'evidence':'proof.move\x20L13-24'},{'field':'server_pubkey','disposition':{'kind':'attribute','note':'Witness\x20server\x20public\x20key'},'evidence':'proof.move\x20L13-24'},{'field':'server_signature','disposition':{'kind':'attribute','note':'Witness\x20server\x20signature'},'evidence':'proof.move\x20L13-24'},{'field':'about','disposition':{'kind':'edge','schema':'proof.about'},'evidence':'proof.move\x20L20'},{'field':'signer','disposition':{'kind':'edge','schema':'proof.signer'},'evidence':'proof.move\x20L21'},{'field':'proof_type','disposition':{'kind':'attribute','note':'Evidence\x20kind\x20discriminator'},'evidence':'proof.move\x20L22'},{'field':'time','disposition':{'kind':'attribute','note':'Signing\x20time\x20(timestamp-ms)'},'evidence':'proof.move\x20L23'}]},TREASURY={'object':'Treasury','moveStruct':'treasury.move\x20L72-83\x20Treasury<T>','fields':[SYS('treasury.move\x20L72-83'),{'field':'description','disposition':{'kind':'attribute','note':'Treasury\x20description'},'evidence':'treasury.move\x20L72-83'},{'field':'balance','disposition':{'kind':'attribute','note':'Current\x20balance\x20(solvency\x20signal)'},'evidence':'treasury.move\x20L75'},{'field':'history','disposition':{'kind':'edge','schema':'treasury.record'},'evidence':'treasury.move\x20L76,L39-46'},{'field':'external_deposit_guard','disposition':{'kind':'edge','schema':'treasury.deposit_guard'},'evidence':'treasury.move\x20L77,L61-65,L138-194'},{'field':'external_withdraw_guard','disposition':{'kind':'edge','schema':'treasury.withdraw_guard'},'evidence':'treasury.move\x20L78,L67-71,L197-250'},{'field':'inflow','disposition':{'kind':'attribute','note':'Lifetime\x20inflow\x20(throughput\x20signal)'},'evidence':'treasury.move\x20L79'},{'field':'outflow','disposition':{'kind':'attribute','note':'Lifetime\x20outflow\x20(throughput\x20signal)'},'evidence':'treasury.move\x20L80'},{'field':'um','disposition':{'kind':'edge','schema':'treasury.um'},'evidence':'treasury.move\x20L81'},{'field':'permission','disposition':{'kind':'edge','schema':'treasury.permission'},'evidence':'treasury.move\x20L82'}]},PAYMENT={'object':'Payment','moveStruct':'payment.move\x20L93-101\x20Payment<T>','fields':[SYS('payment.move\x20L93-101'),{'field':'amount','disposition':{'kind':'attribute','note':'Total\x20payment\x20amount'},'evidence':'payment.move\x20L93-101'},{'field':'time','disposition':{'kind':'attribute','note':'Payment\x20time\x20(timestamp-ms)'},'evidence':'payment.move\x20L93-101'},{'field':'info','disposition':{'kind':'edge','schema':'payment.for_object','coSchemas':['payment.for_guard'],'note':'PaymentInfo\x20struct;\x20for_object/for_guard\x20are\x20the\x20two\x20routing\x20edges;\x20remark/index\x20are\x20attributes'},'evidence':'payment.move\x20L97,L66-71'},{'field':'from_object','disposition':{'kind':'edge','schema':'payment.from_object'},'evidence':'payment.move\x20L98,L149-161'},{'field':'signer','disposition':{'kind':'edge','schema':'payment.signer'},'evidence':'payment.move\x20L99,L111'},{'field':'record','disposition':{'kind':'edge','schema':'payment.recipient','note':'Revenue\x20entries;\x20recipient\x20members\x20are\x20the\x20edge,\x20amounts\x20ride\x20the\x20payload'},'evidence':'payment.move\x20L100,L93-101\x20(<=200)'}]},COIN_WRAPPER={'object':'CoinWrapper','moveStruct':'payment.move\x20L40-44\x20CoinWrapper<T>','fields':[SYS('payment.move\x20L40-44'),{'field':'balance','disposition':{'kind':'transient','note':'Escrowed\x20coin\x20inside\x20the\x20in-flight\x20wrapper;\x20consumed\x20by\x20unwrap'},'evidence':'payment.move\x20L42'},{'field':'payment','disposition':{'kind':'transient','note':'Back-reference\x20to\x20the\x20Payment\x20under\x20construction;\x20process\x20object,\x20deliberately\x20not\x20a\x20graph\x20edge'},'evidence':'payment.move\x20L43,L46-53'}]},RESOURCE={'object':'Resource','moveStruct':'resource.move\x20L18-21\x20Resource','fields':[SYS('resource.move\x20L18-21'),{'field':'table','disposition':{'kind':'nonAddress','note':'AddressTag\x20rows\x20(user\x20tags/nick);\x20projected\x20as\x20node\x20attributes\x20for\x20display,\x20deliberately\x20no\x20structural\x20edge'},'evidence':'resource.move\x20L20'}]},ENTITY_ORDERS={'object':'EntityOrders','moveStruct':'entity_order.move\x20L31-34\x20EntityOrders','fields':[SYS('entity_order.move\x20L31-34'),{'field':'table','disposition':{'kind':'edge','schema':'eoa.order','note':'Per-entity\x20FIFO\x205200\x20order-membership\x20rows\x20(role\x20bits\x20in\x20payload)'},'evidence':'entity_order.move\x20L33,L12'}]},ENTITY_PERMISSION={'object':'EntityPermission','moveStruct':'entity_permission.move\x20L32-35\x20EntityPermission','fields':[SYS('entity_permission.move\x20L32-35'),{'field':'table','disposition':{'kind':'edge','schema':'eoa.permission'},'evidence':'entity_permission.move\x20L34,L32\x20(role\x20bits)'}]},ENTITY_CONTACT={'object':'EntityContact','moveStruct':'entity_contact.move\x20L24-27\x20EntityContact','fields':[SYS('entity_contact.move\x20L24-27'),{'field':'table','disposition':{'kind':'edge','schema':'eoa.contact'},'evidence':'entity_contact.move\x20L26'}]},ENTITY={'object':'Entity','moveStruct':'registrar.move\x20L176-179\x20Entity\x20(0xaab)','fields':[SYS('registrar.move\x20L176-179'),{'field':'table','disposition':{'kind':'edge','schema':'entity.profile','coSchemas':['entity.referrer','entity.resource'],'note':'One\x20AddressInfo\x20row\x20per\x20account\x20backs\x20three\x20co-edges;\x20description/records\x20are\x20attributes'},'evidence':'registrar.move\x20L178,L146-152,L236-242'}]},REGISTRAR={'object':'Registrar','moveStruct':'registrar.move\x20L171-174\x20Registrar\x20(0xaaa)','fields':[SYS('registrar.move\x20L171-174'),{'field':'table','disposition':{'kind':'edge','schema':'target.vote','note':'Per-target\x20ring\x205200\x20of\x20like/dislike/favor\x20votes'},'evidence':'registrar.move\x20L173,L154-171'}]},OBJECT_LINKER_CORE={'object':'ObjectLinkerCore','moveStruct':'object_linker.move\x20L37-40\x20ObjectLinkerCore','fields':[SYS('object_linker.move\x20L37-40'),{'field':'table','disposition':{'kind':'edge','schema':'permission.core_binding','note':'Exact\x20(non-evicting)\x20linker\x20registry'},'evidence':'object_linker.move\x20L39,L88'}]},OBJECT_LINKER_TX={'object':'ObjectLinkerTx','moveStruct':'object_linker.move\x20L43-46\x20ObjectLinkerTx','fields':[SYS('object_linker.move\x20L43-46'),{'field':'table','disposition':{'kind':'edge','schema':'permission.tx_binding','coSchemas':['service.order'],'note':'FIFO\x205200\x20runtime\x20buffer;\x20service.order\x20is\x20the\x20Order-filtered\x20view\x20of\x20the\x20same\x20rows'},'evidence':'object_linker.move\x20L45,L136-140'}]},EVENT_STREAMS={'object':'EventStreams','moveStruct':'append-only\x20event\x20streams\x20(channel\x20D;\x20no\x20struct\x20fields)','fields':[{'field':PackageAddress+'::order::NewOrderEvent','disposition':{'kind':'edge','schema':'service.order_history','coSchemas':['eoa.order_history']},'evidence':'order.move\x20L51-58,L142','oq':'OQ-2/OQ-4'},{'field':PackageAddress+'::arb::ArbEvent','disposition':{'kind':'edge','schema':'arb.history'},'evidence':'arb.move\x20L33-43,L122,L227','oq':'OQ-4'}]};export const FIELD_MANIFEST=[SERVICE,ORDER,DISCOUNT,PROGRESS,MACHINE,ALLOCATION,ARBITRATION,ARB,DEMAND,REWARD,REPOSITORY,CONTACT,PERMISSION,GUARD,PASSPORT,PROOF,TREASURY,PAYMENT,COIN_WRAPPER,RESOURCE,ENTITY_ORDERS,ENTITY_PERMISSION,ENTITY_CONTACT,ENTITY,REGISTRAR,OBJECT_LINKER_CORE,OBJECT_LINKER_TX,EVENT_STREAMS];export const MANIFEST_BY_OBJECT=new Map(FIELD_MANIFEST['map'](a=>[a['object'],a]));export const BUSINESS_OBJECTS=['Service','Order','Discount','Progress','Machine','Allocation','Arbitration','Arb','Demand','Reward','Repository','Contact','Permission','Guard','Passport','Proof','Treasury','Payment'];
|
package/dist/harness/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./types.js";
|
|
2
2
|
export * from "./verify.js";
|
|
3
3
|
export * from "./recover.js";
|
|
4
|
+
export * from "./operation-id.js";
|
|
4
5
|
import type { VerifyInput } from "./verify.js";
|
|
5
6
|
import type { VerifyReport, RecoveryAction } from "./types.js";
|
|
6
7
|
export declare class Harness {
|
package/dist/harness/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from'./types.js';export*from'./verify.js';export*from'./recover.js';import{verify}from'./verify.js';import{recover,resetAttempts,getBackoffDelay,RECOVERY_RULES}from'./recover.js';export class Harness{['verify'](a){return verify(a);}['recover'](a,b,c){return recover(a,b,c);}['resetRecovery'](a){resetAttempts(a);}['getBackoffDelay'](a){return getBackoffDelay(a);}['getRecoveryRules'](){return RECOVERY_RULES;}}let singleton=null;export function getHarness(){return!singleton&&(singleton=new Harness()),singleton;}export function setHarness(a){singleton=a;}
|
|
1
|
+
export*from'./types.js';export*from'./verify.js';export*from'./recover.js';export*from'./operation-id.js';import{verify}from'./verify.js';import{recover,resetAttempts,getBackoffDelay,RECOVERY_RULES}from'./recover.js';export class Harness{['verify'](a){return verify(a);}['recover'](a,b,c){return recover(a,b,c);}['resetRecovery'](a){resetAttempts(a);}['getBackoffDelay'](a){return getBackoffDelay(a);}['getRecoveryRules'](){return RECOVERY_RULES;}}let singleton=null;export function getHarness(){return!singleton&&(singleton=new Harness()),singleton;}export function setHarness(a){singleton=a;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function stableOperationId(operationType: string, data?: unknown): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function stableOperationId(a,b){return a+':'+fnv1a(canonicalJson(b??null))['toString'](0x10);}function fnv1a(a){let b=0x811c9dc5;for(let c=0x0;c<a['length'];c++){b^=a['charCodeAt'](c),b=Math['imul'](b,0x1000193)>>>0x0;}return b>>>0x0;}function canonicalJson(a){if(a===null||typeof a!=='object')return JSON['stringify'](a)??'null';if(Array['isArray'](a))return'['+a['map'](canonicalJson)['join'](',')+']';const b=Object['keys'](a)['sort']()['map'](c=>JSON['stringify'](c)+':'+canonicalJson(a[c]));return'{'+b['join'](',')+'}';}
|