@wowok/agent-mcp 3.3.7 → 3.3.8
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/chain-semantics/fund-flow.js +1 -1
- package/dist/chain-semantics/guard-verbs.js +1 -1
- package/dist/chain-semantics/object-graph.js +1 -1
- package/dist/communication/message-cursors.d.ts +35 -0
- package/dist/communication/message-cursors.js +1 -0
- package/dist/communication/wts-attestation.d.ts +5 -0
- package/dist/communication/wts-attestation.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.d.ts +2 -2
- package/dist/composition/compile.js +1 -1
- package/dist/composition/inflight.d.ts +7 -0
- package/dist/composition/inflight.js +1 -1
- package/dist/composition/materialize.d.ts +4 -1
- package/dist/composition/materialize.js +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.js +1 -1
- package/dist/config/store-policy.d.ts +14 -0
- package/dist/config/store-policy.js +1 -0
- package/dist/config/store-policy.spec.d.ts +1 -0
- package/dist/config/store-policy.spec.js +1 -0
- package/dist/customer/industry-risks.js +1 -1
- package/dist/customer/user-preferences.js +1 -1
- package/dist/evaluation/builtins/graph-service.spec.js +1 -1
- package/dist/evaluation/engine.js +1 -1
- package/dist/experience/realtime-feedback.js +1 -1
- package/dist/extensions/business-modules.d.ts +1 -1
- package/dist/extensions/business-modules.js +1 -1
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/extensions/modes.js +1 -1
- package/dist/graph/onchain/analyze.js +1 -1
- package/dist/graph/onchain/expand.js +1 -1
- package/dist/graph/onchain/exposure.js +1 -1
- package/dist/graph/onchain/facts.d.ts +1 -0
- package/dist/graph/onchain/facts.js +1 -1
- package/dist/graph/onchain/facts.spec.js +1 -1
- package/dist/harness/recover.js +1 -1
- package/dist/knowledge/acquisition-flywheel.js +1 -1
- package/dist/knowledge/allocation-ledger.d.ts +1 -0
- package/dist/knowledge/allocation-ledger.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.d.ts +6 -2
- package/dist/knowledge/allocator-rail-verifier.js +1 -1
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +37 -0
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/plan.json +32 -2
- package/dist/knowledge/builtin-templates.d.ts +13 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/commission-landing.d.ts +26 -0
- package/dist/knowledge/commission-landing.js +1 -0
- package/dist/knowledge/discount-threshold.js +1 -1
- package/dist/knowledge/fund-layer.d.ts +7 -0
- package/dist/knowledge/fund-layer.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-design-patterns.d.ts +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-puzzle.js +1 -1
- package/dist/knowledge/guard-render.d.ts +7 -0
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +1 -1
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/guard-translation.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-generalizer.js +1 -1
- package/dist/knowledge/industry-registry.d.ts +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/industry-strategy.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/machine-fork-watch.d.ts +9 -0
- package/dist/knowledge/machine-fork-watch.js +1 -0
- package/dist/knowledge/migration-preflight.js +1 -1
- package/dist/knowledge/projection.spec.js +1 -1
- package/dist/knowledge/scenario-modes.d.ts +8 -2
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/semantic-ir.d.ts +24 -5
- package/dist/knowledge/semantic-ir.js +1 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/strategy-manuals.js +1 -1
- package/dist/knowledge/template-index.js +1 -1
- package/dist/knowledge/template-loader.d.ts +11 -0
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.d.ts +4 -2
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/template-validation.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/monitor/MonitorLoop.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.d.ts +12 -6
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/migration-planner.d.ts +10 -2
- package/dist/playbooks/service-build/migration-planner.js +1 -1
- package/dist/playbooks/service-build/mode-actions.d.ts +1 -0
- package/dist/playbooks/service-build/mode-actions.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/playbooks/service-build/service-quote.spec.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 +72 -1
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/allocation.d.ts +3 -0
- package/dist/schema/call/allocation.js +1 -1
- package/dist/schema/call/base.d.ts +24 -0
- package/dist/schema/call/bridge.d.ts +6 -0
- package/dist/schema/call/error-codes.d.ts +1 -1
- package/dist/schema/call/error-codes.js +1 -1
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/config/index.d.ts +24 -0
- package/dist/schema/config/index.js +1 -1
- package/dist/schema/goal/index.d.ts +14 -0
- package/dist/schema/goal/planning.d.ts +26 -0
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +9 -1
- package/dist/schema/industry-pack/modes.d.ts +9 -1
- package/dist/schema/industry-pack/modes.js +1 -1
- package/dist/schema/local/index.d.ts +60 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.d.ts +278 -1
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +1 -0
- package/dist/schema/query/bi.d.ts +38 -0
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +3 -0
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/service-clone/index.d.ts +17 -0
- package/dist/schema/service-clone/index.js +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +6 -0
- package/dist/schemas/benchmark_migration_operation.output.json +254 -2
- package/dist/schemas/benchmark_migration_operation.schema.json +87 -5
- package/dist/schemas/bridge_operation.output.json +6 -0
- package/dist/schemas/config_operation.output.json +95 -0
- package/dist/schemas/config_operation.schema.json +16 -1
- package/dist/schemas/goal_operation.schema.json +22 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/industry_pack_operation.output.json +4 -0
- package/dist/schemas/industry_pack_operation.schema.json +40 -3
- package/dist/schemas/local_cache_operation.output.json +6 -0
- package/dist/schemas/local_history_operation.output.json +6 -0
- package/dist/schemas/local_info_operation.output.json +6 -0
- package/dist/schemas/local_mark_operation.output.json +6 -0
- package/dist/schemas/messenger_operation.output.json +609 -1
- package/dist/schemas/messenger_operation.schema.json +96 -1
- package/dist/schemas/onchain_operations.output.json +6 -0
- package/dist/schemas/onchain_operations.schema.json +334 -7
- package/dist/schemas/onchain_operations_allocation.schema.json +10 -1
- package/dist/schemas/onchain_operations_guard.schema.json +318 -0
- package/dist/schemas/onchain_operations_order.schema.json +1 -1
- package/dist/schemas/onchain_operations_service.schema.json +5 -5
- package/dist/schemas/query_toolkit.output.json +271 -8
- package/dist/schemas/service_clone_operation.output.json +79 -0
- package/dist/tools/handlers/benchmark-migration.d.ts +14 -0
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/messenger.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +19 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/query.d.ts +1 -0
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/service-clone.d.ts +18 -0
- package/dist/tools/handlers/service-clone.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{strictParse}from'../../schema/index.js';import{BenchmarkMigrationSchema}from'../../schema/benchmark-migration/index.js';import{getTemplate,listTemplates,validateAllocatorRows,platformShareBps,builtinTemplateDrift}from'../../knowledge/template-loader.js';import{BUILTIN_TEMPLATES,BUILTIN_TEMPLATES_VERSION}from'../../knowledge/builtin-templates.js';import{scanTemplate,buildFeeParamLandingTable}from'../../knowledge/template-scanner.js';import{planMigration}from'../../playbooks/service-build/migration-planner.js';import{handleMerchantGuide}from'../../playbooks/service-build/merchant-guide.js';import{inferArbitration}from'../../playbooks/service-build/intent-analyzer.js';import{getIndustryModeRegistry}from'../../extensions/index.js';import{resolveIndustryName}from'../../knowledge/industry-registry.js';import{claimNumber,normalizeSemanticIR}from'../../knowledge/semantic-ir.js';import{handleRecommendIndustry}from'../../playbooks/service-build/mode-actions.js';function templateSummary(a){return{'id':a['id'],'industry':a['industry'],'variant':a['variant'],'product_ref':a['product_ref'],'archetype':a['archetype'],'key_risk':a['key_risk'],'node_count':a['machine_shape']['length'],'guard_count':a['guards']['length'],'recommended_role':a['recommended_role']};}function templateGetAids(a){const b=a['machine_shape']['some'](c=>c['name']==='reviewed');return{'claim_anchor':b?'review_node+final':'final_only','claim_anchor_note':b?'machine_shape\x20mounts\x20a\x20\x27reviewed\x27\x20node\x20—\x20the\x20buyer\x27s\x20structured\x20review\x20rides\x20that\x20node\x20alongside\x20the\x20final\x20settlement.':'no\x20\x27reviewed\x27\x20node\x20—\x20sanctioned\x20variant:\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only\x20(no\x20separate\x20review\x20stop).','allocator_count_note':'allocator.count\x20=\x20'+a['allocator']['count']+'\x20counts\x20SETTLEMENT-track\x20legs\x20only;\x20refund-track\x20legs\x20(rows[]\x20with\x20track:\x22refund\x22)\x20are\x20additional\x20and\x20NOT\x20included\x20in\x20this\x20count.\x20rows[]\x20carries\x20the\x20complete\x20executable\x20split\x20plan.','onchain_field_notes':['passport.impack\x20—\x20the\x20on-chain\x20field\x20is\x20spelled\x20`impack`\x20(passport.move,\x20packed\x20business\x20objects\x20in\x20the\x20passport\x20verification\x20context).\x20It\x20is\x20the\x20contract\x27s\x20own\x20field\x20name,\x20not\x20a\x20typo;\x20echo\x20it\x20verbatim.']};}function requireTemplate(a,b){if(!a)throw new Error('\x27template_id\x27\x20is\x20required\x20for\x20action=\x27'+b+'\x27');const c=getTemplate(a);if(!c)throw new Error('Unknown\x20template\x20id:\x20'+a+'\x20(use\x20action=\x27template_list\x27\x20to\x20see\x20valid\x20ids)');return c;}function driftFace(a){const b=builtinTemplateDrift()['find'](c=>c['template']===a);if(!b){const c=BUILTIN_TEMPLATES['some'](d=>d['id']===a);return c?{'template':a,'state':'current','catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':![],'repairable':![],'detail':'disk\x20body\x20matches\x20the\x20shipped\x20catalog\x20(hash-verified\x20sentinel)'}:{'template':a,'state':'untracked','catalog_version':undefined,'blocked':![],'repairable':![],'detail':'user-authored\x20template\x20—\x20no\x20builtin\x20catalog\x20binding\x20to\x20compare\x20against'};}return{'template':b['template'],'state':b['state'],'catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':!![],'repairable':b['repairable'],'detail':b['detail']};}function scanSummary(a,b){const c={};for(const d of a['findings'])c[d['severity']]=(c[d['severity']]??0x0)+0x1;return{'template_id':a['template_id'],'risk_level':a['risk_level'],'preflight_scan_passed':a['red_flags']['length']===0x0,'finding_count':a['findings']['length'],'findings_by_severity':c,'red_flags':a['red_flags'],'findings':a['findings'],'drift':b};}function assertScanPassed(a,b){const c=a['red_flags'];if(a['passed']||c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20CRITICAL\x20risk\x20—\x20'+c['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}const GENERATE_HIGH_TOLERATED=new Set([]);function assertGenerateScanPassed(a,b){assertScanPassed(a,b);if(b!=='template_generate')return;const c=generateHighBlockers(a['template_id'],a['findings']);if(c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20'+c['length']+'\x20HIGH\x20finding(s)\x20—\x20'+c['map'](d=>(d['rule_id']??'HIGH')+':\x20'+d['title'])['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}function generateHighBlockers(a,b){return b['filter'](c=>c['severity']==='high'&&!(c['rule_id']&&GENERATE_HIGH_TOLERATED['has'](a+'/'+c['rule_id'])));}export function buildVerdict(a,b,c){const d=[];!a['preflight_scan_passed']&&d['push']('scan:\x20'+(a['findings_by_severity']['critical']??0x0)+'\x20CRITICAL\x20finding(s)\x20(preflight\x20scan\x20failed)');if(c){const h=generateHighBlockers(a['template_id'],a['findings']??[]);h['length']>0x0&&d['push']('scan:\x20'+h['length']+'\x20HIGH\x20finding(s)\x20—\x20template_generate\x20would\x20refuse\x20(N-21):\x20'+h['map'](i=>((i['rule_id']??'HIGH')+':\x20'+(i['title']??''))['trim']())['join'](';\x20'));}const e=b['graph_validation'];if(e&&e['valid']===![]){const i=Array['isArray'](e['hard_violations'])?e['hard_violations']['length']:0x0,j=Array['isArray'](e['hard_violations'])?e['hard_violations']['map'](k=>k['id'])['join'](',\x20'):'';d['push']('graph_validation:\x20'+i+'\x20hard\x20violation(s)'+(j?'\x20('+j+')':''));}const f=b['audit'];if(f&&f['blocking']===!![]){const k=(f['findings']??[])['filter'](l=>l['level']==='critical'||l['level']==='high');d['push'](k['length']===0x0?'audit:\x20guide\x20audit\x20flagged\x20blocking\x20issue(s)\x20(plan.audit)':'audit:\x20'+k['length']+'\x20blocking\x20finding(s)\x20—\x20'+k['slice'](0x0,0x5)['map'](l=>((l['rule_id']??'?')+':\x20'+(l['title']??''))['trim']())['join'](';\x20')+(k['length']>0x5?'\x20(+'+(k['length']-0x5)+'\x20more\x20in\x20plan.audit.findings)':''));}const g=d['length']===0x0;return{'buildable':g,'blockers':d,'status':g?'READY':'BLOCKED'};}async function templateScanDryRun(a){const b=[{'name':'scan-probe','price':'1000000000','quantity':0x1}],c=a['review_mode']==='review_reward'?{'review_mode':'review_reward','reward_funding':'20000000','reward_claim_amount':'1000000'}:undefined;try{const d=await runGuide(a,undefined,undefined,undefined,c,b),f=buildVerdict(scanSummary(scanTemplate(a)),d,!![]);return{'status':f['buildable']?'ready':'blocked','buildable':f['buildable'],'blockers':f['blockers'],'note':'Compile\x20dry-run\x20on\x20synthetic\x20probe\x20inputs\x20(single\x20probe\x20SKU,\x20benchmark\x20reward\x20funding),\x20mirrored\x20to\x20the\x20template_generate\x20gate\x20(CRITICAL\x20+\x20N-21\x20HIGH\x20+\x20graph\x20+\x20audit).\x20Structural\x20blockers\x20are\x20REAL\x20—\x20the\x20generate\x20face\x20refuses\x20for\x20the\x20same\x20reason.\x20Blockers\x20naming\x20caller\x20inputs\x20(fee_overrides\x20/\x20guard_resolutions\x20/\x20catalog)\x20may\x20clear\x20with\x20real\x20values.'};}catch(g){return{'status':'unavailable','note':'Compile\x20dry-run\x20could\x20not\x20run\x20on\x20synthetic\x20probe\x20inputs\x20('+(g instanceof Error?g['message']:String(g))+').\x20This\x20is\x20a\x20probe\x20limitation,\x20NOT\x20a\x20template\x20verdict\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};}}export function planNextAction(a,b,c){const d=a['next_action'];if(typeof d==='string'&&d['startsWith']('Plan\x20ready.'))return d;if(c?.['buildable']){const f=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20is\x20buildable\x20(verdict.buildable=true).\x20Materialize\x20the\x20objects\x20in\x20plan.steps\x20order'+(f>0x0?',\x20resolving\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20before\x20the\x20Machine\x20publish':'')+'.';}const e=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20'+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(e>0x0?'Resolve\x20the\x20'+e+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');}function templateIntent(a,b){if(b&&b['trim']())return b['trim']();return'Adopt\x20the\x20'+a['id']+'\x20industry\x20archetype\x20template\x20('+a['archetype']+')\x20for\x20the\x20'+a['industry']+'\x20industry.\x20'+('Primary\x20risk\x20to\x20mitigate:\x20'+a['key_risk']+'.');}function effectiveFeeParams(a,b){return{...a['fee_params'],...b??{}};}const REWARD_POOL_PATTERNS=[/(?:reward|review|bonus|tip|prize)[\s-]*pools?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:reward|review|bonus|tip|prize)[\s-]*pools?\b/i];export function extractRewardPoolCandidate(a){if(!a)return undefined;for(const b of REWARD_POOL_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function rewardPoolPrefill(a,b,c,d){if(a['fee_params']['review_reward_pool']===undefined)return undefined;if(c?.['review_reward_pool']!==undefined)return undefined;const e=d?claimNumber(d,'reward_pool_amount'):undefined;if(e!==undefined)return{'fee_key':'review_reward_pool','value':e,'claim_source':'semantic_ir'};const f=extractRewardPoolCandidate(b);return f===undefined?undefined:{'fee_key':'review_reward_pool','value':f};}function validateFeeParams(a,b){const c=[];let d=0x0;for(const [e,f]of Object['entries'](a)){if(typeof f!=='number'||!Number['isFinite'](f))continue;if(e['endsWith']('_bps')){(!Number['isInteger'](f)||f<0x0||f>0x2710)&&c['push'](e+'='+f+'\x20is\x20not\x20an\x20integer\x20rate\x20in\x20[0,\x2010000]\x20bps');if(e['endsWith']('_share_bps'))d+=Math['max'](0x0,f);}else{if(e['endsWith']('_days')){if(f<=0x0||f>0xe42)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x203650]\x20days');}else{if(e['endsWith']('_hours')){if(f<=0x0||f>0x2238)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x208760]\x20hours');}}}}if(d>0x2710)c['push']('*_share_bps\x20sum\x20'+d+'\x20exceeds\x2010000\x20(a\x20pool\x20splits\x20into\x20at\x20most\x20100%)');if(c['length']>0x0)throw new Error('invalid\x20fee\x20parameters\x20for\x20template\x20\x27'+b+'\x27:\x20'+c['join'](';\x20')+'.\x20'+'Correct\x20the\x20template\x27s\x20fee_params\x20or\x20pass\x20valid\x20\x27fee_overrides\x27.');}export{validateAllocatorRows};export function variantPaymentModel(a){if(a['payment_model'])return a['payment_model'];const b=a['allocator']['rows']??[];if(b['some'](d=>d['track']==='refund'))return'escrow';const c=a['machine_shape']['map'](d=>d['name'])['join']('\x20')['toLowerCase']();if(/\b(milestone|revision|revis|draft|deliverable)\b/['test'](c))return'milestone';if(/\b(charge|renew|subscription|cycle|billing|monthly)\b/['test'](c))return'subscription';return'escrow';}function variantRefundPolicy(a){const b=a['allocator']['description']['toLowerCase']();if(/full[ -]?refund|100% refund|refund .*100/['test'](b))return'full';if(/pro-?rata|prorated/['test'](b))return'milestone_prorated';if(/partial/['test'](b))return'partial';return undefined;}export function variantDeliverables(a,b){const c=a['machine_shape']['filter'](g=>g['semantic_role']==='final'),d=c[c['length']-0x1]??[...a['machine_shape']]['reverse']()['find'](g=>!/refund|cancel|dispute|terminat/i['test'](g['name']+'\x20'+g['role']))??a['machine_shape'][a['machine_shape']['length']-0x1],e=b?.['has_logistics']?'physical':b?.['pure_digital']?'digital':'service_session',f=(a['guards']??[])['filter'](h=>/repository_data_check|required_info_evidence_gate|allocator_order_anchor/['test'](h['template_id']));return[{'name':a['variant']+'\x20fulfillment','type':e,'acceptanceCriteria':'Order\x20reaches\x20the\x20terminal\x20workflow\x20node\x20\x27'+d['name']+'\x27\x20('+d['role']+')','proofOfDelivery':f['length']>0x0?'wip_hash':'manual_confirm'}];}function validateConditionalParams(a,b){for(const d of a['conditional_guards']??[]){const e=b[d['param']];if(e===undefined)continue;if(typeof e!=='string'||!d['values']['includes'](e))throw new Error('invalid\x20\x27'+d['param']+'='+String(e)+'\x27\x20for\x20template\x20\x27'+a['id']+'\x27:\x20must\x20be\x20one\x20of\x20'+d['values']['map'](f=>'\x27'+f+'\x27')['join']('\x20|\x20')+('\x20(the\x20guard\x20variant\x20mounts\x20at\x20\x27'+d['emit_value']+'\x27)'));}}async function runGuide(a,b,c,d,e,f,g){const h=effectiveFeeParams(a,c),i=rewardPoolPrefill(a,b,c,g);if(i)h[i['fee_key']]=i['value'];validateFeeParams(h,a['id']),validateConditionalParams(a,h);const j=getIndustryModeRegistry()['getMode'](a['industry']),k=platformShareBps(h),l={'model':variantPaymentModel(a)},m=[],n=(a['allocator']['rows']?.['length']??0x0)>0x0;if(k!==undefined&&k>0x0&&!n&&a['allocator']['mode']==='rate'){const r=Math['round'](k)/0x64;m['push']({'recipient':'merchant','percentage':Math['round']((0x64-r)*0x64)/0x64}),m['push']({'recipient':'platform','percentage':r}),l['allocation']=m;}const o=variantRefundPolicy(a),p={'escrow':!![]};if(o)p['refundPolicy']=o;p['arbitration']=a['arbitration_mode']??p['arbitration']??inferArbitration(templateIntent(a,b));const q=await handleMerchantGuide({'intent':templateIntent(a,b),'guide_confirm':{'industry':a['industry'],'payment':l,'trust':p,'deliverables':variantDeliverables(a,j?.['traits']),...d&&Object['keys'](d)['length']>0x0?{'guard_resolutions':d}:{},...e?.['review_mode']?{'review_mode':e['review_mode']}:{},...e?.['reward_funding']!==undefined?{'reward_funding':e['reward_funding']}:{},...e?.['reward_claim_amount']!==undefined?{'reward_claim_amount':e['reward_claim_amount']}:{},...e?.['after_sales_mode']?{'after_sales_mode':e['after_sales_mode']}:{},...e?.['acceptance_mode']?{'acceptance_mode':e['acceptance_mode']}:{},...e?.['installment_mode']?{'installment_mode':e['installment_mode']}:{},...e?.['affiliate_mode']?{'affiliate_mode':e['affiliate_mode']}:{},...e?.['crowdfunding_mode']?{'crowdfunding_mode':e['crowdfunding_mode']}:{},...f?.['length']?{'sales':f}:{}},'template_override':{...a,'fee_params':h},'name_base':a['id']});if(a['allocator']['rows']?.['length'])q['template_allocator_rows']=a['allocator']['rows']['map'](s=>({...s}));q['template']={'id':a['id'],'archetype':a['archetype'],'recommended_role':a['recommended_role'],'fee_params':h},q['template_fee_param_landings']=buildFeeParamLandingTable(a,h);if(c&&Object['keys'](c)['length']>0x0)q['template_fee_overrides']=c;if(i){q['fee_overrides_prefill']=i;const s=i['claim_source']==='semantic_ir'?'\x20(from\x20the\x20semantic\x20IR\x20claim)':'';q['next_action']=q['next_action']+'\x20Reward\x20pool\x20prefilled\x20from\x20your\x20request:\x20'+i['value']+s+'\x20—\x20adjust\x20via\x20fee_overrides.';}return q;}export async function handleBenchmarkMigrationOperation(a){const b=strictParse(BenchmarkMigrationSchema,a,'benchmark_migration_operation\x20input'),c=b['industry']?resolveIndustryName(b['industry'])??b['industry']['toLowerCase']():undefined,d=b['semantic_ir']?normalizeSemanticIR(b['semantic_ir']):undefined,e=d?{'semantic_ir_digest':d['digest'],...d['issues']['length']>0x0?{'semantic_ir_issues':d['issues']}:{}}:undefined;let f;switch(b['action']){case'template_list':{const {templates:g,errors:h}=listTemplates(),i=c?g['filter'](k=>k['industry']===c):g,j=new Map(builtinTemplateDrift()['map'](k=>[k['template'],k['state']]));f={'action':'template_list','count':i['length'],'templates':i['map'](k=>({...templateSummary(k),'disk_state':j['get'](k['id'])??(BUILTIN_TEMPLATES['some'](l=>l['id']===k['id'])?'current':'untracked')})),'load_errors':h};break;}case'template_get':{const k=requireTemplate(b['template_id'],'template_get');f={'action':'template_get','template':{...k,...templateGetAids(k)}};break;}case'template_generate':{const l=requireTemplate(b['template_id'],'template_generate'),m=b['review_mode']??l['review_mode']??'none';if(m==='review_reward'&&!b['reward_funding'])return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20Template\x20\x27'+l['id']+'\x27\x20resolves\x20to\x20review_mode\x20\x27review_reward\x27\x20(input'+(b['review_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20promises\x20buyers\x20a\x20claimable\x20review\x20bounty\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship.\x20Pass\x20reward_funding\x20(smallest-unit\x20string),\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20review\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).'}],'structuredContent':{'result':{'type':'error','error':'review_mode\x20\x27'+m+'\x27\x20without\x20reward_funding\x20(INV-4)\x20on\x20template\x20\x27'+l['id']+'\x27.','error_code':'reward_funding_required','retryable':!![],'recovery_hint':'Pass\x20reward_funding\x20=\x20expected\x20orders\x20x\x20per-order\x20reward\x20(fee_param\x20review_reward_pool\x20is\x20the\x20planning\x20benchmark),\x20or\x20re-send\x20with\x20review_mode:\x27review\x27\x20(rail\x20only)\x20/\x20\x27none\x27\x20(no\x20rail).'},'message':'Refused:\x20a\x20review_reward\x20build\x20requires\x20a\x20funded\x20reward\x20pool.\x20See\x20recovery_hint.'}};if(!Array['isArray'](b['sales'])||b['sales']['length']===0x0)return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20The\x20sellable\x20catalog\x20(sales)\x20is\x20required:\x20a\x20plan\x20without\x20one\x20publishes\x20a\x20Service\x20frozen\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts\x20(PLAN-SALES-01).\x20List\x20at\x20least\x20one\x20SKU:\x20{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}\x20—\x20price\x20in\x20smallest\x20units.'}],'structuredContent':{'result':{'type':'error','error':'template_generate\x20without\x20a\x20non-empty\x20sales\x20catalog\x20(PLAN-SALES-01\x20upgraded\x20to\x20an\x20input\x20requirement,\x20amz9\x20A-2).','error_code':'sales_required','retryable':!![],'recovery_hint':'Pass\x20sales:\x20[{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}]\x20—\x20one\x20entry\x20per\x20sellable\x20SKU\x20(wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload).\x20migration_apply\x20is\x20unaffected:\x20it\x20confirms\x20an\x20already-reviewed\x20import.'},'message':'Refused:\x20template_generate\x20requires\x20a\x20sellable\x20catalog.\x20See\x20recovery_hint.'}};const n=scanTemplate(l);assertGenerateScanPassed(n,'template_generate');const o=await runGuide(l,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const p=scanSummary(n,driftFace(l['id'])),q=buildVerdict(p,o);return{'action':'template_generate','template_id':l['id'],...e,'scan':p,'plan':o,'verdict':q,'next_action':planNextAction(o,'template_generate',q)};})());break;}case'template_scan':{const p=requireTemplate(b['template_id'],'template_scan'),q=await templateScanDryRun(p);f={'action':'template_scan','scan':{...scanTemplate(p),'drift':driftFace(p['id']),'compile_dry_run':q}};break;}case'migration_import':{if(!b['description']||!b['description']['trim']())throw new Error('\x27description\x27\x20is\x20required\x20for\x20action=\x27migration_import\x27');const r=d?handleRecommendIndustry({'intent':b['description'],'semantic_ir':b['semantic_ir']}):undefined,s=planMigration({'url':b['url'],'description':b['description'],'industry':c,'ir_industry':c?undefined:r?.['recommendations'][0x0]?.['industry'],'network':b['network']});if(!s)throw new Error('No\x20industry\x20template\x20matched\x20the\x20description.\x20Refine\x20the\x20description\x20or\x20pass\x20an\x20explicit\x20\x27industry\x27\x20hint'+(d?',\x20or\x20provide\x20semantic_ir\x20with\x20trait/domain\x20evidence.':'\x20(or\x20provide\x20semantic_ir\x20for\x20a\x20non-English\x20description).'));f={'action':'migration_import','log':s,...r?{'inference_source':r['inference_source']}:{},...e,'next_action':'MigrationLog\x20ready.\x20Next:\x20call\x20action=\x27migration_review\x27\x20with\x20this\x20log\x20to\x20surface\x20the\x20mapped/unmapped/manual_review\x20items\x20for\x20user\x20confirmation.'};break;}case'migration_review':{if(!b['log'])throw new Error('\x27log\x27\x20is\x20required\x20for\x20action=\x27migration_review\x27');const t=b['log'],u=Array['isArray'](t['mapped'])?t['mapped']:[],v=Array['isArray'](t['unmapped'])?t['unmapped']:[],w=Array['isArray'](t['manual_review'])?t['manual_review']:[],x=t['risk_check']??{},y=t['source']?.['matched_template']??'',z=v['length']===0x0&&w['length']===0x0&&x['passed']===!![];f={'action':'migration_review','log':t,'review_summary':{'mapped_count':u['length'],'unmapped_count':v['length'],'manual_review_count':w['length'],'risk_passed':x['passed']===!![]},'next_action':z?'Review\x20clean.\x20Proceed:\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+y+'\x27\x20to\x20produce\x20the\x20creation\x20plan\x20(network\x20defaults\x20to\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).':'Surface\x20the\x20'+v['length']+'\x20unmapped\x20and\x20'+w['length']+'\x20manual_review\x20items'+(x['passed']===!![]?'':'\x20plus\x20the\x20risk_check\x20findings')+'\x20to\x20the\x20user\x20for\x20a\x20decision\x20before\x20action=\x27migration_apply\x27\x20(template_id=\x27'+y+'\x27).'};break;}case'migration_apply':{const A=requireTemplate(b['template_id'],'migration_apply'),B=scanTemplate(A);assertScanPassed(B,'migration_apply');const C=b['network']??'testnet',D=await runGuide(A,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const E=scanSummary(B,driftFace(A['id'])),F=buildVerdict(E,D);return{'action':'migration_apply','template_id':A['id'],'network':C,...e,'scan':E,'plan':D,'verdict':F,'next_action':planNextAction(D,'migration_apply',F)};})());break;}default:throw new Error('Unknown\x20benchmark_migration_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':f})}],'structuredContent':{'result':f}};}
|
|
1
|
+
import{strictParse}from'../../schema/index.js';import{BenchmarkMigrationSchema}from'../../schema/benchmark-migration/index.js';import{getTemplate,listTemplates,validateAllocatorRows,platformShareBps,builtinTemplateDrift}from'../../knowledge/template-loader.js';import{BUILTIN_TEMPLATES,auditTemplateOnceSlotArms,BUILTIN_TEMPLATES_VERSION,DISCOVERY_PRODUCT_REFS,DISCOVERY_TAG_VOCABULARY,discoveryTagsForTemplate}from'../../knowledge/builtin-templates.js';import{landPlatformCommission}from'../../knowledge/commission-landing.js';import{scanTemplate,buildFeeParamLandingTable}from'../../knowledge/template-scanner.js';import{planMigration}from'../../playbooks/service-build/migration-planner.js';import{handleMerchantGuide}from'../../playbooks/service-build/merchant-guide.js';import{inferArbitration}from'../../playbooks/service-build/intent-analyzer.js';import{getIndustryModeRegistry}from'../../extensions/index.js';import{listIndustries,resolveIndustryName}from'../../knowledge/industry-registry.js';import{claimNumber,discoverySignal,normalizeSemanticIR}from'../../knowledge/semantic-ir.js';import{handleRecommendIndustry}from'../../playbooks/service-build/mode-actions.js';import{handlerExecutor,materializePlan}from'../../composition/materialize.js';import{join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{computeSrcDistStaleness}from'../upgrade-check.js';const __dirname=dirname(fileURLToPath(import.meta.url));export function staleBuildFace(a=join(__dirname,'..','..','..','src'),b=join(__dirname,'..','..','..','dist')){let c=null;try{c=computeSrcDistStaleness(a,b,{'srcExt':'.ts','distExt':'.js'});}catch{c=null;}if(!c)return{'stale':![],'known':![],'lag_minutes':null,'detail':'Stale-build\x20state\x20UNKNOWN\x20—\x20the\x20src/dist\x20trees\x20were\x20not\x20both\x20resolvable\x20(installed\x20dist-only\x20'+'package\x20or\x20a\x20build\x20in\x20progress),\x20so\x20template\x20freshness\x20could\x20not\x20be\x20verified.\x20Treat\x20the\x20'+'scan/plan\x20verdicts\x20as\x20unconfirmed.'};if(!c['stale'])return{'stale':![],'known':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20current\x20with\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime\x20lag\x20'+c['lag_minutes']+'\x20'+'minute(s))\x20—\x20the\x20scan/plan\x20verdicts\x20reflect\x20this\x20workspace\x20checkout.'};return{'stale':!![],'known':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20'+c['lag_minutes']+'\x20minute(s)\x20OLDER\x20than\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime)\x20'+'—\x20the\x20scan/plan\x20above\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20Rebuild\x20(pnpm\x20build)\x20and\x20re-run\x20'+'before\x20acting\x20on\x20these\x20verdicts.'};}function templateSummary(a){return{'id':a['id'],'industry':a['industry'],'variant':a['variant'],'product_ref':a['product_ref'],'archetype':a['archetype'],'key_risk':a['key_risk'],'node_count':a['machine_shape']['length'],'guard_count':a['guards']['length'],'recommended_role':a['recommended_role'],'tags':discoveryTagsForTemplate(a['id'])};}function templateGetAids(a){const b=a['machine_shape']['some'](c=>c['name']==='reviewed');return{'claim_anchor':b?'review_node+final':'final_only','claim_anchor_note':b?'machine_shape\x20mounts\x20a\x20\x27reviewed\x27\x20node\x20—\x20the\x20buyer\x27s\x20structured\x20review\x20rides\x20that\x20node\x20alongside\x20the\x20final\x20settlement.':'no\x20\x27reviewed\x27\x20node\x20—\x20sanctioned\x20variant:\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only\x20(no\x20separate\x20review\x20stop).','allocator_count_note':'allocator.count\x20=\x20'+a['allocator']['count']+'\x20counts\x20SETTLEMENT-track\x20legs\x20only;\x20refund-track\x20legs\x20(rows[]\x20with\x20track:\x22refund\x22)\x20are\x20additional\x20and\x20NOT\x20included\x20in\x20this\x20count.\x20rows[]\x20carries\x20the\x20complete\x20executable\x20split\x20plan.','onchain_field_notes':['passport.impack\x20—\x20the\x20on-chain\x20field\x20is\x20spelled\x20`impack`\x20(passport.move,\x20packed\x20business\x20objects\x20in\x20the\x20passport\x20verification\x20context).\x20It\x20is\x20the\x20contract\x27s\x20own\x20field\x20name,\x20not\x20a\x20typo;\x20echo\x20it\x20verbatim.']};}function requireTemplate(a,b){if(!a)throw new Error('\x27template_id\x27\x20is\x20required\x20for\x20action=\x27'+b+'\x27');const c=getTemplate(a);if(!c)throw new Error('Unknown\x20template\x20id:\x20'+a+'\x20(use\x20action=\x27template_list\x27\x20to\x20see\x20valid\x20ids)');return c;}function driftFace(a){const b=builtinTemplateDrift()['find'](c=>c['template']===a);if(!b){const c=BUILTIN_TEMPLATES['some'](d=>d['id']===a);return c?{'template':a,'state':'current','catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':![],'repairable':![],'detail':'disk\x20body\x20matches\x20the\x20shipped\x20catalog\x20(hash-verified\x20sentinel)'}:{'template':a,'state':'untracked','catalog_version':undefined,'blocked':![],'repairable':![],'detail':'user-authored\x20template\x20—\x20no\x20builtin\x20catalog\x20binding\x20to\x20compare\x20against'};}return{'template':b['template'],'state':b['state'],'catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':!![],'repairable':b['repairable'],'detail':b['detail']};}function withOnceSlotAdvisories(a){try{const b=auditTemplateOnceSlotArms()['find'](c=>c['template_id']===a['template_id']);if(!b)return a;return{...a,'findings':[...a['findings'],{'rule_id':'R-ONCE-SLOT-ARM-254','severity':'medium','title':'Once-slot\x20arming\x20on\x20a\x20periodic\x20rail\x20('+b['kind']+')','detail':b['message'],'suggestion':'Arm\x20the\x20re-enterable\x20settlement/renewal\x20guard\x20with\x20identifier\x20255\x20plus\x20a\x20per-period\x20key\x20(period-<N>\x20from\x20chain\x20state,\x20e.g.\x20progress\x20history\x20count)\x20and\x20have\x20the\x20trigger\x20Passport\x20submit\x20the\x20same\x20value;\x20keep\x20254\x20for\x20one-shot-per-order\x20rails\x20only.\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'}]};}catch{return a;}}function scanSummary(a,b){a=withOnceSlotAdvisories(a);const c={};for(const d of a['findings'])c[d['severity']]=(c[d['severity']]??0x0)+0x1;return{'template_id':a['template_id'],'risk_level':a['risk_level'],'preflight_scan_passed':a['red_flags']['length']===0x0,'finding_count':a['findings']['length'],'findings_by_severity':c,'red_flags':a['red_flags'],'findings':a['findings'],'drift':b};}function assertScanPassed(a,b){const c=a['red_flags'];if(a['passed']||c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20CRITICAL\x20risk\x20—\x20'+c['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}const GENERATE_HIGH_TOLERATED=new Set([]);function assertGenerateScanPassed(a,b){assertScanPassed(a,b);if(b!=='template_generate')return;const c=generateHighBlockers(a['template_id'],a['findings']);if(c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20'+c['length']+'\x20HIGH\x20finding(s)\x20—\x20'+c['map'](d=>(d['rule_id']??'HIGH')+':\x20'+d['title'])['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}function generateHighBlockers(a,b){return b['filter'](c=>c['severity']==='high'&&!(c['rule_id']&&GENERATE_HIGH_TOLERATED['has'](a+'/'+c['rule_id'])));}export function buildVerdict(a,b,c){const d=[];!a['preflight_scan_passed']&&d['push']('scan:\x20'+(a['findings_by_severity']['critical']??0x0)+'\x20CRITICAL\x20finding(s)\x20(preflight\x20scan\x20failed)');if(c){const j=generateHighBlockers(a['template_id'],a['findings']??[]);j['length']>0x0&&d['push']('scan:\x20'+j['length']+'\x20HIGH\x20finding(s)\x20—\x20template_generate\x20would\x20refuse\x20(N-21):\x20'+j['map'](k=>((k['rule_id']??'HIGH')+':\x20'+(k['title']??''))['trim']())['join'](';\x20'));}const e=b['graph_validation'];if(e&&e['valid']===![]){const k=Array['isArray'](e['hard_violations'])?e['hard_violations']['length']:0x0,l=Array['isArray'](e['hard_violations'])?e['hard_violations']['map'](m=>m['id'])['join'](',\x20'):'';d['push']('graph_validation:\x20'+k+'\x20hard\x20violation(s)'+(l?'\x20('+l+')':''));}const f=b['audit'];if(f&&f['blocking']===!![]){const m=(f['findings']??[])['filter'](n=>n['level']==='critical'||n['level']==='high');d['push'](m['length']===0x0?'audit:\x20guide\x20audit\x20flagged\x20blocking\x20issue(s)\x20(plan.audit)':'audit:\x20'+m['length']+'\x20blocking\x20finding(s)\x20—\x20'+m['slice'](0x0,0x5)['map'](n=>((n['rule_id']??'?')+':\x20'+(n['title']??''))['trim']())['join'](';\x20')+(m['length']>0x5?'\x20(+'+(m['length']-0x5)+'\x20more\x20in\x20plan.audit.findings)':''));}const g=b['harness_check'],h=[...new Set((g?.['blocking_issues']??[])['filter'](n=>n['module']==='template')['flatMap'](n=>n['missing_constraints']??[]))];h['length']>0x0&&d['push']('compile:\x20'+h['length']+'\x20blocker(s)\x20—\x20merchant_guide\x20refuses\x20to\x20materialize\x20this\x20plan:\x20'+h['join'](',\x20'));const i=d['length']===0x0;return{'buildable':i,'blockers':d,'status':i?'READY':'BLOCKED'};}async function templateScanDryRun(a){const b=[{'name':'scan-probe','price':'1000000000','quantity':0x1}],c=a['review_mode']==='review_reward'?{'review_mode':'review_reward','reward_funding':'20000000','reward_claim_amount':'1000000'}:undefined;try{const d=await runGuide(a,undefined,undefined,undefined,c,b),f=buildVerdict(scanSummary(scanTemplate(a)),d,!![]);return{'status':f['buildable']?'ready':'blocked','buildable':f['buildable'],'blockers':f['blockers'],'note':'Compile\x20dry-run\x20on\x20synthetic\x20probe\x20inputs\x20(single\x20probe\x20SKU,\x20benchmark\x20reward\x20funding),\x20mirrored\x20to\x20the\x20template_generate\x20gate\x20(CRITICAL\x20+\x20N-21\x20HIGH\x20+\x20graph\x20+\x20audit).\x20Structural\x20blockers\x20are\x20REAL\x20—\x20the\x20generate\x20face\x20refuses\x20for\x20the\x20same\x20reason.\x20Blockers\x20naming\x20caller\x20inputs\x20(fee_overrides\x20/\x20guard_resolutions\x20/\x20catalog)\x20may\x20clear\x20with\x20real\x20values.'};}catch(g){return{'status':'unavailable','note':'Compile\x20dry-run\x20could\x20not\x20run\x20on\x20synthetic\x20probe\x20inputs\x20('+(g instanceof Error?g['message']:String(g))+').\x20This\x20is\x20a\x20probe\x20limitation,\x20NOT\x20a\x20template\x20verdict\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};}}export function planNextAction(a,b,c){const d=a['next_action'];if(typeof d==='string'&&d['startsWith']('Plan\x20ready.'))return d;if(c?.['buildable']){const f=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20is\x20buildable\x20(verdict.buildable=true).\x20Materialize\x20the\x20objects\x20in\x20plan.steps\x20order'+(f>0x0?',\x20resolving\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20before\x20the\x20Machine\x20publish':'')+'.';}const e=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20'+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(e>0x0?'Resolve\x20the\x20'+e+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');}function templateIntent(a,b){if(b&&b['trim']())return b['trim']();return'Adopt\x20the\x20'+a['id']+'\x20industry\x20archetype\x20template\x20('+a['archetype']+')\x20for\x20the\x20'+a['industry']+'\x20industry.\x20'+('Primary\x20risk\x20to\x20mitigate:\x20'+a['key_risk']+'.');}function effectiveFeeParams(a,b){return{...a['fee_params'],...b??{}};}const REWARD_POOL_PATTERNS=[/(?:reward|review|bonus|tip|prize)[\s-]*pools?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:reward|review|bonus|tip|prize)[\s-]*pools?\b/i];export function extractRewardPoolCandidate(a){if(!a)return undefined;for(const b of REWARD_POOL_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function rewardPoolPrefill(a,b,c,d){if(a['fee_params']['review_reward_pool']===undefined)return undefined;if(c?.['review_reward_pool']!==undefined)return undefined;const e=d?claimNumber(d,'reward_pool_amount'):undefined;if(e!==undefined)return{'fee_key':'review_reward_pool','value':e,'claim_source':'semantic_ir'};const f=extractRewardPoolCandidate(b);return f===undefined?undefined:{'fee_key':'review_reward_pool','value':f};}const FUNDING_THRESHOLD_PATTERNS=[/(?:funding|campaign|round)[\s-]*(?:threshold|goal)s?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:funding|campaign|round)[\s-]*(?:threshold|goal)\b/i],MIN_ORDER_PATTERNS=[/(?:min(?:imum)?)\s+order(?:\s+(?:price|value|amount))?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:min(?:imum)?)\s+order\b/i];export function extractFundingThresholdCandidate(a){if(!a)return undefined;for(const b of FUNDING_THRESHOLD_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}export function extractMinOrderCandidate(a){if(!a)return undefined;for(const b of MIN_ORDER_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function numericFeePrefill(a,b,c,d,e,f,g){if(a['fee_params'][b]===undefined)return undefined;if(f?.[b]!==undefined)return undefined;const h=g?claimNumber(g,c):undefined;if(h!==undefined)return{'fee_key':b,'value':h,'claim_source':'semantic_ir'};const i=d(e);return i===undefined?undefined:{'fee_key':b,'value':i};}function validateFeeParams(a,b){const c=[];let d=0x0;for(const [e,f]of Object['entries'](a)){if(typeof f!=='number'||!Number['isFinite'](f))continue;if(e['endsWith']('_bps')){(!Number['isInteger'](f)||f<0x0||f>0x2710)&&c['push'](e+'='+f+'\x20is\x20not\x20an\x20integer\x20rate\x20in\x20[0,\x2010000]\x20bps');if(e['endsWith']('_share_bps'))d+=Math['max'](0x0,f);}else{if(e['endsWith']('_days')){if(f<=0x0||f>0xe42)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x203650]\x20days');}else{if(e['endsWith']('_hours')){if(f<=0x0||f>0x2238)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x208760]\x20hours');}}}}if(d>0x2710)c['push']('*_share_bps\x20sum\x20'+d+'\x20exceeds\x2010000\x20(a\x20pool\x20splits\x20into\x20at\x20most\x20100%)');if(c['length']>0x0)throw new Error('invalid\x20fee\x20parameters\x20for\x20template\x20\x27'+b+'\x27:\x20'+c['join'](';\x20')+'.\x20'+'Correct\x20the\x20template\x27s\x20fee_params\x20or\x20pass\x20valid\x20\x27fee_overrides\x27.');}export{validateAllocatorRows};export function variantPaymentModel(a){if(a['payment_model'])return a['payment_model'];const b=a['allocator']['rows']??[];if(b['some'](d=>d['track']==='refund'))return'escrow';const c=a['machine_shape']['map'](d=>d['name'])['join']('\x20')['toLowerCase']();if(/\b(milestone|revision|revis|draft|deliverable)\b/['test'](c))return'milestone';if(/\b(charge|renew|subscription|cycle|billing|monthly)\b/['test'](c))return'subscription';return'escrow';}function variantRefundPolicy(a){const b=a['allocator']['description']['toLowerCase']();if(/full[ -]?refund|100% refund|refund .*100/['test'](b))return'full';if(/pro-?rata|prorated/['test'](b))return'milestone_prorated';if(/partial/['test'](b))return'partial';return undefined;}export function variantDeliverables(a,b){const c=a['machine_shape']['filter'](g=>g['semantic_role']==='final'),d=c[c['length']-0x1]??[...a['machine_shape']]['reverse']()['find'](g=>!/refund|cancel|dispute|terminat/i['test'](g['name']+'\x20'+g['role']))??a['machine_shape'][a['machine_shape']['length']-0x1],e=b?.['has_logistics']?'physical':b?.['pure_digital']?'digital':'service_session',f=(a['guards']??[])['filter'](h=>/repository_data_check|required_info_evidence_gate|allocator_order_anchor/['test'](h['template_id']));return[{'name':a['variant']+'\x20fulfillment','type':e,'acceptanceCriteria':'Order\x20reaches\x20the\x20terminal\x20workflow\x20node\x20\x27'+d['name']+'\x27\x20('+d['role']+')','proofOfDelivery':f['length']>0x0?'wip_hash':'manual_confirm'}];}function validateConditionalParams(a,b){for(const d of a['conditional_guards']??[]){const e=b[d['param']];if(e===undefined)continue;if(typeof e!=='string'||!d['values']['includes'](e))throw new Error('invalid\x20\x27'+d['param']+'='+String(e)+'\x27\x20for\x20template\x20\x27'+a['id']+'\x27:\x20must\x20be\x20one\x20of\x20'+d['values']['map'](f=>'\x27'+f+'\x27')['join']('\x20|\x20')+('\x20(the\x20guard\x20variant\x20mounts\x20at\x20\x27'+d['emit_value']+'\x27)'));}}async function runGuide(a,b,c,d,e,f,g){const h=effectiveFeeParams(a,c),i=rewardPoolPrefill(a,b,c,g);if(i)h[i['fee_key']]=i['value'];const j=numericFeePrefill(a,'funding_threshold','funding_threshold_amount',extractFundingThresholdCandidate,b,c,g);if(j)h[j['fee_key']]=j['value'];const k=numericFeePrefill(a,'min_order_price','min_order_price_amount',extractMinOrderCandidate,b,c,g);if(k)h[k['fee_key']]=k['value'];validateFeeParams(h,a['id']),validateConditionalParams(a,h);const l=landPlatformCommission(a,h);if(l['error']!==undefined)throw new Error(l['error']);const m=l['rows']?{...a,'allocator':{...a['allocator'],'rows':l['rows'],'count':l['rows']['filter'](y=>y['track']==='settlement')['length']}}:a,n=getIndustryModeRegistry()['getMode'](a['industry']),o=platformShareBps(h),q={'model':variantPaymentModel(a)},r=[],s=(m['allocator']['rows']?.['length']??0x0)>0x0;if(o!==undefined&&o>0x0&&!s&&a['allocator']['mode']==='rate'){const y=Math['round'](o)/0x64;r['push']({'recipient':'merchant','percentage':Math['round']((0x64-y)*0x64)/0x64}),r['push']({'recipient':'platform','percentage':y}),q['allocation']=r;}const u=variantRefundPolicy(a),v={'escrow':!![]};if(u)v['refundPolicy']=u;v['arbitration']=a['arbitration_mode']??v['arbitration']??inferArbitration(templateIntent(a,b));const w=await handleMerchantGuide({'intent':templateIntent(a,b),'guide_confirm':{'industry':a['industry'],'payment':q,'trust':v,'deliverables':variantDeliverables(a,n?.['traits']),...d&&Object['keys'](d)['length']>0x0?{'guard_resolutions':d}:{},...e?.['review_mode']?{'review_mode':e['review_mode']}:{},...e?.['reward_funding']!==undefined?{'reward_funding':e['reward_funding']}:{},...e?.['reward_claim_amount']!==undefined?{'reward_claim_amount':e['reward_claim_amount']}:{},...e?.['after_sales_mode']?{'after_sales_mode':e['after_sales_mode']}:{},...e?.['acceptance_mode']?{'acceptance_mode':e['acceptance_mode']}:{},...e?.['installment_mode']?{'installment_mode':e['installment_mode']}:{},...e?.['affiliate_mode']?{'affiliate_mode':e['affiliate_mode']}:{},...e?.['crowdfunding_mode']?{'crowdfunding_mode':e['crowdfunding_mode']}:{},...e?.['logistics_mode']?{'logistics_mode':e['logistics_mode']}:{},...f?.['length']?{'sales':f}:{}},'template_override':{...m,'fee_params':h},'name_base':a['id']});m['allocator']['rows']?.['length']&&(w['template_allocator_rows']=m['allocator']['rows']['map'](z=>({...z})));if(l['landing']!==undefined)w['commission_landing']=l['landing'];w['template']={'id':a['id'],'archetype':a['archetype'],'recommended_role':a['recommended_role'],'fee_params':h},w['template_fee_param_landings']=buildFeeParamLandingTable(m,h);if(c&&Object['keys'](c)['length']>0x0)w['template_fee_overrides']=c;const x=[];if(i)x['push'](i);if(j)x['push'](j);if(k)x['push'](k);if(x['length']>0x0){w['fee_overrides_prefills']=x;for(const z of x){const A=z['fee_key']==='review_reward_pool'?'Reward\x20pool':z['fee_key']==='funding_threshold'?'Funding\x20threshold':'Minimum\x20order',B=z['claim_source']==='semantic_ir'?'\x20(from\x20the\x20semantic\x20IR\x20claim)':'';w['next_action']=w['next_action']+'\x20'+A+'\x20prefilled\x20from\x20your\x20request:\x20'+z['value']+B+'\x20—\x20adjust\x20via\x20fee_overrides.';}}return w;}export async function handleBenchmarkMigrationOperation(a){const b=strictParse(BenchmarkMigrationSchema,a,'benchmark_migration_operation\x20input'),c=b['industry']?resolveIndustryName(b['industry'])??b['industry']['toLowerCase']():undefined,d=b['semantic_ir']?normalizeSemanticIR(b['semantic_ir'],{'source_text':b['description']}):undefined,e=d?{'semantic_ir_digest':d['digest'],...d['issues']['length']>0x0?{'semantic_ir_issues':d['issues']}:{}}:undefined;let f;switch(b['action']){case'template_list':{const {templates:g,errors:h}=listTemplates(),i=c?g['filter'](k=>k['industry']===c):g,j=new Map(builtinTemplateDrift()['map'](k=>[k['template'],k['state']]));f={'action':'template_list','count':i['length'],'templates':i['map'](k=>({...templateSummary(k),'disk_state':j['get'](k['id'])??(BUILTIN_TEMPLATES['some'](l=>l['id']===k['id'])?'current':'untracked')})),'discovery_vocabulary':{'industries':listIndustries()['map'](k=>k['name'])['sort'](),'tags':[...DISCOVERY_TAG_VOCABULARY],'product_refs':[...DISCOVERY_PRODUCT_REFS]},'load_errors':h};break;}case'template_get':{const k=requireTemplate(b['template_id'],'template_get');f={'action':'template_get','template':{...k,...templateGetAids(k)}};break;}case'template_generate':{const l=requireTemplate(b['template_id'],'template_generate'),m=b['review_mode']??l['review_mode']??'none',n=[];m==='review_reward'&&!b['reward_funding']&&n['push']('reward_funding\x20is\x20required:\x20template\x20\x27'+l['id']+'\x27\x20resolves\x20to\x20review_mode\x20\x27review_reward\x27\x20(input'+(b['review_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20promises\x20buyers\x20a\x20claimable\x20review\x20bounty\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship\x20(INV-4).\x20Pass\x20reward_funding\x20(smallest-unit\x20string;\x20expected\x20orders\x20x\x20per-order\x20reward\x20—\x20fee_param\x20review_reward_pool\x20is\x20the\x20planning\x20benchmark),\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20review\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).');(!Array['isArray'](b['sales'])||b['sales']['length']===0x0)&&n['push']('sales\x20is\x20required:\x20a\x20plan\x20without\x20a\x20sellable\x20catalog\x20publishes\x20a\x20Service\x20frozen\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts\x20(PLAN-SALES-01,\x20upgraded\x20to\x20an\x20input\x20requirement,\x20amz9\x20A-2).\x20Pass\x20sales:\x20[{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}]\x20—\x20one\x20entry\x20per\x20sellable\x20SKU,\x20price\x20in\x20smallest\x20units\x20(wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload).');if(n['length']>0x0)return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20'+n['length']+'\x20input\x20gap(s),\x20ALL\x20listed\x20at\x20once\x20(AR-4\x20T-05):\x20'+n['map']((q,r)=>'('+(r+0x1)+')\x20'+q)['join']('\x20')}],'structuredContent':{'result':{'type':'error','error':'template_generate\x20input\x20preflight\x20failed\x20with\x20'+n['length']+'\x20gap(s)\x20on\x20template\x20\x27'+l['id']+'\x27\x20—\x20all\x20gaps\x20reported\x20in\x20this\x20single\x20response\x20(do\x20not\x20fix\x20one\x20and\x20rediscover\x20the\x20next).','error_code':'input_preflight_failed','retryable':!![],'recovery_hint':n['join']('\x20|\x20'),'gaps':n},'message':'Refused:\x20input\x20preflight\x20failed.\x20Fix\x20ALL\x20listed\x20gaps,\x20then\x20re-send\x20ONCE.\x20See\x20recovery_hint.'}};const o=scanTemplate(l);assertGenerateScanPassed(o,'template_generate');const p=await runGuide(l,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const q=scanSummary(o,driftFace(l['id'])),r=buildVerdict(q,p);return{'action':'template_generate','template_id':l['id'],...e,'stale_build':staleBuildFace(),'scan':q,'plan':p,'verdict':r,'next_action':planNextAction(p,'template_generate',r)};})());break;}case'template_scan':{const q=requireTemplate(b['template_id'],'template_scan'),r=await templateScanDryRun(q);f={'action':'template_scan','stale_build':staleBuildFace(),'scan':{...withOnceSlotAdvisories(scanTemplate(q)),'drift':driftFace(q['id']),'compile_dry_run':r}};break;}case'migration_import':{if(!b['description']||!b['description']['trim']())throw new Error('\x27description\x27\x20is\x20required\x20for\x20action=\x27migration_import\x27');const s=d?handleRecommendIndustry({'intent':b['description'],'semantic_ir':b['semantic_ir']}):undefined,t=planMigration({'url':b['url'],'description':b['description'],'industry':c,'ir_industry':c?undefined:s?.['recommendations'][0x0]?.['industry'],'ir_discovery':d?discoverySignal(d['ir']):undefined,'network':b['network']});if(!t)throw new Error('No\x20industry\x20template\x20matched\x20the\x20description.\x20Refine\x20the\x20description\x20or\x20pass\x20an\x20explicit\x20\x27industry\x27\x20hint'+(d?',\x20or\x20add\x20discovery\x20tags\x20/\x20a\x20product_ref\x20to\x20semantic_ir\x20(tags\x20vocabulary:\x20template_list.discovery_vocabulary).':'\x20(or\x20provide\x20semantic_ir\x20with\x20discovery\x20tags\x20/\x20traits\x20for\x20a\x20non-English\x20description).'));f={'action':'migration_import','log':t,...s?{'inference_source':s['inference_source']}:{},...e,'next_action':'MigrationLog\x20ready.\x20Next:\x20call\x20action=\x27migration_review\x27\x20with\x20this\x20log\x20to\x20surface\x20the\x20mapped/unmapped/manual_review\x20items\x20for\x20user\x20confirmation.'};break;}case'plan_execute':{if(!b['plan']||typeof b['plan']!=='object'||Array['isArray'](b['plan']))throw new Error('\x27plan\x27\x20is\x20required\x20for\x20action=\x27plan_execute\x27\x20—\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20verbatim');const u=b['plan'],v=u['plan']!==undefined&&typeof u['plan']==='object'&&!Array['isArray'](u['plan'])&&Array['isArray'](u['plan']['steps'])?u['plan']:u;if(!Array['isArray'](v['steps']))throw new Error('action=\x27plan_execute\x27:\x20the\x20passed\x20plan\x20carries\x20no\x20steps[]\x20—\x20pass\x20the\x20template_generate\x20\x27plan\x27\x20object\x20verbatim');const w=Array['isArray'](b['completed_steps'])&&b['completed_steps']['length']>0x0||b['previous_outputs']?{'completedSteps':b['completed_steps']??[],'outputs':b['previous_outputs']??{}}:undefined,x=await materializePlan(v,{'execute':handlerExecutor(b['env'])},w),y=x['steps']['filter'](A=>A['status']==='blocked')['length'],z=x['steps']['find'](A=>A['status']==='failed');f={'action':'plan_execute','completed':x['completed'],'steps':x['steps'],'outputs':x['outputs'],'preflight':{'issues':x['preflight']['issues'],'findings':x['preflight']['findings']},'readback':x['readback'],'next_action':x['completed']?'Deployed.\x20Verify\x20the\x20store\x20(query_toolkit:\x20service\x20/\x20machine\x20/\x20orders),\x20then\x20discharge\x20any\x20post-deploy\x20module\x20obligations\x20the\x20guide\x20listed\x20under\x20harness_check.module_gaps.':y>0x0?'A\x20publish\x20step\x20was\x20BLOCKED\x20by\x20the\x20freeze\x20gate\x20—\x20the\x20store\x20is\x20NOT\x20live.\x20Fix\x20the\x20listed\x20preflight\x20checks\x20at\x20the\x20SOURCE\x20(re-run\x20template_generate);\x20never\x20patch\x20plan\x20steps\x20by\x20hand.':'Step\x20\x27'+(z?.['stepId']??'?')+'\x27\x20FAILED:\x20'+(z?.['error']??'unknown')+'.\x20RESUME\x20—\x20do\x20NOT\x20re-run\x20from\x20scratch\x20(duplicate\x20objects):\x20send\x20plan_execute\x20again\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27\x20in\x20this\x20response,\x20and\x20previous_outputs\x20=\x20this\x20response\x27s\x20outputs.'};break;}case'migration_review':{if(!b['log'])throw new Error('\x27log\x27\x20is\x20required\x20for\x20action=\x27migration_review\x27');const A=b['log'],B=Array['isArray'](A['mapped'])?A['mapped']:[],C=Array['isArray'](A['unmapped'])?A['unmapped']:[],D=Array['isArray'](A['manual_review'])?A['manual_review']:[],E=A['risk_check']??{},F=A['source']?.['matched_template']??'',G=C['length']===0x0&&D['length']===0x0&&E['passed']===!![];f={'action':'migration_review','log':A,'review_summary':{'mapped_count':B['length'],'unmapped_count':C['length'],'manual_review_count':D['length'],'risk_passed':E['passed']===!![]},'next_action':G?'Review\x20clean.\x20Proceed:\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+F+'\x27\x20to\x20produce\x20the\x20creation\x20plan\x20(network\x20defaults\x20to\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).':'Surface\x20the\x20'+C['length']+'\x20unmapped\x20and\x20'+D['length']+'\x20manual_review\x20items'+(E['passed']===!![]?'':'\x20plus\x20the\x20risk_check\x20findings')+'\x20to\x20the\x20user\x20for\x20a\x20decision\x20before\x20action=\x27migration_apply\x27\x20(template_id=\x27'+F+'\x27).'};break;}case'migration_apply':{const H=requireTemplate(b['template_id'],'migration_apply'),I=scanTemplate(H);assertScanPassed(I,'migration_apply');const J=b['network']??'testnet',K=await runGuide(H,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const L=scanSummary(I,driftFace(H['id'])),M=buildVerdict(L,K);return{'action':'migration_apply','template_id':H['id'],'network':J,...e,'scan':L,'plan':K,'verdict':M,'next_action':planNextAction(K,'migration_apply',M)};})());break;}default:throw new Error('Unknown\x20benchmark_migration_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':f})}],'structuredContent':{'result':f}};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{listServices,getServiceInfo,toggle as
|
|
1
|
+
import{listServices,getServiceInfo,toggle as a503a,setEnabled as a503b,reset as a503c}from'../../config/index.js';import{judgmentStatus,setJudgmentOverride,clearJudgmentOverride,clearJudgmentOverrides,patchUserJudgmentDoc,readUserJudgmentDocView}from'../../config/judgment.js';import{getStoreDualPayoutPolicy,setStoreDualPayoutPreauthorization,clearStoreDualPayoutPreauthorization}from'../../config/store-policy.js';import{strictParse}from'../../schema/index.js';import{ConfigOperationInputSchema}from'../../schema/config/index.js';import{LocalMark}from'@wowok/wowok';async function resolvePolicyAccount(a){const b=a['trim']();if(/^0x[0-9a-fA-F]{64}$/['test'](b))return b['toLowerCase']();try{const c=await LocalMark['Instance']()['get_address'](b)['catch'](()=>undefined)??undefined;if(typeof c==='string'&&/^0x[0-9a-fA-F]{64}$/['test'](c))return c['toLowerCase']();}catch{}return b['toLowerCase']();}export async function handleConfigOperation(a){const b=strictParse(ConfigOperationInputSchema,a,'config_operation\x20input'),{action:c,service:d,path:e,value:f}=b;let g;switch(c){case'list':g={'action':'list','services':listServices()};break;case'toggle':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20toggle');const h=d,i=getServiceInfo(h);if(!i)throw new Error('Unknown\x20service:\x20'+h+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(h==='confirm_gate'&&i['enabled'])throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');const j=a503a(h);g={'action':'toggle','service':h,'enabled':j,'reminder':i['reminder']};break;}case'disable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20disable');const k=d,l=getServiceInfo(k);if(!l)throw new Error('Unknown\x20service:\x20'+k+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(k==='confirm_gate')throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');a503b(k,![]),g={'action':'disable','service':k,'enabled':![],'reminder':l['reminder']};break;}case'enable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20enable');const m=d,n=getServiceInfo(m);if(!n)throw new Error('Unknown\x20service:\x20'+m+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a503b(m,!![]),g={'action':'enable','service':m,'enabled':!![],'reminder':n['reminder']};break;}case'reset':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20reset');const o=d,p=getServiceInfo(o);if(!p)throw new Error('Unknown\x20service:\x20'+o+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a503c(o),g={'action':'reset','service':o,'enabled':getServiceInfo(o)?.['enabled'],'reminder':p['reminder'],'reset':!![]};break;}case'info':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20info');const q=d,r=getServiceInfo(q);if(!r)throw new Error('Unknown\x20service:\x20'+q+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');g={'action':'info',...r};break;}case'judgment_list':g={'action':'judgment_list',...judgmentStatus()};break;case'judgment_set':{if(!e)throw new Error('\x27path\x27\x20param\x20is\x20required\x20for\x20judgment_set\x20(dotted,\x20e.g.\x20\x27evaluation.weights.trust_reviews\x27)');if(!('value'in b))throw new Error('\x27value\x27\x20param\x20is\x20required\x20for\x20judgment_set');const s=setJudgmentOverride(e,f);if(!s['ok'])throw new Error(s['error']);g={'action':'judgment_set','path':e,'value':f,'applied':!![]};break;}case'judgment_reset':{const t=e?clearJudgmentOverride(e)?0x1:0x0:clearJudgmentOverrides();g={'action':'judgment_reset',...e?{'path':e}:{},'cleared':t};break;}case'judgment_doc_read':{g={'action':'judgment_doc_read',...readUserJudgmentDocView()};break;}case'judgment_doc_patch':{if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20judgment_doc_patch\x20(a\x20partial\x20judgment\x20document\x20object,\x20e.g.\x20{\x22evaluation\x22:\x20{\x22weights\x22:\x20{…}}})');g={'action':'judgment_doc_patch',...patchUserJudgmentDoc(b['patch'])};break;}case'store_dual_payout_get':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_get\x20(the\x20store\x27s\x20signing\x20account)');const u=await resolvePolicyAccount(b['account']),v=getStoreDualPayoutPolicy(u);g={'action':'store_dual_payout_get','account':b['account'],'preauthorized':v?.['preauthorized']===!![],...v?.['authorized_at']?{'authorized_at':v['authorized_at']}:{},...v?.['note']?{'note':v['note']}:{},...v?.['network']?{'network':v['network']}:{}};break;}case'store_dual_payout_set':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_set\x20(the\x20store\x27s\x20signing\x20account)');const w=await resolvePolicyAccount(b['account']),x=setStoreDualPayoutPreauthorization(w,{'confirm':b['confirm']===!![],...b['note']?{'note':b['note']}:{}});g={'action':'store_dual_payout_set','account':b['account'],'preauthorized':!![],'authorized_at':x['authorized_at'],...x['note']?{'note':x['note']}:{},'reminder':'Recorded\x20as\x20a\x20HUMAN\x20merchant\x20decision\x20(D-1).\x20The\x20allocation\x20gate\x20now\x20honors\x20acknowledge_dual_payout\x20'+'for\x20this\x20store.\x20Keep\x20the\x20note\x20meaningful\x20—\x20this\x20is\x20the\x20audit\x20trail\x20for\x20a\x20standing\x20commercial\x20netting\x20policy.'};break;}case'store_dual_payout_clear':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_clear\x20(the\x20store\x27s\x20signing\x20account)');const y=await resolvePolicyAccount(b['account']),z=clearStoreDualPayoutPreauthorization(y);g={'action':'store_dual_payout_clear','account':b['account'],'cleared':z};break;}default:throw new Error('Unknown\x20config_operation\x20action:\x20'+String(c));}return{'content':[{'type':'text','text':JSON['stringify']({'result':g})}],'structuredContent':{'result':g}};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{strictParse,MessengerOperationInputSchema}from'../../schema/index.js';import{watch_conversations,send_message,send_file,watch_messages,export_attachment,pull_messages,generate_wts,verify_wts,sign_wts,wts2html,proof_message,mark_messages_as_viewed,mark_conversation_as_viewed,blacklist,friendslist,guardlist,settings,LocalInfo,GetAccountOrMark_Address,Config}from'@wowok/wowok';import{classifyError,buildDataSemantic}from'../../schema/call/semantic.js';import{classifyCommunicationEvidence}from'../../communication/evidence.js';import{noteProofIssued}from'../../communication/proof-reuse.js';import{isModuleLoadError,noteRuntimeModuleFault}from'../runtime-health.js';import{attestWtsFile}from'../../communication/wts-attestation.js';import{goalEngine}from'../../goal/GoalEngine.js';export function normalizeAccountOrMark(a){if(typeof a==='string')return{'name_or_address':a,'local_mark_first':!![]};return a;}export function normalizeOptionalAccountOrMark(a){if(a===undefined||a===null)return undefined;return normalizeAccountOrMark(a);}export function normalizeManyAccountOrMark(a){if(a===undefined||a===null)return undefined;if(Array['isArray'](a))return{'entities':a['map'](b=>typeof b==='string'?{'name_or_address':b,'local_mark_first':!![]}:b),'check_all_founded':!![]};return a;}function communicationEvidencePayload(a,b){const c=b??{};switch(a){case'send_message':case'send_file':{const d=typeof c['messageId']==='string'?c['messageId']:undefined;return{'detail':d?'message\x20'+d:'message\x20sent','data':d?{'message_id':d}:{}};}case'send_required_info':{const e=typeof c['messageId']==='string'?c['messageId']:undefined,f=Array['isArray'](c['sent_fields'])?c['sent_fields']:undefined;return{'detail':'required-info\x20confirmation\x20sent','data':{...e?{'message_id':e}:{},...f?{'sent_fields':f}:{}}};}case'generate_wts':{const g=typeof c['totalMessageCount']==='number'?c['totalMessageCount']:undefined,h=Array['isArray'](c['files'])?c['files']:undefined,i=Array['isArray'](c['htmlFiles'])?c['htmlFiles']:undefined;return{'detail':'WTS\x20evidence\x20packet\x20generated','data':{...g!==undefined?{'message_count':g}:{},...h?{'files':h}:{},...i?{'html_reports':i}:{}}};}case'verify_wts':{const j=c['attestation'],k=typeof c['error']==='string'?c['error']:undefined;return{'detail':j?'WTS\x20verification\x20—\x20'+j['attested_count']+'/'+j['total_messages']+'\x20message(s)\x20server-attested':'WTS\x20verification\x20—\x20server\x20attestation\x20unavailable','data':{'valid':c['valid']===!![],'hash_valid':c['hashValid']===!![],'has_signature':c['hasSignature']===!![],...c['signatureValid']===undefined?{}:{'packet_signature_valid':c['signatureValid']===!![]},...k?{'error':k}:{},...j?{'attested_messages':j['attested_count'],'total_messages':j['total_messages'],'fully_attested':j['fully_attested'],'packet_signed':j['packet_signed'],'server_public_keys':j['server_public_keys'],'verdict':j['verdict']}:{'attestation':'unavailable\x20—\x20cross-check\x20the\x20seal\x20signer\x20and\x20server\x20keys\x20independently\x20before\x20treating\x20the\x20packet\x20as\x20third-party\x20evidence'}}};}case'sign_wts':{return{'detail':typeof b==='string'?b:'WTS\x20evidence\x20signed','data':{}};}case'proof_message':{const l=typeof c['proofAddress']==='string'?c['proofAddress']:undefined;return{'detail':l?'proof\x20'+l:'message\x20proofed\x20on-chain','data':l?{'proof_address':l}:{}};}default:return{'detail':a,'data':{}};}}export function throwIfTransportAmbiguous(a,b){const c=b instanceof Error?b['message']:String(b);if(/timeout|timed out|ETIMEDOUT|ECONNRESET|ECONNREFUSED|EAI_AGAIN|socket\s+hang\s+up|connection\s+(refused|reset|lost)|fetch\s+failed|unexpected\s+status\s+code:\s*5\d\d/i['test'](c))throw new Error('messenger\x20delivery\x20state\x20UNKNOWN\x20on\x20'+a+':\x20the\x20transport\x20failed\x20AFTER\x20submission\x20('+c+')\x20—\x20'+'the\x20relay\x20may\x20have\x20already\x20committed\x20the\x20message\x20despite\x20the\x20client-side\x20failure.\x20'+'Do\x20NOT\x20re-send\x20blindly:\x20first\x20check\x20the\x20conversation\x20(watch_conversations\x20/\x20read\x20messages)\x20'+'for\x20the\x20same\x20payload;\x20re-send\x20only\x20after\x20confirming\x20it\x20never\x20arrived.\x20A\x20blind\x20re-send\x20DOUBLE-DELIVERS.');throw b instanceof Error?b:new Error(c);}export async function handleMessengerOperation(a){let b;try{b=strictParse(MessengerOperationInputSchema,a,'messenger_operation\x20input');const c=b['operation'];let d;switch(b['operation']){case'watch_conversations':{const h=await watch_conversations(b['filter']);d={'operation':'watch_conversations','result':h};break;}case'send_message':{let i;try{i=await send_message(normalizeOptionalAccountOrMark(b['from']),normalizeAccountOrMark(b['to']),b['content'],b['options']);}catch(l){throwIfTransportAmbiguous('send_message',l);}if(i['authRequired']){d={'operation':'send_message','result':i};break;}const j=i,k={...j,'merkleData':j['merkleData']?{'leafIndex':j['merkleData']['leafIndex'],'prevRoot':j['merkleData']['prevRoot'],'newRoot':j['merkleData']['newRoot'],'serverSignature':j['merkleData']['serverSignature'],'serverTimestamp':j['merkleData']['serverTimestamp'],'serverPublicKey':j['merkleData']['serverPublicKey']}:undefined};d={'operation':'send_message','result':k};break;}case'send_file':{let m;try{m=await send_file(normalizeOptionalAccountOrMark(b['from']),normalizeAccountOrMark(b['to']),b['filePath'],b['options']);}catch(p){throwIfTransportAmbiguous('send_file',p);}const n=m,o={...n,'merkleData':n['merkleData']?{'leafIndex':n['merkleData']['leafIndex'],'prevRoot':n['merkleData']['prevRoot'],'newRoot':n['merkleData']['newRoot'],'serverSignature':n['merkleData']['serverSignature'],'serverTimestamp':n['merkleData']['serverTimestamp'],'serverPublicKey':n['merkleData']['serverPublicKey']}:undefined};d={'operation':'send_file','result':o};break;}case'send_required_info':{let q=b['content'];const r=[];if(!q){const v=await GetAccountOrMark_Address(b['from']),w=await LocalInfo['Instance']()['list'](undefined,v),x=b['fields'],y=x&&x['length']>0x0?w['filter'](z=>x['includes'](z['name'])):w;if(y['length']===0x0)throw new Error('No\x20LocalInfo\x20fields\x20available.\x20Add\x20private\x20info\x20first\x20via\x20local_info_operation.');q=y['map'](z=>z['name']+':\x20'+z['default'])['join']('\x0a'),r['push'](...y['map'](z=>z['name']));}const s=await send_message(normalizeOptionalAccountOrMark(b['from']),normalizeAccountOrMark(b['to']),q,b['options']),t=s,u={...t,'merkleData':t['merkleData']?{'leafIndex':t['merkleData']['leafIndex'],'prevRoot':t['merkleData']['prevRoot'],'newRoot':t['merkleData']['newRoot'],'serverSignature':t['merkleData']['serverSignature'],'serverTimestamp':t['merkleData']['serverTimestamp'],'serverPublicKey':t['merkleData']['serverPublicKey']}:undefined,'sent_fields':r};d={'operation':'send_required_info','result':u};break;}case'watch_messages':{const z=b['filter']?{...b['filter'],'peerAddress':b['filter']['peerAddress']?normalizeAccountOrMark(b['filter']['peerAddress']):undefined,'account':b['filter']['account']?normalizeOptionalAccountOrMark(b['filter']['account']):undefined}:undefined,A=await watch_messages(z);d={'operation':'watch_messages','result':A};break;}case'save_attachment':{const B=await export_attachment(normalizeOptionalAccountOrMark(b['account']),b['messageId'],{'outputDir':b['outputDir'],'saveAs':b['saveAs']});d={'operation':'save_attachment','result':B};break;}case'generate_wts':{const C=b['params']?{...b['params'],'peerAccount':normalizeAccountOrMark(b['params']['peerAccount']),'myAccount':normalizeOptionalAccountOrMark(b['params']['myAccount'])}:undefined,D=await generate_wts(C);d={'operation':'generate_wts','result':D};break;}case'verify_wts':{const E=await verify_wts(b['wtsFilePath']),F=E?.['valid']===![]?'A\x20packet\x20generated\x20by\x20generate_wts\x20is\x20UNSEALED\x20(no\x20meta.signature)\x20and\x20always\x20fails\x20verification\x20—\x20run\x20sign_wts\x20on\x20this\x20file\x20first,\x20then\x20verify_wts\x20the\x20SIGNED\x20output.':undefined,G=await attestWtsFile(b['wtsFilePath']);let H;if(E?.['serverKeysOfficial']===!![]){const I=E?.['serverKeysOfficialNetwork'],J=E?.['serverKeyAnchor']?.['network'],K=[];if(I){let L;try{L=String(await Config['Instance']()['network_get']());}catch{}L&&L!==I&&K['push']('NETWORK\x20MISMATCH:\x20official-key\x20verification\x20scored\x20in\x20the\x20\x27'+I+'\x27\x20key\x20partition,\x20but\x20this\x20call\x20was\x20served\x20on\x20network\x20\x27'+L+'\x27.\x20'+('The\x20verdict\x20is\x20evidence\x20for\x20\x27'+I+'\x27\x20only\x20—\x20quote\x20this\x20transcript\x20with\x20its\x20partition\x20stated,\x20or\x20switch\x20env.network\x20to\x20\x27'+I+'\x27\x20and\x20re-verify.')),I!=='mainnet'&&K['push']('PARTITION\x20RULE:\x20this\x20official\x20verdict\x20is\x20bound\x20to\x20the\x20\x27'+I+'\x27\x20partition\x20(anchor\x20network:\x20'+(J??I)+').\x20'+'For\x20a\x20MAINNET\x20case\x20the\x20ONLY\x20network-level\x20truth\x20is\x20an\x20on-chain\x20Proof\x20anchor\x20—\x20a\x20proof_message\x20re-anchored\x20on\x20mainnet.\x20'+'A\x20file-level\x20official\x20verdict\x20from\x20a\x20non-mainnet\x20partition\x20is\x20rehearsal\x20evidence\x20and\x20can\x20never\x20ground\x20a\x20mainnet\x20ruling.');}if(K['length']>0x0)H=K['join']('\x20');}d={'operation':'verify_wts','result':G?{...E,...F?{'hint':F}:{},...H?{'network_caveat':H}:{},'attestation':G}:{...E,...F?{'hint':F}:{},...H?{'network_caveat':H}:{},'attestation_unavailable':'Per-message\x20server\x20attestation\x20could\x20not\x20be\x20computed\x20(file\x20not\x20readable\x20locally\x20or\x20not\x20JSON).\x20The\x20guarded\x20verifier\x27s\x20valid\x20flag\x20already\x20required\x20server\x20attestation\x20+\x20seal;\x20cross-check\x20the\x20seal\x20signer\x20and\x20server\x20keys\x20yourself\x20before\x20treating\x20it\x20as\x20third-party\x20evidence.'}};break;}case'sign_wts':{const M=await sign_wts(b['wtsFilePath'],normalizeOptionalAccountOrMark(b['account']),b['outputPath']);d={'operation':'sign_wts','result':M};break;}case'wts2html':{const N=await wts2html(b['wtsPath'],b['options']);d={'operation':'wts2html','result':N};break;}case'proof_message':{let O;try{O=await proof_message(normalizeOptionalAccountOrMark(b['account']),b['messageId'],b['network']);}catch(Q){if(isModuleLoadError(Q)){const R=noteRuntimeModuleFault('proof_message',Q);throw new Error('SDK\x20runtime\x20is\x20stale\x20in\x20this\x20process:\x20the\x20loaded\x20module\x20graph\x20references\x20chunk\x20\x22'+R['module']+'\x22\x20'+'which\x20no\x20longer\x20exists\x20on\x20disk\x20(the\x20SDK\x20dist\x20was\x20rebuilt\x20after\x20this\x20MCP\x20process\x20started).\x20'+'Restart\x20the\x20MCP\x20server\x20to\x20reload\x20the\x20rebuilt\x20dist;\x20this\x20operation\x20cannot\x20succeed\x20until\x20then.');}throw Q;}const P=O?.['proofAddress'];if(typeof P==='string')noteProofIssued(P);d={'operation':'proof_message','result':O};break;}case'blacklist':{const S={'account':normalizeOptionalAccountOrMark(b['account']),'op':b['blacklist']['op']};'users'in b['blacklist']&&(S['users']=normalizeManyAccountOrMark(b['blacklist']['users']));const T=await blacklist(S);d={'operation':'blacklist','op':b['blacklist']['op'],'result':T['result']};break;}case'friendslist':{const U={'account':normalizeOptionalAccountOrMark(b['account']),'op':b['friendslist']['op']};'users'in b['friendslist']&&(U['users']=normalizeManyAccountOrMark(b['friendslist']['users']));const V=await friendslist(U);d={'operation':'friendslist','op':b['friendslist']['op'],'result':V['result']};break;}case'guardlist':{const W=await guardlist({'account':normalizeOptionalAccountOrMark(b['account']),...b['guardlist']});d={'operation':'guardlist','op':b['guardlist']['op'],'result':W['result']};break;}case'settings':{const X=await settings({'account':normalizeOptionalAccountOrMark(b['account']),...b['settings']});d={'operation':'settings','op':b['settings']['op'],'result':X['result']};break;}case'mark_messages_as_viewed':{const Y=await mark_messages_as_viewed(b['messageIds'],normalizeOptionalAccountOrMark(b['account']));d={'operation':'mark_messages_as_viewed','result':Y};break;}case'mark_conversation_as_viewed':{const Z=await mark_conversation_as_viewed(normalizeAccountOrMark(b['peerAddress']),normalizeOptionalAccountOrMark(b['account']));d={'operation':'mark_conversation_as_viewed','result':Z};break;}case'pull_messages':{const a0=await pull_messages(normalizeOptionalAccountOrMark(b['account']),b['limit'],{'allAccounts':b['allAccounts'],'accounts':b['accounts']?.['map'](a1=>normalizeAccountOrMark(a1)),'concurrency':b['concurrency']});d={'operation':'pull_messages','result':a0};break;}default:throw new Error('Unknown\x20messenger\x20operation:\x20'+c);}const f=classifyCommunicationEvidence(c),g=b['goal_id'];if(f&&g){const a1=d['result'],{detail:a2,data:a3}=communicationEvidencePayload(c,a1);await goalEngine['recordCommunicationEvidence'](g,{'operation':c,'kind':f['kind'],'title':f['title'],'detail':a2,'data':a3},b['network']??'default');}return{'content':[{'type':'text','text':JSON['stringify'](d)}],'structuredContent':{'result':d}};}catch(a4){const a5=a4 instanceof Error?a4['message']:String(a4),a6=b?{'operation_type':'messenger_'+b['operation'],'data':b}:undefined,a7=classifyError(a5),a8={'operation':'error','error':a5};if(a7['error_code']!==undefined)a8['error_code']=a7['error_code'];if(a7['retryable']!==undefined)a8['retryable']=a7['retryable'];if(a7['recovery_hint']!==undefined)a8['recovery_hint']=a7['recovery_hint'];return{'content':[{'type':'text','text':'Error:\x20'+a5}],'structuredContent':{'result':a8,'semantic':buildDataSemantic(undefined,a6,!![],a5)}};}}
|
|
1
|
+
import{strictParse,MessengerOperationInputSchema}from'../../schema/index.js';import{watch_conversations,send_message,send_file,watch_messages,export_attachment,pull_messages,generate_wts,verify_wts,sign_wts,wts2html,proof_message,mark_messages_as_viewed,mark_conversation_as_viewed,blacklist,friendslist,guardlist,settings,LocalInfo,GetAccountOrMark_Address,Config}from'@wowok/wowok';import{classifyError,buildDataSemantic}from'../../schema/call/semantic.js';import{classifyCommunicationEvidence}from'../../communication/evidence.js';import{pageMessagesBySeq,recordConversationRead,getConversationReadReceipt}from'../../communication/message-cursors.js';import{noteProofIssued}from'../../communication/proof-reuse.js';import{isModuleLoadError,noteRuntimeModuleFault}from'../runtime-health.js';import{attestWtsFile,evaluateWtsSealedAvailability}from'../../communication/wts-attestation.js';import{goalEngine}from'../../goal/GoalEngine.js';export function normalizeAccountOrMark(a){if(typeof a==='string')return{'name_or_address':a,'local_mark_first':!![]};return a;}export function normalizeOptionalAccountOrMark(a){if(a===undefined||a===null)return undefined;return normalizeAccountOrMark(a);}export function normalizeManyAccountOrMark(a){if(a===undefined||a===null)return undefined;if(Array['isArray'](a))return{'entities':a['map'](b=>typeof b==='string'?{'name_or_address':b,'local_mark_first':!![]}:b),'check_all_founded':!![]};return a;}function communicationEvidencePayload(a,b){const c=b??{};switch(a){case'send_message':case'send_file':{const d=typeof c['messageId']==='string'?c['messageId']:undefined;return{'detail':d?'message\x20'+d:'message\x20sent','data':d?{'message_id':d}:{}};}case'send_required_info':{const e=typeof c['messageId']==='string'?c['messageId']:undefined,f=Array['isArray'](c['sent_fields'])?c['sent_fields']:undefined;return{'detail':'required-info\x20confirmation\x20sent','data':{...e?{'message_id':e}:{},...f?{'sent_fields':f}:{}}};}case'generate_wts':{const g=typeof c['totalMessageCount']==='number'?c['totalMessageCount']:undefined,h=Array['isArray'](c['files'])?c['files']:undefined,i=Array['isArray'](c['htmlFiles'])?c['htmlFiles']:undefined;return{'detail':'WTS\x20evidence\x20packet\x20generated','data':{...g!==undefined?{'message_count':g}:{},...h?{'files':h}:{},...i?{'html_reports':i}:{}}};}case'verify_wts':{const j=c['attestation'],k=typeof c['error']==='string'?c['error']:undefined;return{'detail':j?'WTS\x20verification\x20—\x20'+j['attested_count']+'/'+j['total_messages']+'\x20message(s)\x20server-attested':'WTS\x20verification\x20—\x20server\x20attestation\x20unavailable','data':{'valid':c['valid']===!![],'hash_valid':c['hashValid']===!![],'has_signature':c['hasSignature']===!![],...c['signatureValid']===undefined?{}:{'packet_signature_valid':c['signatureValid']===!![]},...k?{'error':k}:{},...j?{'attested_messages':j['attested_count'],'total_messages':j['total_messages'],'fully_attested':j['fully_attested'],'packet_signed':j['packet_signed'],'server_public_keys':j['server_public_keys'],'verdict':j['verdict']}:{'attestation':'unavailable\x20—\x20cross-check\x20the\x20seal\x20signer\x20and\x20server\x20keys\x20independently\x20before\x20treating\x20the\x20packet\x20as\x20third-party\x20evidence'}}};}case'sign_wts':{return{'detail':typeof b==='string'?b:'WTS\x20evidence\x20signed','data':{}};}case'proof_message':{const l=typeof c['proofAddress']==='string'?c['proofAddress']:undefined;return{'detail':l?'proof\x20'+l:'message\x20proofed\x20on-chain','data':l?{'proof_address':l}:{}};}default:return{'detail':a,'data':{}};}}export function throwIfTransportAmbiguous(a,b){const c=b instanceof Error?b['message']:String(b);if(/timeout|timed out|ETIMEDOUT|ECONNRESET|ECONNREFUSED|EAI_AGAIN|socket\s+hang\s+up|connection\s+(refused|reset|lost)|fetch\s+failed|unexpected\s+status\s+code:\s*5\d\d/i['test'](c))throw new Error('messenger\x20delivery\x20state\x20UNKNOWN\x20on\x20'+a+':\x20the\x20transport\x20failed\x20AFTER\x20submission\x20('+c+')\x20—\x20'+'the\x20relay\x20may\x20have\x20already\x20committed\x20the\x20message\x20despite\x20the\x20client-side\x20failure.\x20'+'Do\x20NOT\x20re-send\x20blindly:\x20first\x20check\x20the\x20conversation\x20(watch_conversations\x20/\x20read\x20messages)\x20'+'for\x20the\x20same\x20payload;\x20re-send\x20only\x20after\x20confirming\x20it\x20never\x20arrived.\x20A\x20blind\x20re-send\x20DOUBLE-DELIVERS.');throw b instanceof Error?b:new Error(c);}const LOCAL_SCAN_PAGE_SIZE=0x3e8,LOCAL_SCAN_MAX_PAGES=0xa;async function scanConversationMessages(a,b){const c=[];let d=0x0;for(let e=0x0;e<LOCAL_SCAN_MAX_PAGES;e++){const f=await watch_messages({'account':a,'peerAddress':b,'sortOrder':'desc','skipAutoMarkViewed':!![],'limit':LOCAL_SCAN_PAGE_SIZE,'offset':d});c['push'](...f);if(f['length']<LOCAL_SCAN_PAGE_SIZE)return{'messages':c,'truncated':![]};d+=LOCAL_SCAN_PAGE_SIZE;}return{'messages':c,'truncated':!![]};}async function resolveMessengerAddress(a,b){try{const d=await GetAccountOrMark_Address(a);if(typeof d==='string'&&d['length']>0x0)return d;}catch{}const c=typeof a==='string'?a:a?.['name_or_address'];if(typeof c==='string'&&c['length']>0x0)return c;throw new Error(b+'\x20could\x20not\x20be\x20resolved\x20to\x20a\x20messenger\x20account\x20address');}export async function handleMessengerOperation(a){let b;try{b=strictParse(MessengerOperationInputSchema,a,'messenger_operation\x20input');const c=b['operation'];let d;switch(b['operation']){case'watch_conversations':{const h=await watch_conversations(b['filter']);d={'operation':'watch_conversations','result':h};break;}case'send_message':{let i;try{i=await send_message(normalizeOptionalAccountOrMark(b['from']),normalizeAccountOrMark(b['to']),b['content'],b['options']);}catch(l){throwIfTransportAmbiguous('send_message',l);}if(i['authRequired']){d={'operation':'send_message','result':i};break;}const j=i,k={...j,'merkleData':j['merkleData']?{'leafIndex':j['merkleData']['leafIndex'],'prevRoot':j['merkleData']['prevRoot'],'newRoot':j['merkleData']['newRoot'],'serverSignature':j['merkleData']['serverSignature'],'serverTimestamp':j['merkleData']['serverTimestamp'],'serverPublicKey':j['merkleData']['serverPublicKey']}:undefined};d={'operation':'send_message','result':k};break;}case'send_file':{let m;try{m=await send_file(normalizeOptionalAccountOrMark(b['from']),normalizeAccountOrMark(b['to']),b['filePath'],b['options']);}catch(p){throwIfTransportAmbiguous('send_file',p);}const n=m,o={...n,'merkleData':n['merkleData']?{'leafIndex':n['merkleData']['leafIndex'],'prevRoot':n['merkleData']['prevRoot'],'newRoot':n['merkleData']['newRoot'],'serverSignature':n['merkleData']['serverSignature'],'serverTimestamp':n['merkleData']['serverTimestamp'],'serverPublicKey':n['merkleData']['serverPublicKey']}:undefined};d={'operation':'send_file','result':o};break;}case'send_required_info':{let q=b['content'];const r=[];if(!q){const v=await GetAccountOrMark_Address(b['from']),w=await LocalInfo['Instance']()['list'](undefined,v),x=b['fields'],y=x&&x['length']>0x0?w['filter'](z=>x['includes'](z['name'])):w;if(y['length']===0x0)throw new Error('No\x20LocalInfo\x20fields\x20available.\x20Add\x20private\x20info\x20first\x20via\x20local_info_operation.');q=y['map'](z=>z['name']+':\x20'+z['default'])['join']('\x0a'),r['push'](...y['map'](z=>z['name']));}const s=await send_message(normalizeOptionalAccountOrMark(b['from']),normalizeAccountOrMark(b['to']),q,b['options']),t=s,u={...t,'merkleData':t['merkleData']?{'leafIndex':t['merkleData']['leafIndex'],'prevRoot':t['merkleData']['prevRoot'],'newRoot':t['merkleData']['newRoot'],'serverSignature':t['merkleData']['serverSignature'],'serverTimestamp':t['merkleData']['serverTimestamp'],'serverPublicKey':t['merkleData']['serverPublicKey']}:undefined,'sent_fields':r};d={'operation':'send_required_info','result':u};break;}case'watch_messages':{const z=b['filter']?{...b['filter'],'peerAddress':b['filter']['peerAddress']?normalizeAccountOrMark(b['filter']['peerAddress']):undefined,'account':b['filter']['account']?normalizeOptionalAccountOrMark(b['filter']['account']):undefined}:undefined,A=await watch_messages(z);d={'operation':'watch_messages','result':A};break;}case'save_attachment':{const B=await export_attachment(normalizeOptionalAccountOrMark(b['account']),b['messageId'],{'outputDir':b['outputDir'],'saveAs':b['saveAs']});d={'operation':'save_attachment','result':B};break;}case'generate_wts':{const C=b['params']?{...b['params'],'peerAccount':normalizeAccountOrMark(b['params']['peerAccount']),'myAccount':normalizeOptionalAccountOrMark(b['params']['myAccount'])}:undefined,D=await generate_wts(C);let E={'sealed_available':null,'sealed_available_note':null};try{const F=D?.['files'],G=Array['isArray'](F)&&typeof F[0x0]==='string'&&F[0x0]?F[0x0]:undefined;G?E=evaluateWtsSealedAvailability(await verify_wts(G)):E={'sealed_available':null,'sealed_available_note':'Evidence-tier\x20pre-check\x20UNVERIFIED:\x20no\x20packet\x20file\x20was\x20returned\x20to\x20probe\x20—\x20the\x20third-party-verifiable\x20tier\x20is\x20UNKNOWN;\x20run\x20sign_wts\x20then\x20verify_wts\x20and\x20read\x20serverKeysOfficial/serverKeyAnchor\x20there.'};}catch{E={'sealed_available':null,'sealed_available_note':'Evidence-tier\x20pre-check\x20UNVERIFIED:\x20the\x20anchor\x20probe\x20failed\x20(the\x20key\x20book\x20or\x20chain\x20was\x20unreachable)\x20—\x20the\x20WTS\x20itself\x20was\x20generated\x20normally;\x20treat\x20the\x20third-party-verifiable\x20tier\x20as\x20UNKNOWN\x20and\x20re-probe\x20with\x20verify_wts\x20after\x20sign_wts.'};}d={'operation':'generate_wts','result':{...D??{},'sealed_available':E['sealed_available'],'sealed_available_note':E['sealed_available_note']}};break;}case'verify_wts':{const H=await verify_wts(b['wtsFilePath']),I=H?.['valid']===![]?'A\x20packet\x20generated\x20by\x20generate_wts\x20is\x20UNSEALED\x20(no\x20meta.signature)\x20and\x20always\x20fails\x20verification\x20—\x20run\x20sign_wts\x20on\x20this\x20file\x20first,\x20then\x20verify_wts\x20the\x20SIGNED\x20output.':undefined,J=await attestWtsFile(b['wtsFilePath']);let K;if(H?.['serverKeysOfficial']===!![]){const L=H?.['serverKeysOfficialNetwork'],M=H?.['serverKeyAnchor']?.['network'],N=[];if(L){let O;try{O=String(await Config['Instance']()['network_get']());}catch{}O&&O!==L&&N['push']('NETWORK\x20MISMATCH:\x20official-key\x20verification\x20scored\x20in\x20the\x20\x27'+L+'\x27\x20key\x20partition,\x20but\x20this\x20call\x20was\x20served\x20on\x20network\x20\x27'+O+'\x27.\x20'+('The\x20verdict\x20is\x20evidence\x20for\x20\x27'+L+'\x27\x20only\x20—\x20quote\x20this\x20transcript\x20with\x20its\x20partition\x20stated,\x20or\x20switch\x20env.network\x20to\x20\x27'+L+'\x27\x20and\x20re-verify.')),L!=='mainnet'&&N['push']('PARTITION\x20RULE:\x20this\x20official\x20verdict\x20is\x20bound\x20to\x20the\x20\x27'+L+'\x27\x20partition\x20(anchor\x20network:\x20'+(M??L)+').\x20'+'For\x20a\x20MAINNET\x20case\x20the\x20ONLY\x20network-level\x20truth\x20is\x20an\x20on-chain\x20Proof\x20anchor\x20—\x20a\x20proof_message\x20re-anchored\x20on\x20mainnet.\x20'+'A\x20file-level\x20official\x20verdict\x20from\x20a\x20non-mainnet\x20partition\x20is\x20rehearsal\x20evidence\x20and\x20can\x20never\x20ground\x20a\x20mainnet\x20ruling.');}if(N['length']>0x0)K=N['join']('\x20');}d={'operation':'verify_wts','result':J?{...H,...I?{'hint':I}:{},...K?{'network_caveat':K}:{},'attestation':J}:{...H,...I?{'hint':I}:{},...K?{'network_caveat':K}:{},'attestation_unavailable':'Per-message\x20server\x20attestation\x20could\x20not\x20be\x20computed\x20(file\x20not\x20readable\x20locally\x20or\x20not\x20JSON).\x20The\x20guarded\x20verifier\x27s\x20valid\x20flag\x20already\x20required\x20server\x20attestation\x20+\x20seal;\x20cross-check\x20the\x20seal\x20signer\x20and\x20server\x20keys\x20yourself\x20before\x20treating\x20it\x20as\x20third-party\x20evidence.'}};break;}case'sign_wts':{const P=await sign_wts(b['wtsFilePath'],normalizeOptionalAccountOrMark(b['account']),b['outputPath']);d={'operation':'sign_wts','result':P};break;}case'wts2html':{const Q=await wts2html(b['wtsPath'],b['options']);d={'operation':'wts2html','result':Q};break;}case'proof_message':{let R;try{R=await proof_message(normalizeOptionalAccountOrMark(b['account']),b['messageId'],b['network']);}catch(T){if(isModuleLoadError(T)){const U=noteRuntimeModuleFault('proof_message',T);throw new Error('SDK\x20runtime\x20is\x20stale\x20in\x20this\x20process:\x20the\x20loaded\x20module\x20graph\x20references\x20chunk\x20\x22'+U['module']+'\x22\x20'+'which\x20no\x20longer\x20exists\x20on\x20disk\x20(the\x20SDK\x20dist\x20was\x20rebuilt\x20after\x20this\x20MCP\x20process\x20started).\x20'+'Restart\x20the\x20MCP\x20server\x20to\x20reload\x20the\x20rebuilt\x20dist;\x20this\x20operation\x20cannot\x20succeed\x20until\x20then.');}throw T;}const S=R?.['proofAddress'];if(typeof S==='string')noteProofIssued(S);d={'operation':'proof_message','result':R};break;}case'blacklist':{const V={'account':normalizeOptionalAccountOrMark(b['account']),'op':b['blacklist']['op']};'users'in b['blacklist']&&(V['users']=normalizeManyAccountOrMark(b['blacklist']['users']));const W=await blacklist(V);d={'operation':'blacklist','op':b['blacklist']['op'],'result':W['result']};break;}case'friendslist':{const X={'account':normalizeOptionalAccountOrMark(b['account']),'op':b['friendslist']['op']};'users'in b['friendslist']&&(X['users']=normalizeManyAccountOrMark(b['friendslist']['users']));const Y=await friendslist(X);d={'operation':'friendslist','op':b['friendslist']['op'],'result':Y['result']};break;}case'guardlist':{const Z=await guardlist({'account':normalizeOptionalAccountOrMark(b['account']),...b['guardlist']});d={'operation':'guardlist','op':b['guardlist']['op'],'result':Z['result']};break;}case'settings':{const a0=await settings({'account':normalizeOptionalAccountOrMark(b['account']),...b['settings']});d={'operation':'settings','op':b['settings']['op'],'result':a0['result']};break;}case'mark_messages_as_viewed':{const a1=await mark_messages_as_viewed(b['messageIds'],normalizeOptionalAccountOrMark(b['account']));d={'operation':'mark_messages_as_viewed','result':a1};break;}case'mark_conversation_as_viewed':{const a2=await mark_conversation_as_viewed(normalizeAccountOrMark(b['peerAddress']),normalizeOptionalAccountOrMark(b['account']));d={'operation':'mark_conversation_as_viewed','result':a2};break;}case'mark_conversation_read':{const a3=await resolveMessengerAddress(b['account'],'mark_conversation_read.account'),a4=await resolveMessengerAddress(b['peerAddress'],'mark_conversation_read.peerAddress'),a5=await scanConversationMessages(a3,normalizeAccountOrMark(b['peerAddress'])),a6=a5['messages']['filter'](ad=>ad['direction']==='received'&&typeof ad['leafIndex']==='number')['map'](ad=>ad['leafIndex']),a7=a6['length']>0x0?Math['max'](...a6):null,a8=typeof b['through_seq']==='number'?b['through_seq']:null;let a9=a8??a7,aa=![];a9!==null&&(a7===null||a9>a7)&&(a9=a7,aa=!![]);const ab=await mark_conversation_as_viewed(normalizeAccountOrMark(b['peerAddress']),normalizeOptionalAccountOrMark(b['account'])),ac=recordConversationRead(a3,a4,a9);d={'operation':'mark_conversation_read','result':{...ac,'marked_count':ab,'capped':aa,'requested_through_seq':a8}};break;}case'pull_messages':{if(b['after']!==undefined){if(b['allAccounts']||b['accounts']?.['length'])throw new Error('pull_messages.after\x20is\x20conversation-scoped\x20and\x20cannot\x20be\x20combined\x20with\x20allAccounts/accounts\x20fan-out\x20—\x20call\x20it\x20once\x20per\x20account\x20and\x20conversation.');if(!b['peerAddress'])throw new Error('pull_messages.after\x20requires\x20peerAddress:\x20the\x20message\x20sequence\x20(leafIndex)\x20is\x20per\x20conversation,\x20so\x20an\x20incremental\x20cursor\x20must\x20name\x20the\x20conversation.\x20Omit\x20`after`\x20for\x20the\x20legacy\x20bare-array\x20pull.');const ae=await resolveMessengerAddress(b['account'],'pull_messages.account'),af=await resolveMessengerAddress(b['peerAddress'],'pull_messages.peerAddress'),ag=typeof b['limit']==='number'?b['limit']:0x32,ah=[];try{await pull_messages(normalizeOptionalAccountOrMark(b['account']),b['limit']);}catch(al){const am=al instanceof Error?al['message']:String(al);ah['push']('server\x20refresh\x20failed,\x20so\x20this\x20page\x20is\x20served\x20from\x20the\x20local\x20store\x20only\x20('+am+')');}const ai=await scanConversationMessages(ae,normalizeAccountOrMark(b['peerAddress'])),aj=pageMessagesBySeq(ai['messages'],b['after'],ag,{'scanTruncated':ai['truncated']}),ak=[...ah,...aj['degraded_reasons']];d={'operation':'pull_messages','result':{'mode':'incremental','account':ae,'peer':af,'after':aj['after'],'messages':aj['messages'],'highest_seq':aj['highest_seq'],'latest_seq':aj['latest_seq'],'has_more':aj['has_more'],'gap':aj['gap'],'degraded':ak['length']>0x0,'degraded_reasons':ak,'read_receipt':getConversationReadReceipt(ae,af)}};break;}const ad=await pull_messages(normalizeOptionalAccountOrMark(b['account']),b['limit'],{'allAccounts':b['allAccounts'],'accounts':b['accounts']?.['map'](an=>normalizeAccountOrMark(an)),'concurrency':b['concurrency']});d={'operation':'pull_messages','result':ad};break;}default:throw new Error('Unknown\x20messenger\x20operation:\x20'+c);}const f=classifyCommunicationEvidence(c),g=b['goal_id'];if(f&&g){const an=d['result'],{detail:ao,data:ap}=communicationEvidencePayload(c,an);await goalEngine['recordCommunicationEvidence'](g,{'operation':c,'kind':f['kind'],'title':f['title'],'detail':ao,'data':ap},b['network']??'default');}return{'content':[{'type':'text','text':JSON['stringify'](d)}],'structuredContent':{'result':d}};}catch(aq){const ar=aq instanceof Error?aq['message']:String(aq),as=b?{'operation_type':'messenger_'+b['operation'],'data':b}:undefined,at=classifyError(ar),au={'operation':'error','error':ar};if(at['error_code']!==undefined)au['error_code']=at['error_code'];if(at['retryable']!==undefined)au['retryable']=at['retryable'];if(at['recovery_hint']!==undefined)au['recovery_hint']=at['recovery_hint'];return{'content':[{'type':'text','text':'Error:\x20'+ar}],'structuredContent':{'result':au,'semantic':buildDataSemantic(undefined,as,!![],ar)}};}}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type ParsedMachineNode } from "../../graph/onchain/sdk-batch.js";
|
|
2
2
|
import type { ToolDispatchResult } from "../types.js";
|
|
3
3
|
export declare function assertRewardReplayStamp(entries: unknown, network?: string, warnings?: string[]): Promise<void>;
|
|
4
|
+
export declare function checkRewardOnceArming(data: unknown, network?: string, warnings?: string[]): Promise<void>;
|
|
5
|
+
export declare function verifyRewardEvidenceBindings(result: unknown, rewardRef: unknown, guardAdds: unknown, network?: string): Promise<string[]>;
|
|
4
6
|
export declare function warnMerchantCompensationFundLow(data: any, network: string | undefined, constraintWarnings: string[]): Promise<{
|
|
5
7
|
content: Array<{
|
|
6
8
|
type: "text";
|
|
@@ -9,7 +11,7 @@ export declare function warnMerchantCompensationFundLow(data: any, network: stri
|
|
|
9
11
|
structuredContent: Record<string, unknown>;
|
|
10
12
|
} | undefined>;
|
|
11
13
|
export declare function deriveTotalPayIfOmitted(data: any, network: unknown): Promise<string | undefined>;
|
|
12
|
-
export declare function
|
|
14
|
+
export declare function warnOrderNewFundCoverage(data: any, network: unknown): Promise<string | null>;
|
|
13
15
|
export declare function gateServiceBuyGuardMount(data: any, network: unknown): Promise<ToolDispatchResult | null>;
|
|
14
16
|
export declare function parseTotalPayRaw(buy: any): bigint | undefined;
|
|
15
17
|
export declare function gateOrderNewZeroTotal(data: any): ToolDispatchResult | null;
|
|
@@ -17,6 +19,14 @@ export declare function minCompletionFixedFloor(groups: {
|
|
|
17
19
|
guard: string;
|
|
18
20
|
sum: bigint;
|
|
19
21
|
}[], nodes: ParsedMachineNode[]): bigint | undefined;
|
|
22
|
+
export declare const KEEPER_DUAL_PAYOUT_DIRECTIVE: string;
|
|
23
|
+
export declare function storeDualPayoutVerdict(env?: {
|
|
24
|
+
account?: string;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
account: string | undefined;
|
|
27
|
+
authorized: boolean;
|
|
28
|
+
authorized_at?: string;
|
|
29
|
+
}>;
|
|
20
30
|
export declare function arbClaimEscrowEmptyDualPayout(inputs: {
|
|
21
31
|
orderAmount?: number;
|
|
22
32
|
escrowBalance?: number;
|
|
@@ -47,5 +57,13 @@ export declare function prepareSalesAddDuplicateGate(data: any, network: unknown
|
|
|
47
57
|
export declare function gateServicePublishPreflight(data: any): ToolDispatchResult | null;
|
|
48
58
|
export declare function invalidateResolvedNameCache(): void;
|
|
49
59
|
export declare function isPassportVerifyFailure(msg: string, hasGuardContext: boolean): boolean;
|
|
60
|
+
export declare function synthesizeBuyGuardSubmissionForDiagnosis(validated: any): Promise<{
|
|
61
|
+
guard: {
|
|
62
|
+
object: string;
|
|
63
|
+
impack: boolean;
|
|
64
|
+
}[];
|
|
65
|
+
submission: [];
|
|
66
|
+
} | undefined>;
|
|
67
|
+
export declare function isBuyGuardAbortContext(validated: any, errorMessage: string): boolean;
|
|
50
68
|
export declare function handleOnchainOperations(args: unknown): Promise<ToolDispatchResult>;
|
|
51
69
|
export {};
|