@wowok/agent-mcp 3.0.4 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evaluation/path-reasoning.d.ts +4 -2
- package/dist/evaluation/path-reasoning.js +1 -1
- package/dist/extensions/constraint-registry.d.ts +2 -2
- package/dist/extensions/constraint-registry.js +1 -1
- package/dist/extensions/custom-registry-file.d.ts +22 -0
- package/dist/extensions/custom-registry-file.js +1 -0
- package/dist/extensions/index.d.ts +2 -1
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/industry-pack.d.ts +7 -0
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/extensions/metric-registry.d.ts +2 -2
- package/dist/extensions/metric-registry.js +1 -1
- package/dist/extensions/modes.js +1 -1
- package/dist/extensions/registry.d.ts +2 -2
- package/dist/extensions/registry.js +1 -1
- package/dist/extensions/types.d.ts +4 -0
- package/dist/goal/GoalEngine.d.ts +13 -1
- package/dist/goal/GoalEngine.js +1 -1
- package/dist/goal/next-steps.d.ts +12 -0
- package/dist/goal/next-steps.js +1 -0
- package/dist/goal/pursue.d.ts +18 -0
- package/dist/goal/pursue.js +1 -0
- package/dist/goal/types.d.ts +72 -0
- package/dist/goal/types.js +1 -1
- package/dist/graph/onchain/analyze.d.ts +44 -0
- package/dist/graph/onchain/analyze.js +1 -0
- package/dist/graph/onchain/analyze.spec.d.ts +1 -0
- package/dist/graph/onchain/analyze.spec.js +1 -0
- package/dist/graph/onchain/anti-cheat.d.ts +39 -0
- package/dist/graph/onchain/anti-cheat.js +1 -0
- package/dist/graph/onchain/anti-cheat.spec.d.ts +1 -0
- package/dist/graph/onchain/anti-cheat.spec.js +1 -0
- package/dist/graph/onchain/dataplane.d.ts +44 -0
- package/dist/graph/onchain/dataplane.js +1 -0
- package/dist/graph/onchain/edge-schema.d.ts +60 -0
- package/dist/graph/onchain/edge-schema.js +1 -0
- package/dist/graph/onchain/expand.d.ts +4 -0
- package/dist/graph/onchain/expand.js +1 -0
- package/dist/graph/onchain/extract.d.ts +21 -0
- package/dist/graph/onchain/extract.js +1 -0
- package/dist/graph/onchain/index.d.ts +17 -0
- package/dist/graph/onchain/index.js +1 -0
- package/dist/graph/onchain/interest.d.ts +10 -0
- package/dist/graph/onchain/interest.js +1 -0
- package/dist/graph/onchain/interest.spec.d.ts +1 -0
- package/dist/graph/onchain/interest.spec.js +1 -0
- package/dist/graph/onchain/onchain.spec.d.ts +1 -0
- package/dist/graph/onchain/onchain.spec.js +1 -0
- package/dist/graph/onchain/order-status.d.ts +53 -0
- package/dist/graph/onchain/order-status.js +1 -0
- package/dist/graph/onchain/project-relationship.d.ts +3 -0
- package/dist/graph/onchain/project-relationship.js +1 -0
- package/dist/graph/onchain/sdk-batch.d.ts +117 -0
- package/dist/graph/onchain/sdk-batch.js +1 -0
- package/dist/graph/onchain/sdk-dataplane.d.ts +40 -0
- package/dist/graph/onchain/sdk-dataplane.js +1 -0
- package/dist/graph/onchain/strategy.d.ts +54 -0
- package/dist/graph/onchain/strategy.js +1 -0
- package/dist/graph/onchain/strategy.spec.d.ts +1 -0
- package/dist/graph/onchain/strategy.spec.js +1 -0
- package/dist/graph/onchain/types.d.ts +238 -0
- package/dist/graph/onchain/types.js +1 -0
- package/dist/graph/onchain/viewport.d.ts +5 -0
- package/dist/graph/onchain/viewport.js +1 -0
- package/dist/harness/recover.js +1 -1
- package/dist/index.js +1 -1
- package/dist/intent/enrich.js +1 -1
- package/dist/keeper/detectors.d.ts +1 -1
- package/dist/keeper/detectors.js +1 -1
- package/dist/knowledge/account-marks.js +1 -1
- package/dist/knowledge/anti-cheat.d.ts +2 -37
- package/dist/knowledge/anti-cheat.js +1 -1
- package/dist/knowledge/contract-invariants.js +1 -1
- package/dist/knowledge/getting-started.d.ts +37 -0
- package/dist/knowledge/getting-started.js +1 -0
- package/dist/knowledge/goal-completion.js +1 -1
- package/dist/knowledge/guard-render.d.ts +1 -0
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-submission-brief.d.ts +83 -0
- package/dist/knowledge/guard-submission-brief.js +1 -0
- package/dist/knowledge/guard-submission-prompt.d.ts +13 -0
- package/dist/knowledge/guard-submission-prompt.js +1 -1
- package/dist/knowledge/index.d.ts +6 -4
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/industry-strategy.d.ts +91 -0
- package/dist/knowledge/industry-strategy.js +1 -0
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/market-metrics.d.ts +14 -3
- package/dist/knowledge/market-metrics.js +1 -1
- package/dist/knowledge/migration-preflight.js +1 -1
- package/dist/knowledge/operation-dictionary.d.ts +1 -1
- package/dist/knowledge/safety-rules.js +1 -1
- package/dist/knowledge/scenario-topology.d.ts +6 -1
- package/dist/knowledge/scenario-topology.js +1 -1
- package/dist/knowledge/service-risk-node.d.ts +3 -0
- package/dist/knowledge/service-risk-node.js +1 -0
- package/dist/knowledge/service-risk.d.ts +2 -0
- package/dist/knowledge/service-risk.js +1 -1
- package/dist/knowledge/service-templates.d.ts +2 -0
- package/dist/knowledge/service-templates.js +1 -1
- package/dist/knowledge/strategy-manuals.d.ts +17 -0
- package/dist/knowledge/strategy-manuals.js +1 -0
- package/dist/knowledge/supply-chain.d.ts +3 -1
- package/dist/knowledge/supply-chain.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workflow-guidance.d.ts +3 -118
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/knowledge/workspace-lists.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/monitor/ScopeResolver.js +1 -1
- package/dist/participation/radar-core.d.ts +15 -15
- package/dist/participation/radar-core.js +1 -1
- package/dist/persona/analyzer.d.ts +2 -1
- package/dist/persona/bridge.d.ts +5 -1
- package/dist/persona/bridge.js +1 -1
- package/dist/persona/defaults.js +1 -1
- package/dist/persona/distill-goal.d.ts +7 -1
- package/dist/persona/distill-goal.js +1 -1
- package/dist/persona/index.d.ts +13 -3
- package/dist/persona/index.js +1 -1
- package/dist/persona/model.d.ts +12 -2
- package/dist/persona/model.js +1 -1
- package/dist/persona/overrides.d.ts +1 -0
- package/dist/persona/overrides.js +1 -1
- package/dist/persona/topology-focus.d.ts +29 -0
- package/dist/persona/topology-focus.js +1 -0
- package/dist/persona/types.d.ts +81 -0
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/context-assembly.js +1 -1
- package/dist/playbooks/service-build/machine-nodes.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/playbooks/service-build/relationship-profile.d.ts +1 -0
- package/dist/playbooks/service-build/relationship-profile.js +1 -1
- package/dist/playbooks/service-build/service-panorama.d.ts +4 -0
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/topology-query.d.ts +14 -0
- package/dist/playbooks/service-build/topology-query.js +1 -0
- package/dist/role/index.d.ts +1 -0
- package/dist/role/index.js +1 -1
- package/dist/role/profiles.d.ts +26 -0
- package/dist/role/profiles.js +1 -0
- package/dist/safety/confirm-gate.d.ts +4 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/call/allocation.d.ts +6 -6
- package/dist/schema/call/bridge.d.ts +1 -1
- package/dist/schema/call/guard.d.ts +20 -20
- package/dist/schema/call/repository.js +1 -1
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +4 -4
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/employee/index.d.ts +7 -7
- package/dist/schema/evaluation/index.d.ts +22 -9
- package/dist/schema/evaluation/index.js +1 -1
- package/dist/schema/goal/index.d.ts +37 -1
- package/dist/schema/goal/index.js +1 -1
- package/dist/schema/goal/planning.d.ts +1 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +7 -0
- package/dist/schema/industry-pack/index.js +1 -1
- package/dist/schema/local/index.d.ts +8 -4
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.d.ts +318 -64
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +146 -11
- package/dist/schema/operations.js +1 -1
- package/dist/schema/persona/index.d.ts +15743 -0
- package/dist/schema/persona/index.js +1 -1
- package/dist/schema/query/bi.d.ts +869 -2
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +163 -41
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +16 -0
- package/dist/schema/schema-query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/strategy-review/index.d.ts +137 -0
- package/dist/schema/strategy-review/index.js +1 -0
- package/dist/schema/trust/index.d.ts +6 -6
- package/dist/schema/workflow/index.d.ts +2 -2
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +8 -4
- package/dist/schemas/account_operation.schema.json +6 -2
- package/dist/schemas/evaluation_operation.output.json +24 -0
- package/dist/schemas/goal_operation.schema.json +124 -0
- package/dist/schemas/index.json +7 -1
- package/dist/schemas/industry_pack_operation.output.json +39 -0
- package/dist/schemas/local_mark_operation.schema.json +2 -2
- package/dist/schemas/messenger_operation.output.json +670 -200
- package/dist/schemas/messenger_operation.schema.json +66 -239
- package/dist/schemas/onchain_operations.schema.json +3 -3
- package/dist/schemas/onchain_operations_repository.schema.json +3 -3
- package/dist/schemas/onchain_table_data.output.json +184 -0
- package/dist/schemas/onchain_table_data.schema.json +43 -43
- package/dist/schemas/persona_operation.output.json +37778 -262
- package/dist/schemas/persona_operation.schema.json +5960 -1
- package/dist/schemas/query_toolkit.output.json +1580 -2
- package/dist/schemas/query_toolkit.schema.json +194 -32
- package/dist/schemas/schema_query.schema.json +25 -1
- package/dist/schemas/strategy_review_operation.output.json +532 -0
- package/dist/schemas/strategy_review_operation.schema.json +66 -0
- package/dist/schemas/wowok_buildin_info.output.json +188 -6
- package/dist/schemas/wowok_buildin_info.schema.json +14 -0
- package/dist/strategy/collectors.d.ts +66 -0
- package/dist/strategy/collectors.js +1 -0
- package/dist/strategy/collectors.spec.d.ts +1 -0
- package/dist/strategy/collectors.spec.js +1 -0
- package/dist/strategy/index.d.ts +5 -0
- package/dist/strategy/index.js +1 -0
- package/dist/strategy/metrics.d.ts +20 -0
- package/dist/strategy/metrics.js +1 -0
- package/dist/strategy/review.d.ts +48 -0
- package/dist/strategy/review.js +1 -0
- package/dist/strategy/scorecard.d.ts +32 -0
- package/dist/strategy/scorecard.js +1 -0
- package/dist/strategy/store.d.ts +26 -0
- package/dist/strategy/store.js +1 -0
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/evaluation.js +1 -1
- package/dist/tools/handlers/goal.js +1 -1
- package/dist/tools/handlers/industry-pack.js +1 -1
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/messenger.js +1 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/permission.js +1 -1
- package/dist/tools/handlers/persona.js +1 -1
- package/dist/tools/handlers/query.d.ts +6 -0
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/schema-query.js +1 -1
- package/dist/tools/handlers/strategy-review.d.ts +2 -0
- package/dist/tools/handlers/strategy-review.js +1 -0
- package/dist/tools/handlers/watch.js +1 -1
- package/dist/tools/handlers/workflow.js +1 -1
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +1 -1
- package/dist/tools/registry/agent.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/local.js +1 -1
- package/dist/tools/registry/messenger.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/rules-hook.js +1 -1
- package/dist/tools/shared.d.ts +2 -1
- package/dist/tools/shared.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{LocalMark,objectTypeFromAddress,queryOrdersByUser}from'@wowok/wowok';import{batchQueryObjectsByIds,batchQueryTableItems,fetchEntityPermission,fetchObjectLinkerCore,fetchObjectLinkerTx,fetchServiceOrders}from'../../knowledge/workflow-guidance.js';import{deriveRelationshipProfile}from'../../relationship/index.js';import{analyzeDemanderInterest}from'../../participation/demander-interest.js';import{GUARD_BINDING_REGISTRY,OWNER_RECEIVE_COGNITION}from'../../knowledge/guard-bindings.js';import{detectBridgesForObjects,summarizeBridge}from'../../knowledge/scenario-topology.js';import{fetchMachineNodes}from'./machine-nodes.js';const MAX_MANAGED_PER_PERMISSION=0x3c,MAX_ORDERS=0x28,MAX_DEMANDS=0x14,MAX_ALLOCATIONS=0x28;function fld(a,b){return a?.[b]??a?.['data']?.[b];}async function resolveAddress(a,b){if(/^0x[0-9a-fA-F]{4,}$/i['test'](a))return a;const c=await LocalMark['Instance']()['get_address'](a);if(!c)throw new Error('Cannot\x20resolve\x20'+b+'\x20\x27'+a+'\x27\x20—\x20not\x20a\x20valid\x20address\x20and\x20no\x20LocalMark\x20entry\x20found.\x20'+'Pass\x20the\x200x\x20address\x20directly\x20or\x20register\x20it\x20via\x20local_mark_operation.');return c;}async function safe(a,b,c){try{return await b();}catch(d){return c['push'](a+':\x20'+d['message']),undefined;}}export async function handleRelationshipProfile(b){if(!b['radar_account'])throw new Error('\x27radar_account\x27\x20is\x20required\x20for\x20relationship_profile');const e=b['context_network']??'testnet',f=[],g=await resolveAddress(b['radar_account'],'radar_account'),h=await safe('entity_permission\x20'+g,()=>fetchEntityPermission(g,e),f),i=[...new Set((h?.['items']??[])['map'](V=>typeof V?.['permission']==='string'?V['permission']:undefined)['filter'](V=>!!V))]['slice'](0x0,0x19),j=[],k=new Map();if(i['length']>0x0){const V=await safe('permissions\x20query',()=>batchQueryObjectsByIds(i,e),f)??[];for(const W of V){const X=fld(W,'object');if(!X)continue;j['push']({'address':X,'owner':fld(W,'owner')??'','admins':(fld(W,'admin')??[])['filter'](Y=>typeof Y==='string'),'entities':[]});}await Promise['all'](i['map'](async Y=>{const Z=await safe('permission\x20table\x20'+Y,()=>batchQueryTableItems(Y,{'network':e}),f);if(!Z)return;const a0=j['find'](a1=>a1['address']['toLowerCase']()===Y['toLowerCase']());if(!a0)return;for(const a1 of Z['items']){const a2=a1['object'];if(a2?.['type']&&!String(a2['type'])['includes']('PermissionPerm'))continue;const a3=fld(a2,'address');if(!a3)continue;const a4=fld(a2,'perm')??[],a5=a4['map'](a6=>typeof a6==='number'?a6:typeof a6?.['index']==='number'?a6['index']:null)['filter'](a6=>a6!==null);a0['entities']['push']({'address':a3,'perm_indices':a5});}}));for(const Y of i){const [Z,a0]=await Promise['all']([safe('object_linker_core\x20'+Y,()=>fetchObjectLinkerCore(Y,e),f),safe('object_linker_tx\x20'+Y,()=>fetchObjectLinkerTx(Y,e),f)]),a1=[...(Z?.['items']??[])['map'](a2=>a2?.['who']),...(a0?.['items']??[])['map'](a2=>a2?.['who'])]['filter'](a2=>typeof a2==='string'&&!!a2);for(const a2 of a1['slice'](0x0,MAX_MANAGED_PER_PERMISSION)){if(!k['has'](a2['toLowerCase']())){const a3=objectTypeFromAddress(a2);if(a3)k['set'](a2['toLowerCase'](),a3);}}}}const l=a4=>[...k['entries']()]['filter'](([a5,a6])=>a6===a4)['map'](([a5])=>a5),m=l('service'),n=l('demand')['slice'](0x0,MAX_DEMANDS),q=l('contact'),u=l('arbitration'),w=new Map(),x=await safe('orders\x20by\x20user\x20'+g,()=>queryOrdersByUser({'address':g,'network':e}),f);for(const a4 of x??[]){const a5=a4?.['order']?.['object'];typeof a5==='string'&&a5&&w['set'](a5['toLowerCase'](),'buyer');}for(const a6 of m){const a7=await safe('service\x20orders\x20'+a6,()=>fetchServiceOrders(a6,e),f);for(const a8 of a7?.['items']??[]){typeof a8?.['who']==='string'&&a8['who']&&w['set'](a8['who']['toLowerCase'](),'merchant');}}const y=[...w['keys']()]['slice'](0x0,MAX_ORDERS),z=[],A={};if(y['length']>0x0){const a9=await safe('orders\x20query',()=>batchQueryObjectsByIds(y,e),f)??[],aa=new Set();for(const ae of a9){const af=fld(ae,'object');if(!af)continue;z['push']({'address':af,'owner':fld(ae,'owner')??'','agents':(fld(ae,'agent')??[])['filter'](ah=>typeof ah==='string'),'service':fld(ae,'service')??'','amount':fld(ae,'amount')??undefined,'allocation':fld(ae,'allocation')??undefined,'dispute_arbitrations':(fld(ae,'dispute')??[])['filter'](ah=>typeof ah==='string'),'claimed_by':fld(ae,'claimed_by')??null});const ag=fld(ae,'service');if(ag)aa['add'](ag);}const ab=await safe('order\x20services\x20query',()=>batchQueryObjectsByIds([...aa],e),f)??[],ac=new Map();for(const ah of ab){const ai=fld(ah,'object'),aj=fld(ah,'permission');if(ai&&aj)ac['set'](ai['toLowerCase'](),aj);}const ad=[...new Set([...ac['values']()])];if(ad['length']>0x0){const ak=await safe('service\x20permissions\x20query',()=>batchQueryObjectsByIds(ad,e),f)??[],al=new Map();for(const am of ak){const an=fld(am,'object'),ao=fld(am,'owner');if(an&&ao)al['set'](an['toLowerCase'](),ao);}for(const [ap,aq]of ac){const ar=al['get'](aq['toLowerCase']());if(ar)A[ap]=ar;}}}const B=[];for(const as of n){const at=await safe('demand\x20'+as,()=>batchQueryObjectsByIds([as],e),f)??[],au=at[0x0],av=fld(au,'permission');let aw='';if(av){const aB=await safe('demand\x20permission\x20'+av,()=>batchQueryObjectsByIds([av],e),f)??[];aw=fld(aB[0x0],'owner')??'';}const ax=[],ay=await safe('demand\x20presenters\x20'+as,()=>batchQueryTableItems(as,{'network':e}),f);if(ay)for(const aC of ay['items']){const aD=aC['object'];if(!aD?.['type']||!String(aD['type'])['includes']('Present'))continue;const aE=fld(aD,'address')??aC['objectId'],aF=fld(aD,'value')??aD;ax['push']({'address':typeof aE==='string'?aE:aC['objectId'],'service':typeof aF?.['service']==='string'?aF['service']:undefined,'acceptance_score':typeof aF?.['acceptance_score']==='number'?aF['acceptance_score']:undefined});}const az=(fld(au,'rewards')??[])['filter'](aG=>typeof aG==='string'),aA=(fld(au,'guards')??[])['map'](aG=>typeof aG==='string'?aG:fld(aG,'guard'))['filter'](aG=>typeof aG==='string');B['push']({'address':as,'owner':aw,'presenters':ax,'rewards':az,'guards':aA});}const C=[],D=[...new Set(z['map'](aG=>aG['allocation'])['filter'](aG=>!!aG))]['slice'](0x0,MAX_ALLOCATIONS);if(D['length']>0x0){const aG=await safe('allocations\x20query',()=>batchQueryObjectsByIds(D,e),f)??[];for(const aH of aG){const aI=fld(aH,'object');if(!aI)continue;const aJ=fld(aH,'allocators')??aH,aK=Array['isArray'](aJ)?aJ:Array['isArray'](aJ?.['allocators'])?aJ['allocators']:[],aL=aK['flatMap'](aM=>(aM?.['sharing']??[])['map'](aN=>({'who':aN?.['who']??aN,'mode':aN?.['mode']===0x1||aN?.['mode']==='Rate'?'Rate':aN?.['mode']===0x2||aN?.['mode']==='Surplus'?'Surplus':'Amount','sharing':aN?.['sharing']!=null?String(aN['sharing']):undefined,'guard':typeof aM?.['guard']==='string'?aM['guard']:undefined})));C['push']({'address':aI,'owner':fld(aH,'owner')??'','sharing':aL});}}const E=[];if(q['length']>0x0){const aM=await safe('contacts\x20query',()=>batchQueryObjectsByIds(q['slice'](0x0,0x14),e),f)??[];for(const aN of aM){const aO=fld(aN,'object');if(!aO)continue;const aP=fld(aN,'permission');let aQ='';if(aP){const aS=await safe('contact\x20permission\x20'+aP,()=>batchQueryObjectsByIds([aP],e),f)??[];aQ=fld(aS[0x0],'owner')??'';}const aR=(fld(aN,'ims')??[])['map'](aT=>typeof aT==='string'?aT:aT?.['at'])['filter'](aT=>typeof aT==='string');E['push']({'address':aO,'ims':aR,'owner':aQ});}}const F=[],G=l('machine')['slice'](0x0,0xa);for(const aT of G){const [aU,aV]=await Promise['all']([safe('machine\x20'+aT,()=>batchQueryObjectsByIds([aT],e),f),safe('machine\x20nodes\x20'+aT,()=>fetchMachineNodes(aT,e),f)]),aW=aU?.[0x0]?fld(aU[0x0],'permission'):undefined,aX=(aV??[])['flatMap'](aY=>(Array['isArray'](aY['value'])?aY['value']:[])['flatMap'](aZ=>(aZ['forwards']??[])['map'](b0=>({'node':aZ['prev_node']??aY['name'],'next_node':aY['name'],'forward_name':b0['name'],'named_operator':b0['namedOperator']??null,'permission_index':b0['permissionIndex']??null,'guard':typeof b0['guard']==='string'?b0['guard']:b0['guard']?.['guard']??null}))));F['push']({'address':aT,'permission_address':aW,'forwards':aX});}const H=[],I=new Map();for(const aY of z){const aZ=w['get'](aY['address']['toLowerCase']())??'buyer';for(const b0 of aY['dispute_arbitrations']??[])I['set'](b0['toLowerCase'](),{'order':aY['address'],'side':aZ});}const J=new Set(u);for(const b1 of I['keys']())J['add'](b1);if(J['size']>0x0){const b2=await safe('arbitrations\x20query',()=>batchQueryObjectsByIds([...J]['slice'](0x0,0xf),e),f)??[];let b3=0x0;for(const b4 of b2){const b5=fld(b4,'object');if(!b5)continue;const b6=I['get'](b5['toLowerCase']());if(b6){const b7=(fld(b4,'voted')??[])['map'](b8=>({'address':typeof b8?.['voter']==='string'?b8['voter']:'','weight':typeof b8?.['weight']==='number'?b8['weight']:undefined}))['filter'](b8=>b8['address']['length']>0x0);H['push']({'address':b5,'object_kind':'case','voters':b7,'order':fld(b4,'order')??b6['order'],'arbitration':fld(b4,'arbitration')??undefined,'anchor_side':b6['side'],'bound_services':[]});}else b3++,H['push']({'address':b5,'object_kind':'service','voters':[],'bound_services':[]});}b3>0x0&&f['push']('Arbitration\x20service\x20voting-guard\x20member\x20resolution\x20is\x20not\x20implemented\x20yet\x20—\x20arbitration\x20services\x20contribute\x20binding\x20presence\x20only\x20(Arb\x20CASE\x20votes\x20ARE\x20parsed\x20into\x20arbitration_delegation/dispute_resolution\x20edges).');}const K={'anchor':g,'permissions':j,'machines':F,'orders':z,'demands':B,'allocations':C,'contacts':E,'arbitrations':H,'service_owners':A},L=deriveRelationshipProfile(K),M=new Set();if(C['length']>0x0)M['add']('Allocation');if(B['length']>0x0)M['add']('Demand');if(F['some'](b8=>(b8['forwards']??[])['some'](b9=>b9['guard'])))M['add']('MachineForward');if(H['length']>0x0)M['add']('Arbitration');for(const b8 of M){const b9=GUARD_BINDING_REGISTRY['filter'](bb=>bb['object']===b8);if(b9['length']===0x0)continue;const ba=b9['map'](bb=>{const bc=bb['preset_kind']==='amount'&&bb['object']==='Allocation'?'\x20(Rate\x20is\x20basis\x20points;\x20rates\x20must\x20complete\x2010000\x20unless\x20a\x20Surplus\x20entry\x20exists)':'';return''+bb['slot']+bc+'\x20['+bb['preset_kind']+']\x20—\x20creator:\x20'+bb['creator']['split']('\x20—\x20')[0x0]['split']('.\x20')[0x0]+';\x20user:\x20'+bb['user'];})['join']('\x20|\x20');L['notes']['push']('Guard-preset\x20deep\x20context\x20on\x20the\x20'+b8+'(s)\x20in\x20this\x20topology:\x20'+ba+'.');}C['length']>0x0&&L['notes']['push']('Cognition\x20fixed:\x20'+OWNER_RECEIVE_COGNITION);const N=['Permission'];if(z['length']>0x0)N['push']('Order');if(F['length']>0x0)N['push']('Machine','Progress');if(C['length']>0x0)N['push']('Allocation','Payment');if(B['length']>0x0)N['push']('Demand');if(H['length']>0x0)N['push']('Arbitration','Arb');if(E['length']>0x0)N['push']('Contact');if(Object['keys'](A)['length']>0x0)N['push']('Service','Guard');const O=detectBridgesForObjects(N);if(O['length']>0x0){const bb=O['slice'](0x0,0x8)['map'](bc=>summarizeBridge(bc))['join']('\x0a-\x20');L['notes']['push']('Scenario\x20topology\x20('+O['length']+'\x20bridge(s)\x20implied\x20by\x20the\x20touched\x20objects\x20—\x20capability\x20comes\x20from\x20the\x20\x22\x20+\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22integration,\x20not\x20from\x20any\x20single\x20object):\x0a-\x20'+bb);}const P=b['relation_kinds']?new Set(b['relation_kinds']):undefined,Q=P?L['edges']['filter'](bc=>P['has'](bc['kind'])):L['edges'],R=Q['reduce']((bc,bd)=>{return bc[bd['kind']]=(bc[bd['kind']]??0x0)+0x1,bc;},{});let S=g+'\x20holds\x20'+Q['length']+'\x20relationship\x20edge(s)\x20across\x20'+Object['keys'](L['by_counterparty'])['length']+'\x20counterparty(ies)'+(Object['keys'](R)['length']>0x0?':\x20'+Object['entries'](R)['map'](([bc,bd])=>bc+'×'+bd)['join'](',\x20')+'.':'.');Q['length']===0x0&&f['length']>0x0&&(S+='\x20No\x20edges\x20derived\x20—\x20check\x20data_gaps\x20(the\x20account\x20may\x20have\x20no\x20on-chain\x20power\x20carriers\x20on\x20this\x20network).');const T=(bc,bd)=>bc['toLowerCase']()===bd['toLowerCase'](),U=B['filter'](bc=>bc['owner']&&T(bc['owner'],g))['map'](bc=>({'demand':bc['address'],...analyzeDemanderInterest({'account':g,'demand':bc['address'],'presenters':bc['presenters']??[],'rewards':(bc['rewards']??[])['map'](bd=>({'address':bd})),'guards':bc['guards']??[],'open':!(bc['presenters']??[])['some'](bd=>bd['acceptance_score']!==undefined)})}));return U['length']>0x0&&(S+='\x20Anchor\x20demands\x20'+U['length']+'\x20demand(s)\x20—\x20demander-interest\x20analysis\x20attached.'),{'action':'relationship_profile','account':g,'edges':Q,'by_counterparty':L['by_counterparty'],'notes':L['notes'],'data_gaps':f,'summary':S,...U['length']>0x0?{'demander_interest':U}:{}};}
|
|
1
|
+
import{LocalMark}from'@wowok/wowok';import{deriveRelationshipProfile}from'../../relationship/index.js';import{analyzeDemanderInterest}from'../../participation/demander-interest.js';import{GUARD_BINDING_REGISTRY,OWNER_RECEIVE_COGNITION}from'../../knowledge/guard-bindings.js';import{detectBridgesForObjects,summarizeBridge}from'../../knowledge/scenario-topology.js';import{SdkDataPlane,expandTopology,projectRelationshipFacts}from'../../graph/onchain/index.js';export async function resolveAddress(a,b){if(/^0x[0-9a-fA-F]{4,}$/i['test'](a))return a;const c=await LocalMark['Instance']()['get_address'](a);if(!c)throw new Error('Cannot\x20resolve\x20'+b+'\x20\x27'+a+'\x27\x20—\x20not\x20a\x20valid\x20address\x20and\x20no\x20LocalMark\x20entry\x20found.\x20'+'Pass\x20the\x200x\x20address\x20directly\x20or\x20register\x20it\x20via\x20local_mark_operation.');return c;}export async function handleRelationshipProfile(a){if(!a['radar_account'])throw new Error('\x27radar_account\x27\x20is\x20required\x20for\x20relationship_profile');const b=a['context_network']??'testnet',c=await resolveAddress(a['radar_account'],'radar_account'),d=new SdkDataPlane(b),e=await expandTopology(d,{'network':b,'seed':c,'budget':{'maxDepth':0x4,'maxNodes':0x384,'maxRpcs':0xa0,'perKindCaps':{'eoa.permission':0x19,'permission.core_binding':0x3c,'permission.tx_binding':0x3c,'eoa.order':0x28,'service.order':0x28,'order.allocation':0x28,'demand.presenter':0x3c,'machine.node':0x78}},'edges':{'tableEdges':['permission.entity','demand.presenter','machine.node']}}),f=[...e['gaps']];for(const z of e['truncations']){f['push']('truncated\x20'+z['schema']+'\x20at\x20'+z['nodeId']+':\x20observed\x20at\x20least\x20'+z['observed']+'\x20edge(s)');}if(e['budgetExhausted']['rpcs'])f['push']('RPC\x20batch\x20budget\x20exhausted\x20—\x20topology\x20is\x20partial\x20(see\x20budget\x20settings).');if(e['budgetExhausted']['nodes'])f['push']('Node\x20budget\x20exhausted\x20—\x20topology\x20is\x20partial.');const g=projectRelationshipFacts(e,c),{machines:h,orders:i,demands:j,allocations:k,contacts:l,arbitrations:m}={'machines':g['machines']??[],'orders':g['orders']??[],'demands':g['demands']??[],'allocations':g['allocations']??[],'contacts':g['contacts']??[],'arbitrations':g['arbitrations']??[]},n=deriveRelationshipProfile(g),o=new Set();if(k['length']>0x0)o['add']('Allocation');if(j['length']>0x0)o['add']('Demand');if(h['some'](A=>(A['forwards']??[])['some'](B=>B['guard'])))o['add']('MachineForward');if(m['length']>0x0)o['add']('Arbitration');for(const A of o){const B=GUARD_BINDING_REGISTRY['filter'](D=>D['object']===A);if(B['length']===0x0)continue;const C=B['map'](D=>{const E=D['preset_kind']==='amount'&&D['object']==='Allocation'?'\x20(Rate\x20is\x20basis\x20points;\x20rates\x20must\x20complete\x2010000\x20unless\x20a\x20Surplus\x20entry\x20exists)':'';return''+D['slot']+E+'\x20['+D['preset_kind']+']\x20—\x20creator:\x20'+D['creator']['split']('\x20—\x20')[0x0]['split']('.\x20')[0x0]+';\x20user:\x20'+D['user'];})['join']('\x20|\x20');n['notes']['push']('Guard-preset\x20deep\x20context\x20on\x20the\x20'+A+'(s)\x20in\x20this\x20topology:\x20'+C+'.');}k['length']>0x0&&n['notes']['push']('Cognition\x20fixed:\x20'+OWNER_RECEIVE_COGNITION);m['some'](D=>D['object_kind']==='service')&&f['push']('Arbitration\x20service\x20voting-guard\x20member\x20resolution\x20is\x20not\x20implemented\x20yet\x20—\x20arbitration\x20services\x20contribute\x20binding\x20presence\x20only\x20(Arb\x20CASE\x20votes\x20ARE\x20parsed\x20into\x20arbitration_delegation/dispute_resolution\x20edges).');const p=['Permission'];if(i['length']>0x0)p['push']('Order');if(h['length']>0x0)p['push']('Machine','Progress');if(k['length']>0x0)p['push']('Allocation','Payment');if(j['length']>0x0)p['push']('Demand');if(m['length']>0x0)p['push']('Arbitration','Arb');if(l['length']>0x0)p['push']('Contact');if(Object['keys'](g['service_owners']??{})['length']>0x0)p['push']('Service','Guard');const q=detectBridgesForObjects(p);if(q['length']>0x0){const D=q['slice'](0x0,0x8)['map'](E=>summarizeBridge(E))['join']('\x0a-\x20');n['notes']['push']('Scenario\x20topology\x20('+q['length']+'\x20bridge(s)\x20implied\x20by\x20the\x20touched\x20objects\x20—\x20capability\x20comes\x20from\x20the\x20'+('\x22integration,\x20not\x20from\x20any\x20single\x20object):\x0a-\x20'+D));}const r=a['relation_kinds']?new Set(a['relation_kinds']):undefined,s=r?n['edges']['filter'](E=>r['has'](E['kind'])):n['edges'],u=s['reduce']((E,F)=>{return E[F['kind']]=(E[F['kind']]??0x0)+0x1,E;},{});let w=c+'\x20holds\x20'+s['length']+'\x20relationship\x20edge(s)\x20across\x20'+Object['keys'](n['by_counterparty'])['length']+'\x20counterparty(ies)'+(Object['keys'](u)['length']>0x0?':\x20'+Object['entries'](u)['map'](([E,F])=>E+'×'+F)['join'](',\x20')+'.':'.');s['length']===0x0&&f['length']>0x0&&(w+='\x20No\x20edges\x20derived\x20—\x20check\x20data_gaps\x20(the\x20account\x20may\x20have\x20no\x20on-chain\x20power\x20carriers\x20on\x20this\x20network).');const x=(E,F)=>E['toLowerCase']()===F['toLowerCase'](),y=j['filter'](E=>E['owner']&&x(E['owner'],c))['map'](E=>({'demand':E['address'],...analyzeDemanderInterest({'account':c,'demand':E['address'],'presenters':E['presenters']??[],'rewards':(E['rewards']??[])['map'](F=>({'address':F})),'guards':E['guards']??[],'open':!(E['presenters']??[])['some'](F=>F['acceptance_score']!==undefined)})}));return y['length']>0x0&&(w+='\x20Anchor\x20demands\x20'+y['length']+'\x20demand(s)\x20—\x20demander-interest\x20analysis\x20attached.'),{'action':'relationship_profile','account':c,'edges':s,'by_counterparty':n['by_counterparty'],'notes':n['notes'],'data_gaps':f,'summary':w,...y['length']>0x0?{'demander_interest':y}:{}};}
|
|
@@ -130,6 +130,10 @@ export interface ServicePanoramaResult {
|
|
|
130
130
|
max: string | null;
|
|
131
131
|
}[];
|
|
132
132
|
} | null;
|
|
133
|
+
payment_token: {
|
|
134
|
+
coin_type: string | null;
|
|
135
|
+
guidance: string;
|
|
136
|
+
};
|
|
133
137
|
onchain_last_updated: {
|
|
134
138
|
timestamp_ms: string;
|
|
135
139
|
digest: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Config,LocalMark,query_serviceContext,query_object_last_updated,query_affiliations,objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{generateBusinessReport}from'./reverse-mapping.js';import{resolveSupplyChainGraph}from'../../knowledge/supply-chain.js';import{batchQueryObjectsByIds,fetchServiceOrders}from'../../knowledge/workflow-guidance.js';import{formatChainValue}from'../../knowledge/fund-layer.js';import{buildMachineGraph}from'./machine-nodes.js';import{computeServiceTrustSummary}from'../../tools/handlers/trust.js';function balanceStr(a){if(a===null||a===undefined)return null;if(typeof a==='bigint')return a['toString']();return String(a);}function ownerAddr(a){if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];}return null;}function requireField(a,b){if(a===undefined||a===null)throw new Error('\x27'+b+'\x27\x20is\x20required\x20for\x20this\x20action');return a;}function summarizeGuard(a){if(!a)return null;const b=a,c=Array['isArray'](b['table'])?b['table']:[],d=c['filter'](e=>e?.['b_submission']===!![])['length'];return{'address':b['object']??'','description':b['description']??null,'rep':typeof b['rep']==='boolean'?b['rep']:null,'table_entry_count':c['length'],'submission_slot_count':d,'relies':Array['isArray'](b['relies'])?b['relies']['filter'](e=>typeof e==='string'):[],'relies_logic_and':typeof b['relies_logic_and']==='boolean'?b['relies_logic_and']:null};}function summarizePermission(a,b){if(!a)return null;const c=a,d=Array['isArray'](c['admin'])?c['admin']:[],e=d[0x0],f=typeof e==='string'?e:typeof e?.['account']==='string'?e['account']:c['builder']??null;return{'address':c['object']??'','description':c['description']??null,'builder':c['builder']??null,'owner':f,'owner_name':b?.['name']??null,'admin_count':d['length'],'entity_count':typeof c['entity_count']==='number'?c['entity_count']:null,'perm_remark':Array['isArray'](c['perm_remark'])?c['perm_remark']['map'](g=>({'index':String(g?.['index']??''),'remark':typeof g?.['remark']==='string'?g['remark']:''})):[],'um':c['um']??null,'tags':b?.['tags']??[],'updated_timestamp_ms':b?.['updated_at_ms']!=null?String(b['updated_at_ms']):null};}async function markOf(a){if(!a)return{'name':null,'tags':[],'updated_at_ms':null};try{const b=await LocalMark['Instance']()['get'](a);if(b)return{'name':b['name']??null,'tags':Array['isArray'](b['tags'])?b['tags']:[],'updated_at_ms':typeof b['updatedAt']==='number'?b['updatedAt']:null};}catch{}try{const c=await LocalMark['Instance']()['list']({'address':a}),d=c?.[0x0];if(d)return{'name':d['name']??null,'tags':Array['isArray'](d['tags'])?d['tags']:[],'updated_at_ms':typeof d['updatedAt']==='number'?d['updatedAt']:null};}catch{}return{'name':null,'tags':[],'updated_at_ms':null};}async function markOfMany(a){const b=[...new Set(a['filter'](e=>!!e))],c=await Promise['all'](b['map'](e=>markOf(e))),d=new Map();for(let e=0x0;e<b['length'];e++)d['set'](b[e],c[e]);return d;}export async function handleServicePanorama(b){const c=requireField(b['service_address'],'service_address'),d=b['context_network']??undefined;let f=d??await Config['Instance']()['network_get']();const h=[];let j=c;if(!/^0x[0-9a-fA-F]{32,64}$/['test'](c)){const R=await LocalMark['Instance']()['get_address'](c);if(!R)throw new Error('Cannot\x20resolve\x20service\x20\x27'+c+'\x27\x20—\x20not\x20a\x20valid\x20address\x20and\x20no\x20LocalMark\x20entry\x20found.\x20'+'Pass\x20the\x200x\x20Service\x20object\x20address\x20directly\x20or\x20register\x20the\x20name\x20via\x20local_mark_operation.');j=R;}let k=await query_serviceContext({'service':j,'include_machine_nodes':!![],'network':f});if(!k?.['service']&&d){const S=await Config['Instance']()['network_get']();S&&S!==f&&(f=S,k=await query_serviceContext({'service':j,'include_machine_nodes':!![],'network':f}));}const l=k['service'];j=l['object']??j;const m=new Set(),n=T=>{if(T)m['add'](T);};n(j),n(l['machine']),n(l['permission']),n(l['um']);for(const T of l['arbitrations']??[])n(T);for(const U of l['rewards']??[])n(U);for(const V of l['repositories']??[])n(V);const p=k['permission'];if(p){const W=Array['isArray'](p['admin'])?p['admin']:[];W[0x0]&&n(typeof W[0x0]==='string'?W[0x0]:W[0x0]?.['account']);if(p['builder'])n(p['builder']);}const q=await markOfMany([...m]),u=q['get'](j)??{'name':null,'tags':[],'updated_at_ms':null},w=u['name'],x=X=>X?q['get'](X)??{'name':null,'tags':[],'updated_at_ms':null}:{'name':null,'tags':[],'updated_at_ms':null};let y=null;const z=k['machine'],A=k['machine_nodes']??[];if(z||A['length']>0x0){const {nodes:X,edges:Y}=buildMachineGraph(A);y={'address':z?.['object']??l['machine']??'','name':x(z?.['object']??l['machine'])['name'],'description':z?.['description']??null,'published':typeof z?.['bPublished']==='boolean'?z['bPublished']:null,'paused':typeof z?.['bPaused']==='boolean'?z['bPaused']:null,'node_count':typeof z?.['node_count']==='number'?z['node_count']:null,'consensus_repositories':Array['isArray'](z?.['consensus_repositories'])?z['consensus_repositories']:[],'nodes':X,'edges':Y};}let B=null;try{const Z=await query_object_last_updated({'object':j,'network':f});Z?.['timestamp_ms']&&(B={'timestamp_ms':Z['timestamp_ms'],'digest':Z['digest']??null,'sender':Z['sender']??null});}catch{h['push']('onchain_last_updated:\x20query\x20failed\x20(non-blocking)');}let C=null;try{C=await computeServiceTrustSummary({'service':j,'depth':'evaluate','network':f});}catch{h['push']('trust:\x20evaluation\x20failed\x20(non-blocking)');}let D=null;try{D=await resolveSupplyChainGraph(j,f);}catch{h['push']('supply_chain:\x20resolution\x20failed\x20(non-blocking)');}let E=null;try{const a0=[l];for(const a1 of Object['values'](k['referenced']??{})){if(a1&&a1['object']!==j)a0['push'](a1);}E=generateBusinessReport({'objects':a0,'machine_nodes':A['map'](a2=>({'name':a2['name']}))});}catch{h['push']('business_report:\x20generation\x20failed\x20(non-blocking)');}const F=l?.['type_raw']??l?.['type']??'',G=F['match'](/<(.+)>$/),H=G?G[0x1]:null,I=async a2=>{if(a2===null||a2===undefined||a2==='')return{'display':'','tip':''};if(!H)return{'display':a2,'tip':''};try{const a3=await formatChainValue(a2,H,f);if(a3['precision_known'])return{'display':a3['symbol']?a3['display']+'\x20'+a3['symbol']:a3['display'],'tip':a3['text']};return{'display':a2,'tip':''};}catch{return{'display':a2,'tip':''};}};let J=null;try{const a2=await fetchServiceOrders(j,f,!![]),a3=Array['isArray'](a2?.['items'])?a2['items']:[],a4=a3['map'](ab=>typeof ab?.['who']==='string'?ab['who']:'')['filter'](ab=>ab!==''),a5=new Map();try{if(a4['length']>0x0){const ab=await batchQueryObjectsByIds(a4,f,!![]);for(const ac of ab){ac&&ac['type']===ObjectType['Order']&&a5['set'](ac['object'],ac);}}}catch{h['push']('recent_orders:\x20order\x20details\x20unavailable\x20(non-blocking)');}const a6=new Map(),a7=new Map(),a8=new Map();try{const ad=new Set();for(const ae of a5['values']()){if(ae?.['progress'])ad['add'](ae['progress']);if(ae?.['allocation'])ad['add'](ae['allocation']);}if(ad['size']>0x0){const af=await batchQueryObjectsByIds(Array['from'](ad),f,!![]);for(const ag of af){if(!ag?.['object'])continue;if(ag['type']===ObjectType['Progress']){const ah=ag?.['current'];a6['set'](ag['object'],typeof ah==='string'&&ah!==''?ah:null),a7['set'](ag['object'],Number(ag?.['current_time'])||null);}else{if(ag['type']===ObjectType['Allocation']){const ai=Number(ag?.['balance']??0x0);a8['set'](ag['object'],Number['isFinite'](ai)&&ai===0x0?'allocated':'pending');}}}}}catch{h['push']('recent_orders:\x20progress/allocation\x20details\x20unavailable\x20(non-blocking)');}const a9=new Map();try{const aj=Array['from'](new Set(a3['map'](al=>typeof al?.['who']==='string'?al['who']:'')['filter'](Boolean))),ak=await Promise['allSettled'](aj['map'](al=>query_object_last_updated({'object':al,'network':f})));for(let al=0x0;al<aj['length'];al++){const am=ak[al];a9['set'](aj[al],am['status']==='fulfilled'&&am['value']?.['timestamp_ms']?Number(am['value']['timestamp_ms'])||null:null);}}catch{h['push']('recent_orders:\x20order\x20updated\x20times\x20unavailable\x20(non-blocking)');}const aa=await Promise['all'](a3['map'](async an=>{const ao=typeof an?.['who']==='string'?an['who']:'',ap=a5['get'](ao),aq=ap?.['amount']!==null&&ap?.['amount']!==undefined?String(ap['amount']):'',ar=await I(aq);return{'order':ao,'time':typeof an?.['time']==='number'?an['time']:0x0,'updated_ms':a9['get'](ao)??null,'amount':aq,'amount_display':ar['display'],'amount_tip':ar['tip'],'progress':ap?.['progress']??null,'allocation':ap?.['allocation']??null,'disputes':Array['isArray'](ap?.['dispute'])?ap['dispute']:[],'agent':Array['isArray'](ap?.['agent'])?ap['agent']:[],'owner':ownerAddr(ap?.['builder']??ap?.['owner']),'claimed_by':ap?.['claimed_by']??null,'required_info':ap?.['required_info']??null,'progress_next':ap?.['progress']?a6['get'](ap['progress'])??null:null,'progress_since':ap?.['progress']?a7['get'](ap['progress'])??null:null,'allocation_state':ap?.['allocation']?a8['get'](ap['allocation'])??'pending':'none','bought':await Promise['all']((Array['isArray'](ap?.['items'])?ap['items']:[])['map'](async as=>({'name':String(as?.['name']??''),'price_display':(await I(as?.['price']!==null&&as?.['price']!==undefined?String(as['price']):'0'))['display'],'quantity':String(as?.['quantity']??'0'),'wip_hash':String(as?.['wip_hash']??'')})))};}));J={'count':a3['length'],'items':aa['filter'](an=>an['order']!=='')['slice'](-0x14)['reverse']()};}catch{h['push']('recent_orders:\x20reverse-index\x20query\x20failed\x20(non-blocking)');}const K=[];try{const an=await query_affiliations({'address':j,'no_cache':!![],'network':f}),ao=new Set(),ap=new Map();for(const ar of an?.['entries']??[]){const as=typeof ar?.['who']==='string'?ar['who']:'';if(!as||ao['has'](as))continue;ao['add'](as);const at=objectTypeFromAddress(as);if(!at)continue;if(at===ObjectType['Order'])continue;const au=String(at);let av=ap['get'](au);!av&&(av=[],ap['set'](au,av)),av['push']({'address':as,'type_label':au,'name':x(as)['name'],'time':typeof ar?.['time']==='number'?ar['time']:null});}const aq=['Progress','Allocation','Payment','Guard'];for(const aw of aq){const ax=ap['get'](aw);ax&&ax['length']>0x0&&(K['push']({'type_label':aw,'items':ax}),ap['delete'](aw));}for(const [ay,az]of ap){if(az['length']>0x0)K['push']({'type_label':ay,'items':az});}}catch{h['push']('related:\x20global-table\x20lookup\x20failed\x20(non-blocking)');}const L=[];for(const aA of k['allocator_guards']??[]){const aB=summarizeGuard(aA);if(aB)L['push'](aB);}const M=[];for(const aC of Array['isArray'](l['sales'])?l['sales']:[]){const aD=balanceStr(aC?.['price']),aE=await I(aD);M['push']({'name':typeof aC?.['name']==='string'?aC['name']:'','price':aD,'price_display':aE['display'],'price_tip':aE['tip'],'stock':balanceStr(aC?.['stock']),'suspension':aC?.['suspension']===!![],'wip':typeof aC?.['wip']==='string'?aC['wip']:'','wip_hash':typeof aC?.['wip_hash']==='string'?aC['wip_hash']:''});}const N=l['order_allocators']?{'description':l['order_allocators']['description']??'','threshold':balanceStr(l['order_allocators']['threshold']),'allocators':(l['order_allocators']['allocators']??[])['map'](aF=>({'guard':aF['guard'],'sharing_count':Array['isArray'](aF['sharing'])?aF['sharing']['length']:0x0,'max':balanceStr(aF['max']??null)}))}:null,O=summarizePermission(k['permission'],x(l['permission'])),P=O?.['owner']??B?.['sender']??null,Q=P?await markOf(P):null;return{'action':'service_panorama','network':f,'service':{'address':j,'name':w,'description':l['description']??'','location':l['location']??'','published':l['bPublished']===!![],'paused':l['bPaused']===!![],'paused_time':typeof l['paused_time']==='number'?l['paused_time']:null,'setting_lock_duration':balanceStr(l['setting_lock_duration']),'customer_required':Array['isArray'](l['customer_required'])?l['customer_required']:[],'compensation_fund':balanceStr(l['compensation_fund']),'sales':M,'machine':l['machine']??null,'buy_guard':l['buy_guard']??null,'permission':l['permission']??'','um':l['um']??null,'arbitrations':Array['isArray'](l['arbitrations'])?l['arbitrations']:[],'rewards':Array['isArray'](l['rewards'])?l['rewards']:[],'repositories':Array['isArray'](l['repositories'])?l['repositories']:[],'order_allocators':N,'onchain_last_updated':B,'tags':u['tags']??[],'owner':P,'owner_name':Q?.['name']??null},'machine_graph':y,'buy_guard':summarizeGuard(k['buy_guard']),'permission':O,'allocator_guards':L,'related':{'groups':K},'supply_chain':D,'trust':C,'business_report':E,'recent_orders':J,'data_gaps':h};}
|
|
1
|
+
import{Config,LocalMark,query_serviceContext,query_object_last_updated,query_affiliations,objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{generateBusinessReport}from'./reverse-mapping.js';import{resolveSupplyChainGraph}from'../../knowledge/supply-chain.js';import{batchQueryObjectsByIds,fetchServiceOrders}from'../../graph/onchain/sdk-batch.js';import{formatChainValue}from'../../knowledge/fund-layer.js';import{buildMachineGraph}from'./machine-nodes.js';import{computeServiceTrustSummary}from'../../tools/handlers/trust.js';function balanceStr(a){if(a===null||a===undefined)return null;if(typeof a==='bigint')return a['toString']();return String(a);}function ownerAddr(a){if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];}return null;}function requireField(a,b){if(a===undefined||a===null)throw new Error('\x27'+b+'\x27\x20is\x20required\x20for\x20this\x20action');return a;}function summarizeGuard(a){if(!a)return null;const b=a,c=Array['isArray'](b['table'])?b['table']:[],d=c['filter'](e=>e?.['b_submission']===!![])['length'];return{'address':b['object']??'','description':b['description']??null,'rep':typeof b['rep']==='boolean'?b['rep']:null,'table_entry_count':c['length'],'submission_slot_count':d,'relies':Array['isArray'](b['relies'])?b['relies']['filter'](e=>typeof e==='string'):[],'relies_logic_and':typeof b['relies_logic_and']==='boolean'?b['relies_logic_and']:null};}function summarizePermission(a,b){if(!a)return null;const c=a,d=Array['isArray'](c['admin'])?c['admin']:[],e=d[0x0],f=typeof e==='string'?e:typeof e?.['account']==='string'?e['account']:c['builder']??null;return{'address':c['object']??'','description':c['description']??null,'builder':c['builder']??null,'owner':f,'owner_name':b?.['name']??null,'admin_count':d['length'],'entity_count':typeof c['entity_count']==='number'?c['entity_count']:null,'perm_remark':Array['isArray'](c['perm_remark'])?c['perm_remark']['map'](g=>({'index':String(g?.['index']??''),'remark':typeof g?.['remark']==='string'?g['remark']:''})):[],'um':c['um']??null,'tags':b?.['tags']??[],'updated_timestamp_ms':b?.['updated_at_ms']!=null?String(b['updated_at_ms']):null};}async function markOf(a){if(!a)return{'name':null,'tags':[],'updated_at_ms':null};try{const b=await LocalMark['Instance']()['get'](a);if(b)return{'name':b['name']??null,'tags':Array['isArray'](b['tags'])?b['tags']:[],'updated_at_ms':typeof b['updatedAt']==='number'?b['updatedAt']:null};}catch{}try{const c=await LocalMark['Instance']()['list']({'address':a}),d=c?.[0x0];if(d)return{'name':d['name']??null,'tags':Array['isArray'](d['tags'])?d['tags']:[],'updated_at_ms':typeof d['updatedAt']==='number'?d['updatedAt']:null};}catch{}return{'name':null,'tags':[],'updated_at_ms':null};}async function markOfMany(a){const b=[...new Set(a['filter'](e=>!!e))],c=await Promise['all'](b['map'](e=>markOf(e))),d=new Map();for(let e=0x0;e<b['length'];e++)d['set'](b[e],c[e]);return d;}export async function handleServicePanorama(b){const c=requireField(b['service_address'],'service_address'),d=b['context_network']??undefined;let f=d??await Config['Instance']()['network_get']();const h=[];let j=c;if(!/^0x[0-9a-fA-F]{32,64}$/['test'](c)){const S=await LocalMark['Instance']()['get_address'](c);if(!S)throw new Error('Cannot\x20resolve\x20service\x20\x27'+c+'\x27\x20—\x20not\x20a\x20valid\x20address\x20and\x20no\x20LocalMark\x20entry\x20found.\x20'+'Pass\x20the\x200x\x20Service\x20object\x20address\x20directly\x20or\x20register\x20the\x20name\x20via\x20local_mark_operation.');j=S;}let k=await query_serviceContext({'service':j,'include_machine_nodes':!![],'network':f});if(!k?.['service']&&d){const T=await Config['Instance']()['network_get']();T&&T!==f&&(f=T,k=await query_serviceContext({'service':j,'include_machine_nodes':!![],'network':f}));}const l=k['service'];j=l['object']??j;const m=new Set(),n=U=>{if(U)m['add'](U);};n(j),n(l['machine']),n(l['permission']),n(l['um']);for(const U of l['arbitrations']??[])n(U);for(const V of l['rewards']??[])n(V);for(const W of l['repositories']??[])n(W);const p=k['permission'];if(p){const X=Array['isArray'](p['admin'])?p['admin']:[];X[0x0]&&n(typeof X[0x0]==='string'?X[0x0]:X[0x0]?.['account']);if(p['builder'])n(p['builder']);}const q=await markOfMany([...m]),u=q['get'](j)??{'name':null,'tags':[],'updated_at_ms':null},w=u['name'],x=Y=>Y?q['get'](Y)??{'name':null,'tags':[],'updated_at_ms':null}:{'name':null,'tags':[],'updated_at_ms':null};let y=null;const z=k['machine'],A=k['machine_nodes']??[];if(z||A['length']>0x0){const {nodes:Y,edges:Z}=buildMachineGraph(A);y={'address':z?.['object']??l['machine']??'','name':x(z?.['object']??l['machine'])['name'],'description':z?.['description']??null,'published':typeof z?.['bPublished']==='boolean'?z['bPublished']:null,'paused':typeof z?.['bPaused']==='boolean'?z['bPaused']:null,'node_count':typeof z?.['node_count']==='number'?z['node_count']:null,'consensus_repositories':Array['isArray'](z?.['consensus_repositories'])?z['consensus_repositories']:[],'nodes':Y,'edges':Z};}let B=null;try{const a0=await query_object_last_updated({'object':j,'network':f});a0?.['timestamp_ms']&&(B={'timestamp_ms':a0['timestamp_ms'],'digest':a0['digest']??null,'sender':a0['sender']??null});}catch{h['push']('onchain_last_updated:\x20query\x20failed\x20(non-blocking)');}let C=null;try{C=await computeServiceTrustSummary({'service':j,'depth':'evaluate','network':f});}catch{h['push']('trust:\x20evaluation\x20failed\x20(non-blocking)');}let D=null;try{D=await resolveSupplyChainGraph(j,f);}catch{h['push']('supply_chain:\x20resolution\x20failed\x20(non-blocking)');}let E=null;try{const a1=[l];for(const a2 of Object['values'](k['referenced']??{})){if(a2&&a2['object']!==j)a1['push'](a2);}E=generateBusinessReport({'objects':a1,'machine_nodes':A['map'](a3=>({'name':a3['name']}))});}catch{h['push']('business_report:\x20generation\x20failed\x20(non-blocking)');}const F=l?.['type_raw']??l?.['type']??'',G=F['match'](/<(.+)>$/),H=G?G[0x1]:null,I=(a3,a4)=>{const a5=[];return a3?a5['push']('Pricing\x20&\x20settlement\x20coin:\x20'+a3+'\x20—\x20the\x20Service\x27s\x20generic\x20T,\x20FIXED\x20at\x20creation\x20(immutable).\x20Sales\x20prices\x20and\x20order\x20amounts\x20are\x20denominated\x20in\x20this\x20exact\x20token;\x20buyers\x20must\x20hold\x20it\x20to\x20order.'):a5['push']('Pricing\x20&\x20settlement\x20coin:\x20unavailable\x20from\x20the\x20Service\x20type\x20(no\x20generic\x20found)\x20—\x20treat\x20amounts\x20as\x20raw\x20smallest\x20units.'),a5['push']('To\x20price\x20in\x20a\x20different\x20token,\x20publish\x20a\x20NEW\x20Service\x20with\x20type_parameter\x20set\x20to\x20that\x20token\x27s\x20full\x20type\x20—\x20this\x20one\x20keeps\x20settling\x20in\x20its\x20coin.'),/testnet/i['test'](a4)?a5['push']('Testnet\x20has\x20ONLY\x20WOW\x20(no\x20stablecoins\x20are\x20bridged)\x20—\x20testnet\x20services\x20stay\x20WOW-denominated;\x20multi-token\x20pricing\x20is\x20a\x20mainnet\x20capability.'):a5['push']('Mainnet\x20accepts\x20bridged\x20tokens\x20(USDT\x20/\x20USDC\x20/\x20ETH\x20/\x20WBTC\x20/\x20WOW):\x20buyers\x20bridge\x20them\x20from\x20Ethereum\x20via\x20the\x20cross-chain\x20bridge.\x20Query\x20wowok_buildin_info\x20info=\x27mainnet\x20bridge\x20tokens\x27\x20for\x20each\x20token\x27s\x20exact\x20type\x20tag\x20(wowTypeTag)\x20to\x20use\x20in\x20type_parameter\x20when\x20publishing.'),a5['join']('\x20');},J=async a3=>{if(a3===null||a3===undefined||a3==='')return{'display':'','tip':''};if(!H)return{'display':a3,'tip':''};try{const a4=await formatChainValue(a3,H,f);if(a4['precision_known'])return{'display':a4['symbol']?a4['display']+'\x20'+a4['symbol']:a4['display'],'tip':a4['text']};return{'display':a3,'tip':''};}catch{return{'display':a3,'tip':''};}};let K=null;try{const a3=await fetchServiceOrders(j,f,!![]),a4=Array['isArray'](a3?.['items'])?a3['items']:[],a5=a4['map'](ac=>typeof ac?.['who']==='string'?ac['who']:'')['filter'](ac=>ac!==''),a6=new Map();try{if(a5['length']>0x0){const ac=await batchQueryObjectsByIds(a5,f,!![]);for(const ad of ac){ad&&ad['type']===ObjectType['Order']&&a6['set'](ad['object'],ad);}}}catch{h['push']('recent_orders:\x20order\x20details\x20unavailable\x20(non-blocking)');}const a7=new Map(),a8=new Map(),a9=new Map();try{const ae=new Set();for(const af of a6['values']()){if(af?.['progress'])ae['add'](af['progress']);if(af?.['allocation'])ae['add'](af['allocation']);}if(ae['size']>0x0){const ag=await batchQueryObjectsByIds(Array['from'](ae),f,!![]);for(const ah of ag){if(!ah?.['object'])continue;if(ah['type']===ObjectType['Progress']){const ai=ah?.['current'];a7['set'](ah['object'],typeof ai==='string'&&ai!==''?ai:null),a8['set'](ah['object'],Number(ah?.['current_time'])||null);}else{if(ah['type']===ObjectType['Allocation']){const aj=Number(ah?.['balance']??0x0);a9['set'](ah['object'],Number['isFinite'](aj)&&aj===0x0?'allocated':'pending');}}}}}catch{h['push']('recent_orders:\x20progress/allocation\x20details\x20unavailable\x20(non-blocking)');}const aa=new Map();try{const ak=Array['from'](new Set(a4['map'](am=>typeof am?.['who']==='string'?am['who']:'')['filter'](Boolean))),al=await Promise['allSettled'](ak['map'](am=>query_object_last_updated({'object':am,'network':f})));for(let am=0x0;am<ak['length'];am++){const an=al[am];aa['set'](ak[am],an['status']==='fulfilled'&&an['value']?.['timestamp_ms']?Number(an['value']['timestamp_ms'])||null:null);}}catch{h['push']('recent_orders:\x20order\x20updated\x20times\x20unavailable\x20(non-blocking)');}const ab=await Promise['all'](a4['map'](async ao=>{const ap=typeof ao?.['who']==='string'?ao['who']:'',aq=a6['get'](ap),ar=aq?.['amount']!==null&&aq?.['amount']!==undefined?String(aq['amount']):'',as=await J(ar);return{'order':ap,'time':typeof ao?.['time']==='number'?ao['time']:0x0,'updated_ms':aa['get'](ap)??null,'amount':ar,'amount_display':as['display'],'amount_tip':as['tip'],'progress':aq?.['progress']??null,'allocation':aq?.['allocation']??null,'disputes':Array['isArray'](aq?.['dispute'])?aq['dispute']:[],'agent':Array['isArray'](aq?.['agent'])?aq['agent']:[],'owner':ownerAddr(aq?.['builder']??aq?.['owner']),'claimed_by':aq?.['claimed_by']??null,'required_info':aq?.['required_info']??null,'progress_next':aq?.['progress']?a7['get'](aq['progress'])??null:null,'progress_since':aq?.['progress']?a8['get'](aq['progress'])??null:null,'allocation_state':aq?.['allocation']?a9['get'](aq['allocation'])??'pending':'none','bought':await Promise['all']((Array['isArray'](aq?.['items'])?aq['items']:[])['map'](async at=>({'name':String(at?.['name']??''),'price_display':(await J(at?.['price']!==null&&at?.['price']!==undefined?String(at['price']):'0'))['display'],'quantity':String(at?.['quantity']??'0'),'wip_hash':String(at?.['wip_hash']??'')})))};}));K={'count':a4['length'],'items':ab['filter'](ao=>ao['order']!=='')['slice'](-0x14)['reverse']()};}catch{h['push']('recent_orders:\x20reverse-index\x20query\x20failed\x20(non-blocking)');}const L=[];try{const ao=await query_affiliations({'address':j,'no_cache':!![],'network':f}),ap=new Set(),aq=new Map();for(const as of ao?.['entries']??[]){const at=typeof as?.['who']==='string'?as['who']:'';if(!at||ap['has'](at))continue;ap['add'](at);const au=objectTypeFromAddress(at);if(!au)continue;if(au===ObjectType['Order'])continue;const av=String(au);let aw=aq['get'](av);!aw&&(aw=[],aq['set'](av,aw)),aw['push']({'address':at,'type_label':av,'name':x(at)['name'],'time':typeof as?.['time']==='number'?as['time']:null});}const ar=['Progress','Allocation','Payment','Guard'];for(const ax of ar){const ay=aq['get'](ax);ay&&ay['length']>0x0&&(L['push']({'type_label':ax,'items':ay}),aq['delete'](ax));}for(const [az,aA]of aq){if(aA['length']>0x0)L['push']({'type_label':az,'items':aA});}}catch{h['push']('related:\x20global-table\x20lookup\x20failed\x20(non-blocking)');}const M=[];for(const aB of k['allocator_guards']??[]){const aC=summarizeGuard(aB);if(aC)M['push'](aC);}const N=[];for(const aD of Array['isArray'](l['sales'])?l['sales']:[]){const aE=balanceStr(aD?.['price']),aF=await J(aE);N['push']({'name':typeof aD?.['name']==='string'?aD['name']:'','price':aE,'price_display':aF['display'],'price_tip':aF['tip'],'stock':balanceStr(aD?.['stock']),'suspension':aD?.['suspension']===!![],'wip':typeof aD?.['wip']==='string'?aD['wip']:'','wip_hash':typeof aD?.['wip_hash']==='string'?aD['wip_hash']:''});}const O=l['order_allocators']?{'description':l['order_allocators']['description']??'','threshold':balanceStr(l['order_allocators']['threshold']),'allocators':(l['order_allocators']['allocators']??[])['map'](aG=>({'guard':aG['guard'],'sharing_count':Array['isArray'](aG['sharing'])?aG['sharing']['length']:0x0,'max':balanceStr(aG['max']??null)}))}:null,P=summarizePermission(k['permission'],x(l['permission'])),Q=P?.['owner']??B?.['sender']??null,R=Q?await markOf(Q):null;return{'action':'service_panorama','network':f,'service':{'address':j,'name':w,'description':l['description']??'','location':l['location']??'','published':l['bPublished']===!![],'paused':l['bPaused']===!![],'paused_time':typeof l['paused_time']==='number'?l['paused_time']:null,'setting_lock_duration':balanceStr(l['setting_lock_duration']),'customer_required':Array['isArray'](l['customer_required'])?l['customer_required']:[],'compensation_fund':balanceStr(l['compensation_fund']),'sales':N,'machine':l['machine']??null,'buy_guard':l['buy_guard']??null,'permission':l['permission']??'','um':l['um']??null,'arbitrations':Array['isArray'](l['arbitrations'])?l['arbitrations']:[],'rewards':Array['isArray'](l['rewards'])?l['rewards']:[],'repositories':Array['isArray'](l['repositories'])?l['repositories']:[],'order_allocators':O,'payment_token':{'coin_type':H,'guidance':I(H,f)},'onchain_last_updated':B,'tags':u['tags']??[],'owner':Q,'owner_name':R?.['name']??null},'machine_graph':y,'buy_guard':summarizeGuard(k['buy_guard']),'permission':P,'allocator_guards':M,'related':{'groups':L},'supply_chain':D,'trust':C,'business_report':E,'recent_orders':K,'data_gaps':h};}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DataPlane, type ExpansionStrategy, type FindingKind, type TopologyGraph } from "../../graph/onchain/index.js";
|
|
2
|
+
import type { OnchainTopologyInput, OnchainTopologyResult } from "../../schema/query/bi.js";
|
|
3
|
+
export interface TopologyShapeOptions {
|
|
4
|
+
analyze?: boolean;
|
|
5
|
+
analyzerKinds?: FindingKind[];
|
|
6
|
+
onlyAnalyzers?: string[];
|
|
7
|
+
includeRaw?: boolean;
|
|
8
|
+
strategy?: ExpansionStrategy;
|
|
9
|
+
interestRole?: string;
|
|
10
|
+
interestObserver?: string;
|
|
11
|
+
interestDrive?: import("../../evaluation/game-strategy.js").PersonaDrive;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildOnchainTopologyResult(graph: TopologyGraph, seed: string, opts?: TopologyShapeOptions): OnchainTopologyResult;
|
|
14
|
+
export declare function handleOnchainTopology(v: OnchainTopologyInput, planeOverride?: DataPlane): Promise<OnchainTopologyResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SdkDataPlane,expandTopology,buildViewport,buildRoleInterest,runAnalyzers,runNodeAnalyzers,listAnalyzers,toCommercialRole,workflowSubgraphFromEdges,orderCompletionInGraph,resolveExpansionStrategy}from'../../graph/onchain/index.js';import{resolveAddress}from'./relationship-profile.js';import{serviceRiskNodeAnalyzer}from'../../knowledge/service-risk-node.js';import{recommendedCallForForwardBinding}from'../../participation/radar-core.js';import{resolveTopologyContext}from'../../persona/topology-focus.js';const NODE_ANALYZERS=[serviceRiskNodeAnalyzer],NODE_MARK='::node::';function tally(a){const b={};for(const c of a){if(!c)continue;b[c]=(b[c]??0x0)+0x1;}return b;}export function buildOnchainTopologyResult(a,b,c={}){const d=b['toLowerCase'](),f=[],g=new Set();for(const s of a['edges']){if(s['schema']!=='wf.transition')continue;for(const u of[s['from'],s['to']]){const v=u['indexOf'](NODE_MARK);if(v<=0x0)continue;const w=u['slice'](0x0,v)['toLowerCase']();!g['has'](w)&&(g['add'](w),f['push'](w));}}f['sort']();const h=f['map'](x=>{const y=workflowSubgraphFromEdges(a['edges'],x);return{'machine':x,'transitions':y['transitions']['map'](z=>({'node':z['node'],'prev_node':z['prevNode'],...z['forward']!==undefined?{'forward':z['forward']}:{},...z['threshold']!==undefined?{'threshold':z['threshold']}:{},'guard':z['guard']??null,'weight':z['weight']??null,'named_operator':z['namedOperator']??null,'permission_index':z['permissionIndex']??null,'recommended_call':recommendedCallForForwardBinding({'permissionIndex':z['permissionIndex']??null,'namedOperator':z['namedOperator']??null,'hasGuard':!!z['guard']})??null})),'terminal_names':[...y['terminalNames']]['sort']()};}),i=[...a['nodes']['values']()]['filter'](x=>x['kind']==='object'&&x['state']==='fetched'&&x['objectType']==='Order')['map'](x=>({'order':x['id'],...orderCompletionInGraph(a,x['id'])})),j=[...a['gaps']];let k=[],l;if(c['analyze']??!![]){const x=buildViewport(a,d,'neutral'),y=c['analyzerKinds'],z=c['onlyAnalyzers']?new Set(c['onlyAnalyzers']):undefined;try{k=runAnalyzers(x,{...y?{'kinds':y}:{},...z?{'only':[...z]}:{}});}catch(A){j['push']('Analyzer\x20suite\x20failed\x20(topology\x20itself\x20is\x20intact):\x20'+(A?.['message']??String(A)));}try{const B=NODE_ANALYZERS['filter'](C=>(!y||y['includes'](C['kind']))&&(!z||z['has'](C['id'])));k['push'](...runNodeAnalyzers(x,B));}catch(C){j['push']('Node\x20analyzer\x20suite\x20failed\x20(topology\x20itself\x20is\x20intact):\x20'+(C?.['message']??String(C)));}if(c['interestRole']&&c['interestObserver'])try{const D=buildRoleInterest(a,c['interestObserver'],toCommercialRole(c['interestRole']),c['interestDrive']);k['push'](D['finding']),l=D['view'];}catch(E){j['push']('Role\x20interest\x20projection\x20failed\x20(topology\x20itself\x20is\x20intact):\x20'+(E?.['message']??String(E)));}}for(const F of a['truncations']){j['push']('truncated\x20'+F['schema']+'\x20at\x20'+F['nodeId']+':\x20observed\x20at\x20least\x20'+F['observed']+'\x20edge(s)\x20(limit\x20'+F['limit']+')');}if(a['budgetExhausted']['rpcs'])j['push']('RPC\x20batch\x20budget\x20exhausted\x20—\x20topology\x20is\x20partial\x20(raise\x20budget.max_rpcs).');if(a['budgetExhausted']['nodes'])j['push']('Node\x20budget\x20exhausted\x20—\x20topology\x20is\x20partial\x20(raise\x20budget.max_nodes).');if(a['budgetExhausted']['depth'])j['push']('Depth\x20budget\x20exhausted\x20—\x20topology\x20is\x20partial\x20(raise\x20budget.max_depth).');if(a['budgetExhausted']['eventPages'])j['push']('Event-page\x20budget\x20exhausted\x20—\x20event-derived\x20edges\x20are\x20partial.');const m=[...a['nodes']['values']()]['map'](G=>({'id':G['id'],'kind':G['kind'],...G['objectType']?{'object_type':G['objectType']}:{},...G['coinType']?{'coin_type':G['coinType']}:{},'state':G['state'],'depth':G['depth'],...G['error']?{'error':G['error']}:{},...c['includeRaw']&&G['raw']!==undefined?{'raw':G['raw']}:{}})),n=a['edges']['map'](G=>({'id':G['id'],'schema':G['schema'],'family':G['family'],'from':G['from'],'to':G['to'],'retention':G['retention'],'evidence':G['evidence'],...G['key']!==undefined?{'key':G['key']}:{},...G['truncated']!==undefined?{'truncated':G['truncated']}:{},...G['payload']!==undefined?{'payload':G['payload']}:{}})),o=tally(i['map'](G=>G['status'])),p=tally(a['edges']['map'](G=>G['family'])),q=Object['entries'](p)['map'](([G,H])=>G+'×'+H)['join'](',\x20');let r='Topology\x20around\x20'+d+'\x20on\x20'+a['network']+':\x20'+a['nodes']['size']+'\x20node(s),\x20'+a['edges']['length']+'\x20edge(s)'+(q?'\x20('+q+')':'')+(',\x20'+h['length']+'\x20workflow\x20graph(s),\x20'+i['length']+'\x20order(s)')+('\x20['+['completed','in_progress','unknown']['map'](G=>G+'='+(o[G]??0x0))['join'](',\x20')+']')+(',\x20'+k['length']+'\x20finding(s).');return j['length']>0x0&&(r+='\x20'+j['length']+'\x20data\x20gap/partial-data\x20marker(s)\x20—\x20see\x20data_gaps/truncations/budget_exhausted\x20before\x20drawing\x20conclusions.'),{'action':'onchain_topology','seed':d,'network':a['network'],'strategy':{'intents':c['strategy']?.['intents']??['full_map'],...c['strategy']?.['edges']['families']?{'families':c['strategy']['edges']['families']}:{},...c['strategy']?.['edges']['schemas']?{'schemas':c['strategy']['edges']['schemas']}:{},'table_edges':c['strategy']?.['edges']['tableEdges']??['machine.node'],...c['strategy']?.['edges']['familyDepths']?{'family_depths':c['strategy']['edges']['familyDepths']}:{},'budget':{...c['strategy']?.['budget']['maxDepth']!==undefined?{'max_depth':c['strategy']['budget']['maxDepth']}:{},...c['strategy']?.['budget']['maxNodes']!==undefined?{'max_nodes':c['strategy']['budget']['maxNodes']}:{},...c['strategy']?.['budget']['maxFanoutPerNode']!==undefined?{'max_fanout':c['strategy']['budget']['maxFanoutPerNode']}:{},...c['strategy']?.['budget']['maxRpcs']!==undefined?{'max_rpcs':c['strategy']['budget']['maxRpcs']}:{}},'trace':c['strategy']?.['trace']??['kernel\x20default:\x20all\x20families,\x20tables\x20[machine.node],\x20depth\x204']},'analyzers':[...listAnalyzers(),...NODE_ANALYZERS['map'](G=>G['id'])],'stats':{'nodes_total':a['nodes']['size'],'nodes_by_kind':tally([...a['nodes']['values']()]['map'](G=>G['kind'])),'nodes_by_object_type':tally([...a['nodes']['values']()]['map'](G=>G['objectType']??'')),'edges_total':a['edges']['length'],'edges_by_family':p,'edges_by_schema':tally(a['edges']['map'](G=>G['schema'])),'rpc':{'batches':a['rpcReport']['batches'],'by_channel':{'objects':a['rpcReport']['byChannel']['objects'],'keyed_fields':a['rpcReport']['byChannel']['keyedFields'],'tables':a['rpcReport']['byChannel']['tables'],'events':a['rpcReport']['byChannel']['events']},'dedup_hits':a['rpcReport']['dedupHits']}},'nodes':m,'edges':n,'workflows':h,'orders_completion':i,'findings':k,...l?{'role_interest':l}:{},'truncations':a['truncations']['map'](G=>({'node_id':G['nodeId'],'schema':G['schema'],'observed':G['observed'],'limit':G['limit']})),'budget_exhausted':{...a['budgetExhausted']['nodes']?{'nodes':!![]}:{},...a['budgetExhausted']['depth']?{'depth':!![]}:{},...a['budgetExhausted']['rpcs']?{'rpcs':!![]}:{},...a['budgetExhausted']['eventPages']?{'event_pages':!![]}:{}},'data_gaps':j,'summary':r};}export async function handleOnchainTopology(a,b){if(!a['focus'])throw new Error('\x27focus\x27\x20is\x20required\x20for\x20onchain_topology\x20—\x20an\x20on-chain\x20address\x20(0x...)\x20or\x20a\x20LocalMark\x20name.');const c=a['context_network']??'testnet',d=await resolveAddress(a['focus'],'focus'),e=b??new SdkDataPlane(c,{'noCache':a['no_cache']});let f={};try{f=await resolveTopologyContext({...a['context_account']?{'account':a['context_account']['toLowerCase']()}:{},...a['industry']?{'industry':a['industry']}:{},...a['role']?{'role':a['role']}:{}});}catch{}const g=resolveExpansionStrategy({...a['intent']?{'intents':[a['intent']]}:{},...f['roleDefault']?{'roleDefault':f['roleDefault']}:{},...f['industryTemplate']?{'industryTemplate':f['industryTemplate']}:{},...f['personaPref']?{'personaPref':{...f['personaPref'],...f['personaPref']['table_edges']?{'tableEdges':f['personaPref']['table_edges']}:{},...f['personaPref']['family_depths']?{'familyDepths':f['personaPref']['family_depths']}:{},...f['personaPref']['max_depth']!==undefined?{'maxDepth':f['personaPref']['max_depth']}:{},...f['personaPref']['max_nodes']!==undefined?{'maxNodes':f['personaPref']['max_nodes']}:{},...f['personaPref']['max_fanout']!==undefined?{'maxFanout':f['personaPref']['max_fanout']}:{}}}:{},'explicitEdges':{...a['table_edges']?{'tableEdges':a['table_edges']}:{},...a['budget']?{'budget':{...a['budget']['max_depth']!==undefined?{'maxDepth':a['budget']['max_depth']}:{},...a['budget']['max_nodes']!==undefined?{'maxNodes':a['budget']['max_nodes']}:{},...a['budget']['max_fanout']!==undefined?{'maxFanoutPerNode':a['budget']['max_fanout']}:{},...a['budget']['max_rpcs']!==undefined?{'maxRpcs':a['budget']['max_rpcs']}:{}}}:{}}}),h=await expandTopology(e,{'network':c,'seed':d,'budget':g['budget'],'edges':g['edges']}),i=a['interest_role']??a['role'];let j=a['context_account']?.['toLowerCase']();if(!j&&d['startsWith']('0x00'))j=d;const k=f['drive'],l=i&&j?toCommercialRole(i):undefined,m=buildOnchainTopologyResult(h,d,{'analyze':a['analyze'],...a['analyzer_kinds']?{'analyzerKinds':a['analyzer_kinds']}:{},...a['only_analyzers']?{'onlyAnalyzers':a['only_analyzers']}:{},'includeRaw':a['include_raw'],'strategy':g,...l&&j?{'interestRole':l,...k?{'interestDrive':k}:{},'interestObserver':j}:{}});return i&&!j&&m['data_gaps']['push']('interest_role\x20given\x20but\x20no\x20observer\x20EOA\x20(pass\x20context_account,\x20or\x20seed\x20an\x20EOA\x20address)\x20—\x20role\x20interest\x20view\x20skipped'),m;}
|
package/dist/role/index.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export { COMMERCIAL_ROLES } from "./types.js";
|
|
|
3
3
|
export { ROLE_MODELS, gamePowerOf, valuePerspectiveOf, isWeakerParty, isStrongerParty, interestAnalyzerOf, gameStrategyOf, valuePropositionOf, } from "./model.js";
|
|
4
4
|
export { deriveCommercialRole, deriveAllRoles, PERMISSION_RANGES, CORE_PERMISSION_INDEX, type RoleDerivationInput, type DerivedRole, } from "./derivation.js";
|
|
5
5
|
export { mergeRolePerspective, isOnchainRoleAuthoritative, resolveWatchRole, type RoleMergeResult, type WatchRoleInput, type WatchRole, } from "./resolution.js";
|
|
6
|
+
export { ROLE_PERSONALITIES, ROLE_PERSONALITY_LIST, ROLE_MOVE_MECHANISMS, getRolePersonality, type RolePersonality, type RoleActionRef, type RoleFeedbackSignals, } from "./profiles.js";
|
package/dist/role/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{COMMERCIAL_ROLES}from'./types.js';export{ROLE_MODELS,gamePowerOf,valuePerspectiveOf,isWeakerParty,isStrongerParty,interestAnalyzerOf,gameStrategyOf,valuePropositionOf}from'./model.js';export{deriveCommercialRole,deriveAllRoles,PERMISSION_RANGES,CORE_PERMISSION_INDEX}from'./derivation.js';export{mergeRolePerspective,isOnchainRoleAuthoritative,resolveWatchRole}from'./resolution.js';
|
|
1
|
+
export{COMMERCIAL_ROLES}from'./types.js';export{ROLE_MODELS,gamePowerOf,valuePerspectiveOf,isWeakerParty,isStrongerParty,interestAnalyzerOf,gameStrategyOf,valuePropositionOf}from'./model.js';export{deriveCommercialRole,deriveAllRoles,PERMISSION_RANGES,CORE_PERMISSION_INDEX}from'./derivation.js';export{mergeRolePerspective,isOnchainRoleAuthoritative,resolveWatchRole}from'./resolution.js';export{ROLE_PERSONALITIES,ROLE_PERSONALITY_LIST,ROLE_MOVE_MECHANISMS,getRolePersonality}from'./profiles.js';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PersonaRole } from "../persona/types.js";
|
|
2
|
+
export declare const ROLE_MOVE_MECHANISMS: readonly ["Service", "Machine", "Guard", "Allocator", "Progress", "Order", "Arbitration", "Demand", "DemandPresenter", "Reward", "Treasury", "Passport", "WTS", "WIP", "CompensationFund", "Repository"];
|
|
3
|
+
export interface RoleActionRef {
|
|
4
|
+
move: string;
|
|
5
|
+
via?: string;
|
|
6
|
+
when?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RoleFeedbackSignals {
|
|
9
|
+
win: string[];
|
|
10
|
+
lose: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface RolePersonality {
|
|
13
|
+
role: PersonaRole;
|
|
14
|
+
archetype: string;
|
|
15
|
+
motivations: string[];
|
|
16
|
+
communication: string;
|
|
17
|
+
value_levers: RoleActionRef[];
|
|
18
|
+
game_moves: Array<RoleActionRef & {
|
|
19
|
+
taboo?: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
path_preferences: string[];
|
|
22
|
+
feedback_signals: RoleFeedbackSignals;
|
|
23
|
+
}
|
|
24
|
+
export declare const ROLE_PERSONALITIES: Record<PersonaRole, RolePersonality>;
|
|
25
|
+
export declare function getRolePersonality(role: string): RolePersonality | undefined;
|
|
26
|
+
export declare const ROLE_PERSONALITY_LIST: RolePersonality[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ROLE_MOVE_MECHANISMS=['Service','Machine','Guard','Allocator','Progress','Order','Arbitration','Demand','DemandPresenter','Reward','Treasury','Passport','WTS','WIP','CompensationFund','Repository'];export const ROLE_PERSONALITIES={'merchant':{'role':'merchant','archetype':'The\x20Trust-First\x20Shopkeeper\x20—\x20wins\x20repeat\x20volume\x20by\x20making\x20trust\x20verifiable\x20on-chain','motivations':['durable\x20gross\x20margin\x20above\x20hard\x20cost/fund\x20floors','repeat\x20order\x20volume\x20and\x20referral-driven\x20acquisition','a\x20differentiated\x20trust\x20moat\x20(arbitration\x20+\x20compensation\x20fund\x20+\x20WIP\x20evidence)','low\x20dispute\x20and\x20compensation-payout\x20rates'],'communication':'proactive\x20and\x20specific:\x20quote\x20prices\x20with\x20escrow/split\x20terms,\x20state\x20guard\x20evidence\x20up\x20front,\x20answer\x20fast\x20on\x20pre-sales\x20questions,\x20never\x20vague-promise','value_levers':[{'move':'Publish\x20services\x20with\x20a\x20WIP-verified\x20product,\x20bound\x20Arbitration\x20and\x20a\x20funded\x20CompensationFund\x20so\x20trust\x20is\x20inspectable\x20before\x20purchase','via':'onchain_operations','when':'new\x20service\x20or\x20trust\x20score\x20below\x20category\x20median'},{'move':'Design\x20the\x20Machine\x20around\x20verifiable\x20business\x20states\x20and\x20attach\x20buy/evidence\x20Guards\x20instead\x20of\x20relying\x20on\x20chat\x20assurances','via':'machineNode2file'},{'move':'Encode\x20pricing\x20and\x20delivery\x20money\x20flow\x20explicitly\x20with\x20Allocator\x20splits/milestones,\x20never\x20informal\x20off-chain\x20promises','via':'onchain_operations'},{'move':'Run\x20Reward-based\x20acquisition\x20and\x20targeted\x20discounts\x20only\x20against\x20tracked\x20funnel\x20metrics,\x20not\x20blanket\x20price\x20cuts','via':'onchain_operations','when':'posture\x20is\x20volume\x20or\x20a\x20campaign\x20window\x20is\x20open'},{'move':'Scan\x20competitor\x20supply\x20(price,\x20trust,\x20rewards,\x20fund\x20coverage)\x20before\x20changing\x20price\x20or\x20offering','via':'evaluation_operation'},{'move':'Adopt\x20and\x20tune\x20the\x20industry\x20playbook\x20(mode/flywheel/risk\x20constraints)\x20for\x20the\x20shop\x27s\x20industry','via':'industry_pack_operation'}],'game_moves':[{'move':'Lead\x20negotiation\x20with\x20verifiable\x20trust\x20assets\x20(arb\x20rulings,\x20WIP,\x20fund\x20balance);\x20compete\x20on\x20proof\x20before\x20price','via':'evaluation_operation'},{'move':'Concede\x20small\x20discounts\x20late\x20in\x20negotiation\x20in\x20exchange\x20for\x20review/referral\x20commitments,\x20never\x20before\x20intent\x20is\x20proven','via':'Reward'},{'move':'Advance\x20orders\x20only\x20against\x20the\x20guard\x20evidence\x20the\x20machine\x20requires;\x20keep\x20the\x20workflow\x20moving\x20to\x20avoid\x20stall\x20blame','via':'workflow_operation'},{'move':'Settle\x20a\x20genuine\x20fault\x20fast\x20via\x20the\x20machine/allocator\x20refund\x20path\x20rather\x20than\x20escalating;\x20reserve\x20arbitration\x20for\x20disputed\x20fault','via':'Arbitration'},{'move':'Never\x20price\x20below\x20hard\x20cost\x20floor\x20or\x20leave\x20the\x20compensation\x20fund\x20under-covered\x20to\x20chase\x20volume','taboo':!![]},{'move':'Never\x20promise\x20refunds\x20or\x20delivery\x20terms\x20outside\x20the\x20bound\x20Machine/Allocator/Arbitration\x20configuration','taboo':!![]}],'path_preferences':['new\x20merchant\x20intent\x20→\x20guided\x20Service+Machine+Guard+Allocator\x20build\x20with\x20industry\x20mode\x20defaults','growth\x20intent\x20→\x20competitor\x20scan\x20→\x20campaign\x20(Reward/discount)\x20→\x20funnel\x20measurement\x20→\x20adjust','dispute\x20intent\x20→\x20evidence\x20check\x20first,\x20negotiated\x20remedy\x20second,\x20arbitration\x20only\x20when\x20fault\x20is\x20genuinely\x20contested'],'feedback_signals':{'win':['growing\x20order\x20count\x20at\x20or\x20above\x20target\x20margin','rising\x20repeat/referral\x20share','zero\x20or\x20falling\x20compensation\x20payouts','trust\x20score\x20above\x20category\x20median'],'lose':['volume\x20up\x20but\x20margin\x20below\x20floor','dispute\x20rate\x20or\x20fund\x20payouts\x20rising','funnel\x20stalls\x20at\x20trust/guards\x20stage','rewards\x20spent\x20without\x20repeat\x20conversion']}},'customer':{'role':'customer','archetype':'The\x20Protected\x20Buyer\x20—\x20money\x20stays\x20escrowed\x20until\x20delivery\x20is\x20verified','motivations':['pay\x20only\x20for\x20verified,\x20conforming\x20delivery','keep\x20funds\x20recoverable\x20through\x20refund/arbitration\x20paths','minimize\x20information\x20asymmetry\x20and\x20switching\x20cost','extract\x20fair\x20remedy\x20quickly\x20when\x20delivery\x20fails'],'communication':'evidence-driven\x20and\x20calm:\x20state\x20acceptance\x20criteria\x20before\x20paying,\x20timestamp\x20every\x20issue,\x20keep\x20demands\x20tied\x20to\x20order\x20terms','value_levers':[{'move':'Before\x20paying,\x20verify\x20escrow/split\x20structure,\x20refund\x20path\x20(arbitration-backed\x20or\x20allocator),\x20guards\x20and\x20fund\x20coverage\x20of\x20the\x20service','via':'evaluation_operation'},{'move':'Keep\x20all\x20negotiation\x20and\x20delivery\x20evidence\x20in\x20WTS\x20so\x20any\x20later\x20dispute\x20has\x20tamper-proof\x20proof','via':'messenger_operation'},{'move':'Advance/confirm\x20receipt\x20only\x20when\x20the\x20current\x20Machine\x20state\x27s\x20guard\x20evidence\x20actually\x20matches\x20the\x20agreed\x20deliverable','via':'workflow_operation'},{'move':'On\x20non-conformity,\x20file\x20through\x20the\x20bound\x20Arbitration\x20with\x20WTS\x20evidence\x20rather\x20than\x20negotiating\x20from\x20weakness','via':'onchain_operations'},{'move':'Track\x20order\x20history\x20and\x20attention\x20signals\x20to\x20judge\x20a\x20merchant\x27s\x20real\x20performance\x20over\x20time','via':'evaluation_operation'}],'game_moves':[{'move':'Push\x20for\x20escrow/milestone\x20payment\x20and\x20explicit\x20acceptance\x20guards\x20when\x20listing\x20terms','via':'onchain_operations','when':'high-value\x20or\x20custom\x20order'},{'move':'Compare\x202–3\x20qualified\x20services\x20on\x20trust\x20dimensions,\x20not\x20headline\x20price,\x20before\x20committing','via':'evaluation_operation'},{'move':'Offer\x20fast\x20confirmation\x20and\x20a\x20positive\x20review/referral\x20in\x20exchange\x20for\x20reliable\x20delivery\x20—\x20cheap,\x20valuable\x20currency\x20to\x20merchants','via':'Reward'},{'move':'Never\x20confirm\x20receipt\x20or\x20release\x20milestone\x20funds\x20before\x20verifying\x20the\x20deliverable\x20against\x20guards','taboo':!![]},{'move':'Never\x20continue\x20transacting\x20with\x20a\x20service\x20that\x20has\x20no\x20refund\x20path\x20and\x20no\x20arbitration\x20for\x20a\x20high-value\x20order','taboo':!![]}],'path_preferences':['buy\x20intent\x20with\x20trust\x20gaps\x20→\x20due-diligence\x20evaluation\x20→\x20negotiate\x20guard/escrow\x20terms\x20→\x20pay\x20→\x20verify\x20→\x20confirm','problem\x20after\x20payment\x20→\x20preserve\x20WTS\x20evidence\x20→\x20request\x20remedy\x20within\x20SLA\x20→\x20arbitration\x20only\x20if\x20remedy\x20fails','repeat\x20purchase\x20→\x20prefer\x20proven\x20merchants\x20and\x20reward\x20loyalty\x20offers,\x20keep\x20scanning\x20only\x20when\x20trust\x20degrades'],'feedback_signals':{'win':['delivery\x20conforms\x20to\x20guards','fast\x20remedy\x20or\x20winning\x20arbitration\x20ruling\x20with\x20indemnity','payments\x20released\x20only\x20after\x20verification'],'lose':['released\x20funds\x20before\x20verification','dispute\x20lost\x20for\x20missing\x20evidence','surprise\x20cost/term\x20not\x20disclosed\x20pre-order']}},'prospect':{'role':'prospect','archetype':'The\x20Diligent\x20Comparer\x20—\x20converts\x20uncertainty\x20into\x20a\x20buy/no-buy\x20decision\x20with\x20evidence','motivations':['find\x20the\x20most\x20trustworthy\x20option\x20matching\x20real\x20needs\x20and\x20taste','avoid\x20first-order\x20regret\x20(overpaying,\x20missing\x20red\x20lines)','spend\x20the\x20minimum\x20due-diligence\x20effort\x20that\x20resolves\x20actual\x20risk'],'communication':'questioning\x20and\x20structured:\x20asks\x20about\x20delivery\x20mechanics,\x20refund\x20path,\x20evidence\x20and\x20fund\x20coverage;\x20compares\x20answers\x20across\x20vendors','value_levers':[{'move':'Enumerate\x20active\x20services\x20in\x20category/location\x20and\x20shortlist\x20on\x20trust\x20fit,\x20not\x20just\x20price','via':'evaluation_operation'},{'move':'Score\x20candidates\x20on\x20arbitration/score,\x20compensation\x20fund,\x20WIP\x20verification,\x20guard\x20completeness\x20and\x20cycle\x20fit','via':'trust_score'},{'move':'Match\x20personal\x20taste/consumption\x20preferences\x20against\x20service\x20signals\x20before\x20investing\x20attention','via':'evaluation_operation'},{'move':'Watch\x20market\x20attention/funnel\x20signals\x20to\x20gauge\x20whether\x20a\x20listing\x20is\x20genuinely\x20competitive','via':'evaluation_operation'}],'game_moves':[{'move':'Ask\x20the\x20same\x20six\x20diligence\x20questions\x20(escrow,\x20refund,\x20guards,\x20evidence,\x20SLA,\x20arbitration)\x20to\x20every\x20candidate\x20to\x20make\x20answers\x20comparable','via':'messenger_operation'},{'move':'Use\x20a\x20competing\x20offer\x20as\x20a\x20factual\x20reference,\x20never\x20bluff\x20with\x20nonexistent\x20bids','via':'evaluation_operation'},{'move':'Walk\x20away\x20when\x20refund\x20path\x20/\x20arbitration\x20/\x20fund\x20coverage\x20fails\x20the\x20buy\x20threshold\x20—\x20attention\x20is\x20leverage','via':'Service'},{'move':'Never\x20treat\x20marketing\x20copy\x20as\x20a\x20substitute\x20for\x20on-chain\x20trust\x20configuration','taboo':!![]}],'path_preferences':['browse\x20intent\x20→\x20enumerate\x20→\x20shortlist\x202–3\x20→\x20diligence\x20questions\x20→\x20trust\x20score\x20→\x20buy/no-buy','high-risk/high-value\x20intent\x20→\x20deepen\x20diligence\x20(WIP,\x20rulings,\x20history)\x20before\x20any\x20conversation\x20about\x20payment'],'feedback_signals':{'win':['chosen\x20service\x20performs\x20as\x20diligence\x20predicted','diligence\x20surfaced\x20a\x20real\x20defect\x20and\x20prevented\x20a\x20bad\x20order'],'lose':['bought\x20against\x20diligence\x20warning\x20and\x20suffered','spent\x20excessive\x20effort\x20on\x20vendors\x20that\x20fail\x20basic\x20trust\x20thresholds']}},'demander':{'role':'demander','archetype':'The\x20Discerning\x20Procurer\x20—\x20publishes\x20demand,\x20scores\x20presentations,\x20awards\x20on\x20evidence','motivations':['solicit\x20qualified\x20competition\x20rather\x20than\x20accept\x20the\x20first\x20vendor','award\x20on\x20transparent\x20weights\x20(trust,\x20price,\x20delivery\x20fit,\x20evidence)','limit\x20pilot\x20risk\x20while\x20testing\x20a\x20new\x20supplier\x20relationship'],'communication':'formal\x20and\x20criteria-first:\x20publish\x20scope,\x20award\x20weights\x20and\x20timelines;\x20give\x20comparable\x20feedback\x20to\x20presenters','value_levers':[{'move':'Publish\x20a\x20Demand\x20with\x20explicit\x20scope,\x20guard\x20expectations\x20and\x20award\x20criteria\x20so\x20presentations\x20are\x20comparable','via':'onchain_operations'},{'move':'Choose\x20open\x20RFP\x20vs\x20passport-gated\x20by\x20risk:\x20open\x20for\x20discovery,\x20gated\x20for\x20sensitive/high-value\x20categories','via':'Demand'},{'move':'Score\x20each\x20DemandPresenter\x20on\x20trust/price/evidence\x20against\x20the\x20published\x20weights,\x20not\x20rapport','via':'evaluation_operation'},{'move':'Use\x20a\x20small\x20pilot\x20order\x20with\x20milestone\x20allocators\x20before\x20committing\x20the\x20full\x20engagement','via':'onchain_operations'},{'move':'Reward\x20good\x20presenters\x20(award\x20+\x20feedback)\x20to\x20keep\x20future\x20RFPs\x20competitive','via':'Reward'}],'game_moves':[{'move':'Keep\x20at\x20least\x20two\x20credible\x20presenters\x20in\x20the\x20field\x20until\x20the\x20award\x20decision','via':'DemandPresenter'},{'move':'Ask\x20finalists\x20for\x20the\x20same\x20clarification\x20set\x20so\x20award\x20comparisons\x20stay\x20apples-to-apples','via':'messenger_operation'},{'move':'Award\x20the\x20order\x20on-chain\x20through\x20the\x20demand\x20flow\x20so\x20selection\x20is\x20auditable','via':'onchain_operations'},{'move':'Never\x20move\x20selection\x20off-platform\x20(handshake\x20deals)\x20after\x20presentations\x20were\x20solicited\x20on-chain','taboo':!![]},{'move':'Never\x20award\x20a\x20high-risk\x20category\x20without\x20arbitration\x20+\x20fund\x20coverage\x20regardless\x20of\x20price','taboo':!![]}],'path_preferences':['sourcing\x20intent\x20→\x20publish\x20Demand\x20(scope/weights/gating)\x20→\x20collect\x20presentations\x20→\x20score\x20→\x20clarify\x20→\x20award','new\x20supplier\x20intent\x20→\x20gated\x20pilot\x20with\x20milestones\x20→\x20evidence\x20review\x20→\x20scale\x20or\x20replace'],'feedback_signals':{'win':['multiple\x20qualified\x20presentations','award\x20outcome\x20matches\x20the\x20published\x20weights','pilot\x20delivers\x20before\x20scale-up'],'lose':['only\x20one\x20qualified\x20presenter\x20(demand\x20too\x20narrow\x20or\x20gated)','award\x20decided\x20on\x20rapport\x20and\x20underperforms','scope\x20creep\x20after\x20award']}},'supplier':{'role':'supplier','archetype':'The\x20Reliable\x20Peer\x20Fulfiller\x20—\x20wins\x20sub-orders\x20through\x20delivery\x20certainty\x20and\x20clean\x20settlement','motivations':['steady\x20flow\x20of\x20sub-orders\x20at\x20acceptable\x20minimum\x20order\x20value','predictable\x20settlement\x20against\x20delivered\x20milestones','reputation\x20as\x20the\x20supplier\x20upstream\x20merchants\x20can\x20safely\x20rely\x20on','capacity\x20utilization\x20without\x20over-committing'],'communication':'precise\x20about\x20scope\x20and\x20lead\x20time:\x20commits\x20only\x20to\x20what\x20capacity\x20allows,\x20flags\x20risk\x20early,\x20reports\x20progress\x20with\x20evidence','value_levers':[{'move':'Discover\x20open\x20demands/match\x20opportunities\x20in\x20categories\x20matching\x20proven\x20capability','via':'evaluation_operation'},{'move':'Present\x20a\x20Service\x20with\x20concrete\x20capability\x20evidence,\x20lead\x20time\x20and\x20settlement\x20terms','via':'onchain_operations'},{'move':'Drive\x20the\x20sub-order\x27s\x20Progress\x20nodes\x20on\x20time\x20with\x20required\x20guard\x20evidence\x20to\x20trigger\x20milestone\x20allocation','via':'workflow_operation'},{'move':'Persist\x20WIP/evidence\x20artifacts\x20that\x20satisfy\x20upstream\x20guards','via':'wip_file'},{'move':'Coordinate\x20scope\x20changes\x20and\x20delivery\x20evidence\x20with\x20the\x20upstream\x20merchant\x20over\x20WTS','via':'messenger_operation'}],'game_moves':[{'move':'Negotiate\x20minimum\x20order\x20value,\x20lead\x20time\x20and\x20milestone\x20splits\x20before\x20accepting\x20a\x20sub-order','via':'onchain_operations'},{'move':'Surface\x20blockers\x20immediately\x20with\x20evidence;\x20early\x20bad\x20news\x20protects\x20reputation\x20and\x20SLA','via':'WTS'},{'move':'Collect\x20settlement\x20by\x20completing\x20the\x20guard-gated\x20forward\x20that\x20releases\x20the\x20allocation,\x20not\x20by\x20dunning\x20off-chain','via':'Allocator'},{'move':'Never\x20accept\x20capacity\x20beyond\x20stated\x20concurrent-order\x20limits\x20to\x20buy\x20utilization','taboo':!![]},{'move':'Never\x20advance\x20a\x20Progress\x20node\x20without\x20the\x20evidence\x20its\x20guard\x20requires','taboo':!![]}],'path_preferences':['growth\x20intent\x20→\x20discover\x20demands\x20→\x20present\x20with\x20evidence\x20→\x20negotiate\x20terms\x20→\x20fulfill\x20→\x20collect\x20→\x20seek\x20repeat','conflict\x20with\x20upstream\x20→\x20preserve\x20WTS\x20trail\x20→\x20use\x20the\x20bound\x20arbitration\x20rather\x20than\x20withholding\x20delivery'],'feedback_signals':{'win':['milestones\x20accepted\x20first\x20pass','settlement\x20arrives\x20on\x20forward\x20completion','repeat\x20sub-orders\x20from\x20same\x20upstream'],'lose':['guard\x20rejections\x20/\x20rework','settlement\x20disputes\x20from\x20missing\x20evidence','capacity\x20overruns\x20causing\x20late\x20delivery']}},'collaborator':{'role':'collaborator','archetype':'The\x20Disciplined\x20Operator\x20—\x20keeps\x20workflows\x20flowing\x20strictly\x20within\x20granted\x20permissions','motivations':['advance\x20work\x20without\x20stalling\x20the\x20process','stay\x20unambiguously\x20inside\x20the\x20permission\x20index\x20/\x20named-operator\x20scope','build\x20a\x20clean,\x20auditable\x20execution\x20record'],'communication':'terse\x20and\x20procedural:\x20reports\x20what\x20was\x20advanced,\x20with\x20which\x20evidence,\x20and\x20what\x20needs\x20a\x20decision\x20from\x20the\x20owner','value_levers':[{'move':'Inspect\x20the\x20permission\x20index\x20and\x20named-operator\x20grants\x20before\x20attempting\x20any\x20forward','via':'permission_operation'},{'move':'Execute\x20only\x20the\x20forwards\x20the\x20role\x20is\x20authorized\x20for,\x20attaching\x20the\x20guard\x20evidence\x20each\x20forward\x20requires','via':'workflow_operation'},{'move':'Persist\x20proof/repository\x20artifacts\x20needed\x20by\x20guards','via':'guard2file'},{'move':'Track\x20assigned\x20operations\x20and\x20their\x20outcomes\x20for\x20accountability','via':'employee_operation'}],'game_moves':[{'move':'When\x20a\x20guard\x20is\x20unsatisfiable\x20in\x20time,\x20escalate\x20with\x20evidence\x20instead\x20of\x20improvising','via':'WTS'},{'move':'Batch\x20routine\x20advances\x20within\x20scope;\x20pause\x20and\x20ask\x20on\x20anything\x20outside\x20it','via':'ask_user'},{'move':'Never\x20execute\x20a\x20forward\x20outside\x20the\x20granted\x20permission\x20index\x20even\x20if\x20the\x20owner\x20verbally\x20asks\x20—\x20request\x20an\x20on-chain\x20grant\x20first','taboo':!![]},{'move':'Never\x20submit\x20fabricated\x20or\x20placeholder\x20evidence\x20to\x20pass\x20a\x20guard','taboo':!![]}],'path_preferences':['assigned\x20work\x20→\x20check\x20permission\x20→\x20gather\x20evidence\x20→\x20advance\x20→\x20report','out-of-scope\x20request\x20→\x20request\x20grant/permission\x20update\x20→\x20then\x20act'],'feedback_signals':{'win':['forwards\x20accepted\x20without\x20rework','zero\x20permission\x20violations','owners\x20re-grant\x20and\x20expand\x20scope\x20over\x20time'],'lose':['rejected\x20advances\x20from\x20missing\x20evidence','scope\x20violations','workflow\x20stalls\x20attributable\x20to\x20this\x20operator']}},'arbitrator':{'role':'arbitrator','archetype':'The\x20Evidence-First\x20Arbiter\x20—\x20fair,\x20fast,\x20and\x20bounded\x20by\x20the\x20arbitration\x20configuration','motivations':['correct\x20rulings\x20on\x20evidence\x20and\x20the\x20bound\x20rules,\x20maximizing\x20legitimacy','predictable\x20throughput\x20and\x20SLA\x20performance','sustainable\x20arbitration\x20fee\x20income\x20with\x20low\x20appeal/contest\x20rate'],'communication':'neutral\x20and\x20structured:\x20states\x20evidence\x20accepted,\x20rules\x20applied,\x20fault\x20allocation\x20and\x20remedy\x20in\x20every\x20ruling;\x20no\x20advocacy\x20language','value_levers':[{'move':'Publish/operate\x20Arbitration\x20objects\x20with\x20clear\x20voting\x20rules,\x20SLA\x20tiers\x20and\x20case\x20scope\x20so\x20parties\x20select\x20predictably','via':'onchain_operations'},{'move':'Build\x20a\x20public\x20record\x20of\x20completed\x20rulings\x20to\x20earn\x20selection\x20trust','via':'evaluation_operation'},{'move':'Review\x20WTS\x20evidence\x20bundles\x20and\x20guard\x20records\x20submitted\x20by\x20both\x20sides\x20before\x20ruling','via':'messenger_operation'},{'move':'Rule\x20strictly\x20within\x20the\x20Arbitration\x20configuration\x20and\x20compensation\x20rules\x20configured\x20on\x20the\x20Service','via':'Arbitration'}],'game_moves':[{'move':'Demand\x20complete\x20evidence\x20from\x20both\x20sides\x20before\x20closing;\x20issue\x20structured\x20evidence\x20requests\x20early\x20in\x20SLA','via':'WTS'},{'move':'Allocate\x20fault\x20on\x20evidence\x20weight\x20and\x20publish\x20reasoning\x20concise\x20enough\x20to\x20be\x20auditable','via':'onchain_operations'},{'move':'Recuse/decline\x20cases\x20outside\x20declared\x20case\x20types\x20or\x20capacity\x20rather\x20than\x20rule\x20poorly','via':'ask_user'},{'move':'Never\x20rule\x20outside\x20the\x20arbitration\x27s\x20configured\x20voting/fee/scope\x20rules','taboo':!![]},{'move':'Never\x20communicate\x20ex\x20parte\x20with\x20one\x20disputant\x20outside\x20the\x20shared\x20evidence\x20channel','taboo':!![]}],'path_preferences':['case\x20intake\x20→\x20scope/eligibility\x20check\x20→\x20evidence\x20request\x20→\x20evaluate\x20→\x20rule\x20within\x20SLA','insufficient\x20evidence\x20→\x20structured\x20request,\x20not\x20guesswork'],'feedback_signals':{'win':['rulings\x20accepted\x20without\x20contest','SLA\x20met\x20consistently','selection\x20rate\x20/\x20arbitration\x20score\x20rises'],'lose':['contested\x20or\x20appealed\x20rulings','SLA\x20breaches','parties\x20opt\x20out\x20of\x20this\x20arbitrator\x20after\x20one\x20case']}}};export function getRolePersonality(a){return ROLE_PERSONALITIES[a];}export const ROLE_PERSONALITY_LIST=Object['values'](ROLE_PERSONALITIES);
|
|
@@ -11,7 +11,10 @@ export type ConfirmResult = {
|
|
|
11
11
|
rule_id: string;
|
|
12
12
|
};
|
|
13
13
|
export declare function getFailMode(level: ConfirmLevel): FailMode;
|
|
14
|
-
export
|
|
14
|
+
export interface GatePolicyView {
|
|
15
|
+
intent_bypass?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function confirmGate(operation_type: string, data: any, env: any, userIntentPhrases?: string[], overrides?: Record<string, string>, policy?: GatePolicyView): ConfirmResult;
|
|
15
18
|
export declare function isExplicitlyConfirmed(env: CallEnv & {
|
|
16
19
|
confirmed?: boolean;
|
|
17
20
|
}): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as
|
|
1
|
+
import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a283a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a283a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+(b instanceof Error?b['message']:String(b)));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b instanceof Error?b['message']:b!==undefined?String(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
|
|
@@ -26,9 +26,9 @@ export declare const CallAllocation_CreateSchema: z.ZodObject<{
|
|
|
26
26
|
sharing: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
27
27
|
mode: z.ZodUnion<readonly [z.ZodEnum<{
|
|
28
28
|
Amount: "Amount";
|
|
29
|
-
Rate: "Rate";
|
|
30
29
|
Surplus: "Surplus";
|
|
31
|
-
|
|
30
|
+
Rate: "Rate";
|
|
31
|
+
}>, z.ZodPipe<z.ZodNumber, z.ZodTransform<"Amount" | "Surplus" | "Rate", number>>]>;
|
|
32
32
|
}, z.core.$strip>>;
|
|
33
33
|
fix: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
34
34
|
max: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodNull]>>;
|
|
@@ -89,9 +89,9 @@ export declare const CallAllocation_DataSchema: z.ZodUnion<readonly [z.ZodObject
|
|
|
89
89
|
sharing: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
90
90
|
mode: z.ZodUnion<readonly [z.ZodEnum<{
|
|
91
91
|
Amount: "Amount";
|
|
92
|
-
Rate: "Rate";
|
|
93
92
|
Surplus: "Surplus";
|
|
94
|
-
|
|
93
|
+
Rate: "Rate";
|
|
94
|
+
}>, z.ZodPipe<z.ZodNumber, z.ZodTransform<"Amount" | "Surplus" | "Rate", number>>]>;
|
|
95
95
|
}, z.core.$strip>>;
|
|
96
96
|
fix: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
97
97
|
max: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodNull]>>;
|
|
@@ -152,9 +152,9 @@ export declare const CallAllocation_InputSchema: z.ZodObject<{
|
|
|
152
152
|
sharing: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
153
153
|
mode: z.ZodUnion<readonly [z.ZodEnum<{
|
|
154
154
|
Amount: "Amount";
|
|
155
|
-
Rate: "Rate";
|
|
156
155
|
Surplus: "Surplus";
|
|
157
|
-
|
|
156
|
+
Rate: "Rate";
|
|
157
|
+
}>, z.ZodPipe<z.ZodNumber, z.ZodTransform<"Amount" | "Surplus" | "Rate", number>>]>;
|
|
158
158
|
}, z.core.$strip>>;
|
|
159
159
|
fix: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
160
160
|
max: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodNull]>>;
|
|
@@ -13,11 +13,11 @@ export declare const EvmAddressSchema: z.ZodString;
|
|
|
13
13
|
export declare const BridgeAmountSchema: z.ZodString;
|
|
14
14
|
export declare const BridgeIdempotencyKeySchema: z.ZodString;
|
|
15
15
|
export declare const BridgeOperationTypeSchema: z.ZodEnum<{
|
|
16
|
+
withdraw: "withdraw";
|
|
16
17
|
cross_chain_wow_to_evm: "cross_chain_wow_to_evm";
|
|
17
18
|
cross_chain_evm_to_wow: "cross_chain_evm_to_wow";
|
|
18
19
|
claim_wow_to_evm: "claim_wow_to_evm";
|
|
19
20
|
resume_transfer: "resume_transfer";
|
|
20
|
-
withdraw: "withdraw";
|
|
21
21
|
query_active_evm_account: "query_active_evm_account";
|
|
22
22
|
query_supported_evm_chains: "query_supported_evm_chains";
|
|
23
23
|
query_supported_tokens: "query_supported_tokens";
|
|
@@ -11,12 +11,12 @@ export declare const CallGuard_RootSchema: z.ZodUnion<readonly [z.ZodType<unknow
|
|
|
11
11
|
export declare const GuardBindingHintActionSchema: z.ZodEnum<{
|
|
12
12
|
custom: "custom";
|
|
13
13
|
forward: "forward";
|
|
14
|
-
gen_passport: "gen_passport";
|
|
15
14
|
dispute: "dispute";
|
|
16
|
-
|
|
15
|
+
vote: "vote";
|
|
17
16
|
allocate: "allocate";
|
|
17
|
+
gen_passport: "gen_passport";
|
|
18
|
+
buy: "buy";
|
|
18
19
|
claim_reward: "claim_reward";
|
|
19
|
-
vote: "vote";
|
|
20
20
|
write_repository: "write_repository";
|
|
21
21
|
submit_progress: "submit_progress";
|
|
22
22
|
}>;
|
|
@@ -34,24 +34,24 @@ export declare const GuardBindingHintBindingFieldSchema: z.ZodEnum<{
|
|
|
34
34
|
guard: "guard";
|
|
35
35
|
none: "none";
|
|
36
36
|
submission: "submission";
|
|
37
|
+
voting_guard: "voting_guard";
|
|
38
|
+
usage_guard: "usage_guard";
|
|
37
39
|
order_allocators: "order_allocators";
|
|
38
40
|
buy_guard: "buy_guard";
|
|
39
41
|
"Forward.guard": "Forward.guard";
|
|
40
42
|
write_guard: "write_guard";
|
|
41
|
-
usage_guard: "usage_guard";
|
|
42
|
-
voting_guard: "voting_guard";
|
|
43
43
|
ServiceGuard: "ServiceGuard";
|
|
44
44
|
}>;
|
|
45
45
|
export declare const GuardBindingHintSchema: z.ZodObject<{
|
|
46
46
|
action: z.ZodEnum<{
|
|
47
47
|
custom: "custom";
|
|
48
48
|
forward: "forward";
|
|
49
|
-
gen_passport: "gen_passport";
|
|
50
49
|
dispute: "dispute";
|
|
51
|
-
|
|
50
|
+
vote: "vote";
|
|
52
51
|
allocate: "allocate";
|
|
52
|
+
gen_passport: "gen_passport";
|
|
53
|
+
buy: "buy";
|
|
53
54
|
claim_reward: "claim_reward";
|
|
54
|
-
vote: "vote";
|
|
55
55
|
write_repository: "write_repository";
|
|
56
56
|
submit_progress: "submit_progress";
|
|
57
57
|
}>;
|
|
@@ -69,12 +69,12 @@ export declare const GuardBindingHintSchema: z.ZodObject<{
|
|
|
69
69
|
guard: "guard";
|
|
70
70
|
none: "none";
|
|
71
71
|
submission: "submission";
|
|
72
|
+
voting_guard: "voting_guard";
|
|
73
|
+
usage_guard: "usage_guard";
|
|
72
74
|
order_allocators: "order_allocators";
|
|
73
75
|
buy_guard: "buy_guard";
|
|
74
76
|
"Forward.guard": "Forward.guard";
|
|
75
77
|
write_guard: "write_guard";
|
|
76
|
-
usage_guard: "usage_guard";
|
|
77
|
-
voting_guard: "voting_guard";
|
|
78
78
|
ServiceGuard: "ServiceGuard";
|
|
79
79
|
}>;
|
|
80
80
|
rule_sentence: z.ZodOptional<z.ZodString>;
|
|
@@ -121,12 +121,12 @@ export declare const CallGuard_DataSchema: z.ZodObject<{
|
|
|
121
121
|
action: z.ZodEnum<{
|
|
122
122
|
custom: "custom";
|
|
123
123
|
forward: "forward";
|
|
124
|
-
gen_passport: "gen_passport";
|
|
125
124
|
dispute: "dispute";
|
|
126
|
-
|
|
125
|
+
vote: "vote";
|
|
127
126
|
allocate: "allocate";
|
|
127
|
+
gen_passport: "gen_passport";
|
|
128
|
+
buy: "buy";
|
|
128
129
|
claim_reward: "claim_reward";
|
|
129
|
-
vote: "vote";
|
|
130
130
|
write_repository: "write_repository";
|
|
131
131
|
submit_progress: "submit_progress";
|
|
132
132
|
}>;
|
|
@@ -144,12 +144,12 @@ export declare const CallGuard_DataSchema: z.ZodObject<{
|
|
|
144
144
|
guard: "guard";
|
|
145
145
|
none: "none";
|
|
146
146
|
submission: "submission";
|
|
147
|
+
voting_guard: "voting_guard";
|
|
148
|
+
usage_guard: "usage_guard";
|
|
147
149
|
order_allocators: "order_allocators";
|
|
148
150
|
buy_guard: "buy_guard";
|
|
149
151
|
"Forward.guard": "Forward.guard";
|
|
150
152
|
write_guard: "write_guard";
|
|
151
|
-
usage_guard: "usage_guard";
|
|
152
|
-
voting_guard: "voting_guard";
|
|
153
153
|
ServiceGuard: "ServiceGuard";
|
|
154
154
|
}>;
|
|
155
155
|
rule_sentence: z.ZodOptional<z.ZodString>;
|
|
@@ -198,12 +198,12 @@ export declare const CallGuard_InputSchema: z.ZodObject<{
|
|
|
198
198
|
action: z.ZodEnum<{
|
|
199
199
|
custom: "custom";
|
|
200
200
|
forward: "forward";
|
|
201
|
-
gen_passport: "gen_passport";
|
|
202
201
|
dispute: "dispute";
|
|
203
|
-
|
|
202
|
+
vote: "vote";
|
|
204
203
|
allocate: "allocate";
|
|
204
|
+
gen_passport: "gen_passport";
|
|
205
|
+
buy: "buy";
|
|
205
206
|
claim_reward: "claim_reward";
|
|
206
|
-
vote: "vote";
|
|
207
207
|
write_repository: "write_repository";
|
|
208
208
|
submit_progress: "submit_progress";
|
|
209
209
|
}>;
|
|
@@ -221,12 +221,12 @@ export declare const CallGuard_InputSchema: z.ZodObject<{
|
|
|
221
221
|
guard: "guard";
|
|
222
222
|
none: "none";
|
|
223
223
|
submission: "submission";
|
|
224
|
+
voting_guard: "voting_guard";
|
|
225
|
+
usage_guard: "usage_guard";
|
|
224
226
|
order_allocators: "order_allocators";
|
|
225
227
|
buy_guard: "buy_guard";
|
|
226
228
|
"Forward.guard": "Forward.guard";
|
|
227
229
|
write_guard: "write_guard";
|
|
228
|
-
usage_guard: "usage_guard";
|
|
229
|
-
voting_guard: "voting_guard";
|
|
230
230
|
ServiceGuard: "ServiceGuard";
|
|
231
231
|
}>;
|
|
232
232
|
rule_sentence: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from'zod';import{WithPermissionObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{AccountOrMark_AddressSchema,DescriptionSchema,NameOrAddressSchema,NameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';import{PolicyRuleSchema}from'../query/index.js';import{SupportedValueSchema}from'../common/index.js';export const RepositoryIdSchema=z['union']([z['string'](),z['number'](),AccountOrMark_AddressSchema])['describe']('Data\x20item\x20ID.\x20Supports:\x20plain\x20string(bigint),\x20number\x20(such\x20as\x20timestamp),\x20or\x20AccountOrMark_Address\x20format.');export const KeyDataSchema=z['object']({'id':RepositoryIdSchema,'data':SupportedValueSchema})['strict']()['describe']('Data\x20ID\x20and\x20value.');export const RepDataItemSchema=z['object']({'data':z['array'](KeyDataSchema)['describe']('Data\x20item\x20list.'),'write_guard':NameOrAddressSchema['optional']()['describe']('Guard\x20ID\x20or\x20name.\
|
|
1
|
+
import{z}from'zod';import{WithPermissionObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{AccountOrMark_AddressSchema,DescriptionSchema,NameOrAddressSchema,NameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';import{PolicyRuleSchema}from'../query/index.js';import{SupportedValueSchema}from'../common/index.js';export const RepositoryIdSchema=z['union']([z['string'](),z['number'](),AccountOrMark_AddressSchema])['describe']('Data\x20item\x20ID.\x20Supports:\x20plain\x20string(bigint),\x20number\x20(such\x20as\x20timestamp),\x20or\x20AccountOrMark_Address\x20format.');export const KeyDataSchema=z['object']({'id':RepositoryIdSchema,'data':SupportedValueSchema})['strict']()['describe']('Data\x20ID\x20and\x20value.');export const RepDataItemSchema=z['object']({'data':z['array'](KeyDataSchema)['describe']('Data\x20item\x20list.'),'write_guard':NameOrAddressSchema['optional']()['describe']('Guard\x20ID\x20or\x20name.\x20REQUIRED\x20for\x20data_add\x20items\x20when\x20the\x20matching\x20policy\x20uses\x20id_from=None(0):\x20it\x20must\x20reference\x20one\x20of\x20that\x20policy\x27s\x20write_guard\x20guards,\x20otherwise\x20the\x20chain\x20aborts\x20with\x2022\x20(E_POLICY_WRITE_GUARD_REQUIRED).\x20Optional\x20for\x20Clock/Signer\x20policies.')})['strict']()['describe']('List\x20of\x20data\x20items\x20to\x20write.');export const SignerOrClockBaseSchema=z['object']({'name':NameSchema['describe']('Data\x20item\x20name.'),'write_guard':NameOrAddressSchema['optional']()['describe']('Guard\x20ID\x20or\x20name.\x20Used\x20to\x20specify\x20the\x20policy\x20write\x20permissions\x20and\x20rules\x20corresponding\x20to\x20this\x20Guard.')})['strict']()['describe']('Specify\x20data\x20items\x20by\x20name\x20and\x20ID.\x20ID\x20is\x20the\x20on-chain\x20timestamp\x20or\x20signer\x20ID\x20(depending\x20on\x20how\x20write_guard\x20specifies\x20the\x20ID\x20source).');export const SignerOrClockSchema=z['object']({'name':NameSchema['describe']('Data\x20item\x20name.'),'write_guard':NameOrAddressSchema['optional']()['describe']('Guard\x20ID\x20or\x20name.\x20Used\x20to\x20specify\x20the\x20policy\x20write\x20permissions\x20and\x20rules\x20corresponding\x20to\x20this\x20Guard.'),'data':SupportedValueSchema})['strict']()['describe']('Specify\x20data\x20items\x20by\x20name\x20and\x20data.\x20ID\x20is\x20the\x20on-chain\x20timestamp\x20or\x20signer\x20ID\x20(depending\x20on\x20how\x20write_guard\x20specifies\x20the\x20ID\x20source).');export const DataRemoveItemSchema=z['object']({'id':z['array'](RepositoryIdSchema)['describe']('Data\x20item\x20ID\x20list.'),'write_guard':NameOrAddressSchema['optional']()['describe']('Guard\x20ID\x20or\x20name.\x20REQUIRED\x20for\x20data_remove\x20items\x20when\x20the\x20matching\x20policy\x20uses\x20id_from=None(0);\x20optional\x20for\x20Clock/Signer\x20policies.')})['strict']()['describe']('Delete\x20data\x20items\x20by\x20name\x20and\x20ID\x20list.');export const PoliciesAddSetSchema=z['object']({'op':z['enum'](['add','set']),'policy':z['array'](PolicyRuleSchema)['describe']('Policy\x20rule\x20list.')})['strict']()['describe']('Add\x20or\x20set\x20policy\x20rules.');export const PoliciesRemoveSchema=z['object']({'op':z['literal']('remove'),'policy':z['array'](NameSchema)['describe']('Policy\x20rule\x20name\x20list.')})['strict']()['describe']('Remove\x20policy\x20rules.');export const PoliciesClearSchema=z['object']({'op':z['literal']('clear')})['strict']()['describe']('Clear\x20policy\x20rules.');export const PoliciesSchema=z['discriminatedUnion']('op',[PoliciesAddSetSchema,PoliciesRemoveSchema,PoliciesClearSchema]);export const DataAddWithItemsSchema=z['object']({'name':NameSchema['describe']('Data\x20item\x20name.\x20Must\x20match\x20the\x20name\x20in\x20PolicyRule.'),'items':z['array'](RepDataItemSchema)['describe']('List\x20of\x20data\x20items\x20to\x20add.\x20Each\x20data\x20item\x20contains\x20name,\x20ID,\x20and\x20data\x20parts,\x20where\x20name\x20and\x20ID\x20together\x20form\x20the\x20unique\x20key\x20for\x20the\x20data.')})['strict']()['describe']('Add\x20data\x20by\x20name\x20and\x20data\x20item\x20list.\x20Each\x20data\x20item\x20contains\x20name,\x20ID,\x20and\x20data\x20parts,\x20where\x20name\x20and\x20ID\x20together\x20form\x20the\x20unique\x20key\x20for\x20the\x20data.');export const DataAddSchema=z['union']([SignerOrClockSchema,DataAddWithItemsSchema]);export const DataRemoveSchema=z['union']([SignerOrClockBaseSchema,z['object']({'name':NameSchema['describe']('Data\x20item\x20name.\x20Must\x20match\x20the\x20name\x20in\x20PolicyRule.'),'items':z['array'](DataRemoveItemSchema)['describe']('List\x20of\x20data\x20items\x20to\x20delete.')})['strict']()]);export const CallRepository_DataSchema=z['object']({'object':WithPermissionObjectSchema,'description':DescriptionSchema['optional'](),'policies':PoliciesSchema['optional']()['describe']('Write\x20and\x20read\x20permission\x20rules\x20governing\x20the\x20data\x20records\x20of\x20this\x20Repository.'),'data_add':DataAddSchema['optional']()['describe']('Add\x20data\x20items'),'data_remove':DataRemoveSchema['optional']()['describe']('Delete\x20data\x20items'),'rewards':ObjectsSchema['optional']()['describe']('Reward\x20objects\x20bound\x20to\x20this\x20Repository\x20to\x20incentivize\x20data\x20contribution.'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Repository\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20its\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'um':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Contact\x20object\x20ID\x20or\x20name.')})['strict']()['describe']('On-chain\x20Repository\x20operations.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20permission,\x20...}\x20to\x20create\x20a\x20Repository.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20\x27permission\x27\x20can\x20be\x20a\x20new\x20Permission\x20object\x20or\x20reference\x20an\x20existing\x20one\x20-\x20check\x20\x27object\x27\x20field\x20description\x20for\x20details.\x20(2)\x20OPERATE\x20EXISTING:\x20Set\x20\x27object\x27\x20field\x20with\x20STRING\x20format\x20(object\x20ID\x20or\x20name).\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED\x20in\x20both\x20cases.\x20STRING\x20for\x20existing,\x20OBJECT\x20for\x20new\x20creation.');export const CallRepository_InputSchema=z['object']({'data':CallRepository_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
|