@wowok/agent-mcp 3.4.4 → 3.4.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/.build-stamp.json +3 -3
- package/dist/chain-semantics/composition-truth.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.js +1 -1
- package/dist/composition/emit-phases.js +1 -1
- package/dist/composition/guard-fill.js +1 -1
- package/dist/composition/input-normalize.js +1 -1
- package/dist/composition/materialize.js +1 -1
- package/dist/composition/mode-gates.js +1 -1
- package/dist/composition/param-disclosure.js +1 -1
- package/dist/composition/plan-run-store.js +1 -0
- package/dist/composition/reflux.js +1 -1
- package/dist/composition/role-bindings.js +1 -0
- package/dist/composition/shape-expand.js +1 -1
- package/dist/composition/supply-chain-emit.js +1 -1
- package/dist/config/judgment.d.ts +13 -25
- package/dist/config/judgment.js +1 -1
- package/dist/config/match-policy-file.js +1 -1
- package/dist/config/rule-engine.d.ts +4 -10
- package/dist/config/rule-engine.js +1 -1
- package/dist/config/template-params.js +1 -1
- package/dist/evaluation/engine.js +1 -1
- package/dist/experience/realtime-feedback.js +1 -1
- package/dist/extensions/capability.js +1 -1
- package/dist/graph/onchain/expand.js +1 -1
- package/dist/graph/onchain/exposure.js +1 -1
- package/dist/harness/forward-roster-preflight.js +1 -0
- package/dist/keeper/detectors.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.js +1 -1
- package/dist/knowledge/arb-operation-face.js +1 -1
- package/dist/knowledge/arbitration-rail-verifier.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +17 -1
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/alloc_audit.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/allocation.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/arb.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/arbitration.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/bridge.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/contact.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/demand.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/graph.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/guard.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/machine.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/oracle.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/order.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/payment.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/permission.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/personal.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/plan.json +153 -33
- package/dist/knowledge/baselines/rules/plan.json.good +153 -33
- package/dist/knowledge/baselines/rules/plan.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/progress.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/proof.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/registrar.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/repository.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/resource.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/reward.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/service.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/treasury.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/util.json.good.sha256 +1 -0
- package/dist/knowledge/builtin-templates.d.ts +1 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/discount-threshold.js +1 -1
- package/dist/knowledge/fee-param-bindings.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-binding-table.js +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +3 -2
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/knob-docs.js +1 -1
- package/dist/knowledge/machine-topology.js +1 -1
- package/dist/knowledge/param-schema.js +1 -1
- package/dist/knowledge/param-tiers.js +1 -1
- package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -1
- package/dist/knowledge/path-oracle/products/amazon.js +1 -1
- package/dist/knowledge/path-oracle/products/booking-com.js +1 -1
- package/dist/knowledge/path-oracle/products/contra.js +1 -1
- package/dist/knowledge/path-oracle/products/costco.js +1 -1
- package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -1
- package/dist/knowledge/path-oracle/products/etsy.js +1 -1
- package/dist/knowledge/path-oracle/products/gamefound.js +1 -1
- package/dist/knowledge/path-oracle/products/gofundme.js +1 -1
- package/dist/knowledge/path-oracle/products/klook.js +1 -1
- package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -1
- package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -1
- package/dist/knowledge/path-oracle/products/shansong.js +1 -1
- package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -1
- package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -1
- package/dist/knowledge/path-oracle/products/upwork.js +1 -1
- package/dist/knowledge/pattern-resolutions.js +1 -1
- package/dist/knowledge/protocol-facts.js +1 -1
- package/dist/knowledge/publish-gate.js +1 -1
- package/dist/knowledge/publish-surface-contract.js +1 -1
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/time-units.js +1 -0
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/participation/radar-core.js +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/migration-planner.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.js +1 -1
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/service-quote.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +110 -2
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/boundary-coercion.js +1 -0
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +56 -8
- package/dist/schema/call/order.d.ts +37 -10
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/permission.d.ts +210 -30
- package/dist/schema/call/personal.d.ts +56 -8
- package/dist/schema/call/progress.d.ts +28 -4
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +84 -12
- package/dist/schema/common/index.d.ts +14 -2
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/evaluation/index.js +1 -1
- package/dist/schema/goal/index.d.ts +1 -1
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.d.ts +168 -24
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +655 -22
- package/dist/schema/operations.js +1 -1
- package/dist/schema/persona/index.d.ts +22 -110
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/workflow/index.d.ts +4 -0
- package/dist/schema/workflow/index.js +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/benchmark_migration_operation.schema.json +1 -1
- package/dist/schemas/evaluation_operation.schema.json +1 -1
- package/dist/schemas/goal_operation.schema.json +1 -1
- package/dist/schemas/guard_rebind_replacement.schema.json +1 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/messenger_operation.schema.json +1 -1
- package/dist/schemas/onchain_operations.schema.json +1 -1
- package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
- package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1
- package/dist/schemas/onchain_operations_contact.schema.json +1 -1
- package/dist/schemas/onchain_operations_demand.schema.json +1 -1
- package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -1
- package/dist/schemas/onchain_operations_machine.schema.json +1 -1
- package/dist/schemas/onchain_operations_order.schema.json +1 -1
- package/dist/schemas/onchain_operations_permission.schema.json +1 -1
- package/dist/schemas/onchain_operations_personal.schema.json +1 -1
- package/dist/schemas/onchain_operations_progress.schema.json +1 -1
- package/dist/schemas/onchain_operations_proof.schema.json +1 -1
- package/dist/schemas/onchain_operations_repository.schema.json +1 -1
- package/dist/schemas/onchain_operations_reward.schema.json +1 -1
- package/dist/schemas/onchain_operations_service.schema.json +1 -1
- package/dist/schemas/onchain_operations_treasury.schema.json +1 -1
- package/dist/schemas/persona_operation.schema.json +1 -1
- package/dist/schemas/time_convert.schema.json +1 -0
- package/dist/schemas/wip_file.schema.json +1 -1
- package/dist/schemas/workflow_operation.schema.json +1 -1
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/fund-rail-recipe.js +1 -1
- package/dist/tools/handlers/guard-rebind-replacement.js +1 -0
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/mark-namespace.js +1 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/settle-sweep.js +1 -1
- package/dist/tools/handlers/time-convert.js +1 -0
- package/dist/tools/handlers/wip.js +1 -1
- package/dist/tools/handlers/workflow.js +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/local.js +1 -1
- package/dist/tools/registry/onchain.js +1 -1
- package/dist/tools/wip-verify-ledger.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +6 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const MS_PER_DAY=0x5265c00,MS_PER_HOUR=0x36ee80,MS_PER_TEST_UNIT=0xea60;export function resolveLocalWindowMs(a,b,c){if(a===undefined||a===null)return null;const d=String(a)['trim']();if(d===''||d==='0')return null;const e=Number(d);if(!Number['isFinite'](e)||e<0x0)return null;const f=b==='day'?MS_PER_DAY:MS_PER_HOUR,g=c==='test'?MS_PER_TEST_UNIT:f,h=e*g,i=c==='test'?MS_PER_TEST_UNIT:0x1;return Math['max'](i,Math['round'](h));}export function isMsPerUnitConstantRow(a){if(typeof a!=='object'||a===null)return null;const b=a;if(b['b_submission']!==![])return null;if(b['value_type']!=='U64')return null;const c=b['value'],d=typeof c==='number'?c:typeof c==='string'?Number(c):NaN;if(!Number['isFinite'](d))return null;const e=typeof b['name']==='string'?b['name']:'';if(d===MS_PER_DAY&&/milliseconds per day|days-to-milliseconds/i['test'](e))return'day';if(d===MS_PER_HOUR&&/hours-to-milliseconds|milliseconds per hour/i['test'](e))return'hour';return null;}export function foldMsPerUnitConstantRow(a){const b=isMsPerUnitConstantRow(a);if(b===null)return![];return a['value']=0x1,!![];}export function stripFoldedWindowMultiplies(a,b,c){if(b['size']===0x0)return{'root':a,'stripped':0x0};let d=0x0;const e=i=>{if(typeof i!=='object'||i===null)return null;const j=i;if(j['type']!=='identifier'||typeof j['identifier']!=='number')return null;return j['identifier'];},f=i=>{if(c===undefined)return!![];const j=e(i);return j!==null&&c['has'](j);},g=i=>{if(Array['isArray'](i))return i['map'](g);if(typeof i!=='object'||i===null)return i;const j=i;if(j['type']==='calc_number_multiply'&&Array['isArray'](j['nodes'])&&j['nodes']['length']===0x2){const m=e(j['nodes'][0x0]),n=e(j['nodes'][0x1]);if(m!==null&&b['has'](m)&&f(j['nodes'][0x1]))return d+=0x1,g(j['nodes'][0x1]);if(n!==null&&b['has'](n)&&f(j['nodes'][0x0]))return d+=0x1,g(j['nodes'][0x0]);}const l={};for(const [o,p]of Object['entries'](j))l[o]=g(p);return l;},h=g(a);return{'root':h,'stripped':d};}export function referencesAnyIdentifier(a,b){if(b['size']===0x0)return![];const c=d=>{if(Array['isArray'](d))return d['some'](c);if(typeof d!=='object'||d===null)return![];const e=d;if(e['type']==='identifier'&&typeof e['identifier']==='number'&&b['has'](e['identifier']))return!![];return Object['values'](e)['some'](c);};return c(a);}export const MS_PER_UNIT={'ms':0x1,'second':0x3e8,'minute':0xea60,'hour':0x36ee80,'day':0x5265c00,'week':0x7*0x5265c00,'month':0x1e*0x5265c00,'year':0x16d*0x5265c00};const UNIT_TOKEN={'ms':'ms','msec':'ms','millisecond':'ms','milliseconds':'ms','s':'second','sec':'second','secs':'second','second':'second','seconds':'second','m':'minute','min':'minute','mins':'minute','minute':'minute','minutes':'minute','h':'hour','hr':'hour','hrs':'hour','hour':'hour','hours':'hour','d':'day','day':'day','days':'day','w':'week','wk':'week','week':'week','weeks':'week','mo':'month','month':'month','months':'month','y':'year','yr':'year','year':'year','years':'year'};function testUnitMs(a){if(a==='day'||a==='hour')return MS_PER_TEST_UNIT;return MS_PER_UNIT[a]/MS_PER_UNIT['day']*MS_PER_TEST_UNIT;}const LLM_HINT='Not\x20a\x20machine-readable\x20time\x20window.\x20NORMALIZATION\x20CONTRACT\x20for\x20your\x20language\x20model:\x20translate\x20the\x20'+'duration\x20expression\x20from\x20ANY\x20human\x20language\x20into\x20the\x20canonical\x20grammar\x20\x27<number><unit>\x27\x20segments\x20—\x20'+'units\x20ms|s|m|h|d|w|mo|y\x20(e.g.\x20\x27two\x20weeks\x20and\x20three\x20days\x27\x20->\x20\x272w3d\x27,\x20\x2748\x20Stunden\x27\x20->\x20\x2748h\x27,\x20\x27deux\x20'+'semaines\x27\x20->\x20\x272w\x27);\x20an\x20expression\x20anchored\x20to\x20a\x20CALENDAR\x20DATE\x20or\x20relative\x20to\x20today\x20(\x27in\x20ten\x20days\x27,\x20'+'\x27end\x20of\x20next\x20month\x27)\x20resolves\x20AGAINST\x20THE\x20CURRENT\x20DATE\x20into\x20a\x20plain\x20day\x20count\x20(\x2710d\x27).\x20Emit\x20only\x20the\x20'+'canonical\x20string\x20and\x20retry.\x20The\x20kernel\x20never\x20guesses.';export function parseTimeWindowMs(a,b='production'){const c=l=>({'ok':![],'reason':l,'llm_hint':LLM_HINT});if(typeof a==='number'){if(!Number['isFinite'](a)||a<0x0)return c('not\x20a\x20finite\x20non-negative\x20millisecond\x20count');return{'ok':!![],'ms':Math['round'](a),'profile':b,'declared':null};}const d=a['trim']();if(d==='')return c('empty\x20input');if(/^\d+(\.\d+)?$/['test'](d))return{'ok':!![],'ms':Math['round'](Number(d)),'profile':b,'declared':null};const e=/^P(?:(\d+(?:\.\d+)?)W)?(?:(\d+(?:\.\d+)?)D)?(?:T(?:(\d+(?:\.\d+)?)H)?(?:(\d+(?:\.\d+)?)M)?(?:(\d+(?:\.\d+)?)S)?)?$/i['exec'](d);if(e&&/\d/['test'](e[0x0])){const l=[[Number(e[0x1]??0x0),'week'],[Number(e[0x2]??0x0),'day'],[Number(e[0x3]??0x0),'hour'],[Number(e[0x4]??0x0),'minute'],[Number(e[0x5]??0x0),'second']]['filter'](([r])=>r>0x0);if(l['length']===0x0)return c('ISO-8601\x20duration\x20with\x20zero\x20magnitude');let n=0x0;for(const [r,s]of l)n+=r*(b==='test'?testUnitMs(s):MS_PER_UNIT[s]);const o=b==='test'?MS_PER_TEST_UNIT:0x1,[p,q]=l[0x0];return{'ok':!![],'ms':Math['max'](o,Math['round'](n)),'profile':b,'declared':{'value':p,'unit':q}};}const f=d['replace'](/\s+/g,''),g=/^(\d+(?:\.\d+)?)([A-Za-z]+)/;let h=f,i=0x0,j=null;while(h['length']>0x0){const t=g['exec'](h);if(t===null)return c('unrecognized\x20segment\x20at\x20\x27'+h['slice'](0x0,0xc)+'\x27');const w=Number(t[0x1]),x=UNIT_TOKEN[t[0x2]['toLowerCase']()]??UNIT_TOKEN[t[0x2]];if(x===undefined||!Number['isFinite'](w)||w<0x0)return c('unknown\x20time\x20unit\x20\x27'+t[0x2]+'\x27');i+=w*(b==='test'?testUnitMs(x):MS_PER_UNIT[x]);if(j===null)j={'value':w,'unit':x};h=h['slice'](t[0x0]['length']);}if(i<=0x0)return c('zero-magnitude\x20window\x20(declare\x20it\x20windowless\x20instead)');const k=b==='test'?MS_PER_TEST_UNIT:0x1;return{'ok':!![],'ms':Math['max'](k,Math['round'](i)),'profile':b,'declared':j};}export function msToIsoDuration(a){if(!Number['isFinite'](a)||a<=0x0)return'PT0S';if(a%MS_PER_UNIT['week']===0x0&&a>=MS_PER_UNIT['week']&&a%MS_PER_UNIT['day']===0x0&&a/MS_PER_UNIT['day']%0x7===0x0)return'P'+a/MS_PER_UNIT['week']+'W';const b=[];let c=a;const e=Math['floor'](c/MS_PER_UNIT['day']);if(e>0x0)b['push'](e+'D');c-=e*MS_PER_UNIT['day'];const f=Math['floor'](c/MS_PER_UNIT['hour']),g=Math['floor'](c%MS_PER_UNIT['hour']/MS_PER_UNIT['minute']),i=Math['round'](c%MS_PER_UNIT['minute']/MS_PER_UNIT['second']);if(f>0x0||g>0x0||i>0x0)b['push']('T'+(f>0x0?f+'H':'')+(g>0x0?g+'M':'')+(i>0x0?i+'S':''));return'P'+b['join']('');}export function msToHuman(a){if(!Number['isFinite'](a)||a<=0x0)return'0\x20ms';const b=[[0x5265c00,'days'],[0x36ee80,'hours'],[0xea60,'min'],[0x3e8,'s']];for(const [c,d]of b){if(a%c===0x0)return a/c+'\x20'+d;}return'exact\x20'+a+'\x20ms';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BUILTIN_TEMPLATES}from'./builtin-templates.js';export const TOOLS_REFERENCE=[{'name':'onchain_operations','summary':'On-chain\x20object\x20creation,\x20modification,\x20and\x20publish\x20for\x20all\x2016\x20Wowok\x20object\x20types.','actions':['service','machine','guard','permission','reward','arb','progress','treasury','demand','repository','contact','order','allocation','personal','payment','proof','gen_passport','gen_proof'],'common_params':{'operation_type':'Object\x20type\x20to\x20create/modify\x20(string\x20enum).','data':'Operation\x20payload\x20—\x20shape\x20varies\x20by\x20operation_type.','object':'Object\x20name\x20or\x20address\x20(for\x20modify-by-id).','namedNew':'New\x20object\x20spec\x20(name,\x20description,\x20tags)\x20for\x20create.','env':'Execution\x20environment\x20(account,\x20network,\x20gas_budget).'},'prerequisites':['account_operation\x20(for\x20account\x20setup)'],'follow_ups':['query_toolkit\x20(verify\x20result)','local_mark_operation\x20(tag\x20object)'],'notes':['publish=true\x20is\x20irreversible\x20—\x20use\x20confirm_gate.','Service/Machine\x20require\x20publish\x20after\x20create\x20before\x20they\x20are\x20visible\x20on-chain.','Use\x20schema_query\x20with\x20action=\x27list_operations\x27\x20to\x20see\x20all\x20operation\x20schemas.','NETWORK:\x20by\x20default\x20omit\x20env.network\x20—\x20the\x20operation\x20runs\x20on\x20the\x20user\x27s\x20CURRENT\x20network\x20(the\x20app\x27s\x20active\x20selection);\x20the\x20confirmation\x20card\x20echoes\x20the\x20actual\x20network.\x20Never\x20guess\x20or\x20invent\x20a\x20network\x20on\x20your\x20own\x20initiative.','NETWORK\x20SWITCH\x20(explicit\x20user\x20intent\x20only):\x20when\x20the\x20user\x27s\x20request\x20clearly\x20targets\x20a\x20DIFFERENT\x20network\x20(e.g.\x20\x22create\x20this\x20permission\x20on\x20testnet\x22\x20while\x20the\x20app\x20is\x20on\x20mainnet),\x20set\x20env.network\x20to\x20that\x20network\x20in\x20THIS\x20call\x20—\x20the\x20client\x20pops\x20a\x20mandatory\x20network-switch\x20confirmation\x20card;\x20only\x20after\x20the\x20user\x20approves\x20does\x20the\x20call\x20(and\x20the\x20whole\x20app)\x20run\x20on\x20the\x20new\x20network.\x20If\x20the\x20user\x20declines,\x20do\x20NOT\x20retry\x20on\x20that\x20network\x20—\x20continue\x20on\x20the\x20current\x20one.\x20Read-only\x20queries\x20(query_toolkit\x20context_network)\x20never\x20need\x20this\x20—\x20they\x20select\x20a\x20network\x20per\x20call\x20without\x20switching.']},{'name':'account_operation','summary':'Local\x20wallet\x20management\x20—\x20generate,\x20suspend,\x20resume,\x20faucet,\x20sign\x20data.','actions':['gen','resume','suspend','faucet','operate','sign','list','info'],'common_params':{'name':'Account\x20name\x20(local\x20identifier).','network':'mainnet\x20|\x20testnet\x20(determines\x20RPC).'},'prerequisites':[],'follow_ups':['onchain_operations\x20(use\x20account\x20for\x20signing)'],'notes':['100%\x20LOCAL\x20—\x20keys\x20never\x20leave\x20the\x20device.','faucet\x20only\x20works\x20on\x20testnet.']},{'name':'local_mark_operation','summary':'Local\x20address\x20book\x20—\x20map\x20human-readable\x20names\x20to\x20blockchain\x20addresses\x20with\x20tags.','actions':['add','remove','update','list','query'],'common_params':{'name':'Local\x20name.','address':'Blockchain\x20address.','tags':'Tag\x20array.'},'notes':['100%\x20LOCAL\x20—\x20never\x20on-chain.','Names\x20are\x20accepted\x20by\x20most\x20on-chain\x20query/panorama\x20tools\x20in\x20place\x20of\x20raw\x20addresses.']},{'name':'local_info_operation','summary':'Local\x20private\x20data\x20management\x20—\x20delivery\x20addresses,\x20phone\x20numbers,\x20contacts.','actions':['add','remove','update','list'],'notes':['100%\x20LOCAL\x20—\x20sensitive\x20data,\x20never\x20on-chain.']},{'name':'local_history_operation','summary':'Local\x20Explorer\x20visit\x20history\x20—\x20recently\x20viewed\x20objects,\x20newest\x20first.','actions':['list\x20(default)','add\x20(upsert\x20by\x20key)','remove\x20(by\x20keys)','clear'],'common_params':{'add':'Record\x20visits:\x20{op:\x27add\x27,\x20data:[{key,\x20address,\x20object_type?,\x20network,\x20time}]}.','remove':'Delete\x20entries:\x20{op:\x27remove\x27,\x20keys:[...]}.','clear':'Erase\x20all\x20history:\x20{op:\x27clear\x27}.'},'notes':['100%\x20LOCAL\x20—\x20visit\x20records\x20never\x20leave\x20the\x20device;\x20display\x20names\x20are\x20never\x20stored\x20(resolved\x20live\x20at\x20render).','Omit\x20every\x20operation\x20field\x20to\x20list\x20history\x20(newest\x20first,\x20auto-pruned\x20to\x20last\x2030\x20days\x20/\x20300\x20entries).','detail\x20visits\x20keep\x20the\x20object\x20type\x20tag;\x20each\x20entry\x20stores\x20the\x20stable\x20object\x20key\x20+\x20canonical\x200x\x20address\x20+\x20network\x20+\x20timestamp.']},{'name':'local_cache_operation','summary':'Device-local\x20SDK\x20read\x20cache\x20—\x20report\x20diagnostics,\x20clear\x20a\x20prefix\x20or\x20everything,\x20re-detect\x20chain\x20identity\x20after\x20a\x20node\x20reset.','actions':['status\x20(read-only)','clear_prefix','clear','refresh_chain_scope'],'common_params':{'status':'Report\x20diagnostics\x20(active\x20chain\x20identity,\x20memory\x20entries,\x20persisted\x20rows):\x20{status:{op:\x27status\x27}}.','clear_prefix':'Drop\x20one\x20cache\x20family:\x20{clear_prefix:{op:\x27clear_prefix\x27,\x20prefix:\x27objectv2\x27}}.','clear':'Drop\x20the\x20whole\x20read\x20cache:\x20{clear:{op:\x27clear\x27}}.','refresh_chain_scope':'Force\x20chain-identity\x20re-detection:\x20{refresh_chain_scope:{op:\x27refresh_chain_scope\x27,\x20network?}}.'},'notes':['100%\x20LOCAL\x20—\x20never\x20on-chain;\x20does\x20NOT\x20touch\x20accounts,\x20marks,\x20info\x20or\x20history\x20(separate\x20stores,\x20separate\x20tools).','USE\x20AFTER\x20A\x20NODE\x20RESET\x20/\x20RESTART,\x20or\x20on\x20\x27object\x200x…\x20version\x200x…\x20is\x20unavailable\x27:\x20the\x20SDK\x20namespaces\x20its\x20cache\x20by\x20chain\x20identity\x20(genesis\x20checkpoint\x20digest),\x20so\x20a\x20reset\x20normally\x20self-heals;\x20refresh_chain_scope\x20forces\x20it\x20when\x20the\x20node\x20was\x20unreachable\x20at\x20startup.','A\x20chain_identity\x20of\x20null\x20in\x20`status`\x20means\x20the\x20cache\x20is\x20NOT\x20reset-safe\x20—\x20run\x20refresh_chain_scope.','Only\x20`status`\x20is\x20read-only;\x20the\x20other\x20sub-ops\x20discard\x20cached\x20reads\x20and\x20re-read\x20from\x20the\x20node\x20next\x20call.']},{'name':'wip_file','summary':'Witness\x20Immutable\x20Promise\x20file\x20operations\x20—\x20generate,\x20verify,\x20sign,\x20convert,\x20and\x20storage\x20(upload/list/delete\x20on\x20the\x20free\x20official\x20store\x20or\x20a\x20custom\x20service).','actions':['generate','verify','sign','wip2html','upload','storage_list','storage_delete'],'notes':['WIP\x20hash\x20must\x20be\x20non-empty\x20—\x20compute\x20actual\x20hash\x20before\x20calling.','Storage\x20decision:\x20storage=\x27store\x27\x20(default)\x20=\x20official\x20FREE\x20store\x20wip.store.wowok.net,\x2010\x20files\x20per\x20account,\x20files\x20retained\x206\x20months\x20(free\x20best-effort\x20service\x20—\x20force\x20majeure\x20excepted;\x20expired\x20files\x20are\x20deleted\x20ONLY\x20by\x20manual\x20admin\x20purge,\x20never\x20automatically);\x20storage=\x27custom\x27\x20+\x20customBaseUrl\x20=\x20your\x20own\x20or\x20a\x20third-party\x20wip\x20storage\x20service\x20(recommended:\x20no\x20store\x20quota,\x20full\x20control).','Network\x20independence:\x20WIP\x20files\x20are\x20off-chain\x20—\x20one\x20upload\x20serves\x20BOTH\x20testnet\x20and\x20mainnet,\x20and\x20storage_list/storage_delete\x20never\x20touch\x20the\x20chain.','Large\x20WIP\x20files\x20(multi-MB,\x20image-heavy)\x20are\x20network-sensitive:\x20compress\x20images\x20before\x20generate,\x20retry\x20transient\x20upload\x20failures,\x20and\x20verify\x20the\x20returned\x20public\x20URL\x20afterwards\x20with\x20type=\x27verify\x27.']},{'name':'messenger_operation','summary':'Encrypted\x20messenger\x20—\x20watch/send\x20messages,\x20WTS,\x20friendslist,\x20blacklist,\x20guardlist.','actions':['watch_conversations','send_message','send_file','send_required_info','watch_messages','save_attachment','generate_wts','verify_wts','sign_wts','wts2html','proof_message','blacklist','friendslist','guardlist','settings','mark_messages_as_viewed','mark_conversation_as_viewed','mark_conversation_read','pull_messages'],'notes':['Requires\x20messenger-enabled\x20account.','30s\x20timeout\x20—\x20network\x20operations.','Attachment\x20messages\x20return\x20byte-free\x20descriptors\x20(msg.attachment;\x20plaintext\x20is\x20undefined).\x20Use\x20save_attachment\x20{messageId}\x20to\x20persist\x20the\x20file\x20(e.g.\x20before\x20verify_wts);\x20bytes\x20are\x20never\x20embedded\x20in\x20message\x20outputs.','send_required_info\x20assembles\x20selected\x20LocalInfo\x20fields\x20into\x20one\x20E2E\x20message\x20(\x27field:\x20value\x27\x20lines)\x20—\x20the\x20dedicated\x20path\x20for\x20delivering\x20customer_required\x20info.','pull_messages\x20supports\x20allAccounts/accounts\x20for\x20one\x20bounded-concurrency\x20fan-out\x20across\x20accounts.','pull_messages\x20{peerAddress,\x20after}\x20is\x20an\x20incremental\x20read:\x20messages\x20with\x20seq\x20(leafIndex)\x20>\x20after,\x20plus\x20highest_seq/has_more\x20and\x20a\x20structured\x20gap\x20when\x20continuity\x20cannot\x20be\x20proven\x20(result.degraded=true).\x20The\x20cursor\x20is\x20caller-owned\x20—\x20watch_messages\x20never\x20advances\x20it.','mark_conversation_read\x20records\x20a\x20per-conversation\x20LOCAL\x20read\x20watermark\x20(monotonic).\x20The\x20network\x20has\x20no\x20receipt\x20primitive,\x20so\x20peer_read_through_seq\x20is\x20null\x20and\x20never\x20represents\x20delivery/read.']},{'name':'guard2file','summary':'Export\x20a\x20Guard\x20object\x27s\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'machineNode2file','summary':'Export\x20a\x20Machine\x20object\x27s\x20node\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'query_toolkit','summary':'Query\x20toolkit\x20covering\x20local\x20device\x20data,\x20on-chain\x20blockchain\x20data,\x20and\x20one-call\x20business-intelligence\x20panoramas/review\x20packs.','actions':['local_mark_list','account_list','local_info_list','local_names','token_list','account_balance','onchain_personal_profile','onchain_objects','onchain_received','onchain_transaction','onchain_block','onchain_object_history','onchain_address_activity','address_profile','address_profiles','migration_preflight','token_value_convert','onchain_last_updated','service_panorama','machine_panorama','object_panorama','review_pack','assemble_context','reverse_map','participation_radar','order_aggregate','onchain_topology'],'notes':['Read-only\x20—\x20safe\x20to\x20call\x20without\x20confirmation.','local_names\x20resolves\x20a\x20batch\x20of\x20addresses\x20to\x20account/local_mark\x20names\x20(canonical\x20name\x20source\x20for\x20display);\x20address_profile(s)\x20is\x20the\x20one-stop\x20\x27who/what\x20is\x20this\x20address\x27\x20query\x20(classification\x20+\x20reputation\x20+\x20memberships\x20+\x20reverse\x20bindings;\x20batch\x20up\x20to\x2050);\x20migration_preflight\x20detects\x20existing\x20builds\x20on\x20another\x20network\x20and\x20returns\x20the\x20testnet→mainnet\x20migration\x20checklist.','BI\x20query\x20types\x20(one-call\x20panoramas):\x20service_panorama\x20(full\x20Service\x20context:\x20workflow\x20graph\x20+\x20guards\x20+\x20trust\x20+\x20supply\x20chain\x20+\x20BusinessReport\x20+\x20recent\x20orders),\x20machine_panorama\x20(head\x20+\x20fields\x20+\x20workflow\x20graph\x20+\x20Progress\x20list),\x20object_panorama\x20(Progress/Demand/Order/Arb/Repository/Proof\x20detail\x20page\x20—\x20a\x20Proof\x20returns\x20its\x20frozen\x20Merkle\x20root\x20and,\x20with\x20wts_file_path,\x20cross-checks\x20a\x20.wts\x20packet\x20against\x20that\x20anchor),\x20review_pack\x20(typed\x20ReviewPack\x20for\x20the\x20client\x27s\x20ReviewPackRenderer),\x20assemble_context\x20(semantic\x20context\x20from\x20on-chain\x20objects),\x20reverse_map\x20(deterministic\x20L4→L1\x20business\x20report\x20—\x20merchant\x20profile\x20/\x20user\x20risk\x20/\x20game\x20theory),\x20participation_radar\x20(in-flight\x20order\x20participation\x20analysis\x20for\x20ONE\x20account),\x20order_aggregate\x20(CROSS-ORDER\x20count\x20+\x20exact\x20amount\x20sums\x20per\x20service/machine/owner\x20from\x20the\x20MCP\x20index\x20projection\x20—\x20the\x20funding-target\x20check\x20(\x273\x20x\x206\x20WOW\x20>=\x2018\x20WOW\x27)\x20the\x20on-chain\x20protocol\x20cannot\x20express;\x20cite\x20the\x20returned\x20coverage\x20watermark\x20with\x20any\x20verdict,\x20and\x20a\x20stale\x20projection\x20refuses\x20loudly).','onchain_topology\x20=\x20graph\x20evaluation\x20of\x20ONE\x20object\x20(trust\x20+\x20risk\x20+\x20completeness\x20+\x20coverage\x20+\x20unverified\x20over\x20its\x20workflow/guard/fund\x20topology)\x20—\x20the\x20unified\x20read-side\x20trust/risk\x20surface;\x20use\x20when\x20the\x20user\x20asks\x20\x27is\x20this\x20service\x20trustworthy?\x27\x20or\x20\x27should\x20I\x20buy?\x27.','FUND-EXIT\x20AUDIT\x20(C-F31):\x20onchain_transaction.object_changes\x20is\x20the\x20full\x20set\x20including\x20removals\x20(deleted/wrapped/unwrapped)\x20—\x20a\x20consumed\x20object\x20(e.g.\x20a\x20CoinWrapper\x20spent\x20by\x20settle)\x20is\x20synthesized\x20from\x20the\x20tx\x20effects\x20when\x20the\x20node\x20omits\x20it\x20(entry\x20carries\x20synthesized=true,\x20no\x20object_type).\x20Every\x20removal\x20is\x20a\x20money/object\x20exit\x20door:\x20trace\x20its\x20contents\x20via\x20balance_changes\x20per-owner\x20deltas.\x20Fallback\x20when\x20an\x20exit\x20still\x20lacks\x20object-level\x20evidence:\x20diff\x20two\x20onchain_received\x20snapshots\x20taken\x20before\x20and\x20after\x20the\x20digest\x20(full-set\x20difference)\x20—\x20this\x20recovers\x20the\x20truth\x20even\x20when\x20the\x20tx\x20emitted\x20no\x20events.','REVIEW\x20SIGNAL\x20GLOSSARY\x20(three\x20layers,\x20never\x20mix):\x20(1)\x20Order\x20review\x20=\x20Repository\x20\x27review\x27\x20key\x20rows,\x20written\x20under\x20the\x20reviewed-edge\x20guard\x20so\x20only\x20completed-order\x20buyers\x20qualify\x20—\x20the\x20ONLY\x20face\x20market\x20exposure\x20consumes.\x20(2)\x20Account-level\x20vote\x20=\x20registrar\x20like/dislike/favor\x20on\x20an\x20Entity\x20(entity_linker\x20votes[])\x20—\x20an\x20account-level\x20signal,\x20NOT\x20the\x20order\x20review\x20channel;\x20show\x20only\x20as\x20auxiliary\x20display\x20with\x20the\x20voter-credibility\x20projection\x20(AC5\x20fresh-account\x20bursts\x20/\x20AC6\x20mutual\x20rings\x20/\x20AC7\x20flooded\x20targets).\x20(3)\x20Demand-side\x20feedback\x20=\x20DemandPresenter\x20acceptance_score\x20(0-100,\x20null\x20=\x20unrated)\x20—\x20the\x20demander\x27s\x20own\x20judgment\x20of\x20presenters,\x20consumed\x20via\x20O4\x20due-diligence\x20projection;\x20sparse\x20by\x20nature,\x20never\x20weighted\x20by\x20the\x20platform.']},{'name':'onchain_table_data','summary':'Dynamic\x20table\x20data\x20queries\x20—\x20paginated\x20table\x20queries\x20and\x20specific\x20table\x20item\x20lookups.','actions':['onchain_table','onchain_table_item_repository_data','onchain_table_item_permission_perm','onchain_table_item_entity_registrar','onchain_table_item_entity_linker','onchain_table_item_entity_contact','onchain_table_item_object_linker_core','onchain_table_item_object_linker_tx','onchain_table_item_reward_record','onchain_table_item_demand_presenter','onchain_table_item_treasury_history','onchain_table_item_machine_node','onchain_table_item_progress_history','onchain_table_item_address_mark','onchain_table_item_entity_order','onchain_orders_of_user','onchain_orders_of_users','onchain_affiliations_of_object','onchain_table_item_generic'],'notes':['Read-only\x20—\x20safe\x20for\x20exploration.','object_linker\x20core\x20(0xaae)\x20=\x20default\x20reverse\x20lookup\x20(bounded\x20core\x20objects);\x20object_linker\x20tx\x20(0xaaf)\x20=\x20operational\x20reverse\x20lookup\x20(orders/progress,\x20lossy\x20FIFO).','entity_order\x20(0xaa8)\x20=\x20global\x20entity->orders\x20reverse\x20index;\x20onchain_orders_of_user\x20resolves\x20each\x20order\x20to\x20its\x20full\x20on-chain\x20Order\x20object\x20with\x20role\x20attributes\x20(is_owner/is_agent).']},{'name':'onchain_events','summary':'Watch\x20on-chain\x20events\x20by\x20type\x20—\x20arbitration,\x20order,\x20progress,\x20demand,\x20entity.','notes':['Read-only\x20—\x20use\x20cursor\x20for\x20pagination.']},{'name':'wowok_buildin_info','summary':'Protocol\x20info\x20—\x20constants,\x20built-in\x20permissions,\x20common\x20mistakes,\x20guard\x20instructions,\x20network,\x20value\x20types,\x20bridge\x20tokens.','actions':['constants','built-in\x20permissions','common\x20mistakes','guard\x20instructions','current\x20network','value\x20types','mainnet\x20bridge\x20tokens'],'notes':['Read-only\x20—\x20authoritative\x20protocol\x20reference.','Use\x20\x27common\x20mistakes\x27\x20before\x20submitting\x20an\x20operation\x20to\x20learn\x20known\x20field-name/unit/workflow\x20pitfalls.']},{'name':'schema_query','summary':'Look\x20up\x20JSON\x20Schemas\x20for\x20MCP\x20tools\x20and\x20on-chain\x20operations\x20—\x20the\x20authoritative\x20reference.\x20Also\x20serves\x20sunk\x20knowledge:\x20tool\x20reference,\x20Guard\x20design\x20patterns,\x20safety\x20rules.','actions':['list','get','get_output','get_field','search','list_operations','get_guard_templates','get_tool_reference','get_guard_design_patterns','get_safety_rules'],'notes':['Always\x20check\x20schema\x20before\x20calling\x20an\x20unfamiliar\x20tool.','get_field\x20takes\x20a\x20dot-path\x20(field_path)\x20for\x20single-field\x20lookup.','get_tool_reference/get_guard_design_patterns/get_safety_rules\x20expose\x20the\x20knowledge\x20sunk\x20from\x20the\x20wowok-tools/guard/safety\x20skills\x20—\x20no\x20skills\x20installation\x20required.']},{'name':'bridge_operation','summary':'Cross-chain\x20bridge\x20between\x20WOW\x20and\x20EVM\x20(Ethereum\x20mainnet).\x20Mainnet\x20only.','actions':['cross_chain_wow_to_evm','cross_chain_evm_to_wow','withdraw','query_active_evm_account','query_supported_evm_chains','query_supported_tokens','query_transfer_list','query_transfer_status','manage_evm_rpc'],'notes':['Only\x20WOW\x20mainnet\x20provides\x20cross-chain\x20functionality.']},{'name':'config_operation','summary':'Runtime\x20service\x20toggles\x20—\x20enable/disable\x20Phase\x202\x20services\x20without\x20restart.','actions':['list','toggle','enable','disable','reset','info','store_dual_payout_get','store_dual_payout_set','store_dual_payout_clear'],'notes':['GLM5:\x20harness\x20is\x20default\x20ON\x20with\x20tiered\x20enforcement\x20(off/lightweight/full).','D-1\x20(ksr\x205R-08):\x20store_dual_payout_get/set/clear\x20maintain\x20a\x20per-account\x20dual-payout\x20preauthorization\x20ledger\x20(store-policies.json).\x20The\x20set\x20action\x20REQUIRES\x20confirm:true\x20(HUMAN\x20record,\x20never\x20settable\x20by\x20an\x20automated\x20keeper);\x20the\x20dual-payout\x20gates\x20in\x20onchain_operations\x20(allocation\x20alloc_by_guard\x20+\x20order\x20arb_claim_compensation\x20with\x20acknowledge_dual_payout)\x20refuse\x20with\x20dual_payout_preauthorization_required\x20unless\x20the\x20executing\x20store\x27s\x20account\x20is\x20preauthorized.\x20Recipe:\x20store_dual_payout_set\x20{account,\x20confirm:true}\x20once\x20→\x20the\x20acknowledge_dual_payout\x20calls\x20then\x20pass\x20the\x20gate.']},{'name':'evaluation_operation','summary':'Pluggable\x20business\x20evaluations\x20—\x20match\x20/\x20compose\x20/\x20game\x20(node\x20+\x20path)\x20/\x20evidence\x20review\x20/\x20discovery\x20/\x20market\x20/\x20arbitration\x20score\x20with\x20user\x20injection.','actions':['demand_match','service_match','capability_gap','compose_service','compose_generation','node_game','arb_game','path_reasoning','evidence_review','discover_services','discover_demands','market_metrics','market_operations','anti_cheat','match_discover','arbitration_score','account_events'],'notes':['Read-only;\x20the\x20role\x20decides\x20and\x20acts\x20via\x20onchain_operations.','path_reasoning\x20=\x20path-level\x20game\x20(full-route\x20enumeration\x20+\x20ranking);\x20node_game\x20=\x20single-node\x20best\x20move.','evidence_review\x20=\x20deterministic\x20off-chain\x20evidence\x20closure\x20gate\x20(auto_pass/auto_reject/manual_review).','discover_services\x20=\x20active\x20supply\x20discovery\x20(GraphQL\x20transport\x20required):\x20enumerate\x20all\x20shared\x20Services,\x20location-gate\x20by\x20sensitivity\x20(strict/near/logistics),\x20ranked\x20+\x20consent-gated\x20scope\x20expansion.\x20Passive\x20side\x20=\x20post\x20a\x20Demand\x20(DemandPresenter).','match_discover\x20=\x20one-shot\x20intent→service\x20orchestration\x20(enumerate\x20+\x20location\x20gate\x20+\x206-dimension\x20scoring);\x20discover_demands\x20=\x20supplier-side\x20demand\x20enumeration;\x20market_metrics/market_operations\x20=\x20market\x20measurement\x20(GraphQL\x20required).','arbitration_score\x20=\x20dual-perspective\x20arbitration\x20trust\x20(user-trust\x20+\x20merchant-fairness,\x20combined\x200-100);\x20anti_cheat\x20=\x20fake-review/wash-order\x20detection;\x20account_events\x20=\x20account\x20attention\x20feed\x20(read-only).']},{'name':'watch_operation','summary':'Identity-centric\x20on-chain\x20console\x20—\x20resolve\x20who\x20the\x20account\x20is\x20against\x20an\x20object,\x20expand\x20its\x20relations,\x20and\x20enumerate\x20actionable\x20operations.','actions':['focus','expand','actions'],'notes':['Read-only;\x20distinct\x20from\x20query_toolkit\x20/\x20onchain_table_data\x20(pure\x20data,\x20no\x20identity).','focus\x20=\x20identity\x20resolution\x20(manifest\x20on-chain\x20role\x20⊕\x20persona)\x20+\x20base\x20data;\x20neutral\x20→\x20objective\x20narration,\x20operative\x20role\x20→\x20game\x20reasoning.','expand\x20=\x20direct\x20relations\x20+\x20Service\x20transparent\x20sub-order\x20purchasing\x20graph\x20(frozen\x20forward\x20guards\x20→\x20purchased\x20sub-services\x20+\x20proofs).','actions\x20=\x20actionable\x20operations\x20with\x20executability\x20judgment\x20(order-holder\x20/\x20permission-index\x20/\x20named-operator\x20paths).']},{'name':'persona_operation','summary':'User\x20identity\x20setting\x20(persona)\x20—\x20preferences,\x20strategy,\x20rules,\x20spec;\x20long-term\x20+\x20current\x20layers\x20+\x20strategy→lever\x20mapping\x20+\x20region\x20hint.','actions':['get','list','set','analyze','apply','sync','remove','strategy','region_hint','distill'],'notes':['Read/write\x20local\x20state;\x20account\x20persona\x20overrides\x20system;\x20current\x20overrides\x20long-term.','strategy\x20resolves\x20merchant\x20strategy\x20statements\x20into\x20deterministic\x20infrastructure\x20levers\x20(discount/reward/buy_guard/machine_design).','region_hint\x20reads\x20the\x20local\x20delivery\x20address\x20as\x20a\x20matching\x20hint;\x20`propose`\x20returns\x20a\x20consent-gated\x20save\x20proposal\x20(never\x20auto-writes).','distill\x20turns\x20one\x20goal\x27s\x20memory\x20(outcome,\x20process\x20problems/feedback,\x20objects)\x20into\x20a\x20CURRENT-layer\x20proposal\x20—\x20never\x20auto-writes;\x20persist\x20via\x20set/apply\x20after\x20user\x20confirmation.\x20Industry\x20pack.json\x20files\x20are\x20read-only\x20knowledge\x20and\x20never\x20receive\x20user\x20data.']},{'name':'employee_operation','summary':'Merchant\x20employee\x20organizational\x20profile\x20(LOCAL)\x20+\x20reaction\x20KPI\x20+\x20liability\x20resolution\x20+\x20incentive\x20suggestion.','actions':['set','get','remove','assess_kpi','resolve_liability','suggest_incentive'],'notes':['LOCAL\x20ONLY\x20—\x20on-chain\x20authorization\x20lives\x20in\x20the\x20merchant\x27s\x20Permission\x20(namedOperator/entity).','assess_kpi:\x20node\x20reaction\x20speed\x20vs\x20budget\x20(explicit\x20>\x20stored\x20profile\x20>\x2048h\x20default).\x20Timestamps\x20explicit\x20OR\x20auto-derived\x20from\x20the\x20progress\x20object\x27s\x20monitored\x20ProgressEvents\x20via\x20`progress`;\x20explicit\x20values\x20override\x20derived.','resolve_liability:\x20internal\x20cost\x20split\x20(merchant/employee,\x20hybrid\x20threshold);\x20outward\x20liability\x20toward\x20the\x20customer\x20is\x20ALWAYS\x20the\x20merchant\x27s;\x20order\x20user\x20must\x20be\x20compensated\x20before\x20the\x20workflow\x20resumes.','suggest_incentive:\x20KPIs\x20+\x20WIP\x20acceptance\x20+\x20liability\x20→\x20Reward\x20suggestion\x20(reward_grant/compensation_offset/correction_notice/none).\x20Suggestion\x20ONLY\x20—\x20merchant\x20confirms\x20and\x20executes\x20the\x20on-chain\x20ops\x20separately.']},{'name':'keeper_operation','summary':'Who-benefits-who-pushes\x20keeper:\x20scans\x20the\x20monitor\x20scope\x20for\x20actionable\x20state\x20(unclaimed\x20payments,\x20advanceable\x20workflow\x20nodes,\x20unsettled\x20escrow\x20pools),\x20routes\x20tasks\x20to\x20beneficiaries;\x20manual\x20dismiss/execute\x20+\x20standing\x20auto-execute\x20rules.','actions':['tasks','dismiss','execute','rules','rule_set','rule_remove','config','config_set','scan','status'],'notes':['The\x20chain\x20has\x20NO\x20time-triggered\x20execution\x20—\x20the\x20keeper\x20scans\x20on\x20the\x20monitor\x20loop\x20cadence\x20and\x20surfaces\x20tasks\x20to\x20their\x20beneficiary.','execute\x20runs\x20the\x20on-chain\x20op\x20for\x20one\x20task\x20(user\x20decision);\x20rule_set\x20authorizes\x20auto-execution\x20per\x20detector\x20kind\x20(bounded\x20by\x20config\x20budget/cooldown).','Detectors\x20v1:\x20payment_unclaimed\x20(funds\x20sitting\x20claimable),\x20progress_actionable\x20(a\x20workflow\x20node\x20the\x20beneficiary\x20can\x20advance),\x20settlement_pending\x20(an\x20order\x20on\x20a\x20terminal\x20node\x20whose\x20Allocation\x20pool\x20still\x20holds\x20balance\x20and\x20has\x20emitted\x20no\x20Payment\x20—\x20the\x20escrow\x20is\x20frozen\x20until\x20SOMEONE\x20fires\x20the\x20matching\x20guard).','MANUAL\x20SETTLEMENT\x20(base\x20cognition):\x20a\x20completed/refunded\x20order\x20does\x20NOT\x20release\x20funds\x20by\x20itself.\x20The\x20pool\x20drains\x20only\x20when\x20an\x20account\x20executes\x20allocation_operation\x20alloc_by_guard\x20with\x20a\x20guard\x20that\x20satisfies\x20the\x20allocator.\x20The\x20chain\x20never\x20auto-settles\x20(the\x20on-chain\x20allocation\x20has\x20no\x20frequency/expiry\x20trigger).\x20So\x20\x27completed\x20≠\x20paid\x20out\x27:\x20if\x20a\x20terminal\x20order\x27s\x20pool\x20still\x20has\x20balance,\x20the\x20settlement_pending\x20task\x20is\x20the\x20signal\x20—\x20the\x20merchant\x20(completion\x20terminal)\x20or\x20the\x20buyer\x20(refund\x20terminal)\x20must\x20trigger\x20the\x20guard,\x20then\x20recipients\x20claim\x20their\x20CoinWrappers\x20via\x20payment\x20receive.','settlement_pending\x20and\x20progress_actionable\x20are\x20reminder-only\x20(never\x20auto-executed):\x20triggering\x20a\x20guard\x20releases\x20funds\x20to\x20counterparties\x20and\x20the\x20guard\x20semantics\x20must\x20be\x20reviewed\x20by\x20the\x20beneficiary\x20before\x20spending\x20gas.\x20Only\x20payment_unclaimed\x20(claim-to-self)\x20may\x20carry\x20an\x20auto_execute\x20rule.']},{'name':'settle_sweep','summary':'One-shot\x20batch\x20settlement\x20of\x20pending\x20terminal\x20escrows:\x20enumerate\x20via\x20the\x20shared\x20settlement\x20judgment,\x20statically\x20screen\x20candidate\x20guards,\x20fire\x20alloc_by_guard\x20per\x20order\x20(dry-run\x20first;\x20per-order\x20failure\x20isolation).','common_params':{'service':'Batch\x20source\x20A:\x20the\x20Service\x20whose\x20order\x20window\x20is\x20swept\x20(XOR\x20with\x20order).','order':'Batch\x20source\x20B:\x20one\x20single\x20Order\x20to\x20settle\x20(XOR\x20with\x20service).','dry_run':'DEFAULT\x20TRUE\x20—\x20plan\x20only,\x20zero\x20transactions;\x20registers\x20the\x20payload\x20in\x20the\x20session\x20dry-run\x20ledger.','confirm':'Explicit\x20real-execution\x20confirmation\x20(bypasses\x20the\x20dry-run-first\x20ledger\x20requirement).','max_orders':'Per-batch\x20cap\x20on\x20settled\x20orders\x20(default\x2010)\x20—\x20overflow\x20is\x20deferred,\x20re-run\x20to\x20continue.','account':'Executing\x20account\x20that\x20signs\x20each\x20alloc_by_guard\x20(must\x20satisfy\x20the\x20settle\x20guards).'},'prerequisites':['onchain_operations\x20(read\x20the\x20plan\x20first\x20via\x20the\x20default\x20dry_run:true\x20face)'],'follow_ups':['onchain_operations\x20(each\x20recipient\x20claims:\x20payment\x20receive:true\x20/\x20refund\x20order\x20receive:\x27recently\x27)','service_panorama\x20(verify\x20pending_allocations\x20drained)'],'notes':['The\x20chain\x20NEVER\x20auto-settles\x20a\x20terminal\x20escrow\x20(no\x20forward\x20hook,\x20R5):\x20every\x20order\x20needs\x20a\x20manual\x20alloc_by_guard\x20+\x20recipient\x20claim\x20hop\x20—\x20this\x20tool\x20automates\x20the\x20alloc\x20hop\x20per\x20order.','Enumeration\x20reuses\x20the\x20SINGLE-THROAT\x20settlement\x20judgment\x20shared\x20by\x20the\x20keeper\x20detector,\x20the\x20PENDING\x20SETTLEMENT\x20receipt\x20and\x20service_panorama\x20pending_allocations\x20—\x20no\x20separate\x20state\x20opinion.','Guard\x20screen\x20is\x20STATIC:\x20only\x20guards\x20whose\x20b_submission\x20slots\x20are\x20deterministic\x20auto-fill\x20tiers\x20(254\x20task-binding\x20/\x206\x20caller-auth\x20Permission)\x20are\x20dispatched;\x20anything\x20else\x20is\x20skipped\x20needs_context\x20—\x20guard\x20semantics\x20are\x20never\x20guessed.','Dry-run-first\x20mandate\x20(R23/R18,\x20pre_publish\x20style):\x20dry_run:false\x20is\x20BLOCKED\x20state_conflict\x20without\x20a\x20passed\x20dry_run:true\x20face\x20of\x20the\x20SAME\x20payload\x20or\x20confirm:true.','Execution\x20rides\x20the\x20SAME\x20onchain\x20pipeline\x20and\x20gates\x20(dual-payout\x20refusal,\x20missing-slot\x20refusal,\x20in-flight\x20resend\x20hold);\x20one\x20failed\x20order\x20lands\x20in\x20failed[]\x20and\x20never\x20blocks\x20the\x20rest;\x20enumeration\x20failure\x20returns\x20an\x20empty\x20plan\x20+\x20reason,\x20never\x20a\x20throw.']},{'name':'verify_guard_dry_run','summary':'Pre-submission\x20read-only\x20guard\x20pre-check:\x20evaluates\x20an\x20INTENDED\x20submission\x20against\x20the\x20guard\x27s\x20production\x20on-chain\x20evaluator\x20(devInspect,\x20no\x20state\x20change)\x20and\x20reports\x20per-slot/per-leg\x20satisfied/missing/unknown\x20with\x20a\x20would_pass/would_fail/inconclusive\x20verdict\x20and\x20completion\x20remedies.','common_params':{'guard':'The\x20Guard\x20to\x20pre-check\x20(address\x20or\x20LocalMark\x20name)\x20—\x20XOR\x20with\x20service.','service':'Alternative\x20target:\x20resolve\x20the\x20Service\x27s\x20on-chain\x20buy_guard\x20(+\x20relies\x20as\x20impack)\x20—\x20the\x20same\x20gate\x20a\x20buy\x20verifies\x20(XOR\x20with\x20guard).','submission':'The\x20entries\x20the\x20caller\x20INTENDS\x20to\x20send\x20[{identifier,\x20value}]\x20—\x20evaluated,\x20never\x20submitted.','task':'Order/task\x20address\x20for\x20protocol\x20slot\x20254\x20(task\x20binding);\x20omitted\x20⇒\x20slot\x20254\x20reports\x20unknown.','account':'Executing\x20account\x20context\x20(the\x20pre-check\x20never\x20signs).'},'prerequisites':['onchain_operations\x20(the\x20guard\x20address\x20—\x20or\x20the\x20service\x20whose\x20buy_gate\x20to\x20pre-check)'],'follow_ups':['onchain_operations\x20(submit\x20the\x20REAL\x20operation\x20once\x20the\x20verdict\x20is\x20would_pass\x20and\x20the\x20snapshot\x20still\x20holds)'],'notes':['ANTI-FAKE-GREEN\x20(PDK-05):\x20every\x20response\x20carries\x20snapshot_note\x20—\x20the\x20verdict\x20is\x20a\x20simulation\x20over\x20the\x20CURRENT\x20on-chain\x20snapshot;\x20the\x20real\x20submission\x20is\x20judged\x20by\x20actual\x20execution.','Any\x20unknown\x20leg\x20(runtime-derived\x20task\x20binding\x20254\x20/\x20caller-auth\x20Permission\x206,\x20or\x20an\x20evaluation\x20error)\x20forces\x20the\x20verdict\x20down\x20to\x20inconclusive\x20—\x20would_pass\x20is\x20ONLY\x20emitted\x20when\x20every\x20required\x20slot\x20was\x20supplied\x20AND\x20the\x20production\x20evaluator\x20returned\x20pass.','Uses\x20the\x20SAME\x20shared\x20leg\x20kernel\x20as\x20the\x20E_VERIFY_FAILED\x20failure\x20diagnosis\x20(one\x20single\x20throat\x20for\x20guard-leg\x20evaluation)\x20—\x20the\x20missing-slot\x20remedies\x20give\x20the\x20exact\x20submissions:[{identifier,\x20value_type}]\x20shape.','Missing\x20slot\x20⇒\x20would_fail\x20+\x20the\x20slot\x27s\x20identifier/value_type\x20completion\x20shape;\x20evaluator\x20fail\x20⇒\x20would_fail\x20+\x20the\x20named\x20false\x20legs;\x20structured\x20absence-reject\x20(fail-structured\x20kernel)\x20⇒\x20would_fail\x20+\x20the\x20query\x20named.','Read-only:\x20query-class\x20reads\x20+\x20one\x20unmetered\x20devInspect;\x20an\x20unreadable\x20guard\x20returns\x20a\x20structured\x20error\x20envelope\x20(never\x20a\x20raw\x20throw).']},{'name':'intent_radar','summary':'User\x20business\x20intent\x20×\x20chain\x20event\x20matching\x20—\x20persist\x20intents,\x20score\x20events\x20against\x20them.','actions':['save','list','remove','match'],'notes':['Read-only\x20w.r.t.\x20chain;\x20industry/keywords\x20resolved\x20once\x20at\x20save;\x20events\x20supplied\x20or\x20auto-pulled.']},{'name':'goal_operation','summary':'GoalEngine\x20(K3\x2024)\x20—\x20record\x20a\x20user\x20goal\x20and\x20drive\x20it\x20through\x20the\x20nine-station\x20lifecycle\x20(RECOGNIZE→…→COMPLETE)\x20with\x20monitor\x20auto-binding\x20and\x20plan-approval\x20confirm-gate\x20downgrade;\x20also\x20hosts\x20the\x20C1-C4\x20planning\x20pipeline\x20+\x20merchant\x20onboarding\x20wizard.','actions':['create','list','get','approve','advance','pause','complete','abandon','delete','analyze_intent','aggregate_risks','trace_substeps','merchant_guide'],'common_params':{'id':'Goal\x20id\x20(goal_…)\x20—\x20required\x20for\x20get/approve/advance/pause/complete/abandon/delete.','intent_text':'create:\x20raw\x20user\x20intent;\x20goal_type\x20auto-classified\x20(override\x20with\x20goal_type).','account':'create:\x20bind\x20a\x20local\x20account\x20(preflight;\x20goal\x20starts\x20at\x20\x27bound\x27).','stage':'advance:\x20forward-only\x20target\x20stage;\x20\x27paused\x27\x20holds\x20from\x20anywhere.','objects':'advance:\x20ACT-station\x20objects\x20[{type,\x20object}]\x20(deduped).','force':'complete:\x20skip\x20on-chain\x20completion\x20verification\x20(audited\x20as\x20outcome.forced).'},'follow_ups':['monitor_events\x20(goal\x20progress\x20surfaces\x20in\x20the\x20todo\x20stream)','onchain_operations\x20(execute\x20plan\x20steps\x20with\x20env.plan_approval)'],'notes':['Near-duplicate\x20create\x20ADOPTS\x20the\x20active\x20same-type\x20same-account\x20goal\x20(intent\x20Jaccard\x20≥\x200.6)\x20instead\x20of\x20forking.','approve\x20registers\x20a\x20plan\x20approval:\x20calls\x20carrying\x20env.plan_approval=<goal\x20id>\x20auto-pass\x20fail-open\x20ConfirmGate\x20levels\x20(standard/none);\x20fail-closed\x20levels\x20(irreversible/publish/amount)\x20always\x20still\x20ask.','Entering\x20\x27monitoring\x27\x20auto-binds\x20monitor\x20focus\x20(reason=\x27goal\x27,\x20goal_id-stamped)\x20for\x20the\x20goal\x27s\x20objects;\x20demand\x20goals\x20also\x20open\x20a\x20radar\x20intent.\x20complete/abandon\x20tear\x20down\x20ONLY\x20this\x20goal\x27s\x20bindings.','complete\x20verifies\x20the\x20goal-type\x20completion\x20conjunction\x20against\x20chain\x20state\x20(read-only);\x20force=true\x20bypasses\x20and\x20is\x20audited.','delete\x20removes\x20a\x20terminal\x20goal\x20entirely\x20(record\x20+\x20TaskProcess\x20dir);\x20force=true\x20extends\x20it\x20to\x20non-terminal\x20goals\x20(monitor\x20teardown\x20first).','C1-C4\x20planning\x20pipeline\x20(GLM5-31\x20§V3/V4):\x20analyze_intent\x20(intent\x20→\x20objects\x20+\x20puzzle\x20snapshots)\x20→\x20aggregate_risks\x20(puzzles\x20OR\x20intent\x20→\x20calibrated\x20risks\x20+\x20RISK_BLOCKED\x20status)\x20→\x20trace_substeps\x20(substep\x20records\x20→\x20DAG\x20coherence\x20+\x20D-10\x20verdict);\x20merchant_guide\x20=\x2010-step\x20onboarding\x20wizard\x20(stateless\x20guide_state,\x20never\x20executes\x20on-chain\x20—\x20materialize\x20via\x20onchain_operations).\x20All\x20four\x20are\x20pure\x20transformations.']},{'name':'monitor_events','summary':'Persistent\x20monitor\x20event\x20store\x20(shared\x20with\x20the\x20client\x20Monitor\x20page)\x20—\x20paginated\x20events\x20with\x20read\x20flags;\x20mark\x20read/unread.','actions':['query','mark_read','mark_all_read'],'notes':['Events\x20captured\x20by\x20the\x20resident\x20MonitorLoop\x20(client\x20sidecar,\x20or\x20stdio\x20MCP\x20server\x20with\x20MONITOR_LOOP=1)\x20across\x209\x20modules,\x20stored\x20APPEND-ONLY\x20in\x20SQLite\x20(survives\x20restarts)\x20with\x20per-event\x20read\x20flags.','query\x20=\x20paginated\x20newest-first\x20with\x20module/event_type/since/until\x20filters\x20+\x20module_counts/unread_by_module/total_unread;\x20relevant_only\x20(default\x20true)\x20restricts\x20to\x20scope-closure/focus/filter\x20hits\x20(de-noised\x20todo\x20stream);\x20with_reason\x20attaches\x20the\x20relevance\x20annotation\x20+\x20delivered\x20flag;\x20mark_read\x20=\x20idempotent\x20per-event\x20(\x27<eventSeq>:<txDigest>\x27);\x20mark_all_read\x20=\x20optionally\x20module-scoped.','Cross-process:\x20read\x20state\x20is\x20SHARED\x20with\x20the\x20client\x20app\x20(same\x20SQLite\x20store)\x20—\x20marking\x20read\x20here\x20clears\x20the\x20client\x20Monitor\x20unread\x20badge\x20and\x20vice\x20versa.']},{'name':'monitor_subscription','summary':'Monitor\x20subscription\x20config\x20—\x20scope-closure\x20rules,\x20focus\x20objects,\x20per-type\x20todo\x20switches,\x20conditional\x20filters;\x20scope\x20preview\x20+\x20filter\x20dry-run.','actions':['get','save','reset','scope_preview','test_filter'],'notes':['Single\x20configuration\x20entry\x20point\x20for\x20monitor\x20v4\x20(client\x20settings\x20panel\x20and\x20agents\x20share\x20it);\x20save/reset\x20merge\x20+\x20clamp\x20loop\x20params,\x20then\x20trigger\x20an\x20immediate\x20scope\x20re-resolve\x20and\x20schedule\x20a\x20backfill\x20when\x20the\x20closure\x20changed.','scope_preview\x20lists\x20the\x20resolved\x20closure\x20grouped\x20by\x20layer\x20(accounts/permissions/managed_objects/services/orders/order_children/focus)\x20with\x20pagination\x20—\x20inspect\x20before\x20tuning\x20rule\x20switches.','test_filter\x20dry-runs\x20a\x20filter\x20draft\x20over\x20the\x20most\x20recent\x20captured\x20events\x20(default\x20200,\x20max\x201000)\x20returning\x20matched/scanned\x20counts\x20+\x20up\x20to\x205\x20samples\x20—\x20preview\x20noise\x20BEFORE\x20saving.','Capture\x20is\x20unaffected\x20by\x20delivery\x20switches\x20EXCEPT\x20NewPaymentEvent\x20(captured\x20only\x20when\x20switched\x20ON).']},{'name':'industry_pack_operation','summary':'Industry\x20knowledge\x20pack\x20lifecycle\x20—\x20scaffold\x20(merged\x20v2\x20template),\x20scan/register,\x20layer\x20get,\x20diff,\x20reset-to-template,\x20plus\x20industry-dir\x20file\x20operations\x20and\x20the\x20industry\x20mode\x20registry\x20(GLM6/92\x20§E).','actions':['scaffold','list','scan','resolve','list_files','read_file','write_file','get','diff','reset','delete_file','create_file','create_dir','copy','move','rename','recommend_industry','list_modes','derive_user_mode','evolve_user_mode','register_user_mode','unregister_user_mode','register_custom_metric','register_custom_constraint','list_metrics_constraints'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20+\x20in-memory\x20registry;\x20never\x20mutates\x20chain\x20state.','Merged\x20v2\x20layout:\x20pack.json\x20(annotated\x20with\x20_schema/_doc\x20comment\x20fields\x20+\x20personae)\x20+\x20playbook.md;\x20legacy\x20split-file\x20layouts\x20still\x20read\x20for\x20backward\x20compatibility.','reset\x20restores\x20a\x20file\x20or\x20entire\x20pack\x20folder\x20to\x20its\x20pristine\x20annotated\x20template\x20—\x20user\x20edits\x20beyond\x20the\x20target\x20are\x20preserved.','Mode\x20registry\x20(GLM6/92\x20§E):\x20recommend_industry\x20(top-3\x20similar\x20industries\x20+\x20verified\x20reference\x20examples;\x20optional\x20semantic_ir\x20=\x20caller-normalised\x20language-neutral\x20evidence\x20—\x20traits,\x20domains,\x20numeric\x20claims\x20and\x20a\x20discovery\x20block\x20{industry,\x20tags,\x20product_ref,\x20english_summary,\x20confidence};\x20IR\x20wins\x20conflicts,\x20a\x20discovery\x20industry\x20adds\x20a\x20bounded\x20prior\x20boost,\x20echoed\x20with\x20a\x20digest\x20for\x20replay),\x20list_modes,\x20derive_user_mode\x20(customize\x20a\x20builtin),\x20evolve_user_mode,\x20register_user_mode\x20(fully\x20custom;\x20R-M1-11\x20enforced\x20on\x20machine_shape),\x20unregister_user_mode,\x20register_custom_metric\x20/\x20register_custom_constraint\x20(extend\x20evaluation\x20registries),\x20list_metrics_constraints.']},{'name':'benchmark_migration_operation','summary':'MD\x20industry-archetype\x20templates\x20(hot-loaded\x20from\x20.wowok/industry/<industry>/templates/,\x20'+BUILTIN_TEMPLATES['length']+'\x20built-ins\x20across\x20'+new Set(BUILTIN_TEMPLATES['map'](a=>a['industry']))['size']+'\x20industries)\x20+\x20pre-deploy\x20risk\x20scan\x20+\x20one-click\x20competitor\x20migration\x20(import\x20→\x20review\x20→\x20apply\x20via\x20the\x20merchant-guide\x20pipeline).','actions':['template_list','template_get','template_generate','plan_execute','template_scan','migration_import','migration_review','migration_apply'],'common_params':{'template_id':'Template\x20id\x20\x27<industry>/<variant>\x27\x20(required\x20for\x20template_get\x20/\x20template_generate\x20/\x20template_scan\x20/\x20migration_apply),\x20e.g.\x20\x27retail/scale-marketplace\x27.','industry':'Industry\x20filter\x20for\x20template_list;\x20industry\x20hint\x20for\x20migration_import.','description':'Business/competitor\x20description\x20(required\x20for\x20migration_import;\x20optional\x20intent\x20text\x20for\x20template_generate).','url':'Competitor\x20store/profile\x20URL\x20for\x20migration_import\x20(recorded\x20as\x20provenance\x20only).','fee_overrides':'Template\x20fee-parameter\x20overrides\x20for\x20template_generate.','log':'A\x20prior\x20MigrationLog\x20(required\x20for\x20migration_review).','network':'testnet\x20|\x20mainnet\x20for\x20migration_import\x20/\x20migration_apply\x20(default\x20testnet).','semantic_ir':'Optional\x20caller-normalised\x20evidence\x20(schema_version\x202,\x20version\x201\x20accepted)\x20for\x20migration_import:\x20traits\x20/\x20domains\x20/\x20claims\x20plus\x20a\x20discovery\x20block\x20{industry,\x20tags,\x20product_ref,\x20english_summary,\x20confidence}.\x20Any\x20locale\x20works\x20—\x20the\x20caller\x20LLM\x20translates;\x20tags\x20must\x20come\x20from\x20template_list.discovery_vocabulary,\x20product_ref\x20from\x20its\x20product_refs,\x20and\x20every\x20quote\x20must\x20appear\x20verbatim\x20in\x20`description`\x20(unverifiable\x20evidence\x20is\x20dropped\x20and\x20reported\x20in\x20semantic_ir_issues).'},'notes':['Deterministic\x20knowledge\x20lookups\x20+\x20planning;\x20never\x20mutates\x20chain\x20state\x20on\x20its\x20own\x20—\x20template_generate\x20/\x20migration_apply\x20emit\x20creation\x20plans\x20only.\x20plan_execute\x20is\x20the\x20built-in\x20executor:\x20pass\x20the\x20emitted\x20plan\x20verbatim\x20to\x20materialize\x20every\x20step\x20in\x20one\x20call\x20(chain\x20writes);\x20on\x20a\x20mid-plan\x20failure\x20it\x20reports\x20completed\x20steps\x20+\x20outputs\x20so\x20the\x20retry\x20resumes\x20(completed_steps\x20+\x20previous_outputs)\x20instead\x20of\x20re-running\x20from\x20scratch\x20(duplicate\x20objects).\x20onchain_operations\x20still\x20works\x20for\x20step-by-step\x20runs.','Templates\x20are\x20zod-validated\x20MD\x20files\x20hot-loaded\x20from\x20.wowok/industry/<industry>/templates/\x20(the\x20client\x20industry-drawer\x20tree;\x20root\x20env-overridable\x20via\x20WOWOK_TEMPLATES_DIR);\x20the\x20built-in\x20archetypes\x20are\x20seeded\x20idempotently\x20and\x20user\x20edits\x20are\x20never\x20overwritten.','template_scan\x20runs\x20the\x20pre-deploy\x20risk\x20scan\x20(synthetic\x20draft\x20topology\x20through\x20the\x20same\x20rule\x20surface\x20as\x20on-chain\x20analyze\x20+\x20static\x20R1-R10\x20checks);\x20CRITICAL\x20findings\x20block\x20template_generate\x20/\x20migration_apply.\x20Every\x20scan\x20face\x20also\x20carries\x20a\x20drift\x20field\x20(disk-vs-catalog\x20provenance:\x20state\x20current/modified/missing/untracked,\x20blocked\x20flag,\x20catalog_version)\x20—\x20template_list\x20rows\x20carry\x20the\x20same\x20disk_state\x20per\x20template.','Multilingual\x20discovery\x20(no\x20per-language\x20alias\x20tables):\x20template_list\x20returns\x20discovery_vocabulary\x20{industries,\x20tags,\x20product_refs}\x20—\x20a\x20closed,\x20language-neutral\x20vocabulary\x20derived\x20from\x20the\x20catalog\x20itself;\x20every\x20template\x20row\x20carries\x20its\x20tags.\x20migration_import\x20matches\x20in\x20passes\x20—\x20semantic_ir\x20product_ref\x20(exact,\x20confidence\x201),\x20English\x20text\x20product_ref,\x20semantic_ir\x20tag\x20coverage\x20(>=2\x20hits,\x20or\x201\x20when\x20the\x20IR\x20industry\x20scopes\x20it;\x20capped\x20at\x200.9),\x20English\x20keywords\x20—\x20and\x20the\x20log\x27s\x20template_match\x20reports\x20{source,\x20confidence,\x20matched_tags}.\x20Same\x20template\x20+\x20same\x20confidence\x20regardless\x20of\x20the\x20description\x27s\x20language.','migration_import\x20returns\x20a\x20MigrationLog\x20with\x20mapped\x20/\x20unmapped\x20/\x20manual_review\x20entries,\x20WoWok\x20advantages,\x20customizable\x20business-module\x20ids,\x20a\x20merchant-vs-supplier\x20role\x20assessment,\x20a\x20dry-run\x20risk\x20check\x20and\x20the\x20template_match\x20provenance.','migration_review\x20surfaces\x20counts\x20+\x20risk\x20status\x20+\x20the\x20compile-kernel\x20build\x20verdict\x20(buildable\x20/\x20build_blockers\x20on\x20probe\x20inputs,\x20S14-E2)\x20for\x20user\x20confirmation\x20before\x20migration_apply\x20—\x20a\x20template\x20the\x20compiler\x20refuses\x20never\x20reads\x20\x27Review\x20clean\x27.','mainnet\x20requires\x20explicit\x20user\x20confirmation;\x20the\x20default\x20network\x20is\x20testnet.']},{'name':'service_clone_operation','summary':'Clone\x20an\x20on-chain\x20Service\x20into\x20a\x20new\x20object:\x20read\x20the\x20source\x27s\x20full\x20configuration\x20(service\x20fields,\x20machine\x20graph,\x20guards,\x20permission,\x20allocators)\x20into\x20an\x20editable\x20plan,\x20then\x20rebuild\x20it\x20with\x20optional\x20overrides\x20(token\x20type,\x20network,\x20fees)\x20through\x20the\x20pre-publish\x20gate.','actions':['clone_plan','clone_apply'],'common_params':{'source_service':'Source\x20Service\x20name\x20or\x20address\x20(required\x20for\x20clone_plan).','plan':'A\x20prior\x20ClonePlan,\x20possibly\x20user-edited\x20(required\x20for\x20clone_apply).','overrides':'Optional\x20overrides:\x20token_type,\x20network,\x20name,\x20description,\x20location,\x20sales,\x20compensation_fund,\x20order_allocators,\x20guard_mode,\x20include_fund_step.'},'prerequisites':['query_toolkit\x20(locate\x20the\x20source\x20service)'],'follow_ups':['onchain_operations\x20(execute\x20the\x20emitted\x20payloads)'],'notes':['Deterministic\x20planning\x20only;\x20never\x20mutates\x20chain\x20state\x20—\x20clone_apply\x20emits\x20ordered\x20onchain_operations\x20payloads\x20for\x20the\x20caller\x20to\x20execute.','Guard\x20strategy:\x20guards\x20whose\x20table\x20references\x20the\x20source\x20service\x20address\x20are\x20rebuilt\x20(the\x20address\x20is\x20immutable\x20once\x20embedded);\x20others\x20are\x20reused\x20by\x20address.\x20guard_mode=\x27rebuild_all\x27\x20forces\x20a\x20full\x20rebuild.','Cross-network\x20clones\x20force\x20rebuild_all\x20guards,\x20create\x20a\x20fresh\x20Permission,\x20and\x20drop\x20arbitration/reward/repository/um\x20references\x20(addresses\x20are\x20network-bound).','clone_apply\x20runs\x20the\x20same\x20pre-publish\x20gate\x20as\x20onchain_operations\x20(machine\x20topology\x20audit,\x20allocator\x20guard\x20lint,\x20immutability\x20warnings)\x20before\x20emitting\x20payloads.']},{'name':'strategy_review_operation','summary':'Posture-weighted\x20operating\x20scorecard\x20for\x20one\x20(account,\x20industry):\x20collect\x20evidence\x20into\x20append-only\x20local\x20snapshots,\x20assemble\x20periodic\x20reviews\x20with\x20deterministic\x20pricing/posture\x20advice\x20and\x20current-layer-only\x20persona\x20proposals\x20(never\x20auto-applied).','actions':['collect','review','list_snapshots'],'notes':['Chain\x20reads\x20+\x20local\x20SQLite\x20KV\x20snapshots\x20only;\x20never\x20mutates\x20chain\x20state\x20and\x20never\x20writes\x20the\x20persona.','collect\x20gathers\x2013\x20catalog\x20metrics\x20from\x206\x20evidence\x20sources\x20(journey\x20funnel/order\x20flow/market\x20metrics/discovery\x20competitor\x20count/arbitration\x20trust/account\x20attention);\x20source\x20failures\x20degrade\x20metrics\x20to\x20unavailable/error,\x20never\x20zero-filled;\x20snapshot\x20append\x20failure\x20is\x20fail-soft\x20(stored:false).','review\x20does\x20NOT\x20persist:\x20fresh\x20collection\x20+\x20delta\x20against\x20latest\x20stored\x20snapshot;\x200–100\x20score\x20renormalized\x20over\x20available\x20anchored\x20metrics\x20under\x20volume/balanced/margin\x20weights;\x20cadence\x20from\x20the\x20industry\x20catalog\x20(weekly/two-week/monthly);\x20≤2\x20proposals,\x20each\x20target_layer=\x27current\x27\x20with\x20apply_via\x20persona_operation\x20apply\x20—\x20the\x20user\x20must\x20apply\x20explicitly.','Posture\x20resolution:\x20explicit\x20posture\x20arg\x20→\x20merchant\x20posture\x20in\x20the\x20effective\x20persona\x20→\x20balanced.']},{'name':'workspace_operation','summary':'Local\x20workspace\x20directory\x20(`.wowok/workspace`)\x20—\x20generated\x20review\x20files\x20(machine/guard/wts/wip\x20JSON)\x20and\x20user\x20documents:\x20list/read/search/glob/edit/write\x20+\x20file\x20operations.','actions':['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename','search','glob','edit'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20operations\x20confined\x20to\x20the\x20workspace\x20root;\x20never\x20mutates\x20chain\x20state.','read\x20is\x20the\x20supported\x20way\x20to\x20load\x20a\x20generated\x20JSON\x20as\x20AI\x20context\x20before\x20editing/submitting;\x20optional\x20offset/limit\x20line\x20slicing\x20(1-based,\x20max\x202000\x20lines)\x20and\x20encoding=\x27base64\x27\x20for\x20raw\x20bytes\x20(≤10MB).','search:\x20regex\x20content\x20search\x20(pattern;\x20optional\x20path\x20scope,\x20glob\x20basename\x20filter,\x20ignore_case,\x20max_results\x20≤200,\x20context_lines\x20≤5);\x20skips\x20binary-looking\x20and\x20>5MB\x20files.','glob:\x20wildcard\x20listing\x20on\x20workspace-relative\x20paths\x20—\x20\x27**\x27\x20spans\x20directory\x20segments,\x20\x27*\x27\x20stays\x20within\x20one\x20segment,\x20\x27?\x27\x20=\x20one\x20char.','edit:\x20exact\x20string\x20replacement\x20(path\x20+\x20old_string\x20+\x20new_string);\x20errors\x20when\x20old_string\x20is\x20non-unique\x20unless\x20replace_all=true;\x20refuses\x20files\x20>2MB.']},{'name':'workflow_operation','summary':'Local-account\x20workflow\x20view\x20—\x20list\x20active\x20Progress\x20that\x20at\x20least\x20one\x20local\x20account\x20can\x20advance\x20(permission\x20+\x20guard\x20+\x20executable\x20accounts),\x20advance/hold/unhold\x20a\x20forward,\x20and\x20view\x20a\x20progress\x27s\x20on-chain\x20operation\x20history.','actions':['list','operate','history'],'notes':['list:\x20permission-aware\x20—\x20a\x20forward\x20is\x20executable\x20when\x20(a)\x20namedOperator=\x27\x27\x20and\x20account\x20is\x20order\x20holder,\x20(b)\x20namedOperator=name\x20and\x20account\x20is\x20in\x20progress.namedOperator[name],\x20or\x20(c)\x20permissionIndex\x20set\x20and\x20account\x20is\x20in\x20permission.admin/table.','operate:\x20delegates\x20to\x20the\x20on-chain\x20progress\x20operation\x20(guard-aware);\x20op\x20∈\x20next/hold/unhold/adminUnhold.','history:\x20incrementally\x20syncs\x20a\x20progress\x27s\x20ON-CHAIN\x20Progress.history\x20(append-only\x20u64\x20index)\x20into\x20the\x20local\x20SQLite\x20mirror\x20via\x20a\x20per-progress\x20cursor\x20(only\x20new\x20records\x20pulled),\x20returns\x20the\x20migration\x20timeline\x20newest-first\x20with\x20each\x20migration\x27s\x20session\x20snapshot\x20(forwards\x20/\x20operator\x20/\x20weight\x20/\x20time);\x20runs\x2090-day\x20retention\x20cleanup\x20by\x20default.']},{'name':'permission_operation','summary':'Local-account\x20Permission\x20overview\x20—\x20list\x20Permissions\x20related\x20to\x20local\x20accounts\x20(via\x20entity_permission\x20index)\x20with\x20owner/admin/entity\x20breakdown\x20+\x20related\x20objects\x20via\x20object-linker\x20indexes.','actions':['list'],'notes':['Read-only;\x20reverse-looks-up\x20local\x20accounts\x20via\x20entity_permission\x20@0xaad,\x20then\x20merges/dedups\x20permissions.','Related\x20objects\x20resolved\x20via\x20object-linker\x20reverse\x20indexes\x20(0xaae\x20core\x20/\x200xaaf\x20tx)\x20binding\x20edges,\x20grouped\x20by\x20type\x20via\x20first-byte\x20address\x20tag.','Latest\x20update\x20time\x20derived\x20from\x20the\x20Permission\x27s\x20previousTransaction.']},{'name':'ask_user','summary':'Structured\x20user\x20elicitation\x20—\x20ask\x20the\x20user\x20to\x20choose\x20between\x202-8\x20concrete\x20options\x20and\x20receive\x20a\x20validated\x20structured\x20answer\x20(MCP\x202.0\x20elicitation\x20/\x20desktop\x20option\x20card).','common_params':{'question':'The\x20single\x20decision\x20needed\x20from\x20the\x20user\x20(1-1000\x20chars).','options':'2-8\x20self-contained\x20{id,label,description?}\x20choices.','recommended_id':'id\x20of\x20the\x20professionally\x20recommended\x20option\x20(optional).','multi_select':'true\x20when\x20options\x20are\x20combinable\x20(boolean\x20toggle\x20per\x20option).','allow_freeform':'true\x20to\x20permit\x20an\x20additional\x20free-text\x20answer.','context':'Optional\x20short\x20explanation\x20of\x20why\x20the\x20decision\x20is\x20needed.'},'notes':['Use\x20when\x20a\x20business\x20decision\x20belongs\x20to\x20the\x20user\x20and\x20continuing\x20requires\x20it;\x20never\x20guess\x20or\x20silently\x20default\x20an\x20unanswered\x20choice.','Desktop\x20clients\x20render\x20an\x20option\x20card;\x20MCP\x202.0\x20transports\x20fulfil\x20via\x20elicitation/create;\x20unsupported\x20clients\x20should\x20fall\x20back\x20to\x20a\x20numbered\x20prose\x20question.','action\x20decline/cancel\x20means\x20STOP\x20and\x20ask\x20how\x20to\x20proceed\x20in\x20plain\x20text\x20—\x20do\x20not\x20execute\x20a\x20default\x20path.','Not\x20a\x20safety\x20confirmation\x20—\x20irreversible/publish/amount\x20gates\x20remain\x20handled\x20by\x20confirm_gate.']}];export function getToolReference(a){return TOOLS_REFERENCE['find'](b=>b['name']===a);}export function searchToolReference(a){const b=a['toLowerCase']();return TOOLS_REFERENCE['filter'](c=>{if(c['name']['toLowerCase']()['includes'](b))return!![];if(c['summary']['toLowerCase']()['includes'](b))return!![];if(c['actions']?.['some'](d=>d['toLowerCase']()['includes'](b)))return!![];return![];});}export function getToolSequence(a){const b=getToolReference(a);if(!b)return undefined;return{'prerequisites':b['prerequisites']??[],'tool':b['name'],'follow_ups':b['follow_ups']??[]};}
|
|
1
|
+
import{BUILTIN_TEMPLATES}from'./builtin-templates.js';export const TOOLS_REFERENCE=[{'name':'onchain_operations','summary':'On-chain\x20object\x20creation,\x20modification,\x20and\x20publish\x20for\x20all\x2016\x20Wowok\x20object\x20types.','actions':['service','machine','guard','permission','reward','arb','progress','treasury','demand','repository','contact','order','allocation','personal','payment','proof','gen_passport','gen_proof'],'common_params':{'operation_type':'Object\x20type\x20to\x20create/modify\x20(string\x20enum).','data':'Operation\x20payload\x20—\x20shape\x20varies\x20by\x20operation_type.','object':'Object\x20name\x20or\x20address\x20(for\x20modify-by-id).','namedNew':'New\x20object\x20spec\x20(name,\x20description,\x20tags)\x20for\x20create.','env':'Execution\x20environment\x20(account,\x20network,\x20gas_budget).'},'prerequisites':['account_operation\x20(for\x20account\x20setup)'],'follow_ups':['query_toolkit\x20(verify\x20result)','local_mark_operation\x20(tag\x20object)'],'notes':['publish=true\x20is\x20irreversible\x20—\x20use\x20confirm_gate.','Service/Machine\x20require\x20publish\x20after\x20create\x20before\x20they\x20are\x20visible\x20on-chain.','Use\x20schema_query\x20with\x20action=\x27list_operations\x27\x20to\x20see\x20all\x20operation\x20schemas.','NETWORK:\x20by\x20default\x20omit\x20env.network\x20—\x20the\x20operation\x20runs\x20on\x20the\x20user\x27s\x20CURRENT\x20network\x20(the\x20app\x27s\x20active\x20selection);\x20the\x20confirmation\x20card\x20echoes\x20the\x20actual\x20network.\x20Never\x20guess\x20or\x20invent\x20a\x20network\x20on\x20your\x20own\x20initiative.','NETWORK\x20SWITCH\x20(explicit\x20user\x20intent\x20only):\x20when\x20the\x20user\x27s\x20request\x20clearly\x20targets\x20a\x20DIFFERENT\x20network\x20(e.g.\x20\x22create\x20this\x20permission\x20on\x20testnet\x22\x20while\x20the\x20app\x20is\x20on\x20mainnet),\x20set\x20env.network\x20to\x20that\x20network\x20in\x20THIS\x20call\x20—\x20the\x20client\x20pops\x20a\x20mandatory\x20network-switch\x20confirmation\x20card;\x20only\x20after\x20the\x20user\x20approves\x20does\x20the\x20call\x20(and\x20the\x20whole\x20app)\x20run\x20on\x20the\x20new\x20network.\x20If\x20the\x20user\x20declines,\x20do\x20NOT\x20retry\x20on\x20that\x20network\x20—\x20continue\x20on\x20the\x20current\x20one.\x20Read-only\x20queries\x20(query_toolkit\x20context_network)\x20never\x20need\x20this\x20—\x20they\x20select\x20a\x20network\x20per\x20call\x20without\x20switching.']},{'name':'account_operation','summary':'Local\x20wallet\x20management\x20—\x20generate,\x20suspend,\x20resume,\x20faucet,\x20sign\x20data.','actions':['gen','resume','suspend','faucet','operate','sign','list','info'],'common_params':{'name':'Account\x20name\x20(local\x20identifier).','network':'mainnet\x20|\x20testnet\x20(determines\x20RPC).'},'prerequisites':[],'follow_ups':['onchain_operations\x20(use\x20account\x20for\x20signing)'],'notes':['100%\x20LOCAL\x20—\x20keys\x20never\x20leave\x20the\x20device.','faucet\x20only\x20works\x20on\x20testnet.']},{'name':'local_mark_operation','summary':'Local\x20address\x20book\x20—\x20map\x20human-readable\x20names\x20to\x20blockchain\x20addresses\x20with\x20tags.','actions':['add','remove','update','list','query'],'common_params':{'name':'Local\x20name.','address':'Blockchain\x20address.','tags':'Tag\x20array.'},'notes':['100%\x20LOCAL\x20—\x20never\x20on-chain.','Names\x20are\x20accepted\x20by\x20most\x20on-chain\x20query/panorama\x20tools\x20in\x20place\x20of\x20raw\x20addresses.']},{'name':'local_info_operation','summary':'Local\x20private\x20data\x20management\x20—\x20delivery\x20addresses,\x20phone\x20numbers,\x20contacts.','actions':['add','remove','update','list'],'notes':['100%\x20LOCAL\x20—\x20sensitive\x20data,\x20never\x20on-chain.']},{'name':'local_history_operation','summary':'Local\x20Explorer\x20visit\x20history\x20—\x20recently\x20viewed\x20objects,\x20newest\x20first.','actions':['list\x20(default)','add\x20(upsert\x20by\x20key)','remove\x20(by\x20keys)','clear'],'common_params':{'add':'Record\x20visits:\x20{op:\x27add\x27,\x20data:[{key,\x20address,\x20object_type?,\x20network,\x20time}]}.','remove':'Delete\x20entries:\x20{op:\x27remove\x27,\x20keys:[...]}.','clear':'Erase\x20all\x20history:\x20{op:\x27clear\x27}.'},'notes':['100%\x20LOCAL\x20—\x20visit\x20records\x20never\x20leave\x20the\x20device;\x20display\x20names\x20are\x20never\x20stored\x20(resolved\x20live\x20at\x20render).','Omit\x20every\x20operation\x20field\x20to\x20list\x20history\x20(newest\x20first,\x20auto-pruned\x20to\x20last\x2030\x20days\x20/\x20300\x20entries).','detail\x20visits\x20keep\x20the\x20object\x20type\x20tag;\x20each\x20entry\x20stores\x20the\x20stable\x20object\x20key\x20+\x20canonical\x200x\x20address\x20+\x20network\x20+\x20timestamp.']},{'name':'local_cache_operation','summary':'Device-local\x20SDK\x20read\x20cache\x20—\x20report\x20diagnostics,\x20clear\x20a\x20prefix\x20or\x20everything,\x20re-detect\x20chain\x20identity\x20after\x20a\x20node\x20reset.','actions':['status\x20(read-only)','clear_prefix','clear','refresh_chain_scope'],'common_params':{'status':'Report\x20diagnostics\x20(active\x20chain\x20identity,\x20memory\x20entries,\x20persisted\x20rows):\x20{status:{op:\x27status\x27}}.','clear_prefix':'Drop\x20one\x20cache\x20family:\x20{clear_prefix:{op:\x27clear_prefix\x27,\x20prefix:\x27objectv2\x27}}.','clear':'Drop\x20the\x20whole\x20read\x20cache:\x20{clear:{op:\x27clear\x27}}.','refresh_chain_scope':'Force\x20chain-identity\x20re-detection:\x20{refresh_chain_scope:{op:\x27refresh_chain_scope\x27,\x20network?}}.'},'notes':['100%\x20LOCAL\x20—\x20never\x20on-chain;\x20does\x20NOT\x20touch\x20accounts,\x20marks,\x20info\x20or\x20history\x20(separate\x20stores,\x20separate\x20tools).','USE\x20AFTER\x20A\x20NODE\x20RESET\x20/\x20RESTART,\x20or\x20on\x20\x27object\x200x…\x20version\x200x…\x20is\x20unavailable\x27:\x20the\x20SDK\x20namespaces\x20its\x20cache\x20by\x20chain\x20identity\x20(genesis\x20checkpoint\x20digest),\x20so\x20a\x20reset\x20normally\x20self-heals;\x20refresh_chain_scope\x20forces\x20it\x20when\x20the\x20node\x20was\x20unreachable\x20at\x20startup.','A\x20chain_identity\x20of\x20null\x20in\x20`status`\x20means\x20the\x20cache\x20is\x20NOT\x20reset-safe\x20—\x20run\x20refresh_chain_scope.','Only\x20`status`\x20is\x20read-only;\x20the\x20other\x20sub-ops\x20discard\x20cached\x20reads\x20and\x20re-read\x20from\x20the\x20node\x20next\x20call.']},{'name':'time_convert','summary':'General\x20time-window\x20kernel\x20—\x20convert\x20any\x20time\x20expression\x20to\x20ONE\x20chain-aligned\x20ms\x20constant,\x20on\x20demand.','actions':['convert\x20(the\x20only\x20face\x20—\x20paste\x20the\x20returned\x20ms\x20into\x20the\x20target\x20U64\x20slot)'],'common_params':{'value':'Whole\x20ms\x20(5000),\x20\x27<n><unit>\x27\x20(\x2714d\x27,\x20\x272h\x27,\x20\x2790min\x27),\x20compound\x20(\x271w2d\x27),\x20spaced\x20(\x2714\x20days\x27),\x20or\x20ISO-8601\x20(\x27P14D\x27).','unit':'Optional:\x20quantify\x20`value`\x20in\x20this\x20unit\x20({value:2,\x20unit:\x27hour\x27}).','window_profile':'production\x20(exact,\x20default)\x20|\x20test\x20(1\x20declared\x20day/hour\x20=\x201\x20minute;\x20hard-blocked\x20from\x20real\x20publish).'},'notes':['R-TIME-LOCAL-CONST\x20doctrine:\x20NO\x20multiply\x20on\x20chain\x20(not\x20even\x20×1)\x20—\x20the\x20conversion\x20is\x20LOCAL;\x20guards\x20consume\x20the\x20ms\x20constant\x20directly.','LLM\x20FRAMEWORK:\x20the\x20kernel\x20is\x20deterministic\x20and\x20language-neutral.\x20A\x20multilingual\x20or\x20date-anchored\x20phrase\x20returns\x20llm_hint\x20(the\x20NORMALIZATION\x20CONTRACT)\x20—\x20your\x20language\x20model\x20translates\x20it\x20into\x20the\x20canonical\x20\x27<number><unit>\x27\x20grammar\x20(units\x20ms|s|m|h|d|w|mo|y,\x20date-anchored\x20phrases\x20resolved\x20against\x20the\x20current\x20date)\x20and\x20retries.','Month/year\x20are\x20declared\x20conventions:\x2030\x20/\x20365\x20days.\x20Fractional\x20units\x20are\x20exact\x20in\x20production\x20(0.5d\x20=\x2043200000).']},{'name':'wip_file','summary':'Witness\x20Immutable\x20Promise\x20file\x20operations\x20—\x20generate,\x20verify,\x20sign,\x20convert,\x20and\x20storage\x20(upload/list/delete\x20on\x20the\x20free\x20official\x20store\x20or\x20a\x20custom\x20service).','actions':['generate','verify','sign','wip2html','upload','storage_list','storage_delete'],'notes':['WIP\x20hash\x20must\x20be\x20non-empty\x20—\x20compute\x20actual\x20hash\x20before\x20calling.','Storage\x20decision:\x20storage=\x27store\x27\x20(default)\x20=\x20official\x20FREE\x20store\x20wip.store.wowok.net,\x2010\x20files\x20per\x20account,\x20files\x20retained\x206\x20months\x20(free\x20best-effort\x20service\x20—\x20force\x20majeure\x20excepted;\x20expired\x20files\x20are\x20deleted\x20ONLY\x20by\x20manual\x20admin\x20purge,\x20never\x20automatically);\x20storage=\x27custom\x27\x20+\x20customBaseUrl\x20=\x20your\x20own\x20or\x20a\x20third-party\x20wip\x20storage\x20service\x20(recommended:\x20no\x20store\x20quota,\x20full\x20control).','Network\x20independence:\x20WIP\x20files\x20are\x20off-chain\x20—\x20one\x20upload\x20serves\x20BOTH\x20testnet\x20and\x20mainnet,\x20and\x20storage_list/storage_delete\x20never\x20touch\x20the\x20chain.','Large\x20WIP\x20files\x20(multi-MB,\x20image-heavy)\x20are\x20network-sensitive:\x20compress\x20images\x20before\x20generate,\x20retry\x20transient\x20upload\x20failures,\x20and\x20verify\x20the\x20returned\x20public\x20URL\x20afterwards\x20with\x20type=\x27verify\x27.']},{'name':'messenger_operation','summary':'Encrypted\x20messenger\x20—\x20watch/send\x20messages,\x20WTS,\x20friendslist,\x20blacklist,\x20guardlist.','actions':['watch_conversations','send_message','send_file','send_required_info','watch_messages','save_attachment','generate_wts','verify_wts','sign_wts','wts2html','proof_message','blacklist','friendslist','guardlist','settings','mark_messages_as_viewed','mark_conversation_as_viewed','mark_conversation_read','pull_messages'],'notes':['Requires\x20messenger-enabled\x20account.','30s\x20timeout\x20—\x20network\x20operations.','Attachment\x20messages\x20return\x20byte-free\x20descriptors\x20(msg.attachment;\x20plaintext\x20is\x20undefined).\x20Use\x20save_attachment\x20{messageId}\x20to\x20persist\x20the\x20file\x20(e.g.\x20before\x20verify_wts);\x20bytes\x20are\x20never\x20embedded\x20in\x20message\x20outputs.','send_required_info\x20assembles\x20selected\x20LocalInfo\x20fields\x20into\x20one\x20E2E\x20message\x20(\x27field:\x20value\x27\x20lines)\x20—\x20the\x20dedicated\x20path\x20for\x20delivering\x20customer_required\x20info.','pull_messages\x20supports\x20allAccounts/accounts\x20for\x20one\x20bounded-concurrency\x20fan-out\x20across\x20accounts.','pull_messages\x20{peerAddress,\x20after}\x20is\x20an\x20incremental\x20read:\x20messages\x20with\x20seq\x20(leafIndex)\x20>\x20after,\x20plus\x20highest_seq/has_more\x20and\x20a\x20structured\x20gap\x20when\x20continuity\x20cannot\x20be\x20proven\x20(result.degraded=true).\x20The\x20cursor\x20is\x20caller-owned\x20—\x20watch_messages\x20never\x20advances\x20it.','mark_conversation_read\x20records\x20a\x20per-conversation\x20LOCAL\x20read\x20watermark\x20(monotonic).\x20The\x20network\x20has\x20no\x20receipt\x20primitive,\x20so\x20peer_read_through_seq\x20is\x20null\x20and\x20never\x20represents\x20delivery/read.']},{'name':'guard2file','summary':'Export\x20a\x20Guard\x20object\x27s\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'guard_rebind_replacement','summary':'One-shot\x20guard\x20fix:\x20create\x20the\x20corrected\x20guard,\x20gate\x20it\x20through\x20binding-semantics\x20lint\x20+\x20production\x20dry-run,\x20then\x20rebind\x20the\x20host\x20only\x20on\x20would_pass.','notes':['WRITE\x20tool\x20—\x20gated:\x20a\x20refused\x20rebind\x20leaves\x20the\x20old\x20binding\x20untouched\x20and\x20names\x20the\x20exact\x20remedy;\x20the\x20new\x20guard\x20stays\x20on\x20chain\x20unbound\x20and\x20inert.','Hosts:\x20service\x20buy_guard\x20(one\x20update),\x20or\x20ONE\x20machine\x20forward\x20via\x20remove\x20+\x20add\x20on\x20an\x20UNPUBLISHED\x20machine\x20(failed\x20re-add\x20restores\x20the\x20old\x20forward\x20—\x20rollback).\x20A\x20published\x20Machine\x20freezes\x20its\x20graph\x20—\x20use\x20the\x20service_buy_guard\x20host\x20there.','This\x20is\x20the\x20ISSUES\x20ledger\x20#61\x20option-A\x20tool:\x20protocol-layer\x20replace_guard\x20(the\x20old\x20guard\x20stays\x20untouched,\x20the\x20new\x20guard\x20is\x20rebound\x20atomically,\x20the\x20old\x20object\x20is\x20kept\x20as\x20evidence)\x20—\x20prefer\x20it\x20over\x20hand-running\x20create\x20→\x20dry-run\x20→\x20rebind\x20as\x20three\x20separate\x20calls.']},{'name':'machineNode2file','summary':'Export\x20a\x20Machine\x20object\x27s\x20node\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'query_toolkit','summary':'Query\x20toolkit\x20covering\x20local\x20device\x20data,\x20on-chain\x20blockchain\x20data,\x20and\x20one-call\x20business-intelligence\x20panoramas/review\x20packs.','actions':['local_mark_list','account_list','local_info_list','local_names','token_list','account_balance','onchain_personal_profile','onchain_objects','onchain_received','onchain_transaction','onchain_block','onchain_object_history','onchain_address_activity','address_profile','address_profiles','migration_preflight','token_value_convert','onchain_last_updated','service_panorama','machine_panorama','object_panorama','review_pack','assemble_context','reverse_map','participation_radar','order_aggregate','onchain_topology'],'notes':['Read-only\x20—\x20safe\x20to\x20call\x20without\x20confirmation.','local_names\x20resolves\x20a\x20batch\x20of\x20addresses\x20to\x20account/local_mark\x20names\x20(canonical\x20name\x20source\x20for\x20display);\x20address_profile(s)\x20is\x20the\x20one-stop\x20\x27who/what\x20is\x20this\x20address\x27\x20query\x20(classification\x20+\x20reputation\x20+\x20memberships\x20+\x20reverse\x20bindings;\x20batch\x20up\x20to\x2050);\x20migration_preflight\x20detects\x20existing\x20builds\x20on\x20another\x20network\x20and\x20returns\x20the\x20testnet→mainnet\x20migration\x20checklist.','BI\x20query\x20types\x20(one-call\x20panoramas):\x20service_panorama\x20(full\x20Service\x20context:\x20workflow\x20graph\x20+\x20guards\x20+\x20trust\x20+\x20supply\x20chain\x20+\x20BusinessReport\x20+\x20recent\x20orders),\x20machine_panorama\x20(head\x20+\x20fields\x20+\x20workflow\x20graph\x20+\x20Progress\x20list),\x20object_panorama\x20(Progress/Demand/Order/Arb/Repository/Proof\x20detail\x20page\x20—\x20a\x20Proof\x20returns\x20its\x20frozen\x20Merkle\x20root\x20and,\x20with\x20wts_file_path,\x20cross-checks\x20a\x20.wts\x20packet\x20against\x20that\x20anchor),\x20review_pack\x20(typed\x20ReviewPack\x20for\x20the\x20client\x27s\x20ReviewPackRenderer),\x20assemble_context\x20(semantic\x20context\x20from\x20on-chain\x20objects),\x20reverse_map\x20(deterministic\x20L4→L1\x20business\x20report\x20—\x20merchant\x20profile\x20/\x20user\x20risk\x20/\x20game\x20theory),\x20participation_radar\x20(in-flight\x20order\x20participation\x20analysis\x20for\x20ONE\x20account),\x20order_aggregate\x20(CROSS-ORDER\x20count\x20+\x20exact\x20amount\x20sums\x20per\x20service/machine/owner\x20from\x20the\x20MCP\x20index\x20projection\x20—\x20the\x20funding-target\x20check\x20(\x273\x20x\x206\x20WOW\x20>=\x2018\x20WOW\x27)\x20the\x20on-chain\x20protocol\x20cannot\x20express;\x20cite\x20the\x20returned\x20coverage\x20watermark\x20with\x20any\x20verdict,\x20and\x20a\x20stale\x20projection\x20refuses\x20loudly).','onchain_topology\x20=\x20graph\x20evaluation\x20of\x20ONE\x20object\x20(trust\x20+\x20risk\x20+\x20completeness\x20+\x20coverage\x20+\x20unverified\x20over\x20its\x20workflow/guard/fund\x20topology)\x20—\x20the\x20unified\x20read-side\x20trust/risk\x20surface;\x20use\x20when\x20the\x20user\x20asks\x20\x27is\x20this\x20service\x20trustworthy?\x27\x20or\x20\x27should\x20I\x20buy?\x27.','FUND-EXIT\x20AUDIT\x20(C-F31):\x20onchain_transaction.object_changes\x20is\x20the\x20full\x20set\x20including\x20removals\x20(deleted/wrapped/unwrapped)\x20—\x20a\x20consumed\x20object\x20(e.g.\x20a\x20CoinWrapper\x20spent\x20by\x20settle)\x20is\x20synthesized\x20from\x20the\x20tx\x20effects\x20when\x20the\x20node\x20omits\x20it\x20(entry\x20carries\x20synthesized=true,\x20no\x20object_type).\x20Every\x20removal\x20is\x20a\x20money/object\x20exit\x20door:\x20trace\x20its\x20contents\x20via\x20balance_changes\x20per-owner\x20deltas.\x20Fallback\x20when\x20an\x20exit\x20still\x20lacks\x20object-level\x20evidence:\x20diff\x20two\x20onchain_received\x20snapshots\x20taken\x20before\x20and\x20after\x20the\x20digest\x20(full-set\x20difference)\x20—\x20this\x20recovers\x20the\x20truth\x20even\x20when\x20the\x20tx\x20emitted\x20no\x20events.','REVIEW\x20SIGNAL\x20GLOSSARY\x20(three\x20layers,\x20never\x20mix):\x20(1)\x20Order\x20review\x20=\x20Repository\x20\x27review\x27\x20key\x20rows,\x20written\x20under\x20the\x20reviewed-edge\x20guard\x20so\x20only\x20completed-order\x20buyers\x20qualify\x20—\x20the\x20ONLY\x20face\x20market\x20exposure\x20consumes.\x20(2)\x20Account-level\x20vote\x20=\x20registrar\x20like/dislike/favor\x20on\x20an\x20Entity\x20(entity_linker\x20votes[])\x20—\x20an\x20account-level\x20signal,\x20NOT\x20the\x20order\x20review\x20channel;\x20show\x20only\x20as\x20auxiliary\x20display\x20with\x20the\x20voter-credibility\x20projection\x20(AC5\x20fresh-account\x20bursts\x20/\x20AC6\x20mutual\x20rings\x20/\x20AC7\x20flooded\x20targets).\x20(3)\x20Demand-side\x20feedback\x20=\x20DemandPresenter\x20acceptance_score\x20(0-100,\x20null\x20=\x20unrated)\x20—\x20the\x20demander\x27s\x20own\x20judgment\x20of\x20presenters,\x20consumed\x20via\x20O4\x20due-diligence\x20projection;\x20sparse\x20by\x20nature,\x20never\x20weighted\x20by\x20the\x20platform.']},{'name':'onchain_table_data','summary':'Dynamic\x20table\x20data\x20queries\x20—\x20paginated\x20table\x20queries\x20and\x20specific\x20table\x20item\x20lookups.','actions':['onchain_table','onchain_table_item_repository_data','onchain_table_item_permission_perm','onchain_table_item_entity_registrar','onchain_table_item_entity_linker','onchain_table_item_entity_contact','onchain_table_item_object_linker_core','onchain_table_item_object_linker_tx','onchain_table_item_reward_record','onchain_table_item_demand_presenter','onchain_table_item_treasury_history','onchain_table_item_machine_node','onchain_table_item_progress_history','onchain_table_item_address_mark','onchain_table_item_entity_order','onchain_orders_of_user','onchain_orders_of_users','onchain_affiliations_of_object','onchain_table_item_generic'],'notes':['Read-only\x20—\x20safe\x20for\x20exploration.','object_linker\x20core\x20(0xaae)\x20=\x20default\x20reverse\x20lookup\x20(bounded\x20core\x20objects);\x20object_linker\x20tx\x20(0xaaf)\x20=\x20operational\x20reverse\x20lookup\x20(orders/progress,\x20lossy\x20FIFO).','entity_order\x20(0xaa8)\x20=\x20global\x20entity->orders\x20reverse\x20index;\x20onchain_orders_of_user\x20resolves\x20each\x20order\x20to\x20its\x20full\x20on-chain\x20Order\x20object\x20with\x20role\x20attributes\x20(is_owner/is_agent).']},{'name':'onchain_events','summary':'Watch\x20on-chain\x20events\x20by\x20type\x20—\x20arbitration,\x20order,\x20progress,\x20demand,\x20entity.','notes':['Read-only\x20—\x20use\x20cursor\x20for\x20pagination.']},{'name':'wowok_buildin_info','summary':'Protocol\x20info\x20—\x20constants,\x20built-in\x20permissions,\x20common\x20mistakes,\x20guard\x20instructions,\x20network,\x20value\x20types,\x20bridge\x20tokens.','actions':['constants','built-in\x20permissions','common\x20mistakes','guard\x20instructions','current\x20network','value\x20types','mainnet\x20bridge\x20tokens'],'notes':['Read-only\x20—\x20authoritative\x20protocol\x20reference.','Use\x20\x27common\x20mistakes\x27\x20before\x20submitting\x20an\x20operation\x20to\x20learn\x20known\x20field-name/unit/workflow\x20pitfalls.']},{'name':'schema_query','summary':'Look\x20up\x20JSON\x20Schemas\x20for\x20MCP\x20tools\x20and\x20on-chain\x20operations\x20—\x20the\x20authoritative\x20reference.\x20Also\x20serves\x20sunk\x20knowledge:\x20tool\x20reference,\x20Guard\x20design\x20patterns,\x20safety\x20rules.','actions':['list','get','get_output','get_field','search','list_operations','get_guard_templates','get_tool_reference','get_guard_design_patterns','get_safety_rules'],'notes':['Always\x20check\x20schema\x20before\x20calling\x20an\x20unfamiliar\x20tool.','get_field\x20takes\x20a\x20dot-path\x20(field_path)\x20for\x20single-field\x20lookup.','get_tool_reference/get_guard_design_patterns/get_safety_rules\x20expose\x20the\x20knowledge\x20sunk\x20from\x20the\x20wowok-tools/guard/safety\x20skills\x20—\x20no\x20skills\x20installation\x20required.']},{'name':'bridge_operation','summary':'Cross-chain\x20bridge\x20between\x20WOW\x20and\x20EVM\x20(Ethereum\x20mainnet).\x20Mainnet\x20only.','actions':['cross_chain_wow_to_evm','cross_chain_evm_to_wow','withdraw','query_active_evm_account','query_supported_evm_chains','query_supported_tokens','query_transfer_list','query_transfer_status','manage_evm_rpc'],'notes':['Only\x20WOW\x20mainnet\x20provides\x20cross-chain\x20functionality.']},{'name':'config_operation','summary':'Runtime\x20service\x20toggles\x20—\x20enable/disable\x20Phase\x202\x20services\x20without\x20restart.','actions':['list','toggle','enable','disable','reset','info','store_dual_payout_get','store_dual_payout_set','store_dual_payout_clear'],'notes':['GLM5:\x20harness\x20is\x20default\x20ON\x20with\x20tiered\x20enforcement\x20(off/lightweight/full).','D-1\x20(ksr\x205R-08):\x20store_dual_payout_get/set/clear\x20maintain\x20a\x20per-account\x20dual-payout\x20preauthorization\x20ledger\x20(store-policies.json).\x20The\x20set\x20action\x20REQUIRES\x20confirm:true\x20(HUMAN\x20record,\x20never\x20settable\x20by\x20an\x20automated\x20keeper);\x20the\x20dual-payout\x20gates\x20in\x20onchain_operations\x20(allocation\x20alloc_by_guard\x20+\x20order\x20arb_claim_compensation\x20with\x20acknowledge_dual_payout)\x20refuse\x20with\x20dual_payout_preauthorization_required\x20unless\x20the\x20executing\x20store\x27s\x20account\x20is\x20preauthorized.\x20Recipe:\x20store_dual_payout_set\x20{account,\x20confirm:true}\x20once\x20→\x20the\x20acknowledge_dual_payout\x20calls\x20then\x20pass\x20the\x20gate.']},{'name':'evaluation_operation','summary':'Pluggable\x20business\x20evaluations\x20—\x20match\x20/\x20compose\x20/\x20game\x20(node\x20+\x20path)\x20/\x20evidence\x20review\x20/\x20discovery\x20/\x20market\x20/\x20arbitration\x20score\x20with\x20user\x20injection.','actions':['demand_match','service_match','capability_gap','compose_service','compose_generation','node_game','arb_game','path_reasoning','evidence_review','discover_services','discover_demands','market_metrics','market_operations','anti_cheat','match_discover','arbitration_score','account_events'],'notes':['Read-only;\x20the\x20role\x20decides\x20and\x20acts\x20via\x20onchain_operations.','path_reasoning\x20=\x20path-level\x20game\x20(full-route\x20enumeration\x20+\x20ranking);\x20node_game\x20=\x20single-node\x20best\x20move.','evidence_review\x20=\x20deterministic\x20off-chain\x20evidence\x20closure\x20gate\x20(auto_pass/auto_reject/manual_review).','discover_services\x20=\x20active\x20supply\x20discovery\x20(GraphQL\x20transport\x20required):\x20enumerate\x20all\x20shared\x20Services,\x20location-gate\x20by\x20sensitivity\x20(strict/near/logistics),\x20ranked\x20+\x20consent-gated\x20scope\x20expansion.\x20Passive\x20side\x20=\x20post\x20a\x20Demand\x20(DemandPresenter).','match_discover\x20=\x20one-shot\x20intent→service\x20orchestration\x20(enumerate\x20+\x20location\x20gate\x20+\x206-dimension\x20scoring);\x20discover_demands\x20=\x20supplier-side\x20demand\x20enumeration;\x20market_metrics/market_operations\x20=\x20market\x20measurement\x20(GraphQL\x20required).','arbitration_score\x20=\x20dual-perspective\x20arbitration\x20trust\x20(user-trust\x20+\x20merchant-fairness,\x20combined\x200-100);\x20anti_cheat\x20=\x20fake-review/wash-order\x20detection;\x20account_events\x20=\x20account\x20attention\x20feed\x20(read-only).']},{'name':'watch_operation','summary':'Identity-centric\x20on-chain\x20console\x20—\x20resolve\x20who\x20the\x20account\x20is\x20against\x20an\x20object,\x20expand\x20its\x20relations,\x20and\x20enumerate\x20actionable\x20operations.','actions':['focus','expand','actions'],'notes':['Read-only;\x20distinct\x20from\x20query_toolkit\x20/\x20onchain_table_data\x20(pure\x20data,\x20no\x20identity).','focus\x20=\x20identity\x20resolution\x20(manifest\x20on-chain\x20role\x20⊕\x20persona)\x20+\x20base\x20data;\x20neutral\x20→\x20objective\x20narration,\x20operative\x20role\x20→\x20game\x20reasoning.','expand\x20=\x20direct\x20relations\x20+\x20Service\x20transparent\x20sub-order\x20purchasing\x20graph\x20(frozen\x20forward\x20guards\x20→\x20purchased\x20sub-services\x20+\x20proofs).','actions\x20=\x20actionable\x20operations\x20with\x20executability\x20judgment\x20(order-holder\x20/\x20permission-index\x20/\x20named-operator\x20paths).']},{'name':'persona_operation','summary':'User\x20identity\x20setting\x20(persona)\x20—\x20preferences,\x20strategy,\x20rules,\x20spec;\x20long-term\x20+\x20current\x20layers\x20+\x20strategy→lever\x20mapping\x20+\x20region\x20hint.','actions':['get','list','set','analyze','apply','sync','remove','strategy','region_hint','distill'],'notes':['Read/write\x20local\x20state;\x20account\x20persona\x20overrides\x20system;\x20current\x20overrides\x20long-term.','strategy\x20resolves\x20merchant\x20strategy\x20statements\x20into\x20deterministic\x20infrastructure\x20levers\x20(discount/reward/buy_guard/machine_design).','region_hint\x20reads\x20the\x20local\x20delivery\x20address\x20as\x20a\x20matching\x20hint;\x20`propose`\x20returns\x20a\x20consent-gated\x20save\x20proposal\x20(never\x20auto-writes).','distill\x20turns\x20one\x20goal\x27s\x20memory\x20(outcome,\x20process\x20problems/feedback,\x20objects)\x20into\x20a\x20CURRENT-layer\x20proposal\x20—\x20never\x20auto-writes;\x20persist\x20via\x20set/apply\x20after\x20user\x20confirmation.\x20Industry\x20pack.json\x20files\x20are\x20read-only\x20knowledge\x20and\x20never\x20receive\x20user\x20data.']},{'name':'employee_operation','summary':'Merchant\x20employee\x20organizational\x20profile\x20(LOCAL)\x20+\x20reaction\x20KPI\x20+\x20liability\x20resolution\x20+\x20incentive\x20suggestion.','actions':['set','get','remove','assess_kpi','resolve_liability','suggest_incentive'],'notes':['LOCAL\x20ONLY\x20—\x20on-chain\x20authorization\x20lives\x20in\x20the\x20merchant\x27s\x20Permission\x20(namedOperator/entity).','assess_kpi:\x20node\x20reaction\x20speed\x20vs\x20budget\x20(explicit\x20>\x20stored\x20profile\x20>\x2048h\x20default).\x20Timestamps\x20explicit\x20OR\x20auto-derived\x20from\x20the\x20progress\x20object\x27s\x20monitored\x20ProgressEvents\x20via\x20`progress`;\x20explicit\x20values\x20override\x20derived.','resolve_liability:\x20internal\x20cost\x20split\x20(merchant/employee,\x20hybrid\x20threshold);\x20outward\x20liability\x20toward\x20the\x20customer\x20is\x20ALWAYS\x20the\x20merchant\x27s;\x20order\x20user\x20must\x20be\x20compensated\x20before\x20the\x20workflow\x20resumes.','suggest_incentive:\x20KPIs\x20+\x20WIP\x20acceptance\x20+\x20liability\x20→\x20Reward\x20suggestion\x20(reward_grant/compensation_offset/correction_notice/none).\x20Suggestion\x20ONLY\x20—\x20merchant\x20confirms\x20and\x20executes\x20the\x20on-chain\x20ops\x20separately.']},{'name':'keeper_operation','summary':'Who-benefits-who-pushes\x20keeper:\x20scans\x20the\x20monitor\x20scope\x20for\x20actionable\x20state\x20(unclaimed\x20payments,\x20advanceable\x20workflow\x20nodes,\x20unsettled\x20escrow\x20pools),\x20routes\x20tasks\x20to\x20beneficiaries;\x20manual\x20dismiss/execute\x20+\x20standing\x20auto-execute\x20rules.','actions':['tasks','dismiss','execute','rules','rule_set','rule_remove','config','config_set','scan','status'],'notes':['The\x20chain\x20has\x20NO\x20time-triggered\x20execution\x20—\x20the\x20keeper\x20scans\x20on\x20the\x20monitor\x20loop\x20cadence\x20and\x20surfaces\x20tasks\x20to\x20their\x20beneficiary.','execute\x20runs\x20the\x20on-chain\x20op\x20for\x20one\x20task\x20(user\x20decision);\x20rule_set\x20authorizes\x20auto-execution\x20per\x20detector\x20kind\x20(bounded\x20by\x20config\x20budget/cooldown).','Detectors\x20v1:\x20payment_unclaimed\x20(funds\x20sitting\x20claimable),\x20progress_actionable\x20(a\x20workflow\x20node\x20the\x20beneficiary\x20can\x20advance),\x20settlement_pending\x20(an\x20order\x20on\x20a\x20terminal\x20node\x20whose\x20Allocation\x20pool\x20still\x20holds\x20balance\x20and\x20has\x20emitted\x20no\x20Payment\x20—\x20the\x20escrow\x20is\x20frozen\x20until\x20SOMEONE\x20fires\x20the\x20matching\x20guard).','MANUAL\x20SETTLEMENT\x20(base\x20cognition):\x20a\x20completed/refunded\x20order\x20does\x20NOT\x20release\x20funds\x20by\x20itself.\x20The\x20pool\x20drains\x20only\x20when\x20an\x20account\x20executes\x20allocation_operation\x20alloc_by_guard\x20with\x20a\x20guard\x20that\x20satisfies\x20the\x20allocator.\x20The\x20chain\x20never\x20auto-settles\x20(the\x20on-chain\x20allocation\x20has\x20no\x20frequency/expiry\x20trigger).\x20So\x20\x27completed\x20≠\x20paid\x20out\x27:\x20if\x20a\x20terminal\x20order\x27s\x20pool\x20still\x20has\x20balance,\x20the\x20settlement_pending\x20task\x20is\x20the\x20signal\x20—\x20the\x20merchant\x20(completion\x20terminal)\x20or\x20the\x20buyer\x20(refund\x20terminal)\x20must\x20trigger\x20the\x20guard,\x20then\x20recipients\x20claim\x20their\x20CoinWrappers\x20via\x20payment\x20receive.','settlement_pending\x20and\x20progress_actionable\x20are\x20reminder-only\x20(never\x20auto-executed):\x20triggering\x20a\x20guard\x20releases\x20funds\x20to\x20counterparties\x20and\x20the\x20guard\x20semantics\x20must\x20be\x20reviewed\x20by\x20the\x20beneficiary\x20before\x20spending\x20gas.\x20Only\x20payment_unclaimed\x20(claim-to-self)\x20may\x20carry\x20an\x20auto_execute\x20rule.']},{'name':'settle_sweep','summary':'One-shot\x20batch\x20settlement\x20of\x20pending\x20terminal\x20escrows:\x20enumerate\x20via\x20the\x20shared\x20settlement\x20judgment,\x20statically\x20screen\x20candidate\x20guards,\x20fire\x20alloc_by_guard\x20per\x20order\x20(dry-run\x20first;\x20per-order\x20failure\x20isolation).','common_params':{'service':'Batch\x20source\x20A:\x20the\x20Service\x20whose\x20order\x20window\x20is\x20swept\x20(XOR\x20with\x20order).','order':'Batch\x20source\x20B:\x20one\x20single\x20Order\x20to\x20settle\x20(XOR\x20with\x20service).','dry_run':'DEFAULT\x20TRUE\x20—\x20plan\x20only,\x20zero\x20transactions;\x20registers\x20the\x20payload\x20in\x20the\x20session\x20dry-run\x20ledger.','confirm':'Explicit\x20real-execution\x20confirmation\x20(bypasses\x20the\x20dry-run-first\x20ledger\x20requirement).','max_orders':'Per-batch\x20cap\x20on\x20settled\x20orders\x20(default\x2010)\x20—\x20overflow\x20is\x20deferred,\x20re-run\x20to\x20continue.','account':'Executing\x20account\x20that\x20signs\x20each\x20alloc_by_guard\x20(must\x20satisfy\x20the\x20settle\x20guards).'},'prerequisites':['onchain_operations\x20(read\x20the\x20plan\x20first\x20via\x20the\x20default\x20dry_run:true\x20face)'],'follow_ups':['onchain_operations\x20(each\x20recipient\x20claims:\x20payment\x20receive:true\x20/\x20refund\x20order\x20receive:\x27recently\x27)','service_panorama\x20(verify\x20pending_allocations\x20drained)'],'notes':['The\x20chain\x20NEVER\x20auto-settles\x20a\x20terminal\x20escrow\x20(no\x20forward\x20hook,\x20R5):\x20every\x20order\x20needs\x20a\x20manual\x20alloc_by_guard\x20+\x20recipient\x20claim\x20hop\x20—\x20this\x20tool\x20automates\x20the\x20alloc\x20hop\x20per\x20order.','Enumeration\x20reuses\x20the\x20SINGLE-THROAT\x20settlement\x20judgment\x20shared\x20by\x20the\x20keeper\x20detector,\x20the\x20PENDING\x20SETTLEMENT\x20receipt\x20and\x20service_panorama\x20pending_allocations\x20—\x20no\x20separate\x20state\x20opinion.','Guard\x20screen\x20is\x20STATIC:\x20only\x20guards\x20whose\x20b_submission\x20slots\x20are\x20deterministic\x20auto-fill\x20tiers\x20(254\x20task-binding\x20/\x206\x20caller-auth\x20Permission)\x20are\x20dispatched;\x20anything\x20else\x20is\x20skipped\x20needs_context\x20—\x20guard\x20semantics\x20are\x20never\x20guessed.','Dry-run-first\x20mandate\x20(R23/R18,\x20pre_publish\x20style):\x20dry_run:false\x20is\x20BLOCKED\x20state_conflict\x20without\x20a\x20passed\x20dry_run:true\x20face\x20of\x20the\x20SAME\x20payload\x20or\x20confirm:true.','Execution\x20rides\x20the\x20SAME\x20onchain\x20pipeline\x20and\x20gates\x20(dual-payout\x20refusal,\x20missing-slot\x20refusal,\x20in-flight\x20resend\x20hold);\x20one\x20failed\x20order\x20lands\x20in\x20failed[]\x20and\x20never\x20blocks\x20the\x20rest;\x20enumeration\x20failure\x20returns\x20an\x20empty\x20plan\x20+\x20reason,\x20never\x20a\x20throw.']},{'name':'verify_guard_dry_run','summary':'Pre-submission\x20read-only\x20guard\x20pre-check:\x20evaluates\x20an\x20INTENDED\x20submission\x20against\x20the\x20guard\x27s\x20production\x20on-chain\x20evaluator\x20(devInspect,\x20no\x20state\x20change)\x20and\x20reports\x20per-slot/per-leg\x20satisfied/missing/unknown\x20with\x20a\x20would_pass/would_fail/inconclusive\x20verdict\x20and\x20completion\x20remedies.','common_params':{'guard':'The\x20Guard\x20to\x20pre-check\x20(address\x20or\x20LocalMark\x20name)\x20—\x20XOR\x20with\x20service.','service':'Alternative\x20target:\x20resolve\x20the\x20Service\x27s\x20on-chain\x20buy_guard\x20(+\x20relies\x20as\x20impack)\x20—\x20the\x20same\x20gate\x20a\x20buy\x20verifies\x20(XOR\x20with\x20guard).','submission':'The\x20entries\x20the\x20caller\x20INTENDS\x20to\x20send\x20[{identifier,\x20value}]\x20—\x20evaluated,\x20never\x20submitted.','task':'Order/task\x20address\x20for\x20protocol\x20slot\x20254\x20(task\x20binding);\x20omitted\x20⇒\x20slot\x20254\x20reports\x20unknown.','account':'Executing\x20account\x20context\x20(the\x20pre-check\x20never\x20signs).'},'prerequisites':['onchain_operations\x20(the\x20guard\x20address\x20—\x20or\x20the\x20service\x20whose\x20buy_gate\x20to\x20pre-check)'],'follow_ups':['onchain_operations\x20(submit\x20the\x20REAL\x20operation\x20once\x20the\x20verdict\x20is\x20would_pass\x20and\x20the\x20snapshot\x20still\x20holds)'],'notes':['ANTI-FAKE-GREEN\x20(PDK-05):\x20every\x20response\x20carries\x20snapshot_note\x20—\x20the\x20verdict\x20is\x20a\x20simulation\x20over\x20the\x20CURRENT\x20on-chain\x20snapshot;\x20the\x20real\x20submission\x20is\x20judged\x20by\x20actual\x20execution.','Any\x20unknown\x20leg\x20(runtime-derived\x20task\x20binding\x20254\x20/\x20caller-auth\x20Permission\x206,\x20or\x20an\x20evaluation\x20error)\x20forces\x20the\x20verdict\x20down\x20to\x20inconclusive\x20—\x20would_pass\x20is\x20ONLY\x20emitted\x20when\x20every\x20required\x20slot\x20was\x20supplied\x20AND\x20the\x20production\x20evaluator\x20returned\x20pass.','Uses\x20the\x20SAME\x20shared\x20leg\x20kernel\x20as\x20the\x20E_VERIFY_FAILED\x20failure\x20diagnosis\x20(one\x20single\x20throat\x20for\x20guard-leg\x20evaluation)\x20—\x20the\x20missing-slot\x20remedies\x20give\x20the\x20exact\x20submissions:[{identifier,\x20value_type}]\x20shape.','Missing\x20slot\x20⇒\x20would_fail\x20+\x20the\x20slot\x27s\x20identifier/value_type\x20completion\x20shape;\x20evaluator\x20fail\x20⇒\x20would_fail\x20+\x20the\x20named\x20false\x20legs;\x20structured\x20absence-reject\x20(fail-structured\x20kernel)\x20⇒\x20would_fail\x20+\x20the\x20query\x20named.','Read-only:\x20query-class\x20reads\x20+\x20one\x20unmetered\x20devInspect;\x20an\x20unreadable\x20guard\x20returns\x20a\x20structured\x20error\x20envelope\x20(never\x20a\x20raw\x20throw).']},{'name':'intent_radar','summary':'User\x20business\x20intent\x20×\x20chain\x20event\x20matching\x20—\x20persist\x20intents,\x20score\x20events\x20against\x20them.','actions':['save','list','remove','match'],'notes':['Read-only\x20w.r.t.\x20chain;\x20industry/keywords\x20resolved\x20once\x20at\x20save;\x20events\x20supplied\x20or\x20auto-pulled.']},{'name':'goal_operation','summary':'GoalEngine\x20(K3\x2024)\x20—\x20record\x20a\x20user\x20goal\x20and\x20drive\x20it\x20through\x20the\x20nine-station\x20lifecycle\x20(RECOGNIZE→…→COMPLETE)\x20with\x20monitor\x20auto-binding\x20and\x20plan-approval\x20confirm-gate\x20downgrade;\x20also\x20hosts\x20the\x20C1-C4\x20planning\x20pipeline\x20+\x20merchant\x20onboarding\x20wizard.','actions':['create','list','get','approve','advance','pause','complete','abandon','delete','analyze_intent','aggregate_risks','trace_substeps','merchant_guide'],'common_params':{'id':'Goal\x20id\x20(goal_…)\x20—\x20required\x20for\x20get/approve/advance/pause/complete/abandon/delete.','intent_text':'create:\x20raw\x20user\x20intent;\x20goal_type\x20auto-classified\x20(override\x20with\x20goal_type).','account':'create:\x20bind\x20a\x20local\x20account\x20(preflight;\x20goal\x20starts\x20at\x20\x27bound\x27).','stage':'advance:\x20forward-only\x20target\x20stage;\x20\x27paused\x27\x20holds\x20from\x20anywhere.','objects':'advance:\x20ACT-station\x20objects\x20[{type,\x20object}]\x20(deduped).','force':'complete:\x20skip\x20on-chain\x20completion\x20verification\x20(audited\x20as\x20outcome.forced).'},'follow_ups':['monitor_events\x20(goal\x20progress\x20surfaces\x20in\x20the\x20todo\x20stream)','onchain_operations\x20(execute\x20plan\x20steps\x20with\x20env.plan_approval)'],'notes':['Near-duplicate\x20create\x20ADOPTS\x20the\x20active\x20same-type\x20same-account\x20goal\x20(intent\x20Jaccard\x20≥\x200.6)\x20instead\x20of\x20forking.','approve\x20registers\x20a\x20plan\x20approval:\x20calls\x20carrying\x20env.plan_approval=<goal\x20id>\x20auto-pass\x20fail-open\x20ConfirmGate\x20levels\x20(standard/none);\x20fail-closed\x20levels\x20(irreversible/publish/amount)\x20always\x20still\x20ask.','Entering\x20\x27monitoring\x27\x20auto-binds\x20monitor\x20focus\x20(reason=\x27goal\x27,\x20goal_id-stamped)\x20for\x20the\x20goal\x27s\x20objects;\x20demand\x20goals\x20also\x20open\x20a\x20radar\x20intent.\x20complete/abandon\x20tear\x20down\x20ONLY\x20this\x20goal\x27s\x20bindings.','complete\x20verifies\x20the\x20goal-type\x20completion\x20conjunction\x20against\x20chain\x20state\x20(read-only);\x20force=true\x20bypasses\x20and\x20is\x20audited.','delete\x20removes\x20a\x20terminal\x20goal\x20entirely\x20(record\x20+\x20TaskProcess\x20dir);\x20force=true\x20extends\x20it\x20to\x20non-terminal\x20goals\x20(monitor\x20teardown\x20first).','C1-C4\x20planning\x20pipeline\x20(GLM5-31\x20§V3/V4):\x20analyze_intent\x20(intent\x20→\x20objects\x20+\x20puzzle\x20snapshots)\x20→\x20aggregate_risks\x20(puzzles\x20OR\x20intent\x20→\x20calibrated\x20risks\x20+\x20RISK_BLOCKED\x20status)\x20→\x20trace_substeps\x20(substep\x20records\x20→\x20DAG\x20coherence\x20+\x20D-10\x20verdict);\x20merchant_guide\x20=\x2010-step\x20onboarding\x20wizard\x20(stateless\x20guide_state,\x20never\x20executes\x20on-chain\x20—\x20materialize\x20via\x20onchain_operations).\x20All\x20four\x20are\x20pure\x20transformations.']},{'name':'monitor_events','summary':'Persistent\x20monitor\x20event\x20store\x20(shared\x20with\x20the\x20client\x20Monitor\x20page)\x20—\x20paginated\x20events\x20with\x20read\x20flags;\x20mark\x20read/unread.','actions':['query','mark_read','mark_all_read'],'notes':['Events\x20captured\x20by\x20the\x20resident\x20MonitorLoop\x20(client\x20sidecar,\x20or\x20stdio\x20MCP\x20server\x20with\x20MONITOR_LOOP=1)\x20across\x209\x20modules,\x20stored\x20APPEND-ONLY\x20in\x20SQLite\x20(survives\x20restarts)\x20with\x20per-event\x20read\x20flags.','query\x20=\x20paginated\x20newest-first\x20with\x20module/event_type/since/until\x20filters\x20+\x20module_counts/unread_by_module/total_unread;\x20relevant_only\x20(default\x20true)\x20restricts\x20to\x20scope-closure/focus/filter\x20hits\x20(de-noised\x20todo\x20stream);\x20with_reason\x20attaches\x20the\x20relevance\x20annotation\x20+\x20delivered\x20flag;\x20mark_read\x20=\x20idempotent\x20per-event\x20(\x27<eventSeq>:<txDigest>\x27);\x20mark_all_read\x20=\x20optionally\x20module-scoped.','Cross-process:\x20read\x20state\x20is\x20SHARED\x20with\x20the\x20client\x20app\x20(same\x20SQLite\x20store)\x20—\x20marking\x20read\x20here\x20clears\x20the\x20client\x20Monitor\x20unread\x20badge\x20and\x20vice\x20versa.']},{'name':'monitor_subscription','summary':'Monitor\x20subscription\x20config\x20—\x20scope-closure\x20rules,\x20focus\x20objects,\x20per-type\x20todo\x20switches,\x20conditional\x20filters;\x20scope\x20preview\x20+\x20filter\x20dry-run.','actions':['get','save','reset','scope_preview','test_filter'],'notes':['Single\x20configuration\x20entry\x20point\x20for\x20monitor\x20v4\x20(client\x20settings\x20panel\x20and\x20agents\x20share\x20it);\x20save/reset\x20merge\x20+\x20clamp\x20loop\x20params,\x20then\x20trigger\x20an\x20immediate\x20scope\x20re-resolve\x20and\x20schedule\x20a\x20backfill\x20when\x20the\x20closure\x20changed.','scope_preview\x20lists\x20the\x20resolved\x20closure\x20grouped\x20by\x20layer\x20(accounts/permissions/managed_objects/services/orders/order_children/focus)\x20with\x20pagination\x20—\x20inspect\x20before\x20tuning\x20rule\x20switches.','test_filter\x20dry-runs\x20a\x20filter\x20draft\x20over\x20the\x20most\x20recent\x20captured\x20events\x20(default\x20200,\x20max\x201000)\x20returning\x20matched/scanned\x20counts\x20+\x20up\x20to\x205\x20samples\x20—\x20preview\x20noise\x20BEFORE\x20saving.','Capture\x20is\x20unaffected\x20by\x20delivery\x20switches\x20EXCEPT\x20NewPaymentEvent\x20(captured\x20only\x20when\x20switched\x20ON).']},{'name':'industry_pack_operation','summary':'Industry\x20knowledge\x20pack\x20lifecycle\x20—\x20scaffold\x20(merged\x20v2\x20template),\x20scan/register,\x20layer\x20get,\x20diff,\x20reset-to-template,\x20plus\x20industry-dir\x20file\x20operations\x20and\x20the\x20industry\x20mode\x20registry\x20(GLM6/92\x20§E).','actions':['scaffold','list','scan','resolve','list_files','read_file','write_file','get','diff','reset','delete_file','create_file','create_dir','copy','move','rename','recommend_industry','list_modes','derive_user_mode','evolve_user_mode','register_user_mode','unregister_user_mode','register_custom_metric','register_custom_constraint','list_metrics_constraints'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20+\x20in-memory\x20registry;\x20never\x20mutates\x20chain\x20state.','Merged\x20v2\x20layout:\x20pack.json\x20(annotated\x20with\x20_schema/_doc\x20comment\x20fields\x20+\x20personae)\x20+\x20playbook.md;\x20legacy\x20split-file\x20layouts\x20still\x20read\x20for\x20backward\x20compatibility.','reset\x20restores\x20a\x20file\x20or\x20entire\x20pack\x20folder\x20to\x20its\x20pristine\x20annotated\x20template\x20—\x20user\x20edits\x20beyond\x20the\x20target\x20are\x20preserved.','Mode\x20registry\x20(GLM6/92\x20§E):\x20recommend_industry\x20(top-3\x20similar\x20industries\x20+\x20verified\x20reference\x20examples;\x20optional\x20semantic_ir\x20=\x20caller-normalised\x20language-neutral\x20evidence\x20—\x20traits,\x20domains,\x20numeric\x20claims\x20and\x20a\x20discovery\x20block\x20{industry,\x20tags,\x20product_ref,\x20english_summary,\x20confidence};\x20IR\x20wins\x20conflicts,\x20a\x20discovery\x20industry\x20adds\x20a\x20bounded\x20prior\x20boost,\x20echoed\x20with\x20a\x20digest\x20for\x20replay),\x20list_modes,\x20derive_user_mode\x20(customize\x20a\x20builtin),\x20evolve_user_mode,\x20register_user_mode\x20(fully\x20custom;\x20R-M1-11\x20enforced\x20on\x20machine_shape),\x20unregister_user_mode,\x20register_custom_metric\x20/\x20register_custom_constraint\x20(extend\x20evaluation\x20registries),\x20list_metrics_constraints.']},{'name':'benchmark_migration_operation','summary':'MD\x20industry-archetype\x20templates\x20(hot-loaded\x20from\x20.wowok/industry/<industry>/templates/,\x20'+BUILTIN_TEMPLATES['length']+'\x20built-ins\x20across\x20'+new Set(BUILTIN_TEMPLATES['map'](a=>a['industry']))['size']+'\x20industries)\x20+\x20pre-deploy\x20risk\x20scan\x20+\x20one-click\x20competitor\x20migration\x20(import\x20→\x20review\x20→\x20apply\x20via\x20the\x20merchant-guide\x20pipeline).','actions':['template_list','template_get','template_generate','plan_execute','plan_status','template_scan','migration_import','migration_review','migration_apply'],'common_params':{'template_id':'Template\x20id\x20\x27<industry>/<variant>\x27\x20(required\x20for\x20template_get\x20/\x20template_generate\x20/\x20template_scan\x20/\x20migration_apply),\x20e.g.\x20\x27retail/scale-marketplace\x27.','industry':'Industry\x20filter\x20for\x20template_list;\x20industry\x20hint\x20for\x20migration_import.','description':'Business/competitor\x20description\x20(required\x20for\x20migration_import;\x20optional\x20intent\x20text\x20for\x20template_generate).','url':'Competitor\x20store/profile\x20URL\x20for\x20migration_import\x20(recorded\x20as\x20provenance\x20only).','fee_overrides':'Template\x20fee-parameter\x20overrides\x20for\x20template_generate.','log':'A\x20prior\x20MigrationLog\x20(required\x20for\x20migration_review).','network':'testnet\x20|\x20mainnet\x20for\x20migration_import\x20/\x20migration_apply\x20(default\x20testnet).','run_id':'Durable-run\x20id\x20for\x20plan_status\x20(the\x20plan_execute\x20response\x27s\x20durable_run.run_id);\x20omit\x20to\x20resolve\x20the\x20passed\x20plan\x27s\x20latest\x20unfinished\x20run,\x20or\x20to\x20list\x20recent\x20runs.','semantic_ir':'Optional\x20caller-normalised\x20evidence\x20(schema_version\x202,\x20version\x201\x20accepted)\x20for\x20migration_import:\x20traits\x20/\x20domains\x20/\x20claims\x20plus\x20a\x20discovery\x20block\x20{industry,\x20tags,\x20product_ref,\x20english_summary,\x20confidence}.\x20Any\x20locale\x20works\x20—\x20the\x20caller\x20LLM\x20translates;\x20tags\x20must\x20come\x20from\x20template_list.discovery_vocabulary,\x20product_ref\x20from\x20its\x20product_refs,\x20and\x20every\x20quote\x20must\x20appear\x20verbatim\x20in\x20`description`\x20(unverifiable\x20evidence\x20is\x20dropped\x20and\x20reported\x20in\x20semantic_ir_issues).'},'notes':['Deterministic\x20knowledge\x20lookups\x20+\x20planning;\x20never\x20mutates\x20chain\x20state\x20on\x20its\x20own\x20—\x20template_generate\x20/\x20migration_apply\x20emit\x20creation\x20plans\x20only.\x20plan_execute\x20is\x20the\x20built-in\x20executor:\x20pass\x20the\x20emitted\x20plan\x20verbatim\x20to\x20materialize\x20every\x20step\x20in\x20one\x20call\x20(chain\x20writes);\x20on\x20a\x20mid-plan\x20failure\x20it\x20reports\x20completed\x20steps\x20+\x20outputs\x20so\x20the\x20retry\x20resumes\x20(completed_steps\x20+\x20previous_outputs)\x20instead\x20of\x20re-running\x20from\x20scratch\x20(duplicate\x20objects).\x20onchain_operations\x20still\x20works\x20for\x20step-by-step\x20runs.','Templates\x20are\x20zod-validated\x20MD\x20files\x20hot-loaded\x20from\x20.wowok/industry/<industry>/templates/\x20(the\x20client\x20industry-drawer\x20tree;\x20root\x20env-overridable\x20via\x20WOWOK_TEMPLATES_DIR);\x20the\x20built-in\x20archetypes\x20are\x20seeded\x20idempotently\x20and\x20user\x20edits\x20are\x20never\x20overwritten.','template_scan\x20runs\x20the\x20pre-deploy\x20risk\x20scan\x20(synthetic\x20draft\x20topology\x20through\x20the\x20same\x20rule\x20surface\x20as\x20on-chain\x20analyze\x20+\x20static\x20R1-R10\x20checks);\x20CRITICAL\x20findings\x20block\x20template_generate\x20/\x20migration_apply.\x20Every\x20scan\x20face\x20also\x20carries\x20a\x20drift\x20field\x20(disk-vs-catalog\x20provenance:\x20state\x20current/modified/missing/untracked,\x20blocked\x20flag,\x20catalog_version)\x20—\x20template_list\x20rows\x20carry\x20the\x20same\x20disk_state\x20per\x20template.','Multilingual\x20discovery\x20(no\x20per-language\x20alias\x20tables):\x20template_list\x20returns\x20discovery_vocabulary\x20{industries,\x20tags,\x20product_refs}\x20—\x20a\x20closed,\x20language-neutral\x20vocabulary\x20derived\x20from\x20the\x20catalog\x20itself;\x20every\x20template\x20row\x20carries\x20its\x20tags.\x20migration_import\x20matches\x20in\x20passes\x20—\x20semantic_ir\x20product_ref\x20(exact,\x20confidence\x201),\x20English\x20text\x20product_ref,\x20semantic_ir\x20tag\x20coverage\x20(>=2\x20hits,\x20or\x201\x20when\x20the\x20IR\x20industry\x20scopes\x20it;\x20capped\x20at\x200.9),\x20English\x20keywords\x20—\x20and\x20the\x20log\x27s\x20template_match\x20reports\x20{source,\x20confidence,\x20matched_tags}.\x20Same\x20template\x20+\x20same\x20confidence\x20regardless\x20of\x20the\x20description\x27s\x20language.','migration_import\x20returns\x20a\x20MigrationLog\x20with\x20mapped\x20/\x20unmapped\x20/\x20manual_review\x20entries,\x20WoWok\x20advantages,\x20customizable\x20business-module\x20ids,\x20a\x20merchant-vs-supplier\x20role\x20assessment,\x20a\x20dry-run\x20risk\x20check\x20and\x20the\x20template_match\x20provenance.','migration_review\x20surfaces\x20counts\x20+\x20risk\x20status\x20+\x20the\x20compile-kernel\x20build\x20verdict\x20(buildable\x20/\x20build_blockers\x20on\x20probe\x20inputs,\x20S14-E2)\x20for\x20user\x20confirmation\x20before\x20migration_apply\x20—\x20a\x20template\x20the\x20compiler\x20refuses\x20never\x20reads\x20\x27Review\x20clean\x27.','mainnet\x20requires\x20explicit\x20user\x20confirmation;\x20the\x20default\x20network\x20is\x20testnet.']},{'name':'service_clone_operation','summary':'Clone\x20an\x20on-chain\x20Service\x20into\x20a\x20new\x20object:\x20read\x20the\x20source\x27s\x20full\x20configuration\x20(service\x20fields,\x20machine\x20graph,\x20guards,\x20permission,\x20allocators)\x20into\x20an\x20editable\x20plan,\x20then\x20rebuild\x20it\x20with\x20optional\x20overrides\x20(token\x20type,\x20network,\x20fees)\x20through\x20the\x20pre-publish\x20gate.','actions':['clone_plan','clone_apply'],'common_params':{'source_service':'Source\x20Service\x20name\x20or\x20address\x20(required\x20for\x20clone_plan).','plan':'A\x20prior\x20ClonePlan,\x20possibly\x20user-edited\x20(required\x20for\x20clone_apply).','overrides':'Optional\x20overrides:\x20token_type,\x20network,\x20name,\x20description,\x20location,\x20sales,\x20compensation_fund,\x20order_allocators,\x20guard_mode,\x20include_fund_step.'},'prerequisites':['query_toolkit\x20(locate\x20the\x20source\x20service)'],'follow_ups':['onchain_operations\x20(execute\x20the\x20emitted\x20payloads)'],'notes':['Deterministic\x20planning\x20only;\x20never\x20mutates\x20chain\x20state\x20—\x20clone_apply\x20emits\x20ordered\x20onchain_operations\x20payloads\x20for\x20the\x20caller\x20to\x20execute.','Guard\x20strategy:\x20guards\x20whose\x20table\x20references\x20the\x20source\x20service\x20address\x20are\x20rebuilt\x20(the\x20address\x20is\x20immutable\x20once\x20embedded);\x20others\x20are\x20reused\x20by\x20address.\x20guard_mode=\x27rebuild_all\x27\x20forces\x20a\x20full\x20rebuild.','Cross-network\x20clones\x20force\x20rebuild_all\x20guards,\x20create\x20a\x20fresh\x20Permission,\x20and\x20drop\x20arbitration/reward/repository/um\x20references\x20(addresses\x20are\x20network-bound).','clone_apply\x20runs\x20the\x20same\x20pre-publish\x20gate\x20as\x20onchain_operations\x20(machine\x20topology\x20audit,\x20allocator\x20guard\x20lint,\x20immutability\x20warnings)\x20before\x20emitting\x20payloads.']},{'name':'strategy_review_operation','summary':'Posture-weighted\x20operating\x20scorecard\x20for\x20one\x20(account,\x20industry):\x20collect\x20evidence\x20into\x20append-only\x20local\x20snapshots,\x20assemble\x20periodic\x20reviews\x20with\x20deterministic\x20pricing/posture\x20advice\x20and\x20current-layer-only\x20persona\x20proposals\x20(never\x20auto-applied).','actions':['collect','review','list_snapshots'],'notes':['Chain\x20reads\x20+\x20local\x20SQLite\x20KV\x20snapshots\x20only;\x20never\x20mutates\x20chain\x20state\x20and\x20never\x20writes\x20the\x20persona.','collect\x20gathers\x2013\x20catalog\x20metrics\x20from\x206\x20evidence\x20sources\x20(journey\x20funnel/order\x20flow/market\x20metrics/discovery\x20competitor\x20count/arbitration\x20trust/account\x20attention);\x20source\x20failures\x20degrade\x20metrics\x20to\x20unavailable/error,\x20never\x20zero-filled;\x20snapshot\x20append\x20failure\x20is\x20fail-soft\x20(stored:false).','review\x20does\x20NOT\x20persist:\x20fresh\x20collection\x20+\x20delta\x20against\x20latest\x20stored\x20snapshot;\x200–100\x20score\x20renormalized\x20over\x20available\x20anchored\x20metrics\x20under\x20volume/balanced/margin\x20weights;\x20cadence\x20from\x20the\x20industry\x20catalog\x20(weekly/two-week/monthly);\x20≤2\x20proposals,\x20each\x20target_layer=\x27current\x27\x20with\x20apply_via\x20persona_operation\x20apply\x20—\x20the\x20user\x20must\x20apply\x20explicitly.','Posture\x20resolution:\x20explicit\x20posture\x20arg\x20→\x20merchant\x20posture\x20in\x20the\x20effective\x20persona\x20→\x20balanced.']},{'name':'workspace_operation','summary':'Local\x20workspace\x20directory\x20(`.wowok/workspace`)\x20—\x20generated\x20review\x20files\x20(machine/guard/wts/wip\x20JSON)\x20and\x20user\x20documents:\x20list/read/search/glob/edit/write\x20+\x20file\x20operations.','actions':['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename','search','glob','edit'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20operations\x20confined\x20to\x20the\x20workspace\x20root;\x20never\x20mutates\x20chain\x20state.','read\x20is\x20the\x20supported\x20way\x20to\x20load\x20a\x20generated\x20JSON\x20as\x20AI\x20context\x20before\x20editing/submitting;\x20optional\x20offset/limit\x20line\x20slicing\x20(1-based,\x20max\x202000\x20lines)\x20and\x20encoding=\x27base64\x27\x20for\x20raw\x20bytes\x20(≤10MB).','search:\x20regex\x20content\x20search\x20(pattern;\x20optional\x20path\x20scope,\x20glob\x20basename\x20filter,\x20ignore_case,\x20max_results\x20≤200,\x20context_lines\x20≤5);\x20skips\x20binary-looking\x20and\x20>5MB\x20files.','glob:\x20wildcard\x20listing\x20on\x20workspace-relative\x20paths\x20—\x20\x27**\x27\x20spans\x20directory\x20segments,\x20\x27*\x27\x20stays\x20within\x20one\x20segment,\x20\x27?\x27\x20=\x20one\x20char.','edit:\x20exact\x20string\x20replacement\x20(path\x20+\x20old_string\x20+\x20new_string);\x20errors\x20when\x20old_string\x20is\x20non-unique\x20unless\x20replace_all=true;\x20refuses\x20files\x20>2MB.']},{'name':'workflow_operation','summary':'Local-account\x20workflow\x20view\x20—\x20list\x20active\x20Progress\x20that\x20at\x20least\x20one\x20local\x20account\x20can\x20advance\x20(permission\x20+\x20guard\x20+\x20executable\x20accounts),\x20advance/hold/unhold\x20a\x20forward,\x20and\x20view\x20a\x20progress\x27s\x20on-chain\x20operation\x20history.','actions':['list','operate','history'],'notes':['list:\x20permission-aware\x20—\x20a\x20forward\x20is\x20executable\x20when\x20(a)\x20namedOperator=\x27\x27\x20and\x20account\x20is\x20order\x20holder,\x20(b)\x20namedOperator=name\x20and\x20account\x20is\x20in\x20progress.namedOperator[name],\x20or\x20(c)\x20permissionIndex\x20set\x20and\x20account\x20is\x20in\x20permission.admin/table.','operate:\x20delegates\x20to\x20the\x20on-chain\x20progress\x20operation\x20(guard-aware);\x20op\x20∈\x20next/hold/unhold/adminUnhold.','history:\x20incrementally\x20syncs\x20a\x20progress\x27s\x20ON-CHAIN\x20Progress.history\x20(append-only\x20u64\x20index)\x20into\x20the\x20local\x20SQLite\x20mirror\x20via\x20a\x20per-progress\x20cursor\x20(only\x20new\x20records\x20pulled),\x20returns\x20the\x20migration\x20timeline\x20newest-first\x20with\x20each\x20migration\x27s\x20session\x20snapshot\x20(forwards\x20/\x20operator\x20/\x20weight\x20/\x20time);\x20runs\x2090-day\x20retention\x20cleanup\x20by\x20default.']},{'name':'permission_operation','summary':'Local-account\x20Permission\x20overview\x20—\x20list\x20Permissions\x20related\x20to\x20local\x20accounts\x20(via\x20entity_permission\x20index)\x20with\x20owner/admin/entity\x20breakdown\x20+\x20related\x20objects\x20via\x20object-linker\x20indexes.','actions':['list'],'notes':['Read-only;\x20reverse-looks-up\x20local\x20accounts\x20via\x20entity_permission\x20@0xaad,\x20then\x20merges/dedups\x20permissions.','Related\x20objects\x20resolved\x20via\x20object-linker\x20reverse\x20indexes\x20(0xaae\x20core\x20/\x200xaaf\x20tx)\x20binding\x20edges,\x20grouped\x20by\x20type\x20via\x20first-byte\x20address\x20tag.','Latest\x20update\x20time\x20derived\x20from\x20the\x20Permission\x27s\x20previousTransaction.']},{'name':'ask_user','summary':'Structured\x20user\x20elicitation\x20—\x20ask\x20the\x20user\x20to\x20choose\x20between\x202-8\x20concrete\x20options\x20and\x20receive\x20a\x20validated\x20structured\x20answer\x20(MCP\x202.0\x20elicitation\x20/\x20desktop\x20option\x20card).','common_params':{'question':'The\x20single\x20decision\x20needed\x20from\x20the\x20user\x20(1-1000\x20chars).','options':'2-8\x20self-contained\x20{id,label,description?}\x20choices.','recommended_id':'id\x20of\x20the\x20professionally\x20recommended\x20option\x20(optional).','multi_select':'true\x20when\x20options\x20are\x20combinable\x20(boolean\x20toggle\x20per\x20option).','allow_freeform':'true\x20to\x20permit\x20an\x20additional\x20free-text\x20answer.','context':'Optional\x20short\x20explanation\x20of\x20why\x20the\x20decision\x20is\x20needed.'},'notes':['Use\x20when\x20a\x20business\x20decision\x20belongs\x20to\x20the\x20user\x20and\x20continuing\x20requires\x20it;\x20never\x20guess\x20or\x20silently\x20default\x20an\x20unanswered\x20choice.','Desktop\x20clients\x20render\x20an\x20option\x20card;\x20MCP\x202.0\x20transports\x20fulfil\x20via\x20elicitation/create;\x20unsupported\x20clients\x20should\x20fall\x20back\x20to\x20a\x20numbered\x20prose\x20question.','action\x20decline/cancel\x20means\x20STOP\x20and\x20ask\x20how\x20to\x20proceed\x20in\x20plain\x20text\x20—\x20do\x20not\x20execute\x20a\x20default\x20path.','Not\x20a\x20safety\x20confirmation\x20—\x20irreversible/publish/amount\x20gates\x20remain\x20handled\x20by\x20confirm_gate.']}];export function getToolReference(a){return TOOLS_REFERENCE['find'](b=>b['name']===a);}export function searchToolReference(a){const b=a['toLowerCase']();return TOOLS_REFERENCE['filter'](c=>{if(c['name']['toLowerCase']()['includes'](b))return!![];if(c['summary']['toLowerCase']()['includes'](b))return!![];if(c['actions']?.['some'](d=>d['toLowerCase']()['includes'](b)))return!![];return![];});}export function getToolSequence(a){const b=getToolReference(a);if(!b)return undefined;return{'prerequisites':b['prerequisites']??[],'tool':b['name'],'follow_ups':b['follow_ups']??[]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{query_account_list,LocalMark,GetLocalNamesByAddresses}from'@wowok/wowok';import{NO_AUTO_SETTLEMENT_FACT}from'./settlement-semantics.js';import{REPOSITORY_PERMISSIONS,REWARD_PERMISSIONS,MACHINE_PERMISSIONS,PROGRESS_PERMISSIONS,TREASURY_PERMISSIONS,SERVICE_PERMISSIONS,ARBITRATION_PERMISSIONS,DEMAND_PERMISSIONS,CONTACT_PERMISSIONS}from'./permission-ledger.js';import{formatShortAddress}from'../persona/address-format.js';import{recommendedCallForForwardBinding,recommendedCallForOrderHolder}from'../participation/radar-core.js';import{batchQueryObjectsByIds,fetchMachineNodes,fetchOrderContext,fetchPermissionContext}from'../graph/onchain/sdk-batch.js';import{deriveCommercialRole}from'../role/derivation.js';import{valuePerspectiveOf}from'../role/model.js';const BUILTIN_PERMISSION_MAP=new Map();for(const entry of[...REPOSITORY_PERMISSIONS,...REWARD_PERMISSIONS,...MACHINE_PERMISSIONS,...PROGRESS_PERMISSIONS,...TREASURY_PERMISSIONS,...SERVICE_PERMISSIONS,...ARBITRATION_PERMISSIONS,...DEMAND_PERMISSIONS,...CONTACT_PERMISSIONS]){BUILTIN_PERMISSION_MAP['set'](entry['index'],entry['name']);}export function resolvePermissionRole(a,b){if(a===undefined||a===null)return'unknown\x20role';if(b){const d=/([A-Za-z][A-Za-z0-9_]*)\s*=\s*(\d+)/g;let e;while((e=d['exec'](b))!==null){if(Number(e[0x2])===a)return e[0x1]+'\x20(permission\x20'+a+')';}}const c=BUILTIN_PERMISSION_MAP['get'](a);if(c)return c+'\x20(permission\x20'+a+')';return'permission\x20'+a;}const COMPLETE_RE=/(^|_)(completed?|done|finished|received|delivered|accepted|confirmed|finalized|success|approved)(_|$)/i,REFUND_RE=/(^|_)(cancel(led)?|refund(ed)?|return(ed|_approved)?)(_|$)/i,EXCEPTION_RE=/(^|_)(interrupt(ed)?|exception|dispute(d)?|fail(ed)?|abort(ed)?|reject(ed)?)(_|$)/i,PRE_DELIVERY_RE=/^(|entry|paid|kickoff|confirmed|requirements_pending|in_progress|active|processing|subscribed)$/i,ACTIVE_STAGE_RE=/(charg|billing|renew|deliver|fulfill|ship|sent|work|produ)/i,REFUND_FLAVOR_RE=/(^|_)(cancel(led)?|refund(ed)?|return(ed|_approved)?|expired)(_|$)/i;export function classifyNode(a){if(COMPLETE_RE['test'](a))return'complete';if(REFUND_RE['test'](a))return'refund';if(EXCEPTION_RE['test'](a))return'exception';return'advance';}function businessMeaning(a,b){switch(b){case'complete':return'completion\x20stage\x20\x22'+a+'\x22';case'refund':return'refund/cancel\x20stage\x20\x22'+a+'\x22';case'exception':return'exception/dispute\x20stage\x20\x22'+a+'\x22';default:return'advance\x20to\x20\x22'+a+'\x22';}}function shortAddr(a){if(!a)return undefined;return formatShortAddress(a);}function callerIsOrderHolder(a,b){if(!a||!b?.['length'])return![];const d=a['toLowerCase']();return b['some'](e=>e?.['toLowerCase']()===d);}function resolveOperator(a,b,c,d,e){const g=e&&a['namedOperator']===''&&!a['permissionIndex']?recommendedCallForOrderHolder({'hasGuard':!!a['guard'],'currentNode':e['currentNode'],'targetNode':e['targetNode']}):recommendedCallForForwardBinding({'permissionIndex':a['permissionIndex'],'namedOperator':a['namedOperator'],'hasGuard':!!a['guard']});if(a['namedOperator']===''){const h=b?.[0x0],i=a['permissionIndex']!==undefined&&a['permissionIndex']!==null;return{'kind':'order_holder','role_name':i?'order\x20holder\x20(customer)\x20OR\x20'+resolvePermissionRole(a['permissionIndex'],c):'order\x20holder\x20(customer)','permission_index':i?a['permissionIndex']:undefined,'account_name':d?d(h):shortAddr(h),'recommended_call':g};}if(typeof a['namedOperator']==='string'&&a['namedOperator']['length']>0x0)return{'kind':'named_operator','named_operator':a['namedOperator'],'role_name':'named\x20operator\x20\x22'+a['namedOperator']+'\x22','recommended_call':g};if(a['permissionIndex']!==undefined&&a['permissionIndex']!==null)return{'kind':'permission_index','permission_index':a['permissionIndex'],'role_name':resolvePermissionRole(a['permissionIndex'],c),'recommended_call':g};return{'kind':'order_holder','role_name':'unknown\x20operator'};}function gainsRisksFor(a,b,c,d){if(!c)return{'gains':[],'risks':[]};if(d)return perspectiveGainsRisks(a,valuePerspectiveOf(d));if(b)switch(a){case'complete':return{'gains':['Flow\x20advances','Settlement\x20unlocked\x20—\x20provider\x20funds\x20become\x20releasable\x20(an\x20explicit\x20allocation\x20step\x20is\x20still\x20required;\x20nothing\x20releases\x20automatically)'],'risks':['Provider\x20can\x20now\x20claim\x20the\x20escrow','Refund\x20leverage\x20lost\x20once\x20completion\x20is\x20recorded\x20—\x20confirm\x20only\x20if\x20service\x20verified']};case'refund':return{'gains':['Refund\x20path\x20unlocked\x20—\x20escrow\x20becomes\x20releasable\x20back\x20to\x20you\x20via\x20an\x20explicit\x20allocation\x20step\x20(trigger\x20it\x20yourself;\x20funds\x20are\x20not\x20returned\x20automatically)'],'risks':['If\x20service\x20was\x20already\x20rendered,\x20cancellation\x20may\x20be\x20disputed']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20reputation\x20impact']};default:return{'gains':['Flow\x20advances'],'risks':[]};}switch(a){case'complete':return{'gains':['Settlement\x20unlocked\x20—\x20funds\x20releasable\x20to\x20provider\x20via\x20an\x20explicit\x20allocation\x20step\x20(NOT\x20automatic\x20on\x20node\x20migration)'],'risks':[]};case'refund':return{'gains':['Clean\x20closure'],'risks':['Lost\x20revenue\x20for\x20this\x20order']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20compensation\x20fund']};default:return{'gains':['Flow\x20advances'],'risks':[]};}}function perspectiveGainsRisks(a,b){if(b==='consumer')switch(a){case'complete':return{'gains':['Flow\x20advances','Settlement\x20unlocked\x20—\x20provider\x20funds\x20become\x20releasable\x20(an\x20explicit\x20allocation\x20step\x20is\x20still\x20required;\x20nothing\x20releases\x20automatically)'],'risks':['Provider\x20can\x20now\x20claim\x20the\x20escrow','Refund\x20leverage\x20lost\x20once\x20completion\x20is\x20recorded\x20—\x20confirm\x20only\x20if\x20service\x20verified']};case'refund':return{'gains':['Refund\x20path\x20unlocked\x20—\x20escrow\x20becomes\x20releasable\x20back\x20to\x20you\x20via\x20an\x20explicit\x20allocation\x20step\x20(trigger\x20it\x20yourself;\x20funds\x20are\x20not\x20returned\x20automatically)'],'risks':['If\x20service\x20was\x20already\x20rendered,\x20cancellation\x20may\x20be\x20disputed']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20reputation\x20impact']};default:return{'gains':['Flow\x20advances'],'risks':[]};}if(b==='producer')switch(a){case'complete':return{'gains':['Settlement\x20unlocked\x20—\x20funds\x20releasable\x20to\x20provider\x20via\x20an\x20explicit\x20allocation\x20step\x20(NOT\x20automatic\x20on\x20node\x20migration)'],'risks':[]};case'refund':return{'gains':['Clean\x20closure'],'risks':['Lost\x20revenue\x20for\x20this\x20order']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20compensation\x20fund']};default:return{'gains':['Flow\x20advances'],'risks':[]};}switch(a){case'complete':return{'gains':['Flow\x20advances\x20—\x20the\x20workflow\x20moves\x20to\x20its\x20delivery/settlement\x20stage'],'risks':[]};case'refund':return{'gains':['Clean\x20closure\x20of\x20the\x20workflow'],'risks':['Cancels\x20the\x20delivery\x20track\x20—\x20confirm\x20this\x20matches\x20what\x20the\x20parties\x20agreed']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration']};default:return{'gains':['Flow\x20advances'],'risks':[]};}}function consistencyFor(a,b,c,d,e,f,g){let h;if(!e)h=a==='exception'?0x2d:0x32;else{if(g){const i=valuePerspectiveOf(g);h=i==='consumer'?a==='refund'?0x46:a==='complete'?0x37:a==='exception'?0x23:0x32:i==='producer'?a==='complete'?0x4b:a==='refund'?0x1e:a==='exception'?0x23:0x32:a==='complete'?0x37:a==='refund'?0x32:a==='exception'?0x28:0x32;}else b?h=a==='refund'?0x46:a==='complete'?0x37:a==='exception'?0x23:0x32:h=a==='complete'?0x4b:a==='refund'?0x1e:a==='exception'?0x23:0x32;}if(e&&c)h+=0x14;if(d)h-=0xa;return e&&f&&(a==='refund'||a==='exception')&&(h=Math['min'](h,0x28)),Math['max'](0x0,Math['min'](0x64,h));}const RECOMMEND_MIN_CONSISTENCY=0x3c;function whoCanAct(a,b){if(a['kind']==='named_operator')return'named\x20operator\x20\x22'+a['named_operator']+'\x22';if(a['kind']==='permission_index'&&a['permission_index']!==undefined){const c=a['role_name']??'permission\x20index\x20'+a['permission_index'];let d;if(b['permissionContext']){const e=[...b['orderHolderAddresses']??[],...b['callerAddress']?[b['callerAddress']]:[]],f=e['find'](g=>{if(!g)return![];const h=g['toLowerCase']();return b['permissionContext']['admin']['has'](h)||(b['permissionContext']['table']['get'](h)?.['has'](a['permission_index'])??![]);});if(f)d=b['nameResolver']?b['nameResolver'](f):shortAddr(f);}return d?c+'\x20(held\x20by\x20'+d+')':c;}return a['account_name']?'the\x20order\x20holder\x20('+a['account_name']+')':a['role_name']??'the\x20order\x20holder';}export function buildWorkflowGuidance(a){const b=[],c=PRE_DELIVERY_RE['test'](a['current'])||ACTIVE_STAGE_RE['test'](a['current'])||a['just_advanced']===!![];for(const p of a['nodes']){for(const q of p['pairs']){if(q['prev_node']!==a['current'])continue;for(const r of q['forwards']){if(!r['name'])continue;const s=resolveOperator(r,a['orderHolderAddresses'],a['permissionDescription'],a['nameResolver'],{'currentNode':a['current'],'targetNode':p['name']}),t=callerIsOrderHolder(a['callerAddress']??a['caller'],a['orderHolderAddresses']);let u=![];a['callerAddress']&&(u=accountCanExecuteForward(r,a['callerAddress'],a['progressNamedOperator']??[],a['orderContext'],a['permissionContext']));const v=classifyNode(p['name']),w=!!a['caller'],{gains:x,risks:y}=gainsRisksFor(v,t,w,a['callerRole']),z=consistencyFor(v,t,u,!!r['guard'],w,c,a['callerRole']);b['push']({'next_node':p['name'],'forward':r['name'],'weight':r['weight'],'operator':s,'guard':r['guard'],'business_meaning':businessMeaning(p['name'],v),'gains':x,'risks':y,'consistency':z,'recommended':![],'executable_by_caller':u});}}}if(b['length']===0x0){const A=a['escrow'],B=!A?'':A['fund_direction']==='buyer'?'the\x20rails\x20are\x20ORDER-ANCHORED\x20(GuardIdentifier\x20recipients)\x20—\x20the\x20payout\x20lands\x20on\x20the\x20Order\x20object\x20for\x20the\x20order\x20owner\x20(the\x20buyer)\x20to\x20claim,\x20regardless\x20of\x20the\x20node\x27s\x20name\x20(\x22'+a['current']+'\x22).\x20':A['fund_direction']==='provider'?'the\x20rails\x20pay\x20ENTITY\x20recipients\x20—\x20the\x20payout\x20goes\x20to\x20the\x20named\x20provider-side\x20parties,\x20regardless\x20of\x20the\x20node\x27s\x20name\x20(\x22'+a['current']+'\x22).\x20':A['fund_direction']==='mixed'?'the\x20rails\x20mix\x20order-anchored\x20and\x20Entity\x20recipients\x20—\x20which\x20party\x20is\x20paid\x20depends\x20on\x20WHICH\x20rail\x20fires;\x20inspect\x20each\x20allocator\x27s\x20guard\x20before\x20triggering.\x20':A['fund_direction']==='signer'?'a\x20rail\x20pays\x20whoever\x20TRIGGERS\x20it\x20(Signer\x20recipient)\x20—\x20the\x20operator\x27s\x20own\x20identity\x20decides\x20the\x20payee;\x20never\x20trigger\x20on\x20behalf\x20of\x20another\x20party.\x20':'rail\x20recipients\x20were\x20unreadable\x20from\x20the\x20machine\x20graph\x20—\x20READ\x20them\x20before\x20triggering,\x20the\x20tooling\x20can:\x20query_toolkit\x20query_type=\x27service_panorama\x27\x20returns\x20result.service.order_allocators.allocators[].sharing\x20(who/mode/value\x20per\x20rail),\x20and\x20object_panorama\x20on\x20the\x20pool\x27s\x20Allocation\x20(\x27'+A['allocation']+'\x27)\x20returns\x20the\x20balance,\x20payment_info\x20anchor\x20and\x20the\x20same\x20resolved\x20recipient\x20rows.\x20The\x20name\x20flavor\x20('+(A['refund_terminal']?'refund/cancel-flavored':'completion-flavored')+')\x20is\x20a\x20GUESS\x20about\x20direction,\x20never\x20a\x20fact\x20—\x20do\x20not\x20act\x20on\x20it\x20alone.\x20',C=A?'Node\x20\x22'+a['current']+'\x22\x20is\x20terminal\x20(no\x20outgoing\x20forwards)\x20—\x20but\x20the\x20order\x27s\x20Allocation\x20'+A['allocation']+'\x20still\x20holds\x20'+A['balance']+'\x20(smallest\x20unit)\x20with\x20no\x20payments\x20recorded.\x20'+NO_AUTO_SETTLEMENT_FACT+'\x20'+B+('Execute\x20via\x20onchain_operations\x20{operation_type:\x27allocation\x27,\x20data:{object:\x27'+A['allocation']+'\x27,\x20alloc_by_guard:\x27<guard>\x27}}')+(A['guards']['length']?'\x20—\x20candidate\x20guards\x20on\x20this\x20pool:\x20'+A['guards']['join'](',\x20')+'.':'\x20—\x20inspect\x20the\x20pool\x27s\x20allocators\x20first.')+'\x20Trigger\x20ONCE\x20and\x20verify\x20the\x20pool\x20drained\x20(a\x20fully-drained\x20pool\x20aborts\x20on\x20re-trigger;\x20a\x20max-capped\x20pool\x20re-splits\x20the\x20remainder).\x20Recipients\x20then\x20claim\x20their\x20CoinWrappers\x20(receive).':'Node\x20\x22'+a['current']+'\x22\x20has\x20no\x20outgoing\x20forwards\x20—\x20it\x20is\x20a\x20terminal\x20node\x20(or\x20the\x20workflow\x20is\x20stuck).\x20No\x20further\x20progress\x20operation\x20is\x20available\x20here.';return{'current_node':a['current'],'caller':a['caller'],'options':[],'note':C};}const d=new Map();for(const D of b){const E=d['get'](D['forward']);if(E)E['add'](D['next_node']);else d['set'](D['forward'],new Set([D['next_node']]));}const e=[];for(const [F,G]of d){if(G['size']<0x2)continue;const H=[...G]['sort'](),I=H['some'](L=>classifyNode(L)==='refund'),J=H['some'](L=>classifyNode(L)!=='refund'),K=I&&J;e['push'](K?'CRITICAL\x20'+F:F);for(let L=0x0;L<b['length'];L++){if(b[L]['forward']!==F)continue;b[L]={...b[L],'ambiguous':{'destinations':H,'fund_conflict':K}};}}e['sort'](),b['sort']((M,N)=>N['consistency']-M['consistency']);const g=e['length']>0x0;let h,j;if(!g){const M=b['findIndex'](N=>!N['ambiguous']);if(M>=0x0){const N=b[M];N['executable_by_caller']===!![]&&N['consistency']>=RECOMMEND_MIN_CONSISTENCY?(h={...N,'recommended':!![]},b[M]=h):(j={...N,'waiting_on':N['executable_by_caller']===![]?'WAITING:\x20'+whoCanAct(N['operator'],a)+'\x20can\x20act\x20—\x20the\x20current\x20signing\x20account\x20cannot':'WAITING:\x20interest\x20alignment\x20'+N['consistency']+'/100\x20is\x20below\x20the\x20'+RECOMMEND_MIN_CONSISTENCY+'\x20recommendation\x20floor'},b[M]=j);}}const k=[];for(const O of b){h&&O!==h&&O['consistency']>0x0&&O['forward']!==h['forward']&&k['push']('Choosing\x20\x22'+O['forward']+'\x20→\x20'+O['next_node']+'\x22\x20forfeits\x20the\x20faster/more\x20aligned\x20path\x20\x22'+h['forward']+'\x20→\x20'+h['next_node']+'\x22');}c&&b['some'](P=>classifyNode(P['next_node'])==='refund')&&k['push']('Refund/cancel\x20options\x20are\x20listed\x20but\x20not\x20auto-recommended\x20here\x20(pre-delivery\x20stage,\x20active\x20billing/delivery\x20stage,\x20or\x20a\x20just-completed\x20advance\x20signals\x20intent\x20to\x20continue)\x20—\x20choose\x20one\x20explicitly\x20when\x20cancellation\x20is\x20intended');for(const P of b){if(!P['ambiguous'])continue;k['push']('\x22'+P['forward']+'\x22\x20is\x20AMBIGUOUS\x20from\x20\x22'+a['current']+'\x22\x20—\x20it\x20legally\x20reaches\x20'+P['ambiguous']['destinations']['join']('\x20/\x20')+'\x20'+(P['ambiguous']['fund_conflict']?'(fund\x20direction\x20DIFFERS\x20between\x20them);\x20the\x20destination\x20you\x20pass\x20in\x20next_node_name\x20decides,\x20so\x20state\x20the\x20intended\x20node\x20explicitly\x20instead\x20of\x20trusting\x20the\x20forward\x20name':';\x20state\x20the\x20intended\x20node\x20explicitly'));}const l=[];if(h){const Q=h['operator'];if(Q['kind']==='order_holder')Q['account_name']&&Q['account_name']!==a['caller']&&l['push']('The\x20recommended\x20action\x20is\x20executed\x20by\x20another\x20account\x20('+Q['account_name']+');\x20switch\x20the\x20signing\x20account\x20(env.account)\x20before\x20operating.');else{if(h['executable_by_caller']===![]){const R=Q['kind']==='named_operator'?'named\x20operator\x20\x22'+Q['named_operator']+'\x22':Q['role_name']??'permission\x20index\x20'+(Q['permission_index']??'(unknown)');let S;if(Q['kind']==='permission_index'&&a['permissionContext']&&Q['permission_index']!==undefined){const T=[...a['orderHolderAddresses']??[],...a['callerAddress']?[a['callerAddress']]:[]],U=T['find'](V=>{if(!V)return![];const W=V['toLowerCase']();return a['permissionContext']['admin']['has'](W)||(a['permissionContext']['table']['get'](W)?.['has'](Q['permission_index'])??![]);});if(U)S=a['nameResolver']?a['nameResolver'](U):shortAddr(U);}l['push']('The\x20recommended\x20action\x20requires\x20'+R+(S?'\x20(held\x20by\x20'+S+')':'')+('\x20—\x20the\x20current\x20signing\x20account\x20('+(a['caller']??'unresolved')+')\x20is\x20not\x20entitled;\x20switch\x20env.account\x20to\x20an\x20account\x20holding\x20it\x20before\x20operating.'));}}}else j&&j['executable_by_caller']===![]&&l['push']('The\x20top-ranked\x20edge\x20\x22'+j['forward']+'\x20→\x20'+j['next_node']+'\x22\x20is\x20not\x20auto-recommended\x20('+j['waiting_on']+');\x20'+'switch\x20env.account\x20to\x20an\x20entitled\x20account\x20before\x20operating.');e['length']>0x0&&l['push']('Machine\x20topology\x20defect\x20(P0-6):\x20forward\x20name(s)\x20'+[...new Set(e['map'](V=>V['replace'](/^CRITICAL /,'')))]['join'](',\x20')+'\x20'+'resolve\x20to\x20more\x20than\x20one\x20destination\x20from\x20this\x20node.\x20The\x20contract\x20accepts\x20any\x20of\x20them\x20(next_node\x20is\x20a\x20caller\x20argument;\x20'+'the\x20graph\x20only\x20forbids\x20duplicate\x20prev_node\x20WITHIN\x20one\x20node),\x20so\x20the\x20workflow\x20outcome\x20is\x20decided\x20by\x20the\x20CALLER,\x20not\x20by\x20the\x20published\x20Machine.\x20'+'Nothing\x20is\x20auto-recommended\x20for\x20these\x20forwards\x20—\x20fix\x20the\x20graph\x20by\x20giving\x20each\x20destination\x20its\x20own\x20forward\x20name.');const m=b['filter'](V=>V['guard']);m['length']>=0x2&&m['length']===b['length']&&l['push'](m['length']+'\x20guarded\x20variants\x20mount\x20on\x20node\x20\x22'+a['current']+'\x22\x20and\x20they\x20are\x20typically\x20MUTUALLY\x20EXCLUSIVE\x20'+'(variant\x20rails\x20usually\x20read\x20a\x20policy/mode\x20oracle\x20row\x20—\x20only\x20the\x20row\x27s\x20current\x20value\x20admits\x20one\x20of\x20them).\x20'+'Do\x20NOT\x20discover\x20which\x20one\x20by\x20signing:\x20probe\x20with\x20env.dry_run=true\x20first\x20(free,\x20never\x20committed\x20—\x20'+'EVERY\x20write\x20channel\x20honors\x20env.dry_run:\x20the\x20call\x20simulates\x20and\x20returns\x20a\x20\x22dry_run:*\x22\x20digest,\x20'+'nothing\x20is\x20signed\x20or\x20submitted,\x20so\x20a\x20guard\x20rejection\x20on\x20a\x20dry\x20run\x20does\x20not\x20consume\x20the\x20retry\x20budget\x20'+'and\x20mints\x20nothing)\x20—\x20the\x20rejection\x20diagnosis\x20names\x20the\x20failing\x20guard.');const n=/(enter|fund|renew|pay|deposit|top_?up|refund|claim|withdraw|settle|release)/i;return h&&n['test'](h['forward'])&&l['push']('\x22'+h['forward']+'\x22\x20is\x20a\x20MONEY-state\x20forward,\x20but\x20this\x20guidance\x20reads\x20only\x20topology\x20and\x20roles\x20—\x20NOT\x20the\x20order\x27s\x20live\x20Allocation\x20balance\x20or\x20claimed_by.\x20If\x20the\x20escrow\x20is\x20already\x20drained\x20(allocation.balance\x20==\x200)\x20or\x20arbitration-displaced\x20(order.claimed_by\x20some\x20==\x20true),\x20the\x20advance\x20burns\x20gas\x20and\x20aborts:\x20query\x20the\x20order\x27s\x20allocation\x20balance\x20+\x20claimed_by\x20FIRST,\x20and\x20probe\x20with\x20env.dry_run=true\x20when\x20unsure.'),{'current_node':a['current'],'caller':a['caller'],'options':b,'recommendation':h?{'best':h['forward']+'\x20→\x20'+h['next_node'],'rationale':'Highest\x20consistency\x20('+h['consistency']+'/100)\x20with\x20the\x20caller\x27s\x20interests.\x20Gains:\x20'+(h['gains']?.['join'](';\x20')||'none')+'.\x20Risks:\x20'+(h['risks']?.['join'](';\x20')||'none')+'.\x20Operator:\x20'+(h['operator']['role_name']??h['operator']['kind'])+(h['operator']['account_name']?'\x20('+h['operator']['account_name']+')':'')+'.'+(h['guard']?'\x20Guard\x20to\x20satisfy:\x20'+h['guard']+'.':''),'caveat':k['length']?k['join']('.\x20'):undefined}:{'best':undefined,'rationale':e['length']?'No\x20action\x20recommended:\x20every\x20reachable\x20forward\x20from\x20\x22'+a['current']+'\x22\x20is\x20ambiguous\x20(resolves\x20to\x20multiple\x20destinations).\x20Choose\x20the\x20destination\x20node\x20deliberately\x20—\x20do\x20not\x20let\x20the\x20forward\x20name\x20decide\x20it.':j?'No\x20action\x20recommended:\x20the\x20top-ranked\x20edge\x20\x22'+j['forward']+'\x20→\x20'+j['next_node']+'\x22\x20is\x20'+j['waiting_on']+'.\x20The\x20full\x20ranked\x20list\x20stays\x20visible\x20—\x20pick\x20deliberately,\x20or\x20switch\x20env.account\x20to\x20an\x20entitled\x20account.':undefined,'caveat':k['length']?k['join']('.\x20'):undefined},'note':l['length']?l['join']('\x20'):undefined};}export function buildWorkflowReceipt(a){const b={'hold':'held','unhold':'released\x20(unhold)','adminUnhold':'force-released\x20(adminUnhold)'},c=a['op']?b[a['op']]:undefined,d=c!==undefined?![]:a['current']===a['targetNode'],e={'account':a['callerName'],'action':c!==undefined?a['callerName']+'\x20'+c+'\x20\x22'+a['forward']+'\x22\x20—\x20node\x20stays\x20at\x20\x22'+a['current']+'\x22':a['callerName']+'\x20executed\x20'+a['forward']+'\x20(→\x20'+a['targetNode']+')','forward':a['forward'],'target_node':a['targetNode'],'op':a['op'],'migrated':d,'current_node':a['current']};if(a['simulated'])e['simulated']=!![];if(a['txDigest'])e['digest']=a['txDigest'];if(a['signer'])e['signer']=a['signer'];if(c!==undefined)e['note']='Hold-family\x20op\x20does\x20not\x20migrate\x20the\x20node\x20—\x20it\x20only\x20pins/unpins\x20a\x20forward;\x20the\x20current\x20node\x20and\x20its\x20threshold\x20state\x20are\x20unchanged.';else{if(!d){const h=a['nodes']['filter'](l=>l['name']===a['targetNode'])['flatMap'](l=>l['pairs'])['find'](l=>l['prev_node']===a['current']),i=a['session']?.['slice'](-0x1)[0x0],j=i?.['threshold']??h?.['threshold']??0x0,k=i?.['weights']??0x0;if(j>0x0){e['threshold']=j,e['accumulated_weight']=k,e['remaining']=Math['max'](0x0,j-k);const l=new Set((i?.['forwards']??[])['filter'](n=>n?.['accomplished']!==![])['map'](n=>n?.['forward'])['filter'](n=>!!n)),m=[];for(const n of h?.['forwards']??[]){if(!n['name']||l['has'](n['name']))continue;m['push']({'forward':n['name'],'operator':resolveOperator(n,a['orderHolderAddresses'],a['permissionDescription'],a['nameResolver'],{'currentNode':a['current'],'targetNode':a['targetNode']})});}if(m['length'])e['waiting_on']=m;e['note']='Node\x20did\x20not\x20migrate:\x20threshold\x20'+j+',\x20accumulated\x20weight\x20'+k+',\x20remaining\x20'+Math['max'](0x0,j-k)+'.\x20'+(m['length']?'Waiting\x20for:\x20'+m['map'](o=>o['forward']+'\x20('+(o['operator']['role_name']??o['operator']['kind'])+')')['join'](';\x20'):'All\x20forwards\x20on\x20this\x20pair\x20are\x20accomplished\x20—\x20the\x20node\x20should\x20migrate\x20on\x20the\x20next\x20operation.');}else e['note']='Node\x20did\x20not\x20migrate\x20(threshold\x200)\x20—\x20no\x20further\x20weight\x20cooperation\x20required;\x20verify\x20the\x20operation\x20outcome.';}}const g=buildWorkflowGuidance({'current':a['current'],'nodes':a['nodes'],'caller':a['caller'],'callerAddress':a['callerAddress'],'callerRole':a['callerRole'],'orderHolderAddresses':a['orderHolderAddresses'],'progressNamedOperator':a['progressNamedOperator'],'permissionContext':a['permissionContext'],'orderContext':a['orderContext'],'permissionDescription':a['permissionDescription'],'nameResolver':a['nameResolver'],'escrow':a['escrow'],'just_advanced':d&&classifyNode(a['targetNode'])!=='refund'});if(g['options']['length']>0x0)e['next_guidance']=g;else{if(g['note'])e['note']=e['note']?e['note']+'\x20'+g['note']:g['note'];}return e;}function operatorText(a){const b=[a['role_name']??a['kind']];if(a['account_name'])b['push'](a['account_name']);return b['join']('\x20/\x20');}export function renderGuidanceText(a){const b=['[WORKFLOW\x20GUIDANCE]\x20current\x20node:\x20\x22'+a['current_node']+'\x22'+(a['caller']?'\x20(caller:\x20'+a['caller']+')':'')];if(a['options']['length']===0x0)return b['push']('\x20\x20•\x20'+(a['note']??'No\x20reachable\x20next\x20nodes.')),b['join']('\x0a');for(const c of a['options']){const d=['\x22'+c['forward']+'\x22\x20→\x20\x22'+c['next_node']+'\x22','operator:\x20'+operatorText(c['operator']),'weight:\x20'+c['weight'],'consistency:\x20'+c['consistency']+'/100'+(c['recommended']?'\x20[RECOMMENDED]':'')+(c['waiting_on']?'\x20['+c['waiting_on']+']':'')];if(c['guard'])d['push']('guard:\x20'+c['guard']);c['ambiguous']&&d['push']('AMBIGUOUS:\x20this\x20forward\x20name\x20also\x20reaches\x20'+c['ambiguous']['destinations']['filter'](e=>e!==c['next_node'])['join'](',\x20')+(c['ambiguous']['fund_conflict']?'\x20(fund\x20direction\x20differs\x20—\x20next_node_name\x20decides)':''));d['push']('meaning:\x20'+c['business_meaning']);if(c['gains']?.['length'])d['push']('gains:\x20'+c['gains']['join'](';\x20'));if(c['risks']?.['length'])d['push']('risks:\x20'+c['risks']['join'](';\x20'));b['push']('\x20\x20•\x20'+d['join']('\x20|\x20'));}if(a['recommendation']?.['best']){b['push']('\x20\x20RECOMMENDED:\x20'+a['recommendation']['best']+'.\x20'+(a['recommendation']['rationale']??''));if(a['recommendation']['caveat'])b['push']('\x20\x20CAVEAT\x20(opportunity\x20cost):\x20'+a['recommendation']['caveat']);}if(a['note'])b['push']('\x20\x20NOTE:\x20'+a['note']);return b['push']('\x20\x20(AI\x20recommendation\x20only\x20—\x20the\x20account\x20decides;\x20switch\x20env.account\x20if\x20another\x20operator\x20must\x20act.)'),b['join']('\x0a');}export function renderReceiptText(a){const b=['[WORKFLOW\x20RECEIPT]\x20'+a['action']];b['push']('\x20\x20•\x20node\x20migrated:\x20'+(a['migrated']?'yes\x20→\x20current:\x20\x22'+a['current_node']+'\x22':'no\x20→\x20current:\x20\x22'+a['current_node']+'\x22'));a['digest']&&b['push']('\x20\x20•\x20tx\x20digest:\x20'+a['digest']+(a['signer']?'\x20|\x20signer:\x20'+a['signer']:'')+'\x20(verify\x20via\x20onchain_transaction\x20or\x20a\x20block\x20explorer)');a['simulated']&&b['push']('\x20\x20•\x20simulated\x20(dry-run):\x20this\x20migration\x20comes\x20from\x20the\x20call\x27s\x20own\x20events\x20—\x20state\x20NOT\x20committed\x20on-chain');if(!a['migrated']){a['threshold']!==undefined&&a['threshold']>0x0&&(b['push']('\x20\x20•\x20threshold:\x20'+a['threshold']+'\x20|\x20accumulated\x20weight:\x20'+(a['accumulated_weight']??0x0)+'\x20|\x20remaining:\x20'+(a['remaining']??0x0)),a['waiting_on']?.['length']&&b['push']('\x20\x20•\x20waiting\x20on:\x20'+a['waiting_on']['map'](c=>'\x22'+c['forward']+'\x22\x20('+operatorText(c['operator'])+')')['join'](';\x20')));if(a['note'])b['push']('\x20\x20•\x20note:\x20'+a['note']);}return a['next_guidance']&&a['next_guidance']['options']['length']>0x0&&b['push'](renderGuidanceText(a['next_guidance'])),b['join']('\x0a');}async function makeNameResolver(a){const b=[...new Set(a['filter'](d=>!!d))],c=new Map();if(b['length'])try{const d=await GetLocalNamesByAddresses(b);for(const e of d){const f=e?.['account']??e?.['local_mark'];if(f)c['set'](e['address']['toLowerCase'](),f);}}catch{}return g=>{if(!g)return undefined;const h=c['get'](g['toLowerCase']());return h??shortAddr(g);};}export function extractObjectVersionFromTx(a,b){if(!a||typeof a!=='object')return undefined;const d=a,e=d['effects']?.['objectChanges']??d['objectChanges'];if(!Array['isArray'](e))return undefined;const f=b['toLowerCase']();for(const g of e){if(typeof g?.['object']!=='string'||String(g['object'])['toLowerCase']()!==f)continue;if(g['version']!==undefined&&g['version']!==null)return String(g['version']);}return undefined;}export function extractProgressEventNodeFromTx(a,b){if(!a||typeof a!=='object'||!b)return undefined;const c=a,d=c['events']??c['effects']?.['events'];if(!Array['isArray'](d))return undefined;const e=b['toLowerCase']();for(const f of d){const g=f?.['json']??f?.['parsedJson']??f,h=typeof g?.['node']==='string'?g['node']:undefined;if(!h)continue;const i=typeof g?.['object']==='string'?g['object']['trim']()['toLowerCase']():'';if(i===e||i['startsWith'](e+'\x20')||i['startsWith'](e+'('))return h;}return undefined;}export function extractTxDigestFromResult(a){const b=a?.['digest'];if(typeof b!=='string'||!b||b['startsWith']('dry_run:'))return undefined;return b;}async function fetchTerminalEscrow(b,c,d,e){if(!b)return undefined;try{const f=(await batchQueryObjectsByIds([b],c,d??!![]))[0x0],g=f?.['data']??f,h=typeof g?.['allocation']==='string'?g['allocation']:undefined;if(!h)return undefined;const i=(await batchQueryObjectsByIds([h],c,d??!![]))[0x0],j=i?.['data']??i,k=typeof j?.['balance']==='bigint'?j['balance']:BigInt(j?.['balance']??0x0);if(k<=0x0n)return undefined;const l=Array['isArray'](j?.['payment'])?j['payment']:[];if(l['length']>0x0)return undefined;const m=(Array['isArray'](j?.['allocators']?.['allocators'])?j['allocators']['allocators']:[])['map'](p=>String(p?.['guard']??''))['filter'](p=>p),n=new Set();for(const p of Array['isArray'](j?.['allocators']?.['allocators'])?j['allocators']['allocators']:[]){for(const q of Array['isArray'](p?.['sharing'])?p['sharing']:[]){const r=q?.['who'];if(r!==null&&typeof r==='object'){if('GuardIdentifier'in r)n['add']('buyer');else{if('Entity'in r)n['add']('provider');else{if('Signer'in r)n['add']('signer');}}}}}const o=n['size']===0x0?'unknown':n['size']>0x1?'mixed':[...n][0x0];return{'allocation':h,'balance':k['toString'](),'guards':m,'fund_direction':o,'refund_terminal':REFUND_FLAVOR_RE['test'](e)};}catch{return undefined;}}export async function enrichWorkflowGuidance(a){try{let b;if(a['progressRef']['startsWith']('0x'))b=a['progressRef'];else b=await LocalMark['Instance']()['get_address'](a['progressRef'])??undefined;if(!b)return undefined;const c=async()=>(await batchQueryObjectsByIds([b],a['network'],!![]))[0x0];let d=await c();const e=extractObjectVersionFromTx(a['txResult'],b);for(let A=0x0;e!==undefined&&d&&String(d['version']??'')!==e&&A<0x2;A++){await new Promise(C=>setTimeout(C,0x258));const B=await c();if(B)d=B;}const f=d?.['data']??d;if((d?.['type']??f?.['type'])!=='Progress')return undefined;let g=f['current']??'';const h=extractProgressEventNodeFromTx(a['txResult'],b),i=h!==undefined&&g!==h;if(i)g=h;const j=i&&a['dryRun']===!![],k=f['machine'],l=Array['isArray'](f['session'])?f['session']:[],m=(Array['isArray'](f['namedOperator'])?f['namedOperator']['find'](C=>C?.['name']==='')?.['operators']:undefined)??[];if(!k)return undefined;const n=await fetchMachineNodes(k,a['network'],![]);let o,p;try{const C=await batchQueryObjectsByIds([k],a['network'],a['noCache']),D=C[0x0],E=D?.['data']??D,F=E?.['permission'];if(F){const G=await batchQueryObjectsByIds([F],a['network'],a['noCache']),H=G[0x0];o=(H?.['data']??H)?.['description']??undefined,p=await fetchPermissionContext(F,a['network'],a['noCache']);}}catch{}const q=(Array['isArray'](f['namedOperator'])?f['namedOperator']:[])['map'](I=>({'name':String(I?.['name']??''),'operators':(I?.['operators']??[])['map'](J=>String(J))}));let r;f['task']&&(r=await fetchOrderContext(f['task'],a['network'],a['noCache']));const s=r?Array['from'](new Set([r['builder'],...r['agent']])['values']()):m;let t;try{t=await LocalMark['Instance']()['get_address'](a['accountName'])??undefined;}catch{t=undefined;}const u=await makeNameResolver([a['accountName'],...s]);let v;if(t){const I=[...p?.['table']['get'](t)??[]];p?.['admin']['has'](t)&&I['length']===0x0?v='collaborator':v=deriveCommercialRole({'account':t,'order_holder':s['includes'](t)?t:undefined,'held_permission_indexes':I,'named_operator_names':(q??[])['filter'](J=>(J['operators']??[])['some'](K=>K?.['toLowerCase']()===t['toLowerCase']()))['map'](J=>J['name']),'has_active_order':!![]})['role'];}const w={'current':g,'nodes':n,'caller':a['accountName'],'callerAddress':t,'callerRole':v,'orderHolderAddresses':s,'progressNamedOperator':q,'permissionContext':p,'orderContext':r,'permissionDescription':o,'nameResolver':u};let x=buildWorkflowGuidance(w);if(x['options']['length']===0x0){const J=await fetchTerminalEscrow(f['task'],a['network'],a['noCache'],g);J&&(w['escrow']=J,x=buildWorkflowGuidance(w));}let y;a['operate']?.['forward']&&a['operate']?.['next_node_name']&&(y=buildWorkflowReceipt({...w,'callerName':a['accountName']??b,'forward':a['operate']['forward'],'targetNode':a['operate']['next_node_name'],'op':a['operate']['op'],'session':l,'simulated':j,'txDigest':extractTxDigestFromResult(a['txResult']),'signer':t}));if(a['compact']){x['options']['length']&&!y?.['next_guidance']?.['options']['length']&&trimGuidanceProse(x);if(y?.['next_guidance'])trimGuidanceProse(y['next_guidance']);}const z=[y?renderReceiptText(y):undefined,x['options']['length']&&!y?.['next_guidance']?.['options']['length']?renderGuidanceText(x):undefined]['filter'](K=>!!K)['join']('\x0a\x0a');return{'guidance':x,'receipt':y,'text':z};}catch{return undefined;}}export async function resolveHoldableEdges(a){try{let b;if(a['progressRef']['startsWith']('0x'))b=a['progressRef'];else b=await LocalMark['Instance']()['get_address'](a['progressRef'])??undefined;if(!b)return undefined;const c=(await batchQueryObjectsByIds([b],a['network'],!![]))[0x0],d=c?.['data']??c;if((c?.['type']??d?.['type'])!=='Progress')return undefined;const e=typeof d['current']==='string'?d['current']:'',g=d['machine'];if(!g)return undefined;const h=await fetchMachineNodes(g,a['network'],![]);let i;try{const n=await batchQueryObjectsByIds([g],a['network'],a['noCache']),o=(n[0x0]?.['data']??n[0x0])?.['permission'];if(o)i=await fetchPermissionContext(o,a['network'],a['noCache']);}catch{}const j=(Array['isArray'](d['namedOperator'])?d['namedOperator']:[])['map'](p=>({'name':String(p?.['name']??''),'operators':(p?.['operators']??[])['map'](q=>String(q))}));let k;if(d['task'])k=await fetchOrderContext(d['task'],a['network'],a['noCache']);let l;try{l=await LocalMark['Instance']()['get_address'](a['accountName'])??undefined;}catch{l=undefined;}if(!l)return{'current':e,'edges':[]};const m=[];for(const p of h){for(const q of p['pairs']){if(q['prev_node']!==e)continue;for(const r of q['forwards']){if(!r['name'])continue;m['push']({'next_node':p['name'],'forward':r['name'],'weight':r['weight'],'threshold':q['threshold'],'guard':r['guard'],'kind':forwardOperatorKind(r),'holdable':accountCanExecuteForward(r,l,j,k,i)});}}}return{'current':e,'edges':m};}catch{return undefined;}}function trimGuidanceProse(a){for(const b of a['options']??[]){delete b['gains'],delete b['risks'];if(!b['recommended'])delete b['operator']?.['recommended_call']?.['reason'];}}export function mergeGuidanceIntoOutput(a,b,c){if(!b)return a;try{const d=a?.['structuredContent'];if(d&&typeof d==='object'){const e=d['semantic'];if(e&&typeof e==='object'){const f=!!b['receipt']?.['next_guidance']?.['options']?.['length'];b['guidance']&&!f&&(e['workflow_guidance']=b['guidance']);if(b['receipt'])e['workflow_receipt']=b['receipt'];c?.['responseLevel']!=='full'&&(e['workflow_guidance']&&trimGuidanceProse(e['workflow_guidance']),b['receipt']?.['next_guidance']&&trimGuidanceProse(b['receipt']['next_guidance']));}}b['text']&&Array['isArray'](a?.['content'])&&a['content'][0x0]?.['text']!==undefined&&(a['content'][0x0]['text']=b['text']+'\x0a\x0a'+a['content'][0x0]['text']);}catch{}return a;}export async function resolveLocalNamesFor(a){const b=new Map();try{const c=[...new Set((a??[])['filter'](e=>typeof e==='string'&&e['startsWith']('0x')))];if(c['length']===0x0)return{'byAddress':b};const d=await GetLocalNamesByAddresses(c);for(const e of d??[]){const f=e?.['account']||e?.['local_mark'];if(f)b['set'](String(e['address'])['toLowerCase'](),f);}}catch{}return{'byAddress':b};}export async function listLocalAccounts(){try{const a=await query_account_list({'suspended':![]});return(a??[])['filter'](b=>b?.['address'])['map'](b=>({'address':String(b['address']),'name':b['name']??undefined}));}catch{return[];}}export function accountCanExecuteForward(a,b,c,d,e){const g=b['toLowerCase']();if(a['namedOperator']!==undefined&&a['namedOperator']!==null){if(a['namedOperator']===''){if(d&&(g===d['builder']['toLowerCase']()||d['agent']['has'](g)))return!![];}else{if(a['namedOperator']['length']>0x0){const h=a['namedOperator'],i=c['find'](j=>String(j?.['name']??'')===h);if(i?.['operators']?.['some'](j=>String(j)['toLowerCase']()===g))return!![];}}}if(a['permissionIndex']!==undefined&&a['permissionIndex']!==null&&e){if(e['admin']['has'](g))return!![];const j=e['table']['get'](g);if(j?.['has'](a['permissionIndex']))return!![];}return![];}export function forwardOperatorKind(a){if(a['namedOperator']==='')return'order_holder';if(typeof a['namedOperator']==='string'&&a['namedOperator']['length']>0x0)return'named_operator';return'permission_index';}export function enumerateActionableForwards(a,b,c,d,e,g){const h=typeof a?.['current']==='string'?a['current']:'',i=new Map();for(const k of Array['isArray'](a?.['session'])?a['session']:[]){const l=String(k?.['next_node']??'');for(const m of Array['isArray'](k?.['forwards'])?k['forwards']:[]){i['set'](l+'|'+String(m?.['forward']??''),{'who':m?.['who']?String(m['who'])['toLowerCase']():null,'accomplished':!!m?.['accomplished']});}}const j=[];for(const n of b){for(const o of n['pairs']){if(o['prev_node']!==h)continue;for(const p of o['forwards']){if(!p['name'])continue;const q=i['get'](n['name']+'|'+p['name']);if(q?.['accomplished'])continue;let r=c['filter'](t=>accountCanExecuteForward(p,t,d,e,g));q?.['who']&&(r=r['filter'](t=>t['toLowerCase']()===q['who'])),j['push']({'next_node':n['name'],'forward':p['name'],'weight':p['weight'],'threshold':o['threshold'],'guard':p['guard'],'operator_kind':forwardOperatorKind(p),'permission_index':p['permissionIndex']??undefined,'named_operator':typeof p['namedOperator']==='string'&&p['namedOperator']['length']>0x0?p['namedOperator']:undefined,'executable_accounts':r['map'](t=>t['toLowerCase']())});}}}return j;}
|
|
1
|
+
import{query_account_list,LocalMark,GetLocalNamesByAddresses}from'@wowok/wowok';import{NO_AUTO_SETTLEMENT_FACT}from'./settlement-semantics.js';import{REPOSITORY_PERMISSIONS,REWARD_PERMISSIONS,MACHINE_PERMISSIONS,PROGRESS_PERMISSIONS,TREASURY_PERMISSIONS,SERVICE_PERMISSIONS,ARBITRATION_PERMISSIONS,DEMAND_PERMISSIONS,CONTACT_PERMISSIONS}from'./permission-ledger.js';import{formatShortAddress}from'../persona/address-format.js';import{recommendedCallForForwardBinding,recommendedCallForOrderHolder}from'../participation/radar-core.js';import{batchQueryObjectsByIds,fetchMachineNodes,fetchOrderContext,fetchPermissionContext}from'../graph/onchain/sdk-batch.js';import{deriveCommercialRole}from'../role/derivation.js';import{valuePerspectiveOf}from'../role/model.js';import{getGuardQueryByIdOrName}from'../schema/utils/guard-query-utils.js';const BUILTIN_PERMISSION_MAP=new Map();for(const entry of[...REPOSITORY_PERMISSIONS,...REWARD_PERMISSIONS,...MACHINE_PERMISSIONS,...PROGRESS_PERMISSIONS,...TREASURY_PERMISSIONS,...SERVICE_PERMISSIONS,...ARBITRATION_PERMISSIONS,...DEMAND_PERMISSIONS,...CONTACT_PERMISSIONS]){BUILTIN_PERMISSION_MAP['set'](entry['index'],entry['name']);}export function resolvePermissionRole(a,b){if(a===undefined||a===null)return'unknown\x20role';if(b){const d=/([A-Za-z][A-Za-z0-9_]*)\s*=\s*(\d+)/g;let e;while((e=d['exec'](b))!==null){if(Number(e[0x2])===a)return e[0x1]+'\x20(permission\x20'+a+')';}}const c=BUILTIN_PERMISSION_MAP['get'](a);if(c)return c+'\x20(permission\x20'+a+')';return'permission\x20'+a;}const COMPLETE_RE=/(^|_)(completed?|done|finished|received|delivered|accepted|confirmed|finalized|success|approved)(_|$)/i,REFUND_RE=/(^|_)(cancel(led)?|refund(ed)?|return(ed|_approved)?)(_|$)/i,EXCEPTION_RE=/(^|_)(interrupt(ed)?|exception|dispute(d)?|fail(ed)?|abort(ed)?|reject(ed)?)(_|$)/i,PRE_DELIVERY_RE=/^(|entry|paid|kickoff|confirmed|requirements_pending|in_progress|active|processing|subscribed)$/i,ACTIVE_STAGE_RE=/(charg|billing|renew|deliver|fulfill|ship|sent|work|produ)/i,REFUND_FLAVOR_RE=/(^|_)(cancel(led)?|refund(ed)?|return(ed|_approved)?|expired)(_|$)/i;export function classifyNode(a){if(COMPLETE_RE['test'](a))return'complete';if(REFUND_RE['test'](a))return'refund';if(EXCEPTION_RE['test'](a))return'exception';return'advance';}export function guardRequiresClaimStamp(a){const b=(d,e)=>{if(typeof d!=='object'||d===null)return![];const f=d;if(typeof f['type']!=='string')return![];if(f['type']==='query'&&!e&&(typeof f['query']==='number'||typeof f['query']==='string')){const h=getGuardQueryByIdOrName(f['query']);if(h?.['name']==='order.claimed_by\x20some')return!![];}const g=e||f['type']==='logic_not';for(const i of[f['nodes'],f['node'],f['nodeLeft'],f['nodeRight']]){if(Array['isArray'](i)){for(const j of i)if(b(j,g))return!![];}else{if(b(i,g))return!![];}}return![];};return b(a,![]);}export const CLAIM_STAMP_PREREQUISITE='PREREQUISITE\x20(4R-03b\x20sequence\x20seal):\x20this\x20edge\x27s\x20guard\x20requires\x20order.claimed_by\x20some\x20==\x20true\x20—\x20the\x20arbitration\x20case\x20'+'must\x20be\x20CONCLUDED\x20first\x20(the\x20permissionless\x20keeper\x20conclude\x20stamps\x20claimed_by\x20and\x20moves\x20no\x20funds,\x20BF-14),\x20THEN\x20the\x20edge\x20'+'is\x20driven.\x20Conclude\x20FIRST,\x20drive\x20SECOND;\x20driving\x20first\x20fails\x20the\x20guard\x20with\x20the\x20position\x20intact\x20(retry\x20after\x20the\x20stamp\x20—\x20no\x20state\x20is\x20lost).';function businessMeaning(a,b){switch(b){case'complete':return'completion\x20stage\x20\x22'+a+'\x22';case'refund':return'refund/cancel\x20stage\x20\x22'+a+'\x22';case'exception':return'exception/dispute\x20stage\x20\x22'+a+'\x22';default:return'advance\x20to\x20\x22'+a+'\x22';}}function shortAddr(a){if(!a)return undefined;return formatShortAddress(a);}function callerIsOrderHolder(a,b){if(!a||!b?.['length'])return![];const d=a['toLowerCase']();return b['some'](e=>e?.['toLowerCase']()===d);}function resolveOperator(a,b,c,d,e){const g=e&&a['namedOperator']===''&&!a['permissionIndex']?recommendedCallForOrderHolder({'hasGuard':!!a['guard'],'currentNode':e['currentNode'],'targetNode':e['targetNode']}):recommendedCallForForwardBinding({'permissionIndex':a['permissionIndex'],'namedOperator':a['namedOperator'],'hasGuard':!!a['guard']});if(a['namedOperator']===''){const h=b?.[0x0],i=a['permissionIndex']!==undefined&&a['permissionIndex']!==null;return{'kind':'order_holder','role_name':i?'order\x20holder\x20(customer)\x20OR\x20'+resolvePermissionRole(a['permissionIndex'],c):'order\x20holder\x20(customer)','permission_index':i?a['permissionIndex']:undefined,'account_name':d?d(h):shortAddr(h),'recommended_call':g};}if(typeof a['namedOperator']==='string'&&a['namedOperator']['length']>0x0)return{'kind':'named_operator','named_operator':a['namedOperator'],'role_name':'named\x20operator\x20\x22'+a['namedOperator']+'\x22','recommended_call':g};if(a['permissionIndex']!==undefined&&a['permissionIndex']!==null)return{'kind':'permission_index','permission_index':a['permissionIndex'],'role_name':resolvePermissionRole(a['permissionIndex'],c),'recommended_call':g};return{'kind':'order_holder','role_name':'unknown\x20operator'};}function gainsRisksFor(a,b,c,d){if(!c)return{'gains':[],'risks':[]};if(d)return perspectiveGainsRisks(a,valuePerspectiveOf(d));if(b)switch(a){case'complete':return{'gains':['Flow\x20advances','Settlement\x20unlocked\x20—\x20provider\x20funds\x20become\x20releasable\x20(an\x20explicit\x20allocation\x20step\x20is\x20still\x20required;\x20nothing\x20releases\x20automatically)'],'risks':['Provider\x20can\x20now\x20claim\x20the\x20escrow','Refund\x20leverage\x20lost\x20once\x20completion\x20is\x20recorded\x20—\x20confirm\x20only\x20if\x20service\x20verified']};case'refund':return{'gains':['Refund\x20path\x20unlocked\x20—\x20escrow\x20becomes\x20releasable\x20back\x20to\x20you\x20via\x20an\x20explicit\x20allocation\x20step\x20(trigger\x20it\x20yourself;\x20funds\x20are\x20not\x20returned\x20automatically)'],'risks':['If\x20service\x20was\x20already\x20rendered,\x20cancellation\x20may\x20be\x20disputed']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20reputation\x20impact']};default:return{'gains':['Flow\x20advances'],'risks':[]};}switch(a){case'complete':return{'gains':['Settlement\x20unlocked\x20—\x20funds\x20releasable\x20to\x20provider\x20via\x20an\x20explicit\x20allocation\x20step\x20(NOT\x20automatic\x20on\x20node\x20migration)'],'risks':[]};case'refund':return{'gains':['Clean\x20closure'],'risks':['Lost\x20revenue\x20for\x20this\x20order']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20compensation\x20fund']};default:return{'gains':['Flow\x20advances'],'risks':[]};}}function perspectiveGainsRisks(a,b){if(b==='consumer')switch(a){case'complete':return{'gains':['Flow\x20advances','Settlement\x20unlocked\x20—\x20provider\x20funds\x20become\x20releasable\x20(an\x20explicit\x20allocation\x20step\x20is\x20still\x20required;\x20nothing\x20releases\x20automatically)'],'risks':['Provider\x20can\x20now\x20claim\x20the\x20escrow','Refund\x20leverage\x20lost\x20once\x20completion\x20is\x20recorded\x20—\x20confirm\x20only\x20if\x20service\x20verified']};case'refund':return{'gains':['Refund\x20path\x20unlocked\x20—\x20escrow\x20becomes\x20releasable\x20back\x20to\x20you\x20via\x20an\x20explicit\x20allocation\x20step\x20(trigger\x20it\x20yourself;\x20funds\x20are\x20not\x20returned\x20automatically)'],'risks':['If\x20service\x20was\x20already\x20rendered,\x20cancellation\x20may\x20be\x20disputed']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20reputation\x20impact']};default:return{'gains':['Flow\x20advances'],'risks':[]};}if(b==='producer')switch(a){case'complete':return{'gains':['Settlement\x20unlocked\x20—\x20funds\x20releasable\x20to\x20provider\x20via\x20an\x20explicit\x20allocation\x20step\x20(NOT\x20automatic\x20on\x20node\x20migration)'],'risks':[]};case'refund':return{'gains':['Clean\x20closure'],'risks':['Lost\x20revenue\x20for\x20this\x20order']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration\x20/\x20compensation\x20fund']};default:return{'gains':['Flow\x20advances'],'risks':[]};}switch(a){case'complete':return{'gains':['Flow\x20advances\x20—\x20the\x20workflow\x20moves\x20to\x20its\x20delivery/settlement\x20stage'],'risks':[]};case'refund':return{'gains':['Clean\x20closure\x20of\x20the\x20workflow'],'risks':['Cancels\x20the\x20delivery\x20track\x20—\x20confirm\x20this\x20matches\x20what\x20the\x20parties\x20agreed']};case'exception':return{'gains':['Avoids\x20stalemate'],'risks':['May\x20trigger\x20arbitration']};default:return{'gains':['Flow\x20advances'],'risks':[]};}}function consistencyFor(a,b,c,d,e,f,g){let h;if(!e)h=a==='exception'?0x2d:0x32;else{if(g){const i=valuePerspectiveOf(g);h=i==='consumer'?a==='refund'?0x46:a==='complete'?0x37:a==='exception'?0x23:0x32:i==='producer'?a==='complete'?0x4b:a==='refund'?0x1e:a==='exception'?0x23:0x32:a==='complete'?0x37:a==='refund'?0x32:a==='exception'?0x28:0x32;}else b?h=a==='refund'?0x46:a==='complete'?0x37:a==='exception'?0x23:0x32:h=a==='complete'?0x4b:a==='refund'?0x1e:a==='exception'?0x23:0x32;}if(e&&c)h+=0x14;if(d)h-=0xa;return e&&f&&(a==='refund'||a==='exception')&&(h=Math['min'](h,0x28)),Math['max'](0x0,Math['min'](0x64,h));}const RECOMMEND_MIN_CONSISTENCY=0x3c;function whoCanAct(a,b){if(a['kind']==='named_operator')return'named\x20operator\x20\x22'+a['named_operator']+'\x22';if(a['kind']==='permission_index'&&a['permission_index']!==undefined){const c=a['role_name']??'permission\x20index\x20'+a['permission_index'];let d;if(b['permissionContext']){const e=[...b['orderHolderAddresses']??[],...b['callerAddress']?[b['callerAddress']]:[]],f=e['find'](g=>{if(!g)return![];const h=g['toLowerCase']();return b['permissionContext']['admin']['has'](h)||(b['permissionContext']['table']['get'](h)?.['has'](a['permission_index'])??![]);});if(f)d=b['nameResolver']?b['nameResolver'](f):shortAddr(f);}return d?c+'\x20(held\x20by\x20'+d+')':c;}return a['account_name']?'the\x20order\x20holder\x20('+a['account_name']+')':a['role_name']??'the\x20order\x20holder';}export function buildWorkflowGuidance(a){const b=[],c=PRE_DELIVERY_RE['test'](a['current'])||ACTIVE_STAGE_RE['test'](a['current'])||a['just_advanced']===!![];for(const q of a['nodes']){for(const r of q['pairs']){if(r['prev_node']!==a['current'])continue;for(const s of r['forwards']){if(!s['name'])continue;const t=resolveOperator(s,a['orderHolderAddresses'],a['permissionDescription'],a['nameResolver'],{'currentNode':a['current'],'targetNode':q['name']}),u=callerIsOrderHolder(a['callerAddress']??a['caller'],a['orderHolderAddresses']);let v=![];a['callerAddress']&&(v=accountCanExecuteForward(s,a['callerAddress'],a['progressNamedOperator']??[],a['orderContext'],a['permissionContext']));const w=classifyNode(q['name']),x=!!a['caller'],{gains:y,risks:z}=gainsRisksFor(w,u,x,a['callerRole']),A=consistencyFor(w,u,v,!!s['guard'],x,c,a['callerRole']),B=s['guard']?a['guardRoots']?.['get'](s['guard']['toLowerCase']()):undefined,C=B?.['root'],D=C!==undefined&&guardRequiresClaimStamp(C)?CLAIM_STAMP_PREREQUISITE:undefined;b['push']({'next_node':q['name'],'forward':s['name'],'weight':s['weight'],'operator':t,'guard':s['guard'],'business_meaning':businessMeaning(q['name'],w),'gains':y,'risks':z,'consistency':A,'recommended':![],'executable_by_caller':v,...D?{'prerequisite':D}:{}});}}}if(b['length']===0x0){const E=a['escrow'],F=!E?'':E['fund_direction']==='buyer'?'the\x20rails\x20are\x20ORDER-ANCHORED\x20(GuardIdentifier\x20recipients)\x20—\x20the\x20payout\x20lands\x20on\x20the\x20Order\x20object\x20for\x20the\x20order\x20owner\x20(the\x20buyer)\x20to\x20claim,\x20regardless\x20of\x20the\x20node\x27s\x20name\x20(\x22'+a['current']+'\x22).\x20':E['fund_direction']==='provider'?'the\x20rails\x20pay\x20ENTITY\x20recipients\x20—\x20the\x20payout\x20goes\x20to\x20the\x20named\x20provider-side\x20parties,\x20regardless\x20of\x20the\x20node\x27s\x20name\x20(\x22'+a['current']+'\x22).\x20':E['fund_direction']==='mixed'?'the\x20rails\x20mix\x20order-anchored\x20and\x20Entity\x20recipients\x20—\x20which\x20party\x20is\x20paid\x20depends\x20on\x20WHICH\x20rail\x20fires;\x20inspect\x20each\x20allocator\x27s\x20guard\x20before\x20triggering.\x20':E['fund_direction']==='signer'?'a\x20rail\x20pays\x20whoever\x20TRIGGERS\x20it\x20(Signer\x20recipient)\x20—\x20the\x20operator\x27s\x20own\x20identity\x20decides\x20the\x20payee;\x20never\x20trigger\x20on\x20behalf\x20of\x20another\x20party.\x20':'rail\x20recipients\x20were\x20unreadable\x20from\x20the\x20machine\x20graph\x20—\x20READ\x20them\x20before\x20triggering,\x20the\x20tooling\x20can:\x20query_toolkit\x20query_type=\x27service_panorama\x27\x20returns\x20result.service.order_allocators.allocators[].sharing\x20(who/mode/value\x20per\x20rail),\x20and\x20object_panorama\x20on\x20the\x20pool\x27s\x20Allocation\x20(\x27'+E['allocation']+'\x27)\x20returns\x20the\x20balance,\x20payment_info\x20anchor\x20and\x20the\x20same\x20resolved\x20recipient\x20rows.\x20The\x20name\x20flavor\x20('+(E['refund_terminal']?'refund/cancel-flavored':'completion-flavored')+')\x20is\x20a\x20GUESS\x20about\x20direction,\x20never\x20a\x20fact\x20—\x20do\x20not\x20act\x20on\x20it\x20alone.\x20',G=E?'Node\x20\x22'+a['current']+'\x22\x20is\x20terminal\x20(no\x20outgoing\x20forwards)\x20—\x20but\x20the\x20order\x27s\x20Allocation\x20'+E['allocation']+'\x20still\x20holds\x20'+E['balance']+'\x20(smallest\x20unit)\x20with\x20no\x20payments\x20recorded.\x20'+NO_AUTO_SETTLEMENT_FACT+'\x20'+F+('Execute\x20via\x20onchain_operations\x20{operation_type:\x27allocation\x27,\x20data:{object:\x27'+E['allocation']+'\x27,\x20alloc_by_guard:\x27<guard>\x27}}')+(E['guards']['length']?'\x20—\x20candidate\x20guards\x20on\x20this\x20pool:\x20'+E['guards']['join'](',\x20')+'.':'\x20—\x20inspect\x20the\x20pool\x27s\x20allocators\x20first.')+'\x20Trigger\x20ONCE\x20and\x20verify\x20the\x20pool\x20drained\x20(a\x20fully-drained\x20pool\x20aborts\x20on\x20re-trigger;\x20a\x20max-capped\x20pool\x20re-splits\x20the\x20remainder).\x20Recipients\x20then\x20claim\x20their\x20CoinWrappers\x20(receive).':'Node\x20\x22'+a['current']+'\x22\x20has\x20no\x20outgoing\x20forwards\x20—\x20it\x20is\x20a\x20terminal\x20node\x20(or\x20the\x20workflow\x20is\x20stuck).\x20No\x20further\x20progress\x20operation\x20is\x20available\x20here.';return{'current_node':a['current'],'caller':a['caller'],'options':[],'note':G};}const d=new Map();for(const H of b){const I=d['get'](H['forward']);if(I)I['add'](H['next_node']);else d['set'](H['forward'],new Set([H['next_node']]));}const e=[];for(const [J,K]of d){if(K['size']<0x2)continue;const L=[...K]['sort'](),M=L['some'](P=>classifyNode(P)==='refund'),N=L['some'](P=>classifyNode(P)!=='refund'),O=M&&N;e['push'](O?'CRITICAL\x20'+J:J);for(let P=0x0;P<b['length'];P++){if(b[P]['forward']!==J)continue;b[P]={...b[P],'ambiguous':{'destinations':L,'fund_conflict':O}};}}e['sort'](),b['sort']((Q,R)=>R['consistency']-Q['consistency']);const g=e['length']>0x0;let h,j;if(!g){const Q=b['findIndex'](R=>!R['ambiguous']);if(Q>=0x0){const R=b[Q];R['executable_by_caller']===!![]&&R['consistency']>=RECOMMEND_MIN_CONSISTENCY?(h={...R,'recommended':!![]},b[Q]=h):(j={...R,'waiting_on':R['executable_by_caller']===![]?'WAITING:\x20'+whoCanAct(R['operator'],a)+'\x20can\x20act\x20—\x20the\x20current\x20signing\x20account\x20cannot':'WAITING:\x20interest\x20alignment\x20'+R['consistency']+'/100\x20is\x20below\x20the\x20'+RECOMMEND_MIN_CONSISTENCY+'\x20recommendation\x20floor'},b[Q]=j);}}const k=[];for(const S of b){h&&S!==h&&S['consistency']>0x0&&S['forward']!==h['forward']&&k['push']('Choosing\x20\x22'+S['forward']+'\x20→\x20'+S['next_node']+'\x22\x20forfeits\x20the\x20faster/more\x20aligned\x20path\x20\x22'+h['forward']+'\x20→\x20'+h['next_node']+'\x22');}c&&b['some'](T=>classifyNode(T['next_node'])==='refund')&&k['push']('Refund/cancel\x20options\x20are\x20listed\x20but\x20not\x20auto-recommended\x20here\x20(pre-delivery\x20stage,\x20active\x20billing/delivery\x20stage,\x20or\x20a\x20just-completed\x20advance\x20signals\x20intent\x20to\x20continue)\x20—\x20choose\x20one\x20explicitly\x20when\x20cancellation\x20is\x20intended');for(const T of b){if(!T['ambiguous'])continue;k['push']('\x22'+T['forward']+'\x22\x20is\x20AMBIGUOUS\x20from\x20\x22'+a['current']+'\x22\x20—\x20it\x20legally\x20reaches\x20'+T['ambiguous']['destinations']['join']('\x20/\x20')+'\x20'+(T['ambiguous']['fund_conflict']?'(fund\x20direction\x20DIFFERS\x20between\x20them);\x20the\x20destination\x20you\x20pass\x20in\x20next_node_name\x20decides,\x20so\x20state\x20the\x20intended\x20node\x20explicitly\x20instead\x20of\x20trusting\x20the\x20forward\x20name':';\x20state\x20the\x20intended\x20node\x20explicitly'));}const l=[];if(h){const U=h['operator'];if(U['kind']==='order_holder')U['account_name']&&U['account_name']!==a['caller']&&l['push']('The\x20recommended\x20action\x20is\x20executed\x20by\x20another\x20account\x20('+U['account_name']+');\x20switch\x20the\x20signing\x20account\x20(env.account)\x20before\x20operating.');else{if(h['executable_by_caller']===![]){const V=U['kind']==='named_operator'?'named\x20operator\x20\x22'+U['named_operator']+'\x22':U['role_name']??'permission\x20index\x20'+(U['permission_index']??'(unknown)');let W;if(U['kind']==='permission_index'&&a['permissionContext']&&U['permission_index']!==undefined){const X=[...a['orderHolderAddresses']??[],...a['callerAddress']?[a['callerAddress']]:[]],Y=X['find'](Z=>{if(!Z)return![];const a0=Z['toLowerCase']();return a['permissionContext']['admin']['has'](a0)||(a['permissionContext']['table']['get'](a0)?.['has'](U['permission_index'])??![]);});if(Y)W=a['nameResolver']?a['nameResolver'](Y):shortAddr(Y);}l['push']('The\x20recommended\x20action\x20requires\x20'+V+(W?'\x20(held\x20by\x20'+W+')':'')+('\x20—\x20the\x20current\x20signing\x20account\x20('+(a['caller']??'unresolved')+')\x20is\x20not\x20entitled;\x20switch\x20env.account\x20to\x20an\x20account\x20holding\x20it\x20before\x20operating.'));}}}else j&&j['executable_by_caller']===![]&&l['push']('The\x20top-ranked\x20edge\x20\x22'+j['forward']+'\x20→\x20'+j['next_node']+'\x22\x20is\x20not\x20auto-recommended\x20('+j['waiting_on']+');\x20'+'switch\x20env.account\x20to\x20an\x20entitled\x20account\x20before\x20operating.');e['length']>0x0&&l['push']('Machine\x20topology\x20defect\x20(P0-6):\x20forward\x20name(s)\x20'+[...new Set(e['map'](Z=>Z['replace'](/^CRITICAL /,'')))]['join'](',\x20')+'\x20'+'resolve\x20to\x20more\x20than\x20one\x20destination\x20from\x20this\x20node.\x20The\x20contract\x20accepts\x20any\x20of\x20them\x20(next_node\x20is\x20a\x20caller\x20argument;\x20'+'the\x20graph\x20only\x20forbids\x20duplicate\x20prev_node\x20WITHIN\x20one\x20node),\x20so\x20the\x20workflow\x20outcome\x20is\x20decided\x20by\x20the\x20CALLER,\x20not\x20by\x20the\x20published\x20Machine.\x20'+'Nothing\x20is\x20auto-recommended\x20for\x20these\x20forwards\x20—\x20fix\x20the\x20graph\x20by\x20giving\x20each\x20destination\x20its\x20own\x20forward\x20name.');const m=b['filter'](Z=>Z['guard']);m['length']>=0x2&&m['length']===b['length']&&l['push'](m['length']+'\x20guarded\x20variants\x20mount\x20on\x20node\x20\x22'+a['current']+'\x22\x20and\x20they\x20are\x20typically\x20MUTUALLY\x20EXCLUSIVE\x20'+'(variant\x20rails\x20usually\x20read\x20a\x20policy/mode\x20oracle\x20row\x20—\x20only\x20the\x20row\x27s\x20current\x20value\x20admits\x20one\x20of\x20them).\x20'+'Do\x20NOT\x20discover\x20which\x20one\x20by\x20signing:\x20probe\x20with\x20env.dry_run=true\x20first\x20(free,\x20never\x20committed\x20—\x20'+'EVERY\x20write\x20channel\x20honors\x20env.dry_run:\x20the\x20call\x20simulates\x20and\x20returns\x20a\x20\x22dry_run:*\x22\x20digest,\x20'+'nothing\x20is\x20signed\x20or\x20submitted,\x20so\x20a\x20guard\x20rejection\x20on\x20a\x20dry\x20run\x20does\x20not\x20consume\x20the\x20retry\x20budget\x20'+'and\x20mints\x20nothing)\x20—\x20the\x20rejection\x20diagnosis\x20names\x20the\x20failing\x20guard.');const n=/(enter|fund|renew|pay|deposit|top_?up|refund|claim|withdraw|settle|release)/i;h&&n['test'](h['forward'])&&l['push']('\x22'+h['forward']+'\x22\x20is\x20a\x20MONEY-state\x20forward,\x20but\x20this\x20guidance\x20reads\x20only\x20topology\x20and\x20roles\x20—\x20NOT\x20the\x20order\x27s\x20live\x20Allocation\x20balance\x20or\x20claimed_by.\x20If\x20the\x20escrow\x20is\x20already\x20drained\x20(allocation.balance\x20==\x200)\x20or\x20arbitration-displaced\x20(order.claimed_by\x20some\x20==\x20true),\x20the\x20advance\x20burns\x20gas\x20and\x20aborts:\x20query\x20the\x20order\x27s\x20allocation\x20balance\x20+\x20claimed_by\x20FIRST,\x20and\x20probe\x20with\x20env.dry_run=true\x20when\x20unsure.');const p=b['filter'](Z=>Z['prerequisite']);return p['length']&&l['push']('Ruling-execution\x20edge(s)\x20'+p['map'](Z=>'\x22'+Z['forward']+'\x22')['join'](',\x20')+'\x20carry\x20the\x20claimed_by\x20SEQUENCE\x20SEAL\x20(4R-03b):\x20'+'conclude\x20the\x20arbitration\x20case\x20FIRST\x20(the\x20keeper\x20conclude\x20is\x20permissionless\x20and\x20moves\x20no\x20funds\x20—\x20BF-14),\x20then\x20drive\x20the\x20edge.\x20'+'Driving\x20before\x20the\x20stamp\x20aborts\x20with\x20the\x20order\x20position\x20intact\x20—\x20retry\x20after\x20the\x20conclude,\x20nothing\x20is\x20lost.'),{'current_node':a['current'],'caller':a['caller'],'options':b,'recommendation':h?{'best':h['forward']+'\x20→\x20'+h['next_node'],'rationale':'Highest\x20consistency\x20('+h['consistency']+'/100)\x20with\x20the\x20caller\x27s\x20interests.\x20Gains:\x20'+(h['gains']?.['join'](';\x20')||'none')+'.\x20Risks:\x20'+(h['risks']?.['join'](';\x20')||'none')+'.\x20Operator:\x20'+(h['operator']['role_name']??h['operator']['kind'])+(h['operator']['account_name']?'\x20('+h['operator']['account_name']+')':'')+'.'+(h['guard']?'\x20Guard\x20to\x20satisfy:\x20'+h['guard']+'.':''),'caveat':k['length']?k['join']('.\x20'):undefined}:{'best':undefined,'rationale':e['length']?'No\x20action\x20recommended:\x20every\x20reachable\x20forward\x20from\x20\x22'+a['current']+'\x22\x20is\x20ambiguous\x20(resolves\x20to\x20multiple\x20destinations).\x20Choose\x20the\x20destination\x20node\x20deliberately\x20—\x20do\x20not\x20let\x20the\x20forward\x20name\x20decide\x20it.':j?'No\x20action\x20recommended:\x20the\x20top-ranked\x20edge\x20\x22'+j['forward']+'\x20→\x20'+j['next_node']+'\x22\x20is\x20'+j['waiting_on']+'.\x20The\x20full\x20ranked\x20list\x20stays\x20visible\x20—\x20pick\x20deliberately,\x20or\x20switch\x20env.account\x20to\x20an\x20entitled\x20account.':undefined,'caveat':k['length']?k['join']('.\x20'):undefined},'note':l['length']?l['join']('\x20'):undefined};}export function buildWorkflowReceipt(a){const b={'hold':'held','unhold':'released\x20(unhold)','adminUnhold':'force-released\x20(adminUnhold)'},c=a['op']?b[a['op']]:undefined,d=c!==undefined?![]:a['current']===a['targetNode'],e={'account':a['callerName'],'action':c!==undefined?a['callerName']+'\x20'+c+'\x20\x22'+a['forward']+'\x22\x20—\x20node\x20stays\x20at\x20\x22'+a['current']+'\x22':a['callerName']+'\x20executed\x20'+a['forward']+'\x20(→\x20'+a['targetNode']+')','forward':a['forward'],'target_node':a['targetNode'],'op':a['op'],'migrated':d,'current_node':a['current']};if(a['simulated'])e['simulated']=!![];if(a['txDigest'])e['digest']=a['txDigest'];if(a['signer'])e['signer']=a['signer'];if(c!==undefined)e['note']='Hold-family\x20op\x20does\x20not\x20migrate\x20the\x20node\x20—\x20it\x20only\x20pins/unpins\x20a\x20forward;\x20the\x20current\x20node\x20and\x20its\x20threshold\x20state\x20are\x20unchanged.';else{if(!d){const h=a['nodes']['filter'](l=>l['name']===a['targetNode'])['flatMap'](l=>l['pairs'])['find'](l=>l['prev_node']===a['current']),i=a['session']?.['slice'](-0x1)[0x0],j=i?.['threshold']??h?.['threshold']??0x0,k=i?.['weights']??0x0;if(j>0x0){e['threshold']=j,e['accumulated_weight']=k,e['remaining']=Math['max'](0x0,j-k);const l=new Set((i?.['forwards']??[])['filter'](n=>n?.['accomplished']!==![])['map'](n=>n?.['forward'])['filter'](n=>!!n)),m=[];for(const n of h?.['forwards']??[]){if(!n['name']||l['has'](n['name']))continue;m['push']({'forward':n['name'],'operator':resolveOperator(n,a['orderHolderAddresses'],a['permissionDescription'],a['nameResolver'],{'currentNode':a['current'],'targetNode':a['targetNode']})});}if(m['length'])e['waiting_on']=m;e['note']='Node\x20did\x20not\x20migrate:\x20threshold\x20'+j+',\x20accumulated\x20weight\x20'+k+',\x20remaining\x20'+Math['max'](0x0,j-k)+'.\x20'+(m['length']?'Waiting\x20for:\x20'+m['map'](o=>o['forward']+'\x20('+(o['operator']['role_name']??o['operator']['kind'])+')')['join'](';\x20'):'All\x20forwards\x20on\x20this\x20pair\x20are\x20accomplished\x20—\x20the\x20node\x20should\x20migrate\x20on\x20the\x20next\x20operation.');}else e['note']='Node\x20did\x20not\x20migrate\x20(threshold\x200)\x20—\x20no\x20further\x20weight\x20cooperation\x20required;\x20verify\x20the\x20operation\x20outcome.';}}const g=buildWorkflowGuidance({'current':a['current'],'nodes':a['nodes'],'caller':a['caller'],'callerAddress':a['callerAddress'],'callerRole':a['callerRole'],'orderHolderAddresses':a['orderHolderAddresses'],'progressNamedOperator':a['progressNamedOperator'],'permissionContext':a['permissionContext'],'orderContext':a['orderContext'],'permissionDescription':a['permissionDescription'],'nameResolver':a['nameResolver'],'escrow':a['escrow'],'just_advanced':d&&classifyNode(a['targetNode'])!=='refund'});if(g['options']['length']>0x0)e['next_guidance']=g;else{if(g['note'])e['note']=e['note']?e['note']+'\x20'+g['note']:g['note'];}return e;}function operatorText(a){const b=[a['role_name']??a['kind']];if(a['account_name'])b['push'](a['account_name']);return b['join']('\x20/\x20');}export function renderGuidanceText(a){const b=['[WORKFLOW\x20GUIDANCE]\x20current\x20node:\x20\x22'+a['current_node']+'\x22'+(a['caller']?'\x20(caller:\x20'+a['caller']+')':'')];if(a['options']['length']===0x0)return b['push']('\x20\x20•\x20'+(a['note']??'No\x20reachable\x20next\x20nodes.')),b['join']('\x0a');for(const c of a['options']){const d=['\x22'+c['forward']+'\x22\x20→\x20\x22'+c['next_node']+'\x22','operator:\x20'+operatorText(c['operator']),'weight:\x20'+c['weight'],'consistency:\x20'+c['consistency']+'/100'+(c['recommended']?'\x20[RECOMMENDED]':'')+(c['waiting_on']?'\x20['+c['waiting_on']+']':'')];if(c['guard'])d['push']('guard:\x20'+c['guard']);if(c['prerequisite'])d['push'](c['prerequisite']);c['ambiguous']&&d['push']('AMBIGUOUS:\x20this\x20forward\x20name\x20also\x20reaches\x20'+c['ambiguous']['destinations']['filter'](e=>e!==c['next_node'])['join'](',\x20')+(c['ambiguous']['fund_conflict']?'\x20(fund\x20direction\x20differs\x20—\x20next_node_name\x20decides)':''));d['push']('meaning:\x20'+c['business_meaning']);if(c['gains']?.['length'])d['push']('gains:\x20'+c['gains']['join'](';\x20'));if(c['risks']?.['length'])d['push']('risks:\x20'+c['risks']['join'](';\x20'));b['push']('\x20\x20•\x20'+d['join']('\x20|\x20'));}if(a['recommendation']?.['best']){b['push']('\x20\x20RECOMMENDED:\x20'+a['recommendation']['best']+'.\x20'+(a['recommendation']['rationale']??''));if(a['recommendation']['caveat'])b['push']('\x20\x20CAVEAT\x20(opportunity\x20cost):\x20'+a['recommendation']['caveat']);}if(a['note'])b['push']('\x20\x20NOTE:\x20'+a['note']);return b['push']('\x20\x20(AI\x20recommendation\x20only\x20—\x20the\x20account\x20decides;\x20switch\x20env.account\x20if\x20another\x20operator\x20must\x20act.)'),b['join']('\x0a');}export function renderReceiptText(a){const b=['[WORKFLOW\x20RECEIPT]\x20'+a['action']];b['push']('\x20\x20•\x20node\x20migrated:\x20'+(a['migrated']?'yes\x20→\x20current:\x20\x22'+a['current_node']+'\x22':'no\x20→\x20current:\x20\x22'+a['current_node']+'\x22'));a['digest']&&b['push']('\x20\x20•\x20tx\x20digest:\x20'+a['digest']+(a['signer']?'\x20|\x20signer:\x20'+a['signer']:'')+'\x20(verify\x20via\x20onchain_transaction\x20or\x20a\x20block\x20explorer)');a['simulated']&&b['push']('\x20\x20•\x20simulated\x20(dry-run):\x20this\x20migration\x20comes\x20from\x20the\x20call\x27s\x20own\x20events\x20—\x20state\x20NOT\x20committed\x20on-chain');if(!a['migrated']){a['threshold']!==undefined&&a['threshold']>0x0&&(b['push']('\x20\x20•\x20threshold:\x20'+a['threshold']+'\x20|\x20accumulated\x20weight:\x20'+(a['accumulated_weight']??0x0)+'\x20|\x20remaining:\x20'+(a['remaining']??0x0)),a['waiting_on']?.['length']&&b['push']('\x20\x20•\x20waiting\x20on:\x20'+a['waiting_on']['map'](c=>'\x22'+c['forward']+'\x22\x20('+operatorText(c['operator'])+')')['join'](';\x20')));if(a['note'])b['push']('\x20\x20•\x20note:\x20'+a['note']);}return a['next_guidance']&&a['next_guidance']['options']['length']>0x0&&b['push'](renderGuidanceText(a['next_guidance'])),b['join']('\x0a');}async function makeNameResolver(a){const b=[...new Set(a['filter'](d=>!!d))],c=new Map();if(b['length'])try{const d=await GetLocalNamesByAddresses(b);for(const e of d){const f=e?.['account']??e?.['local_mark'];if(f)c['set'](e['address']['toLowerCase'](),f);}}catch{}return g=>{if(!g)return undefined;const h=c['get'](g['toLowerCase']());return h??shortAddr(g);};}export function extractObjectVersionFromTx(a,b){if(!a||typeof a!=='object')return undefined;const d=a,e=d['effects']?.['objectChanges']??d['objectChanges'];if(!Array['isArray'](e))return undefined;const f=b['toLowerCase']();for(const g of e){if(typeof g?.['object']!=='string'||String(g['object'])['toLowerCase']()!==f)continue;if(g['version']!==undefined&&g['version']!==null)return String(g['version']);}return undefined;}export function extractProgressEventNodeFromTx(a,b){if(!a||typeof a!=='object'||!b)return undefined;const c=a,d=c['events']??c['effects']?.['events'];if(!Array['isArray'](d))return undefined;const e=b['toLowerCase']();for(const f of d){const g=f?.['json']??f?.['parsedJson']??f,h=typeof g?.['node']==='string'?g['node']:undefined;if(!h)continue;const i=typeof g?.['object']==='string'?g['object']['trim']()['toLowerCase']():'';if(i===e||i['startsWith'](e+'\x20')||i['startsWith'](e+'('))return h;}return undefined;}export function extractTxDigestFromResult(a){const b=a?.['digest'];if(typeof b!=='string'||!b||b['startsWith']('dry_run:'))return undefined;return b;}async function fetchTerminalEscrow(b,c,d,e){if(!b)return undefined;try{const f=(await batchQueryObjectsByIds([b],c,d??!![]))[0x0],g=f?.['data']??f,h=typeof g?.['allocation']==='string'?g['allocation']:undefined;if(!h)return undefined;const i=(await batchQueryObjectsByIds([h],c,d??!![]))[0x0],j=i?.['data']??i,k=typeof j?.['balance']==='bigint'?j['balance']:BigInt(j?.['balance']??0x0);if(k<=0x0n)return undefined;const l=Array['isArray'](j?.['payment'])?j['payment']:[];if(l['length']>0x0)return undefined;const m=(Array['isArray'](j?.['allocators']?.['allocators'])?j['allocators']['allocators']:[])['map'](p=>String(p?.['guard']??''))['filter'](p=>p),n=new Set();for(const p of Array['isArray'](j?.['allocators']?.['allocators'])?j['allocators']['allocators']:[]){for(const q of Array['isArray'](p?.['sharing'])?p['sharing']:[]){const r=q?.['who'];if(r!==null&&typeof r==='object'){if('GuardIdentifier'in r)n['add']('buyer');else{if('Entity'in r)n['add']('provider');else{if('Signer'in r)n['add']('signer');}}}}}const o=n['size']===0x0?'unknown':n['size']>0x1?'mixed':[...n][0x0];return{'allocation':h,'balance':k['toString'](),'guards':m,'fund_direction':o,'refund_terminal':REFUND_FLAVOR_RE['test'](e)};}catch{return undefined;}}export async function enrichWorkflowGuidance(a){try{let b;if(a['progressRef']['startsWith']('0x'))b=a['progressRef'];else b=await LocalMark['Instance']()['get_address'](a['progressRef'])??undefined;if(!b)return undefined;const c=async()=>(await batchQueryObjectsByIds([b],a['network'],!![]))[0x0];let d=await c();const e=extractObjectVersionFromTx(a['txResult'],b);for(let B=0x0;e!==undefined&&d&&String(d['version']??'')!==e&&B<0x2;B++){await new Promise(D=>setTimeout(D,0x258));const C=await c();if(C)d=C;}const f=d?.['data']??d;if((d?.['type']??f?.['type'])!=='Progress')return undefined;let h=f['current']??'';const i=extractProgressEventNodeFromTx(a['txResult'],b),j=i!==undefined&&h!==i;if(j)h=i;const k=j&&a['dryRun']===!![],l=f['machine'],m=Array['isArray'](f['session'])?f['session']:[],n=(Array['isArray'](f['namedOperator'])?f['namedOperator']['find'](D=>D?.['name']==='')?.['operators']:undefined)??[];if(!l)return undefined;const o=await fetchMachineNodes(l,a['network'],![]);let p,q;try{const D=await batchQueryObjectsByIds([l],a['network'],a['noCache']),E=D[0x0],F=E?.['data']??E,G=F?.['permission'];if(G){const H=await batchQueryObjectsByIds([G],a['network'],a['noCache']),I=H[0x0];p=(I?.['data']??I)?.['description']??undefined,q=await fetchPermissionContext(G,a['network'],a['noCache']);}}catch{}const r=(Array['isArray'](f['namedOperator'])?f['namedOperator']:[])['map'](J=>({'name':String(J?.['name']??''),'operators':(J?.['operators']??[])['map'](K=>String(K))}));let s;f['task']&&(s=await fetchOrderContext(f['task'],a['network'],a['noCache']));const t=s?Array['from'](new Set([s['builder'],...s['agent']])['values']()):n;let u;try{u=await LocalMark['Instance']()['get_address'](a['accountName'])??undefined;}catch{u=undefined;}const v=await makeNameResolver([a['accountName'],...t]);let w;if(u){const J=[...q?.['table']['get'](u)??[]];q?.['admin']['has'](u)&&J['length']===0x0?w='collaborator':w=deriveCommercialRole({'account':u,'order_holder':t['includes'](u)?u:undefined,'held_permission_indexes':J,'named_operator_names':(r??[])['filter'](K=>(K['operators']??[])['some'](L=>L?.['toLowerCase']()===u['toLowerCase']()))['map'](K=>K['name']),'has_active_order':!![]})['role'];}const x={'current':h,'nodes':o,'caller':a['accountName'],'callerAddress':u,'callerRole':w,'orderHolderAddresses':t,'progressNamedOperator':r,'permissionContext':q,'orderContext':s,'permissionDescription':p,'nameResolver':v};let y=buildWorkflowGuidance(x);try{const K=[...new Set(y['options']['map'](L=>L['guard'])['filter'](L=>!!L)['map'](L=>L['toLowerCase']()))];if(K['length']){const L=await batchQueryObjectsByIds(K,a['network'],a['noCache']),M=new Map();for(const N of L){const O=N?.['data']??N,P=String(N?.['object']??'')['toLowerCase']();if(O&&P)M['set'](P,O);}M['size']&&(x['guardRoots']=M,y=buildWorkflowGuidance(x));}}catch{}if(y['options']['length']===0x0){const Q=await fetchTerminalEscrow(f['task'],a['network'],a['noCache'],h);Q&&(x['escrow']=Q,y=buildWorkflowGuidance(x));}let z;a['operate']?.['forward']&&a['operate']?.['next_node_name']&&(z=buildWorkflowReceipt({...x,'callerName':a['accountName']??b,'forward':a['operate']['forward'],'targetNode':a['operate']['next_node_name'],'op':a['operate']['op'],'session':m,'simulated':k,'txDigest':extractTxDigestFromResult(a['txResult']),'signer':u}));if(a['compact']){y['options']['length']&&!z?.['next_guidance']?.['options']['length']&&trimGuidanceProse(y);if(z?.['next_guidance'])trimGuidanceProse(z['next_guidance']);}const A=[z?renderReceiptText(z):undefined,y['options']['length']&&!z?.['next_guidance']?.['options']['length']?renderGuidanceText(y):undefined]['filter'](R=>!!R)['join']('\x0a\x0a');return{'guidance':y,'receipt':z,'text':A};}catch{return undefined;}}export async function resolveHoldableEdges(a){try{let b;if(a['progressRef']['startsWith']('0x'))b=a['progressRef'];else b=await LocalMark['Instance']()['get_address'](a['progressRef'])??undefined;if(!b)return undefined;const c=(await batchQueryObjectsByIds([b],a['network'],!![]))[0x0],d=c?.['data']??c;if((c?.['type']??d?.['type'])!=='Progress')return undefined;const e=typeof d['current']==='string'?d['current']:'',g=d['machine'];if(!g)return undefined;const h=await fetchMachineNodes(g,a['network'],![]);let i;try{const n=await batchQueryObjectsByIds([g],a['network'],a['noCache']),o=(n[0x0]?.['data']??n[0x0])?.['permission'];if(o)i=await fetchPermissionContext(o,a['network'],a['noCache']);}catch{}const j=(Array['isArray'](d['namedOperator'])?d['namedOperator']:[])['map'](p=>({'name':String(p?.['name']??''),'operators':(p?.['operators']??[])['map'](q=>String(q))}));let k;if(d['task'])k=await fetchOrderContext(d['task'],a['network'],a['noCache']);let l;try{l=await LocalMark['Instance']()['get_address'](a['accountName'])??undefined;}catch{l=undefined;}if(!l)return{'current':e,'edges':[]};const m=[];for(const p of h){for(const q of p['pairs']){if(q['prev_node']!==e)continue;for(const r of q['forwards']){if(!r['name'])continue;m['push']({'next_node':p['name'],'forward':r['name'],'weight':r['weight'],'threshold':q['threshold'],'guard':r['guard'],'kind':forwardOperatorKind(r),'holdable':accountCanExecuteForward(r,l,j,k,i)});}}}return{'current':e,'edges':m};}catch{return undefined;}}function trimGuidanceProse(a){for(const b of a['options']??[]){delete b['gains'],delete b['risks'];if(!b['recommended'])delete b['operator']?.['recommended_call']?.['reason'];}}export function mergeGuidanceIntoOutput(a,b,c){if(!b)return a;try{const d=a?.['structuredContent'];if(d&&typeof d==='object'){const e=d['semantic'];if(e&&typeof e==='object'){const f=!!b['receipt']?.['next_guidance']?.['options']?.['length'];b['guidance']&&!f&&(e['workflow_guidance']=b['guidance']);if(b['receipt'])e['workflow_receipt']=b['receipt'];c?.['responseLevel']!=='full'&&(e['workflow_guidance']&&trimGuidanceProse(e['workflow_guidance']),b['receipt']?.['next_guidance']&&trimGuidanceProse(b['receipt']['next_guidance']));}}b['text']&&Array['isArray'](a?.['content'])&&a['content'][0x0]?.['text']!==undefined&&(a['content'][0x0]['text']=b['text']+'\x0a\x0a'+a['content'][0x0]['text']);}catch{}return a;}export async function resolveLocalNamesFor(a){const b=new Map();try{const c=[...new Set((a??[])['filter'](e=>typeof e==='string'&&e['startsWith']('0x')))];if(c['length']===0x0)return{'byAddress':b};const d=await GetLocalNamesByAddresses(c);for(const e of d??[]){const f=e?.['account']||e?.['local_mark'];if(f)b['set'](String(e['address'])['toLowerCase'](),f);}}catch{}return{'byAddress':b};}export async function listLocalAccounts(){try{const a=await query_account_list({'suspended':![]});return(a??[])['filter'](b=>b?.['address'])['map'](b=>({'address':String(b['address']),'name':b['name']??undefined}));}catch{return[];}}export function accountCanExecuteForward(a,b,c,d,e){const g=b['toLowerCase']();if(a['namedOperator']!==undefined&&a['namedOperator']!==null){if(a['namedOperator']===''){if(d&&(g===d['builder']['toLowerCase']()||d['agent']['has'](g)))return!![];}else{if(a['namedOperator']['length']>0x0){const h=a['namedOperator'],i=c['find'](j=>String(j?.['name']??'')===h);if(i?.['operators']?.['some'](j=>String(j)['toLowerCase']()===g))return!![];}}}if(a['permissionIndex']!==undefined&&a['permissionIndex']!==null&&e){if(e['admin']['has'](g))return!![];const j=e['table']['get'](g);if(j?.['has'](a['permissionIndex']))return!![];}return![];}export function forwardOperatorKind(a){if(a['namedOperator']==='')return'order_holder';if(typeof a['namedOperator']==='string'&&a['namedOperator']['length']>0x0)return'named_operator';return'permission_index';}export function namedOperatorRosterNote(a,b){if(a['operator_kind']!=='named_operator'||!a['named_operator'])return undefined;const c=a['named_operator'],d=b['find'](e=>e['name']===c);if(d&&d['operators']['length']>0x0)return undefined;return'Named\x20operator\x20\x27'+c+'\x27\x20has\x20NO\x20on-chain\x20member\x20for\x20this\x20order\x20—\x20executing\x20this\x20forward\x20aborts\x20'+'(Forward\x20permission\x20not\x20defined\x20/\x20E_PERMISSION_DENIED).\x20Seed\x20the\x20per-order\x20roster:\x20'+'onchain_operations\x20operation_type=\x22progress\x22\x20data.progress_namedOperator\x20'+('{op:\x27add\x27,\x20name:\x27'+c+'\x27,\x20operators:[\x27<'+c+'\x20address>\x27]}\x20')+'(the\x20roster\x20is\x20per-Progress\x20—\x20seed\x20it\x20on\x20EVERY\x20new\x20order;\x20the\x20roster-write\x20permission\x20index\x20221\x20must\x20be\x20granted\x20to\x20the\x20seeding\x20signer,\x20which\x20one-click\x20plans\x20grant\x20to\x20the\x20deploy\x20signer)';}export function enumerateActionableForwards(a,b,c,d,e,g){const h=typeof a?.['current']==='string'?a['current']:'',i=new Map();for(const k of Array['isArray'](a?.['session'])?a['session']:[]){const l=String(k?.['next_node']??'');for(const m of Array['isArray'](k?.['forwards'])?k['forwards']:[]){i['set'](l+'|'+String(m?.['forward']??''),{'who':m?.['who']?String(m['who'])['toLowerCase']():null,'accomplished':!!m?.['accomplished']});}}const j=[];for(const n of b){for(const o of n['pairs']){if(o['prev_node']!==h)continue;for(const p of o['forwards']){if(!p['name'])continue;const q=i['get'](n['name']+'|'+p['name']);if(q?.['accomplished'])continue;let r=c['filter'](t=>accountCanExecuteForward(p,t,d,e,g));q?.['who']&&(r=r['filter'](t=>t['toLowerCase']()===q['who'])),j['push']({'next_node':n['name'],'forward':p['name'],'weight':p['weight'],'threshold':o['threshold'],'guard':p['guard'],'operator_kind':forwardOperatorKind(p),'permission_index':p['permissionIndex']??undefined,'named_operator':typeof p['namedOperator']==='string'&&p['namedOperator']['length']>0x0?p['namedOperator']:undefined,'executable_accounts':r['map'](t=>t['toLowerCase']())});}}}return j;}
|