@wowok/agent-mcp 3.1.4 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/schema/workspace/index.d.ts +53 -0
- package/dist/schema/workspace/index.js +1 -1
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/workspace_operation.output.json +181 -1
- package/dist/schemas/workspace_operation.schema.json +61 -2
- package/dist/tools/handlers/workspace.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
export const TOOLS_REFERENCE=[{'name':'onchain_operations','summary':'On-chain\x20object\x20creation,\x20modification,\x20and\x20publish\x20for\x20all\x2016\x20Wowok\x20object\x20types.','actions':['service','machine','guard','permission','reward','arb','progress','treasury','demand','repository','contact','order','allocation','personal','payment','proof','gen_passport','gen_proof'],'common_params':{'operation_type':'Object\x20type\x20to\x20create/modify\x20(string\x20enum).','data':'Operation\x20payload\x20—\x20shape\x20varies\x20by\x20operation_type.','object':'Object\x20name\x20or\x20address\x20(for\x20modify-by-id).','namedNew':'New\x20object\x20spec\x20(name,\x20description,\x20tags)\x20for\x20create.','env':'Execution\x20environment\x20(account,\x20network,\x20gas_budget).'},'prerequisites':['account_operation\x20(for\x20account\x20setup)'],'follow_ups':['query_toolkit\x20(verify\x20result)','local_mark_operation\x20(tag\x20object)'],'notes':['publish=true\x20is\x20irreversible\x20—\x20use\x20confirm_gate.','Service/Machine\x20require\x20publish\x20after\x20create\x20before\x20they\x20are\x20visible\x20on-chain.','Use\x20schema_query\x20with\x20action=\x27list_operations\x27\x20to\x20see\x20all\x20operation\x20schemas.','NETWORK:\x20by\x20default\x20omit\x20env.network\x20—\x20the\x20operation\x20runs\x20on\x20the\x20user\x27s\x20CURRENT\x20network\x20(the\x20app\x27s\x20active\x20selection);\x20the\x20confirmation\x20card\x20echoes\x20the\x20actual\x20network.\x20Never\x20guess\x20or\x20invent\x20a\x20network\x20on\x20your\x20own\x20initiative.','NETWORK\x20SWITCH\x20(explicit\x20user\x20intent\x20only):\x20when\x20the\x20user\x27s\x20request\x20clearly\x20targets\x20a\x20DIFFERENT\x20network\x20(e.g.\x20\x22create\x20this\x20permission\x20on\x20testnet\x22\x20while\x20the\x20app\x20is\x20on\x20mainnet),\x20set\x20env.network\x20to\x20that\x20network\x20in\x20THIS\x20call\x20—\x20the\x20client\x20pops\x20a\x20mandatory\x20network-switch\x20confirmation\x20card;\x20only\x20after\x20the\x20user\x20approves\x20does\x20the\x20call\x20(and\x20the\x20whole\x20app)\x20run\x20on\x20the\x20new\x20network.\x20If\x20the\x20user\x20declines,\x20do\x20NOT\x20retry\x20on\x20that\x20network\x20—\x20continue\x20on\x20the\x20current\x20one.\x20Read-only\x20queries\x20(query_toolkit\x20context_network)\x20never\x20need\x20this\x20—\x20they\x20select\x20a\x20network\x20per\x20call\x20without\x20switching.']},{'name':'account_operation','summary':'Local\x20wallet\x20management\x20—\x20generate,\x20suspend,\x20resume,\x20faucet,\x20sign\x20data.','actions':['gen','resume','suspend','faucet','operate','sign','list','info'],'common_params':{'name':'Account\x20name\x20(local\x20identifier).','network':'mainnet\x20|\x20testnet\x20(determines\x20RPC).'},'prerequisites':[],'follow_ups':['onchain_operations\x20(use\x20account\x20for\x20signing)'],'notes':['100%\x20LOCAL\x20—\x20keys\x20never\x20leave\x20the\x20device.','faucet\x20only\x20works\x20on\x20testnet.']},{'name':'local_mark_operation','summary':'Local\x20address\x20book\x20—\x20map\x20human-readable\x20names\x20to\x20blockchain\x20addresses\x20with\x20tags.','actions':['add','remove','update','list','query'],'common_params':{'name':'Local\x20name.','address':'Blockchain\x20address.','tags':'Tag\x20array.'},'notes':['100%\x20LOCAL\x20—\x20never\x20on-chain.','Names\x20are\x20accepted\x20by\x20most\x20on-chain\x20query/panorama\x20tools\x20in\x20place\x20of\x20raw\x20addresses.']},{'name':'local_info_operation','summary':'Local\x20private\x20data\x20management\x20—\x20delivery\x20addresses,\x20phone\x20numbers,\x20contacts.','actions':['add','remove','update','list'],'notes':['100%\x20LOCAL\x20—\x20sensitive\x20data,\x20never\x20on-chain.']},{'name':'local_history_operation','summary':'Local\x20Explorer\x20visit\x20history\x20—\x20recently\x20viewed\x20objects,\x20newest\x20first.','actions':['list\x20(default)','add\x20(upsert\x20by\x20key)','remove\x20(by\x20keys)','clear'],'common_params':{'add':'Record\x20visits:\x20{op:\x27add\x27,\x20data:[{key,\x20address,\x20object_type?,\x20network,\x20time}]}.','remove':'Delete\x20entries:\x20{op:\x27remove\x27,\x20keys:[...]}.','clear':'Erase\x20all\x20history:\x20{op:\x27clear\x27}.'},'notes':['100%\x20LOCAL\x20—\x20visit\x20records\x20never\x20leave\x20the\x20device;\x20display\x20names\x20are\x20never\x20stored\x20(resolved\x20live\x20at\x20render).','Omit\x20every\x20operation\x20field\x20to\x20list\x20history\x20(newest\x20first,\x20auto-pruned\x20to\x20last\x2030\x20days\x20/\x20300\x20entries).','detail\x20visits\x20keep\x20the\x20object\x20type\x20tag;\x20each\x20entry\x20stores\x20the\x20stable\x20object\x20key\x20+\x20canonical\x200x\x20address\x20+\x20network\x20+\x20timestamp.']},{'name':'wip_file','summary':'Witness\x20Immutable\x20Promise\x20file\x20operations\x20—\x20generate,\x20verify,\x20sign,\x20convert.','actions':['generate','verify','sign','wip2html'],'notes':['WIP\x20hash\x20must\x20be\x20non-empty\x20—\x20compute\x20actual\x20hash\x20before\x20calling.']},{'name':'messenger_operation','summary':'Encrypted\x20messenger\x20—\x20watch/send\x20messages,\x20WTS,\x20friendslist,\x20blacklist,\x20guardlist.','actions':['watch_conversations','send_message','send_file','send_required_info','watch_messages','save_attachment','generate_wts','verify_wts','sign_wts','wts2html','proof_message','blacklist','friendslist','guardlist','settings','mark_messages_as_viewed','mark_conversation_as_viewed','pull_messages'],'notes':['Requires\x20messenger-enabled\x20account.','30s\x20timeout\x20—\x20network\x20operations.','Attachment\x20messages\x20return\x20byte-free\x20descriptors\x20(msg.attachment;\x20plaintext\x20is\x20undefined).\x20Use\x20save_attachment\x20{messageId}\x20to\x20persist\x20the\x20file\x20(e.g.\x20before\x20verify_wts);\x20bytes\x20are\x20never\x20embedded\x20in\x20message\x20outputs.','send_required_info\x20assembles\x20selected\x20LocalInfo\x20fields\x20into\x20one\x20E2E\x20message\x20(\x27field:\x20value\x27\x20lines)\x20—\x20the\x20dedicated\x20path\x20for\x20delivering\x20customer_required\x20info.','pull_messages\x20supports\x20allAccounts/accounts\x20for\x20one\x20bounded-concurrency\x20fan-out\x20across\x20accounts.']},{'name':'guard2file','summary':'Export\x20a\x20Guard\x20object\x27s\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'machineNode2file','summary':'Export\x20a\x20Machine\x20object\x27s\x20node\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'query_toolkit','summary':'Query\x20toolkit\x20covering\x20local\x20device\x20data,\x20on-chain\x20blockchain\x20data,\x20and\x20one-call\x20business-intelligence\x20panoramas/review\x20packs.','actions':['local_mark_list','account_list','local_info_list','local_names','token_list','account_balance','onchain_personal_profile','onchain_objects','onchain_received','onchain_transaction','onchain_block','onchain_object_history','onchain_address_activity','address_profile','address_profiles','migration_preflight','token_value_convert','onchain_last_updated','service_panorama','machine_panorama','object_panorama','review_pack','assemble_context','reverse_map','participation_radar','onchain_topology'],'notes':['Read-only\x20—\x20safe\x20to\x20call\x20without\x20confirmation.','local_names\x20resolves\x20a\x20batch\x20of\x20addresses\x20to\x20account/local_mark\x20names\x20(canonical\x20name\x20source\x20for\x20display);\x20address_profile(s)\x20is\x20the\x20one-stop\x20\x27who/what\x20is\x20this\x20address\x27\x20query\x20(classification\x20+\x20reputation\x20+\x20memberships\x20+\x20reverse\x20bindings;\x20batch\x20up\x20to\x2050);\x20migration_preflight\x20detects\x20existing\x20builds\x20on\x20another\x20network\x20and\x20returns\x20the\x20testnet→mainnet\x20migration\x20checklist.','BI\x20query\x20types\x20(one-call\x20panoramas):\x20service_panorama\x20(full\x20Service\x20context:\x20workflow\x20graph\x20+\x20guards\x20+\x20trust\x20+\x20supply\x20chain\x20+\x20BusinessReport\x20+\x20recent\x20orders),\x20machine_panorama\x20(head\x20+\x20fields\x20+\x20workflow\x20graph\x20+\x20Progress\x20list),\x20object_panorama\x20(Progress/Demand/Order/Arb/Repository\x20detail\x20pages),\x20review_pack\x20(typed\x20ReviewPack\x20for\x20the\x20client\x27s\x20ReviewPackRenderer),\x20assemble_context\x20(semantic\x20context\x20from\x20on-chain\x20objects),\x20reverse_map\x20(deterministic\x20L4→L1\x20business\x20report\x20—\x20merchant\x20profile\x20/\x20user\x20risk\x20/\x20game\x20theory),\x20participation_radar\x20(in-flight\x20order\x20participation\x20analysis\x20for\x20ONE\x20account).','onchain_topology\x20=\x20graph\x20evaluation\x20of\x20ONE\x20object\x20(trust\x20+\x20risk\x20+\x20completeness\x20+\x20coverage\x20+\x20unverified\x20over\x20its\x20workflow/guard/fund\x20topology)\x20—\x20the\x20unified\x20read-side\x20trust/risk\x20surface;\x20use\x20when\x20the\x20user\x20asks\x20\x27is\x20this\x20service\x20trustworthy?\x27\x20or\x20\x27should\x20I\x20buy?\x27.']},{'name':'onchain_table_data','summary':'Dynamic\x20table\x20data\x20queries\x20—\x20paginated\x20table\x20queries\x20and\x20specific\x20table\x20item\x20lookups.','actions':['onchain_table','onchain_table_item_repository_data','onchain_table_item_permission_perm','onchain_table_item_entity_registrar','onchain_table_item_entity_linker','onchain_table_item_entity_contact','onchain_table_item_object_linker_core','onchain_table_item_object_linker_tx','onchain_table_item_reward_record','onchain_table_item_demand_presenter','onchain_table_item_treasury_history','onchain_table_item_machine_node','onchain_table_item_progress_history','onchain_table_item_address_mark','onchain_table_item_entity_order','onchain_orders_of_user','onchain_orders_of_users','onchain_affiliations_of_object','onchain_table_item_generic'],'notes':['Read-only\x20—\x20safe\x20for\x20exploration.','object_linker\x20core\x20(0xaae)\x20=\x20default\x20reverse\x20lookup\x20(bounded\x20core\x20objects);\x20object_linker\x20tx\x20(0xaaf)\x20=\x20operational\x20reverse\x20lookup\x20(orders/progress,\x20lossy\x20FIFO).','entity_order\x20(0xaa8)\x20=\x20global\x20entity->orders\x20reverse\x20index;\x20onchain_orders_of_user\x20resolves\x20each\x20order\x20to\x20its\x20full\x20on-chain\x20Order\x20object\x20with\x20role\x20attributes\x20(is_owner/is_agent).']},{'name':'onchain_events','summary':'Watch\x20on-chain\x20events\x20by\x20type\x20—\x20arbitration,\x20order,\x20progress,\x20demand,\x20entity.','notes':['Read-only\x20—\x20use\x20cursor\x20for\x20pagination.']},{'name':'wowok_buildin_info','summary':'Protocol\x20info\x20—\x20constants,\x20built-in\x20permissions,\x20common\x20mistakes,\x20guard\x20instructions,\x20network,\x20value\x20types,\x20bridge\x20tokens.','actions':['constants','built-in\x20permissions','common\x20mistakes','guard\x20instructions','current\x20network','value\x20types','mainnet\x20bridge\x20tokens'],'notes':['Read-only\x20—\x20authoritative\x20protocol\x20reference.','Use\x20\x27common\x20mistakes\x27\x20before\x20submitting\x20an\x20operation\x20to\x20learn\x20known\x20field-name/unit/workflow\x20pitfalls.']},{'name':'schema_query','summary':'Look\x20up\x20JSON\x20Schemas\x20for\x20MCP\x20tools\x20and\x20on-chain\x20operations\x20—\x20the\x20authoritative\x20reference.\x20Also\x20serves\x20sunk\x20knowledge:\x20tool\x20reference,\x20Guard\x20design\x20patterns,\x20safety\x20rules.','actions':['list','get','get_output','get_field','search','list_operations','get_guard_templates','get_tool_reference','get_guard_design_patterns','get_safety_rules'],'notes':['Always\x20check\x20schema\x20before\x20calling\x20an\x20unfamiliar\x20tool.','get_field\x20takes\x20a\x20dot-path\x20(field_path)\x20for\x20single-field\x20lookup.','get_tool_reference/get_guard_design_patterns/get_safety_rules\x20expose\x20the\x20knowledge\x20sunk\x20from\x20the\x20wowok-tools/guard/safety\x20skills\x20—\x20no\x20skills\x20installation\x20required.']},{'name':'bridge_operation','summary':'Cross-chain\x20bridge\x20between\x20WOW\x20and\x20EVM\x20(Ethereum\x20mainnet).\x20Mainnet\x20only.','actions':['cross_chain_wow_to_evm','cross_chain_evm_to_wow','withdraw','query_active_evm_account','query_supported_evm_chains','query_supported_tokens','query_transfer_list','query_transfer_status','manage_evm_rpc'],'notes':['Only\x20WOW\x20mainnet\x20provides\x20cross-chain\x20functionality.']},{'name':'config_operation','summary':'Runtime\x20service\x20toggles\x20—\x20enable/disable\x20Phase\x202\x20services\x20without\x20restart.','actions':['list','toggle','enable','disable','reset','info'],'notes':['GLM5:\x20harness\x20is\x20default\x20ON\x20with\x20tiered\x20enforcement\x20(off/lightweight/full).']},{'name':'evaluation_operation','summary':'Pluggable\x20business\x20evaluations\x20—\x20match\x20/\x20compose\x20/\x20game\x20(node\x20+\x20path)\x20/\x20evidence\x20review\x20/\x20discovery\x20/\x20market\x20/\x20arbitration\x20score\x20with\x20user\x20injection.','actions':['demand_match','service_match','capability_gap','compose_service','node_game','arb_game','path_reasoning','evidence_review','discover_services','discover_demands','market_metrics','market_operations','anti_cheat','match_discover','arbitration_score','account_events'],'notes':['Read-only;\x20the\x20role\x20decides\x20and\x20acts\x20via\x20onchain_operations.','path_reasoning\x20=\x20path-level\x20game\x20(full-route\x20enumeration\x20+\x20ranking);\x20node_game\x20=\x20single-node\x20best\x20move.','evidence_review\x20=\x20deterministic\x20off-chain\x20evidence\x20closure\x20gate\x20(auto_pass/auto_reject/manual_review).','discover_services\x20=\x20active\x20supply\x20discovery\x20(GraphQL\x20transport\x20required):\x20enumerate\x20all\x20shared\x20Services,\x20location-gate\x20by\x20sensitivity\x20(strict/near/logistics),\x20ranked\x20+\x20consent-gated\x20scope\x20expansion.\x20Passive\x20side\x20=\x20post\x20a\x20Demand\x20(DemandPresenter).','match_discover\x20=\x20one-shot\x20intent→service\x20orchestration\x20(enumerate\x20+\x20location\x20gate\x20+\x206-dimension\x20scoring);\x20discover_demands\x20=\x20supplier-side\x20demand\x20enumeration;\x20market_metrics/market_operations\x20=\x20market\x20measurement\x20(GraphQL\x20required).','arbitration_score\x20=\x20dual-perspective\x20arbitration\x20trust\x20(user-trust\x20+\x20merchant-fairness,\x20combined\x200-100);\x20anti_cheat\x20=\x20fake-review/wash-order\x20detection;\x20account_events\x20=\x20account\x20attention\x20feed\x20(read-only).']},{'name':'watch_operation','summary':'Identity-centric\x20on-chain\x20console\x20—\x20resolve\x20who\x20the\x20account\x20is\x20against\x20an\x20object,\x20expand\x20its\x20relations,\x20and\x20enumerate\x20actionable\x20operations.','actions':['focus','expand','actions'],'notes':['Read-only;\x20distinct\x20from\x20query_toolkit\x20/\x20onchain_table_data\x20(pure\x20data,\x20no\x20identity).','focus\x20=\x20identity\x20resolution\x20(manifest\x20on-chain\x20role\x20⊕\x20persona)\x20+\x20base\x20data;\x20neutral\x20→\x20objective\x20narration,\x20operative\x20role\x20→\x20game\x20reasoning.','expand\x20=\x20direct\x20relations\x20+\x20Service\x20transparent\x20sub-order\x20purchasing\x20graph\x20(frozen\x20forward\x20guards\x20→\x20purchased\x20sub-services\x20+\x20proofs).','actions\x20=\x20actionable\x20operations\x20with\x20executability\x20judgment\x20(order-holder\x20/\x20permission-index\x20/\x20named-operator\x20paths).']},{'name':'persona_operation','summary':'User\x20identity\x20setting\x20(persona)\x20—\x20preferences,\x20strategy,\x20rules,\x20spec;\x20long-term\x20+\x20current\x20layers\x20+\x20strategy→lever\x20mapping\x20+\x20region\x20hint.','actions':['get','list','set','analyze','apply','sync','remove','strategy','region_hint','distill'],'notes':['Read/write\x20local\x20state;\x20account\x20persona\x20overrides\x20system;\x20current\x20overrides\x20long-term.','strategy\x20resolves\x20merchant\x20strategy\x20statements\x20into\x20deterministic\x20infrastructure\x20levers\x20(discount/reward/buy_guard/machine_design).','region_hint\x20reads\x20the\x20local\x20delivery\x20address\x20as\x20a\x20matching\x20hint;\x20`propose`\x20returns\x20a\x20consent-gated\x20save\x20proposal\x20(never\x20auto-writes).','distill\x20turns\x20one\x20goal\x27s\x20memory\x20(outcome,\x20process\x20problems/feedback,\x20objects)\x20into\x20a\x20CURRENT-layer\x20proposal\x20—\x20never\x20auto-writes;\x20persist\x20via\x20set/apply\x20after\x20user\x20confirmation.\x20Industry\x20pack.json\x20files\x20are\x20read-only\x20knowledge\x20and\x20never\x20receive\x20user\x20data.']},{'name':'employee_operation','summary':'Merchant\x20employee\x20organizational\x20profile\x20(LOCAL)\x20+\x20reaction\x20KPI\x20+\x20liability\x20resolution\x20+\x20incentive\x20suggestion.','actions':['set','get','remove','assess_kpi','resolve_liability','suggest_incentive'],'notes':['LOCAL\x20ONLY\x20—\x20on-chain\x20authorization\x20lives\x20in\x20the\x20merchant\x27s\x20Permission\x20(namedOperator/entity).','assess_kpi:\x20node\x20reaction\x20speed\x20vs\x20budget\x20(explicit\x20>\x20stored\x20profile\x20>\x2048h\x20default).\x20Timestamps\x20explicit\x20OR\x20auto-derived\x20from\x20the\x20progress\x20object\x27s\x20monitored\x20ProgressEvents\x20via\x20`progress`;\x20explicit\x20values\x20override\x20derived.','resolve_liability:\x20internal\x20cost\x20split\x20(merchant/employee,\x20hybrid\x20threshold);\x20outward\x20liability\x20toward\x20the\x20customer\x20is\x20ALWAYS\x20the\x20merchant\x27s;\x20order\x20user\x20must\x20be\x20compensated\x20before\x20the\x20workflow\x20resumes.','suggest_incentive:\x20KPIs\x20+\x20WIP\x20acceptance\x20+\x20liability\x20→\x20Reward\x20suggestion\x20(reward_grant/compensation_offset/correction_notice/none).\x20Suggestion\x20ONLY\x20—\x20merchant\x20confirms\x20and\x20executes\x20the\x20on-chain\x20ops\x20separately.']},{'name':'keeper_operation','summary':'Who-benefits-who-pushes\x20keeper:\x20scans\x20the\x20monitor\x20scope\x20for\x20actionable\x20state\x20(unclaimed\x20payments,\x20advanceable\x20workflow\x20nodes),\x20routes\x20tasks\x20to\x20beneficiaries;\x20manual\x20dismiss/execute\x20+\x20standing\x20auto-execute\x20rules.','actions':['tasks','dismiss','execute','rules','rule_set','rule_remove','config','config_set','scan','status'],'notes':['The\x20chain\x20has\x20NO\x20time-triggered\x20execution\x20—\x20the\x20keeper\x20scans\x20on\x20the\x20monitor\x20loop\x20cadence\x20and\x20surfaces\x20tasks\x20to\x20their\x20beneficiary.','execute\x20runs\x20the\x20on-chain\x20op\x20for\x20one\x20task\x20(user\x20decision);\x20rule_set\x20authorizes\x20auto-execution\x20per\x20detector\x20kind\x20(bounded\x20by\x20config\x20budget/cooldown).','Detectors\x20v1:\x20payment_unclaimed\x20(funds\x20sitting\x20claimable),\x20progress_actionable\x20(a\x20workflow\x20node\x20the\x20beneficiary\x20can\x20advance).']},{'name':'intent_radar','summary':'User\x20business\x20intent\x20×\x20chain\x20event\x20matching\x20—\x20persist\x20intents,\x20score\x20events\x20against\x20them.','actions':['save','list','remove','match'],'notes':['Read-only\x20w.r.t.\x20chain;\x20industry/keywords\x20resolved\x20once\x20at\x20save;\x20events\x20supplied\x20or\x20auto-pulled.']},{'name':'goal_operation','summary':'GoalEngine\x20(K3\x2024)\x20—\x20record\x20a\x20user\x20goal\x20and\x20drive\x20it\x20through\x20the\x20nine-station\x20lifecycle\x20(RECOGNIZE→…→COMPLETE)\x20with\x20monitor\x20auto-binding\x20and\x20plan-approval\x20confirm-gate\x20downgrade;\x20also\x20hosts\x20the\x20C1-C4\x20planning\x20pipeline\x20+\x20merchant\x20onboarding\x20wizard.','actions':['create','list','get','approve','advance','pause','complete','abandon','delete','analyze_intent','aggregate_risks','trace_substeps','merchant_guide'],'common_params':{'id':'Goal\x20id\x20(goal_…)\x20—\x20required\x20for\x20get/approve/advance/pause/complete/abandon/delete.','intent_text':'create:\x20raw\x20user\x20intent;\x20goal_type\x20auto-classified\x20(override\x20with\x20goal_type).','account':'create:\x20bind\x20a\x20local\x20account\x20(preflight;\x20goal\x20starts\x20at\x20\x27bound\x27).','stage':'advance:\x20forward-only\x20target\x20stage;\x20\x27paused\x27\x20holds\x20from\x20anywhere.','objects':'advance:\x20ACT-station\x20objects\x20[{type,\x20object}]\x20(deduped).','force':'complete:\x20skip\x20on-chain\x20completion\x20verification\x20(audited\x20as\x20outcome.forced).'},'follow_ups':['monitor_events\x20(goal\x20progress\x20surfaces\x20in\x20the\x20todo\x20stream)','onchain_operations\x20(execute\x20plan\x20steps\x20with\x20env.plan_approval)'],'notes':['Near-duplicate\x20create\x20ADOPTS\x20the\x20active\x20same-type\x20same-account\x20goal\x20(intent\x20Jaccard\x20≥\x200.6)\x20instead\x20of\x20forking.','approve\x20registers\x20a\x20plan\x20approval:\x20calls\x20carrying\x20env.plan_approval=<goal\x20id>\x20auto-pass\x20fail-open\x20ConfirmGate\x20levels\x20(standard/none);\x20fail-closed\x20levels\x20(irreversible/publish/amount)\x20always\x20still\x20ask.','Entering\x20\x27monitoring\x27\x20auto-binds\x20monitor\x20focus\x20(reason=\x27goal\x27,\x20goal_id-stamped)\x20for\x20the\x20goal\x27s\x20objects;\x20demand\x20goals\x20also\x20open\x20a\x20radar\x20intent.\x20complete/abandon\x20tear\x20down\x20ONLY\x20this\x20goal\x27s\x20bindings.','complete\x20verifies\x20the\x20goal-type\x20completion\x20conjunction\x20against\x20chain\x20state\x20(read-only);\x20force=true\x20bypasses\x20and\x20is\x20audited.','delete\x20removes\x20a\x20terminal\x20goal\x20entirely\x20(record\x20+\x20TaskProcess\x20dir);\x20force=true\x20extends\x20it\x20to\x20non-terminal\x20goals\x20(monitor\x20teardown\x20first).','C1-C4\x20planning\x20pipeline\x20(GLM5-31\x20§V3/V4):\x20analyze_intent\x20(intent\x20→\x20objects\x20+\x20puzzle\x20snapshots)\x20→\x20aggregate_risks\x20(puzzles\x20OR\x20intent\x20→\x20calibrated\x20risks\x20+\x20RISK_BLOCKED\x20status)\x20→\x20trace_substeps\x20(substep\x20records\x20→\x20DAG\x20coherence\x20+\x20D-10\x20verdict);\x20merchant_guide\x20=\x2010-step\x20onboarding\x20wizard\x20(stateless\x20guide_state,\x20never\x20executes\x20on-chain\x20—\x20materialize\x20via\x20onchain_operations).\x20All\x20four\x20are\x20pure\x20transformations.']},{'name':'monitor_events','summary':'Persistent\x20monitor\x20event\x20store\x20(shared\x20with\x20the\x20client\x20Monitor\x20page)\x20—\x20paginated\x20events\x20with\x20read\x20flags;\x20mark\x20read/unread.','actions':['query','mark_read','mark_all_read'],'notes':['Events\x20captured\x20by\x20the\x20resident\x20MonitorLoop\x20(client\x20sidecar,\x20or\x20stdio\x20MCP\x20server\x20with\x20MONITOR_LOOP=1)\x20across\x209\x20modules,\x20stored\x20APPEND-ONLY\x20in\x20SQLite\x20(survives\x20restarts)\x20with\x20per-event\x20read\x20flags.','query\x20=\x20paginated\x20newest-first\x20with\x20module/event_type/since/until\x20filters\x20+\x20module_counts/unread_by_module/total_unread;\x20relevant_only\x20(default\x20true)\x20restricts\x20to\x20scope-closure/focus/filter\x20hits\x20(de-noised\x20todo\x20stream);\x20with_reason\x20attaches\x20the\x20relevance\x20annotation\x20+\x20delivered\x20flag;\x20mark_read\x20=\x20idempotent\x20per-event\x20(\x27<eventSeq>:<txDigest>\x27);\x20mark_all_read\x20=\x20optionally\x20module-scoped.','Cross-process:\x20read\x20state\x20is\x20SHARED\x20with\x20the\x20client\x20app\x20(same\x20SQLite\x20store)\x20—\x20marking\x20read\x20here\x20clears\x20the\x20client\x20Monitor\x20unread\x20badge\x20and\x20vice\x20versa.']},{'name':'monitor_subscription','summary':'Monitor\x20subscription\x20config\x20—\x20scope-closure\x20rules,\x20focus\x20objects,\x20per-type\x20todo\x20switches,\x20conditional\x20filters;\x20scope\x20preview\x20+\x20filter\x20dry-run.','actions':['get','save','reset','scope_preview','test_filter'],'notes':['Single\x20configuration\x20entry\x20point\x20for\x20monitor\x20v4\x20(client\x20settings\x20panel\x20and\x20agents\x20share\x20it);\x20save/reset\x20merge\x20+\x20clamp\x20loop\x20params,\x20then\x20trigger\x20an\x20immediate\x20scope\x20re-resolve\x20and\x20schedule\x20a\x20backfill\x20when\x20the\x20closure\x20changed.','scope_preview\x20lists\x20the\x20resolved\x20closure\x20grouped\x20by\x20layer\x20(accounts/permissions/managed_objects/services/orders/order_children/focus)\x20with\x20pagination\x20—\x20inspect\x20before\x20tuning\x20rule\x20switches.','test_filter\x20dry-runs\x20a\x20filter\x20draft\x20over\x20the\x20most\x20recent\x20captured\x20events\x20(default\x20200,\x20max\x201000)\x20returning\x20matched/scanned\x20counts\x20+\x20up\x20to\x205\x20samples\x20—\x20preview\x20noise\x20BEFORE\x20saving.','Capture\x20is\x20unaffected\x20by\x20delivery\x20switches\x20EXCEPT\x20NewPaymentEvent\x20(captured\x20only\x20when\x20switched\x20ON).']},{'name':'industry_pack_operation','summary':'Industry\x20knowledge\x20pack\x20lifecycle\x20—\x20scaffold\x20(merged\x20v2\x20template),\x20scan/register,\x20layer\x20get,\x20diff,\x20reset-to-template,\x20plus\x20industry-dir\x20file\x20operations\x20and\x20the\x20industry\x20mode\x20registry\x20(GLM6/92\x20§E).','actions':['scaffold','list','scan','resolve','list_files','read_file','write_file','get','diff','reset','delete_file','create_file','create_dir','copy','move','rename','recommend_industry','list_modes','derive_user_mode','evolve_user_mode','register_user_mode','unregister_user_mode','register_custom_metric','register_custom_constraint','list_metrics_constraints'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20+\x20in-memory\x20registry;\x20never\x20mutates\x20chain\x20state.','Merged\x20v2\x20layout:\x20pack.json\x20(annotated\x20with\x20_schema/_doc\x20comment\x20fields\x20+\x20personae)\x20+\x20playbook.md;\x20legacy\x20split-file\x20layouts\x20still\x20read\x20for\x20backward\x20compatibility.','reset\x20restores\x20a\x20file\x20or\x20entire\x20pack\x20folder\x20to\x20its\x20pristine\x20annotated\x20template\x20—\x20user\x20edits\x20beyond\x20the\x20target\x20are\x20preserved.','Mode\x20registry\x20(GLM6/92\x20§E):\x20recommend_industry\x20(top-3\x20similar\x20industries\x20+\x20verified\x20reference\x20examples),\x20list_modes,\x20derive_user_mode\x20(customize\x20a\x20builtin),\x20evolve_user_mode,\x20register_user_mode\x20(fully\x20custom;\x20R-M1-11\x20enforced\x20on\x20machine_shape),\x20unregister_user_mode,\x20register_custom_metric\x20/\x20register_custom_constraint\x20(extend\x20evaluation\x20registries),\x20list_metrics_constraints.']},{'name':'benchmark_migration_operation','summary':'MD\x20industry-archetype\x20templates\x20(hot-loaded\x20from\x20.wowok/industry/<industry>/templates/,\x2012\x20built-ins:\x206\x20industries\x20x\x20leader\x20+\x20challenger)\x20+\x20pre-deploy\x20risk\x20scan\x20+\x20one-click\x20competitor\x20migration\x20(import\x20→\x20review\x20→\x20apply\x20via\x20the\x20merchant-guide\x20pipeline).','actions':['template_list','template_get','template_generate','template_scan','migration_import','migration_review','migration_apply'],'common_params':{'template_id':'Template\x20id\x20\x27<industry>/<variant>\x27\x20(required\x20for\x20template_get\x20/\x20template_generate\x20/\x20template_scan\x20/\x20migration_apply),\x20e.g.\x20\x27retail/scale-marketplace\x27.','industry':'Industry\x20filter\x20for\x20template_list;\x20industry\x20hint\x20for\x20migration_import.','description':'Business/competitor\x20description\x20(required\x20for\x20migration_import;\x20optional\x20intent\x20text\x20for\x20template_generate).','url':'Competitor\x20store/profile\x20URL\x20for\x20migration_import\x20(recorded\x20as\x20provenance\x20only).','fee_overrides':'Template\x20fee-parameter\x20overrides\x20for\x20template_generate.','log':'A\x20prior\x20MigrationLog\x20(required\x20for\x20migration_review).','network':'testnet\x20|\x20mainnet\x20for\x20migration_import\x20/\x20migration_apply\x20(default\x20testnet).'},'notes':['Deterministic\x20knowledge\x20lookups\x20+\x20planning;\x20never\x20mutates\x20chain\x20state\x20—\x20template_generate\x20/\x20migration_apply\x20emit\x20creation\x20plans\x20only\x20(materialize\x20via\x20onchain_operations).','Templates\x20are\x20zod-validated\x20MD\x20files\x20hot-loaded\x20from\x20.wowok/industry/<industry>/templates/\x20(the\x20client\x20industry-drawer\x20tree;\x20root\x20env-overridable\x20via\x20WOWOK_TEMPLATES_DIR);\x20the\x2012\x20built-in\x20archetypes\x20are\x20seeded\x20idempotently\x20and\x20user\x20edits\x20are\x20never\x20overwritten.','template_scan\x20runs\x20the\x20pre-deploy\x20risk\x20scan\x20(synthetic\x20draft\x20topology\x20through\x20the\x20same\x20rule\x20surface\x20as\x20on-chain\x20analyze\x20+\x20static\x20R1-R10\x20checks);\x20CRITICAL\x20findings\x20block\x20template_generate\x20/\x20migration_apply.','migration_import\x20returns\x20a\x20MigrationLog\x20with\x20mapped\x20/\x20unmapped\x20/\x20manual_review\x20entries,\x20WoWok\x20advantages,\x20customizable\x20business-module\x20ids,\x20a\x20merchant-vs-supplier\x20role\x20assessment\x20and\x20a\x20dry-run\x20risk\x20check.','migration_review\x20surfaces\x20counts\x20+\x20risk\x20status\x20for\x20user\x20confirmation\x20before\x20migration_apply.','mainnet\x20requires\x20explicit\x20user\x20confirmation;\x20the\x20default\x20network\x20is\x20testnet.']},{'name':'strategy_review_operation','summary':'Posture-weighted\x20operating\x20scorecard\x20for\x20one\x20(account,\x20industry):\x20collect\x20evidence\x20into\x20append-only\x20local\x20snapshots,\x20assemble\x20periodic\x20reviews\x20with\x20deterministic\x20pricing/posture\x20advice\x20and\x20current-layer-only\x20persona\x20proposals\x20(never\x20auto-applied).','actions':['collect','review','list_snapshots'],'notes':['Chain\x20reads\x20+\x20local\x20SQLite\x20KV\x20snapshots\x20only;\x20never\x20mutates\x20chain\x20state\x20and\x20never\x20writes\x20the\x20persona.','collect\x20gathers\x2013\x20catalog\x20metrics\x20from\x206\x20evidence\x20sources\x20(journey\x20funnel/order\x20flow/market\x20metrics/discovery\x20competitor\x20count/arbitration\x20trust/account\x20attention);\x20source\x20failures\x20degrade\x20metrics\x20to\x20unavailable/error,\x20never\x20zero-filled;\x20snapshot\x20append\x20failure\x20is\x20fail-soft\x20(stored:false).','review\x20does\x20NOT\x20persist:\x20fresh\x20collection\x20+\x20delta\x20against\x20latest\x20stored\x20snapshot;\x200–100\x20score\x20renormalized\x20over\x20available\x20anchored\x20metrics\x20under\x20volume/balanced/margin\x20weights;\x20cadence\x20from\x20the\x20industry\x20catalog\x20(weekly/two-week/monthly);\x20≤2\x20proposals,\x20each\x20target_layer=\x27current\x27\x20with\x20apply_via\x20persona_operation\x20apply\x20—\x20the\x20user\x20must\x20apply\x20explicitly.','Posture\x20resolution:\x20explicit\x20posture\x20arg\x20→\x20merchant\x20posture\x20in\x20the\x20effective\x20persona\x20→\x20balanced.']},{'name':'workspace_operation','summary':'Local\x20workspace\x20directory\x20(`.wowok/workspace`)\x20—\x20generated\x20review\x20files\x20(machine/guard/wts/wip\x20JSON)\x20and\x20user\x20documents:\x20list/read/write\x20+\x20file\x20operations.','actions':['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20operations\x20confined\x20to\x20the\x20workspace\x20root;\x20never\x20mutates\x20chain\x20state.','read\x20is\x20the\x20supported\x20way\x20to\x20load\x20a\x20generated\x20JSON\x20as\x20AI\x20context\x20before\x20editing/submitting.']},{'name':'workflow_operation','summary':'Local-account\x20workflow\x20view\x20—\x20list\x20active\x20Progress\x20that\x20at\x20least\x20one\x20local\x20account\x20can\x20advance\x20(permission\x20+\x20guard\x20+\x20executable\x20accounts),\x20advance/hold/unhold\x20a\x20forward,\x20and\x20view\x20a\x20progress\x27s\x20on-chain\x20operation\x20history.','actions':['list','operate','history'],'notes':['list:\x20permission-aware\x20—\x20a\x20forward\x20is\x20executable\x20when\x20(a)\x20namedOperator=\x27\x27\x20and\x20account\x20is\x20order\x20holder,\x20(b)\x20namedOperator=name\x20and\x20account\x20is\x20in\x20progress.namedOperator[name],\x20or\x20(c)\x20permissionIndex\x20set\x20and\x20account\x20is\x20in\x20permission.admin/table.','operate:\x20delegates\x20to\x20the\x20on-chain\x20progress\x20operation\x20(guard-aware);\x20op\x20∈\x20next/hold/unhold/adminUnhold.','history:\x20incrementally\x20syncs\x20a\x20progress\x27s\x20ON-CHAIN\x20Progress.history\x20(append-only\x20u64\x20index)\x20into\x20the\x20local\x20SQLite\x20mirror\x20via\x20a\x20per-progress\x20cursor\x20(only\x20new\x20records\x20pulled),\x20returns\x20the\x20migration\x20timeline\x20newest-first\x20with\x20each\x20migration\x27s\x20session\x20snapshot\x20(forwards\x20/\x20operator\x20/\x20weight\x20/\x20time);\x20runs\x2090-day\x20retention\x20cleanup\x20by\x20default.']},{'name':'permission_operation','summary':'Local-account\x20Permission\x20overview\x20—\x20list\x20Permissions\x20related\x20to\x20local\x20accounts\x20(via\x20entity_permission\x20index)\x20with\x20owner/admin/entity\x20breakdown\x20+\x20related\x20objects\x20via\x20object-linker\x20indexes.','actions':['list'],'notes':['Read-only;\x20reverse-looks-up\x20local\x20accounts\x20via\x20entity_permission\x20@0xaad,\x20then\x20merges/dedups\x20permissions.','Related\x20objects\x20resolved\x20via\x20object-linker\x20reverse\x20indexes\x20(0xaae\x20core\x20/\x200xaaf\x20tx)\x20binding\x20edges,\x20grouped\x20by\x20type\x20via\x20first-byte\x20address\x20tag.','Latest\x20update\x20time\x20derived\x20from\x20the\x20Permission\x27s\x20previousTransaction.']},{'name':'ask_user','summary':'Structured\x20user\x20elicitation\x20—\x20ask\x20the\x20user\x20to\x20choose\x20between\x202-8\x20concrete\x20options\x20and\x20receive\x20a\x20validated\x20structured\x20answer\x20(MCP\x202.0\x20elicitation\x20/\x20desktop\x20option\x20card).','common_params':{'question':'The\x20single\x20decision\x20needed\x20from\x20the\x20user\x20(1-1000\x20chars).','options':'2-8\x20self-contained\x20{id,label,description?}\x20choices.','recommended_id':'id\x20of\x20the\x20professionally\x20recommended\x20option\x20(optional).','multi_select':'true\x20when\x20options\x20are\x20combinable\x20(boolean\x20toggle\x20per\x20option).','allow_freeform':'true\x20to\x20permit\x20an\x20additional\x20free-text\x20answer.','context':'Optional\x20short\x20explanation\x20of\x20why\x20the\x20decision\x20is\x20needed.'},'notes':['Use\x20when\x20a\x20business\x20decision\x20belongs\x20to\x20the\x20user\x20and\x20continuing\x20requires\x20it;\x20never\x20guess\x20or\x20silently\x20default\x20an\x20unanswered\x20choice.','Desktop\x20clients\x20render\x20an\x20option\x20card;\x20MCP\x202.0\x20transports\x20fulfil\x20via\x20elicitation/create;\x20unsupported\x20clients\x20should\x20fall\x20back\x20to\x20a\x20numbered\x20prose\x20question.','action\x20decline/cancel\x20means\x20STOP\x20and\x20ask\x20how\x20to\x20proceed\x20in\x20plain\x20text\x20—\x20do\x20not\x20execute\x20a\x20default\x20path.','Not\x20a\x20safety\x20confirmation\x20—\x20irreversible/publish/amount\x20gates\x20remain\x20handled\x20by\x20confirm_gate.']}];export function getToolReference(a){return TOOLS_REFERENCE['find'](b=>b['name']===a);}export function searchToolReference(a){const b=a['toLowerCase']();return TOOLS_REFERENCE['filter'](c=>{if(c['name']['toLowerCase']()['includes'](b))return!![];if(c['summary']['toLowerCase']()['includes'](b))return!![];if(c['actions']?.['some'](d=>d['toLowerCase']()['includes'](b)))return!![];return![];});}export function getToolSequence(a){const b=getToolReference(a);if(!b)return undefined;return{'prerequisites':b['prerequisites']??[],'tool':b['name'],'follow_ups':b['follow_ups']??[]};}
|
|
1
|
+
export const TOOLS_REFERENCE=[{'name':'onchain_operations','summary':'On-chain\x20object\x20creation,\x20modification,\x20and\x20publish\x20for\x20all\x2016\x20Wowok\x20object\x20types.','actions':['service','machine','guard','permission','reward','arb','progress','treasury','demand','repository','contact','order','allocation','personal','payment','proof','gen_passport','gen_proof'],'common_params':{'operation_type':'Object\x20type\x20to\x20create/modify\x20(string\x20enum).','data':'Operation\x20payload\x20—\x20shape\x20varies\x20by\x20operation_type.','object':'Object\x20name\x20or\x20address\x20(for\x20modify-by-id).','namedNew':'New\x20object\x20spec\x20(name,\x20description,\x20tags)\x20for\x20create.','env':'Execution\x20environment\x20(account,\x20network,\x20gas_budget).'},'prerequisites':['account_operation\x20(for\x20account\x20setup)'],'follow_ups':['query_toolkit\x20(verify\x20result)','local_mark_operation\x20(tag\x20object)'],'notes':['publish=true\x20is\x20irreversible\x20—\x20use\x20confirm_gate.','Service/Machine\x20require\x20publish\x20after\x20create\x20before\x20they\x20are\x20visible\x20on-chain.','Use\x20schema_query\x20with\x20action=\x27list_operations\x27\x20to\x20see\x20all\x20operation\x20schemas.','NETWORK:\x20by\x20default\x20omit\x20env.network\x20—\x20the\x20operation\x20runs\x20on\x20the\x20user\x27s\x20CURRENT\x20network\x20(the\x20app\x27s\x20active\x20selection);\x20the\x20confirmation\x20card\x20echoes\x20the\x20actual\x20network.\x20Never\x20guess\x20or\x20invent\x20a\x20network\x20on\x20your\x20own\x20initiative.','NETWORK\x20SWITCH\x20(explicit\x20user\x20intent\x20only):\x20when\x20the\x20user\x27s\x20request\x20clearly\x20targets\x20a\x20DIFFERENT\x20network\x20(e.g.\x20\x22create\x20this\x20permission\x20on\x20testnet\x22\x20while\x20the\x20app\x20is\x20on\x20mainnet),\x20set\x20env.network\x20to\x20that\x20network\x20in\x20THIS\x20call\x20—\x20the\x20client\x20pops\x20a\x20mandatory\x20network-switch\x20confirmation\x20card;\x20only\x20after\x20the\x20user\x20approves\x20does\x20the\x20call\x20(and\x20the\x20whole\x20app)\x20run\x20on\x20the\x20new\x20network.\x20If\x20the\x20user\x20declines,\x20do\x20NOT\x20retry\x20on\x20that\x20network\x20—\x20continue\x20on\x20the\x20current\x20one.\x20Read-only\x20queries\x20(query_toolkit\x20context_network)\x20never\x20need\x20this\x20—\x20they\x20select\x20a\x20network\x20per\x20call\x20without\x20switching.']},{'name':'account_operation','summary':'Local\x20wallet\x20management\x20—\x20generate,\x20suspend,\x20resume,\x20faucet,\x20sign\x20data.','actions':['gen','resume','suspend','faucet','operate','sign','list','info'],'common_params':{'name':'Account\x20name\x20(local\x20identifier).','network':'mainnet\x20|\x20testnet\x20(determines\x20RPC).'},'prerequisites':[],'follow_ups':['onchain_operations\x20(use\x20account\x20for\x20signing)'],'notes':['100%\x20LOCAL\x20—\x20keys\x20never\x20leave\x20the\x20device.','faucet\x20only\x20works\x20on\x20testnet.']},{'name':'local_mark_operation','summary':'Local\x20address\x20book\x20—\x20map\x20human-readable\x20names\x20to\x20blockchain\x20addresses\x20with\x20tags.','actions':['add','remove','update','list','query'],'common_params':{'name':'Local\x20name.','address':'Blockchain\x20address.','tags':'Tag\x20array.'},'notes':['100%\x20LOCAL\x20—\x20never\x20on-chain.','Names\x20are\x20accepted\x20by\x20most\x20on-chain\x20query/panorama\x20tools\x20in\x20place\x20of\x20raw\x20addresses.']},{'name':'local_info_operation','summary':'Local\x20private\x20data\x20management\x20—\x20delivery\x20addresses,\x20phone\x20numbers,\x20contacts.','actions':['add','remove','update','list'],'notes':['100%\x20LOCAL\x20—\x20sensitive\x20data,\x20never\x20on-chain.']},{'name':'local_history_operation','summary':'Local\x20Explorer\x20visit\x20history\x20—\x20recently\x20viewed\x20objects,\x20newest\x20first.','actions':['list\x20(default)','add\x20(upsert\x20by\x20key)','remove\x20(by\x20keys)','clear'],'common_params':{'add':'Record\x20visits:\x20{op:\x27add\x27,\x20data:[{key,\x20address,\x20object_type?,\x20network,\x20time}]}.','remove':'Delete\x20entries:\x20{op:\x27remove\x27,\x20keys:[...]}.','clear':'Erase\x20all\x20history:\x20{op:\x27clear\x27}.'},'notes':['100%\x20LOCAL\x20—\x20visit\x20records\x20never\x20leave\x20the\x20device;\x20display\x20names\x20are\x20never\x20stored\x20(resolved\x20live\x20at\x20render).','Omit\x20every\x20operation\x20field\x20to\x20list\x20history\x20(newest\x20first,\x20auto-pruned\x20to\x20last\x2030\x20days\x20/\x20300\x20entries).','detail\x20visits\x20keep\x20the\x20object\x20type\x20tag;\x20each\x20entry\x20stores\x20the\x20stable\x20object\x20key\x20+\x20canonical\x200x\x20address\x20+\x20network\x20+\x20timestamp.']},{'name':'wip_file','summary':'Witness\x20Immutable\x20Promise\x20file\x20operations\x20—\x20generate,\x20verify,\x20sign,\x20convert.','actions':['generate','verify','sign','wip2html'],'notes':['WIP\x20hash\x20must\x20be\x20non-empty\x20—\x20compute\x20actual\x20hash\x20before\x20calling.']},{'name':'messenger_operation','summary':'Encrypted\x20messenger\x20—\x20watch/send\x20messages,\x20WTS,\x20friendslist,\x20blacklist,\x20guardlist.','actions':['watch_conversations','send_message','send_file','send_required_info','watch_messages','save_attachment','generate_wts','verify_wts','sign_wts','wts2html','proof_message','blacklist','friendslist','guardlist','settings','mark_messages_as_viewed','mark_conversation_as_viewed','pull_messages'],'notes':['Requires\x20messenger-enabled\x20account.','30s\x20timeout\x20—\x20network\x20operations.','Attachment\x20messages\x20return\x20byte-free\x20descriptors\x20(msg.attachment;\x20plaintext\x20is\x20undefined).\x20Use\x20save_attachment\x20{messageId}\x20to\x20persist\x20the\x20file\x20(e.g.\x20before\x20verify_wts);\x20bytes\x20are\x20never\x20embedded\x20in\x20message\x20outputs.','send_required_info\x20assembles\x20selected\x20LocalInfo\x20fields\x20into\x20one\x20E2E\x20message\x20(\x27field:\x20value\x27\x20lines)\x20—\x20the\x20dedicated\x20path\x20for\x20delivering\x20customer_required\x20info.','pull_messages\x20supports\x20allAccounts/accounts\x20for\x20one\x20bounded-concurrency\x20fan-out\x20across\x20accounts.']},{'name':'guard2file','summary':'Export\x20a\x20Guard\x20object\x27s\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'machineNode2file','summary':'Export\x20a\x20Machine\x20object\x27s\x20node\x20definition\x20to\x20local\x20JSON/Markdown\x20for\x20editing.','notes':['Read-only\x20—\x20use\x20query_toolkit\x20for\x20on-chain\x20queries.']},{'name':'query_toolkit','summary':'Query\x20toolkit\x20covering\x20local\x20device\x20data,\x20on-chain\x20blockchain\x20data,\x20and\x20one-call\x20business-intelligence\x20panoramas/review\x20packs.','actions':['local_mark_list','account_list','local_info_list','local_names','token_list','account_balance','onchain_personal_profile','onchain_objects','onchain_received','onchain_transaction','onchain_block','onchain_object_history','onchain_address_activity','address_profile','address_profiles','migration_preflight','token_value_convert','onchain_last_updated','service_panorama','machine_panorama','object_panorama','review_pack','assemble_context','reverse_map','participation_radar','onchain_topology'],'notes':['Read-only\x20—\x20safe\x20to\x20call\x20without\x20confirmation.','local_names\x20resolves\x20a\x20batch\x20of\x20addresses\x20to\x20account/local_mark\x20names\x20(canonical\x20name\x20source\x20for\x20display);\x20address_profile(s)\x20is\x20the\x20one-stop\x20\x27who/what\x20is\x20this\x20address\x27\x20query\x20(classification\x20+\x20reputation\x20+\x20memberships\x20+\x20reverse\x20bindings;\x20batch\x20up\x20to\x2050);\x20migration_preflight\x20detects\x20existing\x20builds\x20on\x20another\x20network\x20and\x20returns\x20the\x20testnet→mainnet\x20migration\x20checklist.','BI\x20query\x20types\x20(one-call\x20panoramas):\x20service_panorama\x20(full\x20Service\x20context:\x20workflow\x20graph\x20+\x20guards\x20+\x20trust\x20+\x20supply\x20chain\x20+\x20BusinessReport\x20+\x20recent\x20orders),\x20machine_panorama\x20(head\x20+\x20fields\x20+\x20workflow\x20graph\x20+\x20Progress\x20list),\x20object_panorama\x20(Progress/Demand/Order/Arb/Repository\x20detail\x20pages),\x20review_pack\x20(typed\x20ReviewPack\x20for\x20the\x20client\x27s\x20ReviewPackRenderer),\x20assemble_context\x20(semantic\x20context\x20from\x20on-chain\x20objects),\x20reverse_map\x20(deterministic\x20L4→L1\x20business\x20report\x20—\x20merchant\x20profile\x20/\x20user\x20risk\x20/\x20game\x20theory),\x20participation_radar\x20(in-flight\x20order\x20participation\x20analysis\x20for\x20ONE\x20account).','onchain_topology\x20=\x20graph\x20evaluation\x20of\x20ONE\x20object\x20(trust\x20+\x20risk\x20+\x20completeness\x20+\x20coverage\x20+\x20unverified\x20over\x20its\x20workflow/guard/fund\x20topology)\x20—\x20the\x20unified\x20read-side\x20trust/risk\x20surface;\x20use\x20when\x20the\x20user\x20asks\x20\x27is\x20this\x20service\x20trustworthy?\x27\x20or\x20\x27should\x20I\x20buy?\x27.']},{'name':'onchain_table_data','summary':'Dynamic\x20table\x20data\x20queries\x20—\x20paginated\x20table\x20queries\x20and\x20specific\x20table\x20item\x20lookups.','actions':['onchain_table','onchain_table_item_repository_data','onchain_table_item_permission_perm','onchain_table_item_entity_registrar','onchain_table_item_entity_linker','onchain_table_item_entity_contact','onchain_table_item_object_linker_core','onchain_table_item_object_linker_tx','onchain_table_item_reward_record','onchain_table_item_demand_presenter','onchain_table_item_treasury_history','onchain_table_item_machine_node','onchain_table_item_progress_history','onchain_table_item_address_mark','onchain_table_item_entity_order','onchain_orders_of_user','onchain_orders_of_users','onchain_affiliations_of_object','onchain_table_item_generic'],'notes':['Read-only\x20—\x20safe\x20for\x20exploration.','object_linker\x20core\x20(0xaae)\x20=\x20default\x20reverse\x20lookup\x20(bounded\x20core\x20objects);\x20object_linker\x20tx\x20(0xaaf)\x20=\x20operational\x20reverse\x20lookup\x20(orders/progress,\x20lossy\x20FIFO).','entity_order\x20(0xaa8)\x20=\x20global\x20entity->orders\x20reverse\x20index;\x20onchain_orders_of_user\x20resolves\x20each\x20order\x20to\x20its\x20full\x20on-chain\x20Order\x20object\x20with\x20role\x20attributes\x20(is_owner/is_agent).']},{'name':'onchain_events','summary':'Watch\x20on-chain\x20events\x20by\x20type\x20—\x20arbitration,\x20order,\x20progress,\x20demand,\x20entity.','notes':['Read-only\x20—\x20use\x20cursor\x20for\x20pagination.']},{'name':'wowok_buildin_info','summary':'Protocol\x20info\x20—\x20constants,\x20built-in\x20permissions,\x20common\x20mistakes,\x20guard\x20instructions,\x20network,\x20value\x20types,\x20bridge\x20tokens.','actions':['constants','built-in\x20permissions','common\x20mistakes','guard\x20instructions','current\x20network','value\x20types','mainnet\x20bridge\x20tokens'],'notes':['Read-only\x20—\x20authoritative\x20protocol\x20reference.','Use\x20\x27common\x20mistakes\x27\x20before\x20submitting\x20an\x20operation\x20to\x20learn\x20known\x20field-name/unit/workflow\x20pitfalls.']},{'name':'schema_query','summary':'Look\x20up\x20JSON\x20Schemas\x20for\x20MCP\x20tools\x20and\x20on-chain\x20operations\x20—\x20the\x20authoritative\x20reference.\x20Also\x20serves\x20sunk\x20knowledge:\x20tool\x20reference,\x20Guard\x20design\x20patterns,\x20safety\x20rules.','actions':['list','get','get_output','get_field','search','list_operations','get_guard_templates','get_tool_reference','get_guard_design_patterns','get_safety_rules'],'notes':['Always\x20check\x20schema\x20before\x20calling\x20an\x20unfamiliar\x20tool.','get_field\x20takes\x20a\x20dot-path\x20(field_path)\x20for\x20single-field\x20lookup.','get_tool_reference/get_guard_design_patterns/get_safety_rules\x20expose\x20the\x20knowledge\x20sunk\x20from\x20the\x20wowok-tools/guard/safety\x20skills\x20—\x20no\x20skills\x20installation\x20required.']},{'name':'bridge_operation','summary':'Cross-chain\x20bridge\x20between\x20WOW\x20and\x20EVM\x20(Ethereum\x20mainnet).\x20Mainnet\x20only.','actions':['cross_chain_wow_to_evm','cross_chain_evm_to_wow','withdraw','query_active_evm_account','query_supported_evm_chains','query_supported_tokens','query_transfer_list','query_transfer_status','manage_evm_rpc'],'notes':['Only\x20WOW\x20mainnet\x20provides\x20cross-chain\x20functionality.']},{'name':'config_operation','summary':'Runtime\x20service\x20toggles\x20—\x20enable/disable\x20Phase\x202\x20services\x20without\x20restart.','actions':['list','toggle','enable','disable','reset','info'],'notes':['GLM5:\x20harness\x20is\x20default\x20ON\x20with\x20tiered\x20enforcement\x20(off/lightweight/full).']},{'name':'evaluation_operation','summary':'Pluggable\x20business\x20evaluations\x20—\x20match\x20/\x20compose\x20/\x20game\x20(node\x20+\x20path)\x20/\x20evidence\x20review\x20/\x20discovery\x20/\x20market\x20/\x20arbitration\x20score\x20with\x20user\x20injection.','actions':['demand_match','service_match','capability_gap','compose_service','node_game','arb_game','path_reasoning','evidence_review','discover_services','discover_demands','market_metrics','market_operations','anti_cheat','match_discover','arbitration_score','account_events'],'notes':['Read-only;\x20the\x20role\x20decides\x20and\x20acts\x20via\x20onchain_operations.','path_reasoning\x20=\x20path-level\x20game\x20(full-route\x20enumeration\x20+\x20ranking);\x20node_game\x20=\x20single-node\x20best\x20move.','evidence_review\x20=\x20deterministic\x20off-chain\x20evidence\x20closure\x20gate\x20(auto_pass/auto_reject/manual_review).','discover_services\x20=\x20active\x20supply\x20discovery\x20(GraphQL\x20transport\x20required):\x20enumerate\x20all\x20shared\x20Services,\x20location-gate\x20by\x20sensitivity\x20(strict/near/logistics),\x20ranked\x20+\x20consent-gated\x20scope\x20expansion.\x20Passive\x20side\x20=\x20post\x20a\x20Demand\x20(DemandPresenter).','match_discover\x20=\x20one-shot\x20intent→service\x20orchestration\x20(enumerate\x20+\x20location\x20gate\x20+\x206-dimension\x20scoring);\x20discover_demands\x20=\x20supplier-side\x20demand\x20enumeration;\x20market_metrics/market_operations\x20=\x20market\x20measurement\x20(GraphQL\x20required).','arbitration_score\x20=\x20dual-perspective\x20arbitration\x20trust\x20(user-trust\x20+\x20merchant-fairness,\x20combined\x200-100);\x20anti_cheat\x20=\x20fake-review/wash-order\x20detection;\x20account_events\x20=\x20account\x20attention\x20feed\x20(read-only).']},{'name':'watch_operation','summary':'Identity-centric\x20on-chain\x20console\x20—\x20resolve\x20who\x20the\x20account\x20is\x20against\x20an\x20object,\x20expand\x20its\x20relations,\x20and\x20enumerate\x20actionable\x20operations.','actions':['focus','expand','actions'],'notes':['Read-only;\x20distinct\x20from\x20query_toolkit\x20/\x20onchain_table_data\x20(pure\x20data,\x20no\x20identity).','focus\x20=\x20identity\x20resolution\x20(manifest\x20on-chain\x20role\x20⊕\x20persona)\x20+\x20base\x20data;\x20neutral\x20→\x20objective\x20narration,\x20operative\x20role\x20→\x20game\x20reasoning.','expand\x20=\x20direct\x20relations\x20+\x20Service\x20transparent\x20sub-order\x20purchasing\x20graph\x20(frozen\x20forward\x20guards\x20→\x20purchased\x20sub-services\x20+\x20proofs).','actions\x20=\x20actionable\x20operations\x20with\x20executability\x20judgment\x20(order-holder\x20/\x20permission-index\x20/\x20named-operator\x20paths).']},{'name':'persona_operation','summary':'User\x20identity\x20setting\x20(persona)\x20—\x20preferences,\x20strategy,\x20rules,\x20spec;\x20long-term\x20+\x20current\x20layers\x20+\x20strategy→lever\x20mapping\x20+\x20region\x20hint.','actions':['get','list','set','analyze','apply','sync','remove','strategy','region_hint','distill'],'notes':['Read/write\x20local\x20state;\x20account\x20persona\x20overrides\x20system;\x20current\x20overrides\x20long-term.','strategy\x20resolves\x20merchant\x20strategy\x20statements\x20into\x20deterministic\x20infrastructure\x20levers\x20(discount/reward/buy_guard/machine_design).','region_hint\x20reads\x20the\x20local\x20delivery\x20address\x20as\x20a\x20matching\x20hint;\x20`propose`\x20returns\x20a\x20consent-gated\x20save\x20proposal\x20(never\x20auto-writes).','distill\x20turns\x20one\x20goal\x27s\x20memory\x20(outcome,\x20process\x20problems/feedback,\x20objects)\x20into\x20a\x20CURRENT-layer\x20proposal\x20—\x20never\x20auto-writes;\x20persist\x20via\x20set/apply\x20after\x20user\x20confirmation.\x20Industry\x20pack.json\x20files\x20are\x20read-only\x20knowledge\x20and\x20never\x20receive\x20user\x20data.']},{'name':'employee_operation','summary':'Merchant\x20employee\x20organizational\x20profile\x20(LOCAL)\x20+\x20reaction\x20KPI\x20+\x20liability\x20resolution\x20+\x20incentive\x20suggestion.','actions':['set','get','remove','assess_kpi','resolve_liability','suggest_incentive'],'notes':['LOCAL\x20ONLY\x20—\x20on-chain\x20authorization\x20lives\x20in\x20the\x20merchant\x27s\x20Permission\x20(namedOperator/entity).','assess_kpi:\x20node\x20reaction\x20speed\x20vs\x20budget\x20(explicit\x20>\x20stored\x20profile\x20>\x2048h\x20default).\x20Timestamps\x20explicit\x20OR\x20auto-derived\x20from\x20the\x20progress\x20object\x27s\x20monitored\x20ProgressEvents\x20via\x20`progress`;\x20explicit\x20values\x20override\x20derived.','resolve_liability:\x20internal\x20cost\x20split\x20(merchant/employee,\x20hybrid\x20threshold);\x20outward\x20liability\x20toward\x20the\x20customer\x20is\x20ALWAYS\x20the\x20merchant\x27s;\x20order\x20user\x20must\x20be\x20compensated\x20before\x20the\x20workflow\x20resumes.','suggest_incentive:\x20KPIs\x20+\x20WIP\x20acceptance\x20+\x20liability\x20→\x20Reward\x20suggestion\x20(reward_grant/compensation_offset/correction_notice/none).\x20Suggestion\x20ONLY\x20—\x20merchant\x20confirms\x20and\x20executes\x20the\x20on-chain\x20ops\x20separately.']},{'name':'keeper_operation','summary':'Who-benefits-who-pushes\x20keeper:\x20scans\x20the\x20monitor\x20scope\x20for\x20actionable\x20state\x20(unclaimed\x20payments,\x20advanceable\x20workflow\x20nodes),\x20routes\x20tasks\x20to\x20beneficiaries;\x20manual\x20dismiss/execute\x20+\x20standing\x20auto-execute\x20rules.','actions':['tasks','dismiss','execute','rules','rule_set','rule_remove','config','config_set','scan','status'],'notes':['The\x20chain\x20has\x20NO\x20time-triggered\x20execution\x20—\x20the\x20keeper\x20scans\x20on\x20the\x20monitor\x20loop\x20cadence\x20and\x20surfaces\x20tasks\x20to\x20their\x20beneficiary.','execute\x20runs\x20the\x20on-chain\x20op\x20for\x20one\x20task\x20(user\x20decision);\x20rule_set\x20authorizes\x20auto-execution\x20per\x20detector\x20kind\x20(bounded\x20by\x20config\x20budget/cooldown).','Detectors\x20v1:\x20payment_unclaimed\x20(funds\x20sitting\x20claimable),\x20progress_actionable\x20(a\x20workflow\x20node\x20the\x20beneficiary\x20can\x20advance).']},{'name':'intent_radar','summary':'User\x20business\x20intent\x20×\x20chain\x20event\x20matching\x20—\x20persist\x20intents,\x20score\x20events\x20against\x20them.','actions':['save','list','remove','match'],'notes':['Read-only\x20w.r.t.\x20chain;\x20industry/keywords\x20resolved\x20once\x20at\x20save;\x20events\x20supplied\x20or\x20auto-pulled.']},{'name':'goal_operation','summary':'GoalEngine\x20(K3\x2024)\x20—\x20record\x20a\x20user\x20goal\x20and\x20drive\x20it\x20through\x20the\x20nine-station\x20lifecycle\x20(RECOGNIZE→…→COMPLETE)\x20with\x20monitor\x20auto-binding\x20and\x20plan-approval\x20confirm-gate\x20downgrade;\x20also\x20hosts\x20the\x20C1-C4\x20planning\x20pipeline\x20+\x20merchant\x20onboarding\x20wizard.','actions':['create','list','get','approve','advance','pause','complete','abandon','delete','analyze_intent','aggregate_risks','trace_substeps','merchant_guide'],'common_params':{'id':'Goal\x20id\x20(goal_…)\x20—\x20required\x20for\x20get/approve/advance/pause/complete/abandon/delete.','intent_text':'create:\x20raw\x20user\x20intent;\x20goal_type\x20auto-classified\x20(override\x20with\x20goal_type).','account':'create:\x20bind\x20a\x20local\x20account\x20(preflight;\x20goal\x20starts\x20at\x20\x27bound\x27).','stage':'advance:\x20forward-only\x20target\x20stage;\x20\x27paused\x27\x20holds\x20from\x20anywhere.','objects':'advance:\x20ACT-station\x20objects\x20[{type,\x20object}]\x20(deduped).','force':'complete:\x20skip\x20on-chain\x20completion\x20verification\x20(audited\x20as\x20outcome.forced).'},'follow_ups':['monitor_events\x20(goal\x20progress\x20surfaces\x20in\x20the\x20todo\x20stream)','onchain_operations\x20(execute\x20plan\x20steps\x20with\x20env.plan_approval)'],'notes':['Near-duplicate\x20create\x20ADOPTS\x20the\x20active\x20same-type\x20same-account\x20goal\x20(intent\x20Jaccard\x20≥\x200.6)\x20instead\x20of\x20forking.','approve\x20registers\x20a\x20plan\x20approval:\x20calls\x20carrying\x20env.plan_approval=<goal\x20id>\x20auto-pass\x20fail-open\x20ConfirmGate\x20levels\x20(standard/none);\x20fail-closed\x20levels\x20(irreversible/publish/amount)\x20always\x20still\x20ask.','Entering\x20\x27monitoring\x27\x20auto-binds\x20monitor\x20focus\x20(reason=\x27goal\x27,\x20goal_id-stamped)\x20for\x20the\x20goal\x27s\x20objects;\x20demand\x20goals\x20also\x20open\x20a\x20radar\x20intent.\x20complete/abandon\x20tear\x20down\x20ONLY\x20this\x20goal\x27s\x20bindings.','complete\x20verifies\x20the\x20goal-type\x20completion\x20conjunction\x20against\x20chain\x20state\x20(read-only);\x20force=true\x20bypasses\x20and\x20is\x20audited.','delete\x20removes\x20a\x20terminal\x20goal\x20entirely\x20(record\x20+\x20TaskProcess\x20dir);\x20force=true\x20extends\x20it\x20to\x20non-terminal\x20goals\x20(monitor\x20teardown\x20first).','C1-C4\x20planning\x20pipeline\x20(GLM5-31\x20§V3/V4):\x20analyze_intent\x20(intent\x20→\x20objects\x20+\x20puzzle\x20snapshots)\x20→\x20aggregate_risks\x20(puzzles\x20OR\x20intent\x20→\x20calibrated\x20risks\x20+\x20RISK_BLOCKED\x20status)\x20→\x20trace_substeps\x20(substep\x20records\x20→\x20DAG\x20coherence\x20+\x20D-10\x20verdict);\x20merchant_guide\x20=\x2010-step\x20onboarding\x20wizard\x20(stateless\x20guide_state,\x20never\x20executes\x20on-chain\x20—\x20materialize\x20via\x20onchain_operations).\x20All\x20four\x20are\x20pure\x20transformations.']},{'name':'monitor_events','summary':'Persistent\x20monitor\x20event\x20store\x20(shared\x20with\x20the\x20client\x20Monitor\x20page)\x20—\x20paginated\x20events\x20with\x20read\x20flags;\x20mark\x20read/unread.','actions':['query','mark_read','mark_all_read'],'notes':['Events\x20captured\x20by\x20the\x20resident\x20MonitorLoop\x20(client\x20sidecar,\x20or\x20stdio\x20MCP\x20server\x20with\x20MONITOR_LOOP=1)\x20across\x209\x20modules,\x20stored\x20APPEND-ONLY\x20in\x20SQLite\x20(survives\x20restarts)\x20with\x20per-event\x20read\x20flags.','query\x20=\x20paginated\x20newest-first\x20with\x20module/event_type/since/until\x20filters\x20+\x20module_counts/unread_by_module/total_unread;\x20relevant_only\x20(default\x20true)\x20restricts\x20to\x20scope-closure/focus/filter\x20hits\x20(de-noised\x20todo\x20stream);\x20with_reason\x20attaches\x20the\x20relevance\x20annotation\x20+\x20delivered\x20flag;\x20mark_read\x20=\x20idempotent\x20per-event\x20(\x27<eventSeq>:<txDigest>\x27);\x20mark_all_read\x20=\x20optionally\x20module-scoped.','Cross-process:\x20read\x20state\x20is\x20SHARED\x20with\x20the\x20client\x20app\x20(same\x20SQLite\x20store)\x20—\x20marking\x20read\x20here\x20clears\x20the\x20client\x20Monitor\x20unread\x20badge\x20and\x20vice\x20versa.']},{'name':'monitor_subscription','summary':'Monitor\x20subscription\x20config\x20—\x20scope-closure\x20rules,\x20focus\x20objects,\x20per-type\x20todo\x20switches,\x20conditional\x20filters;\x20scope\x20preview\x20+\x20filter\x20dry-run.','actions':['get','save','reset','scope_preview','test_filter'],'notes':['Single\x20configuration\x20entry\x20point\x20for\x20monitor\x20v4\x20(client\x20settings\x20panel\x20and\x20agents\x20share\x20it);\x20save/reset\x20merge\x20+\x20clamp\x20loop\x20params,\x20then\x20trigger\x20an\x20immediate\x20scope\x20re-resolve\x20and\x20schedule\x20a\x20backfill\x20when\x20the\x20closure\x20changed.','scope_preview\x20lists\x20the\x20resolved\x20closure\x20grouped\x20by\x20layer\x20(accounts/permissions/managed_objects/services/orders/order_children/focus)\x20with\x20pagination\x20—\x20inspect\x20before\x20tuning\x20rule\x20switches.','test_filter\x20dry-runs\x20a\x20filter\x20draft\x20over\x20the\x20most\x20recent\x20captured\x20events\x20(default\x20200,\x20max\x201000)\x20returning\x20matched/scanned\x20counts\x20+\x20up\x20to\x205\x20samples\x20—\x20preview\x20noise\x20BEFORE\x20saving.','Capture\x20is\x20unaffected\x20by\x20delivery\x20switches\x20EXCEPT\x20NewPaymentEvent\x20(captured\x20only\x20when\x20switched\x20ON).']},{'name':'industry_pack_operation','summary':'Industry\x20knowledge\x20pack\x20lifecycle\x20—\x20scaffold\x20(merged\x20v2\x20template),\x20scan/register,\x20layer\x20get,\x20diff,\x20reset-to-template,\x20plus\x20industry-dir\x20file\x20operations\x20and\x20the\x20industry\x20mode\x20registry\x20(GLM6/92\x20§E).','actions':['scaffold','list','scan','resolve','list_files','read_file','write_file','get','diff','reset','delete_file','create_file','create_dir','copy','move','rename','recommend_industry','list_modes','derive_user_mode','evolve_user_mode','register_user_mode','unregister_user_mode','register_custom_metric','register_custom_constraint','list_metrics_constraints'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20+\x20in-memory\x20registry;\x20never\x20mutates\x20chain\x20state.','Merged\x20v2\x20layout:\x20pack.json\x20(annotated\x20with\x20_schema/_doc\x20comment\x20fields\x20+\x20personae)\x20+\x20playbook.md;\x20legacy\x20split-file\x20layouts\x20still\x20read\x20for\x20backward\x20compatibility.','reset\x20restores\x20a\x20file\x20or\x20entire\x20pack\x20folder\x20to\x20its\x20pristine\x20annotated\x20template\x20—\x20user\x20edits\x20beyond\x20the\x20target\x20are\x20preserved.','Mode\x20registry\x20(GLM6/92\x20§E):\x20recommend_industry\x20(top-3\x20similar\x20industries\x20+\x20verified\x20reference\x20examples),\x20list_modes,\x20derive_user_mode\x20(customize\x20a\x20builtin),\x20evolve_user_mode,\x20register_user_mode\x20(fully\x20custom;\x20R-M1-11\x20enforced\x20on\x20machine_shape),\x20unregister_user_mode,\x20register_custom_metric\x20/\x20register_custom_constraint\x20(extend\x20evaluation\x20registries),\x20list_metrics_constraints.']},{'name':'benchmark_migration_operation','summary':'MD\x20industry-archetype\x20templates\x20(hot-loaded\x20from\x20.wowok/industry/<industry>/templates/,\x2012\x20built-ins:\x206\x20industries\x20x\x20leader\x20+\x20challenger)\x20+\x20pre-deploy\x20risk\x20scan\x20+\x20one-click\x20competitor\x20migration\x20(import\x20→\x20review\x20→\x20apply\x20via\x20the\x20merchant-guide\x20pipeline).','actions':['template_list','template_get','template_generate','template_scan','migration_import','migration_review','migration_apply'],'common_params':{'template_id':'Template\x20id\x20\x27<industry>/<variant>\x27\x20(required\x20for\x20template_get\x20/\x20template_generate\x20/\x20template_scan\x20/\x20migration_apply),\x20e.g.\x20\x27retail/scale-marketplace\x27.','industry':'Industry\x20filter\x20for\x20template_list;\x20industry\x20hint\x20for\x20migration_import.','description':'Business/competitor\x20description\x20(required\x20for\x20migration_import;\x20optional\x20intent\x20text\x20for\x20template_generate).','url':'Competitor\x20store/profile\x20URL\x20for\x20migration_import\x20(recorded\x20as\x20provenance\x20only).','fee_overrides':'Template\x20fee-parameter\x20overrides\x20for\x20template_generate.','log':'A\x20prior\x20MigrationLog\x20(required\x20for\x20migration_review).','network':'testnet\x20|\x20mainnet\x20for\x20migration_import\x20/\x20migration_apply\x20(default\x20testnet).'},'notes':['Deterministic\x20knowledge\x20lookups\x20+\x20planning;\x20never\x20mutates\x20chain\x20state\x20—\x20template_generate\x20/\x20migration_apply\x20emit\x20creation\x20plans\x20only\x20(materialize\x20via\x20onchain_operations).','Templates\x20are\x20zod-validated\x20MD\x20files\x20hot-loaded\x20from\x20.wowok/industry/<industry>/templates/\x20(the\x20client\x20industry-drawer\x20tree;\x20root\x20env-overridable\x20via\x20WOWOK_TEMPLATES_DIR);\x20the\x2012\x20built-in\x20archetypes\x20are\x20seeded\x20idempotently\x20and\x20user\x20edits\x20are\x20never\x20overwritten.','template_scan\x20runs\x20the\x20pre-deploy\x20risk\x20scan\x20(synthetic\x20draft\x20topology\x20through\x20the\x20same\x20rule\x20surface\x20as\x20on-chain\x20analyze\x20+\x20static\x20R1-R10\x20checks);\x20CRITICAL\x20findings\x20block\x20template_generate\x20/\x20migration_apply.','migration_import\x20returns\x20a\x20MigrationLog\x20with\x20mapped\x20/\x20unmapped\x20/\x20manual_review\x20entries,\x20WoWok\x20advantages,\x20customizable\x20business-module\x20ids,\x20a\x20merchant-vs-supplier\x20role\x20assessment\x20and\x20a\x20dry-run\x20risk\x20check.','migration_review\x20surfaces\x20counts\x20+\x20risk\x20status\x20for\x20user\x20confirmation\x20before\x20migration_apply.','mainnet\x20requires\x20explicit\x20user\x20confirmation;\x20the\x20default\x20network\x20is\x20testnet.']},{'name':'strategy_review_operation','summary':'Posture-weighted\x20operating\x20scorecard\x20for\x20one\x20(account,\x20industry):\x20collect\x20evidence\x20into\x20append-only\x20local\x20snapshots,\x20assemble\x20periodic\x20reviews\x20with\x20deterministic\x20pricing/posture\x20advice\x20and\x20current-layer-only\x20persona\x20proposals\x20(never\x20auto-applied).','actions':['collect','review','list_snapshots'],'notes':['Chain\x20reads\x20+\x20local\x20SQLite\x20KV\x20snapshots\x20only;\x20never\x20mutates\x20chain\x20state\x20and\x20never\x20writes\x20the\x20persona.','collect\x20gathers\x2013\x20catalog\x20metrics\x20from\x206\x20evidence\x20sources\x20(journey\x20funnel/order\x20flow/market\x20metrics/discovery\x20competitor\x20count/arbitration\x20trust/account\x20attention);\x20source\x20failures\x20degrade\x20metrics\x20to\x20unavailable/error,\x20never\x20zero-filled;\x20snapshot\x20append\x20failure\x20is\x20fail-soft\x20(stored:false).','review\x20does\x20NOT\x20persist:\x20fresh\x20collection\x20+\x20delta\x20against\x20latest\x20stored\x20snapshot;\x200–100\x20score\x20renormalized\x20over\x20available\x20anchored\x20metrics\x20under\x20volume/balanced/margin\x20weights;\x20cadence\x20from\x20the\x20industry\x20catalog\x20(weekly/two-week/monthly);\x20≤2\x20proposals,\x20each\x20target_layer=\x27current\x27\x20with\x20apply_via\x20persona_operation\x20apply\x20—\x20the\x20user\x20must\x20apply\x20explicitly.','Posture\x20resolution:\x20explicit\x20posture\x20arg\x20→\x20merchant\x20posture\x20in\x20the\x20effective\x20persona\x20→\x20balanced.']},{'name':'workspace_operation','summary':'Local\x20workspace\x20directory\x20(`.wowok/workspace`)\x20—\x20generated\x20review\x20files\x20(machine/guard/wts/wip\x20JSON)\x20and\x20user\x20documents:\x20list/read/search/glob/edit/write\x20+\x20file\x20operations.','actions':['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename','search','glob','edit'],'notes':['LOCAL\x20ONLY\x20—\x20filesystem\x20operations\x20confined\x20to\x20the\x20workspace\x20root;\x20never\x20mutates\x20chain\x20state.','read\x20is\x20the\x20supported\x20way\x20to\x20load\x20a\x20generated\x20JSON\x20as\x20AI\x20context\x20before\x20editing/submitting;\x20optional\x20offset/limit\x20line\x20slicing\x20(1-based,\x20max\x202000\x20lines)\x20and\x20encoding=\x27base64\x27\x20for\x20raw\x20bytes\x20(≤10MB).','search:\x20regex\x20content\x20search\x20(pattern;\x20optional\x20path\x20scope,\x20glob\x20basename\x20filter,\x20ignore_case,\x20max_results\x20≤200,\x20context_lines\x20≤5);\x20skips\x20binary-looking\x20and\x20>5MB\x20files.','glob:\x20wildcard\x20listing\x20on\x20workspace-relative\x20paths\x20—\x20\x27**\x27\x20spans\x20directory\x20segments,\x20\x27*\x27\x20stays\x20within\x20one\x20segment,\x20\x27?\x27\x20=\x20one\x20char.','edit:\x20exact\x20string\x20replacement\x20(path\x20+\x20old_string\x20+\x20new_string);\x20errors\x20when\x20old_string\x20is\x20non-unique\x20unless\x20replace_all=true;\x20refuses\x20files\x20>2MB.']},{'name':'workflow_operation','summary':'Local-account\x20workflow\x20view\x20—\x20list\x20active\x20Progress\x20that\x20at\x20least\x20one\x20local\x20account\x20can\x20advance\x20(permission\x20+\x20guard\x20+\x20executable\x20accounts),\x20advance/hold/unhold\x20a\x20forward,\x20and\x20view\x20a\x20progress\x27s\x20on-chain\x20operation\x20history.','actions':['list','operate','history'],'notes':['list:\x20permission-aware\x20—\x20a\x20forward\x20is\x20executable\x20when\x20(a)\x20namedOperator=\x27\x27\x20and\x20account\x20is\x20order\x20holder,\x20(b)\x20namedOperator=name\x20and\x20account\x20is\x20in\x20progress.namedOperator[name],\x20or\x20(c)\x20permissionIndex\x20set\x20and\x20account\x20is\x20in\x20permission.admin/table.','operate:\x20delegates\x20to\x20the\x20on-chain\x20progress\x20operation\x20(guard-aware);\x20op\x20∈\x20next/hold/unhold/adminUnhold.','history:\x20incrementally\x20syncs\x20a\x20progress\x27s\x20ON-CHAIN\x20Progress.history\x20(append-only\x20u64\x20index)\x20into\x20the\x20local\x20SQLite\x20mirror\x20via\x20a\x20per-progress\x20cursor\x20(only\x20new\x20records\x20pulled),\x20returns\x20the\x20migration\x20timeline\x20newest-first\x20with\x20each\x20migration\x27s\x20session\x20snapshot\x20(forwards\x20/\x20operator\x20/\x20weight\x20/\x20time);\x20runs\x2090-day\x20retention\x20cleanup\x20by\x20default.']},{'name':'permission_operation','summary':'Local-account\x20Permission\x20overview\x20—\x20list\x20Permissions\x20related\x20to\x20local\x20accounts\x20(via\x20entity_permission\x20index)\x20with\x20owner/admin/entity\x20breakdown\x20+\x20related\x20objects\x20via\x20object-linker\x20indexes.','actions':['list'],'notes':['Read-only;\x20reverse-looks-up\x20local\x20accounts\x20via\x20entity_permission\x20@0xaad,\x20then\x20merges/dedups\x20permissions.','Related\x20objects\x20resolved\x20via\x20object-linker\x20reverse\x20indexes\x20(0xaae\x20core\x20/\x200xaaf\x20tx)\x20binding\x20edges,\x20grouped\x20by\x20type\x20via\x20first-byte\x20address\x20tag.','Latest\x20update\x20time\x20derived\x20from\x20the\x20Permission\x27s\x20previousTransaction.']},{'name':'ask_user','summary':'Structured\x20user\x20elicitation\x20—\x20ask\x20the\x20user\x20to\x20choose\x20between\x202-8\x20concrete\x20options\x20and\x20receive\x20a\x20validated\x20structured\x20answer\x20(MCP\x202.0\x20elicitation\x20/\x20desktop\x20option\x20card).','common_params':{'question':'The\x20single\x20decision\x20needed\x20from\x20the\x20user\x20(1-1000\x20chars).','options':'2-8\x20self-contained\x20{id,label,description?}\x20choices.','recommended_id':'id\x20of\x20the\x20professionally\x20recommended\x20option\x20(optional).','multi_select':'true\x20when\x20options\x20are\x20combinable\x20(boolean\x20toggle\x20per\x20option).','allow_freeform':'true\x20to\x20permit\x20an\x20additional\x20free-text\x20answer.','context':'Optional\x20short\x20explanation\x20of\x20why\x20the\x20decision\x20is\x20needed.'},'notes':['Use\x20when\x20a\x20business\x20decision\x20belongs\x20to\x20the\x20user\x20and\x20continuing\x20requires\x20it;\x20never\x20guess\x20or\x20silently\x20default\x20an\x20unanswered\x20choice.','Desktop\x20clients\x20render\x20an\x20option\x20card;\x20MCP\x202.0\x20transports\x20fulfil\x20via\x20elicitation/create;\x20unsupported\x20clients\x20should\x20fall\x20back\x20to\x20a\x20numbered\x20prose\x20question.','action\x20decline/cancel\x20means\x20STOP\x20and\x20ask\x20how\x20to\x20proceed\x20in\x20plain\x20text\x20—\x20do\x20not\x20execute\x20a\x20default\x20path.','Not\x20a\x20safety\x20confirmation\x20—\x20irreversible/publish/amount\x20gates\x20remain\x20handled\x20by\x20confirm_gate.']}];export function getToolReference(a){return TOOLS_REFERENCE['find'](b=>b['name']===a);}export function searchToolReference(a){const b=a['toLowerCase']();return TOOLS_REFERENCE['filter'](c=>{if(c['name']['toLowerCase']()['includes'](b))return!![];if(c['summary']['toLowerCase']()['includes'](b))return!![];if(c['actions']?.['some'](d=>d['toLowerCase']()['includes'](b)))return!![];return![];});}export function getToolSequence(a){const b=getToolReference(a);if(!b)return undefined;return{'prerequisites':b['prerequisites']??[],'tool':b['name'],'follow_ups':b['follow_ups']??[]};}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const WorkspaceOperationInputSchema: z.ZodObject<{
|
|
3
3
|
action: z.ZodEnum<{
|
|
4
|
+
search: "search";
|
|
4
5
|
rename: "rename";
|
|
5
6
|
list: "list";
|
|
6
7
|
read: "read";
|
|
@@ -11,11 +12,27 @@ export declare const WorkspaceOperationInputSchema: z.ZodObject<{
|
|
|
11
12
|
create_dir: "create_dir";
|
|
12
13
|
move: "move";
|
|
13
14
|
write: "write";
|
|
15
|
+
glob: "glob";
|
|
16
|
+
edit: "edit";
|
|
14
17
|
}>;
|
|
15
18
|
path: z.ZodOptional<z.ZodString>;
|
|
16
19
|
content: z.ZodOptional<z.ZodString>;
|
|
17
20
|
from: z.ZodOptional<z.ZodString>;
|
|
18
21
|
to: z.ZodOptional<z.ZodString>;
|
|
22
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
23
|
+
glob: z.ZodOptional<z.ZodString>;
|
|
24
|
+
ignore_case: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
+
max_results: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
context_lines: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
old_string: z.ZodOptional<z.ZodString>;
|
|
28
|
+
new_string: z.ZodOptional<z.ZodString>;
|
|
29
|
+
replace_all: z.ZodOptional<z.ZodBoolean>;
|
|
30
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
encoding: z.ZodOptional<z.ZodEnum<{
|
|
33
|
+
text: "text";
|
|
34
|
+
base64: "base64";
|
|
35
|
+
}>>;
|
|
19
36
|
}, z.core.$strict>;
|
|
20
37
|
export declare const WorkspaceOperationOutputSchema: z.ZodObject<{
|
|
21
38
|
result: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -34,6 +51,15 @@ export declare const WorkspaceOperationOutputSchema: z.ZodObject<{
|
|
|
34
51
|
action: z.ZodLiteral<"read">;
|
|
35
52
|
path: z.ZodString;
|
|
36
53
|
content: z.ZodString;
|
|
54
|
+
encoding: z.ZodOptional<z.ZodEnum<{
|
|
55
|
+
text: "text";
|
|
56
|
+
base64: "base64";
|
|
57
|
+
}>>;
|
|
58
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
total_lines: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
truncated: z.ZodOptional<z.ZodBoolean>;
|
|
37
63
|
}, z.core.$strip>, z.ZodObject<{
|
|
38
64
|
action: z.ZodLiteral<"write">;
|
|
39
65
|
path: z.ZodString;
|
|
@@ -65,5 +91,32 @@ export declare const WorkspaceOperationOutputSchema: z.ZodObject<{
|
|
|
65
91
|
from: z.ZodString;
|
|
66
92
|
to: z.ZodString;
|
|
67
93
|
ok: z.ZodBoolean;
|
|
94
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
95
|
+
action: z.ZodLiteral<"search">;
|
|
96
|
+
pattern: z.ZodString;
|
|
97
|
+
matches: z.ZodArray<z.ZodObject<{
|
|
98
|
+
path: z.ZodString;
|
|
99
|
+
line: z.ZodNumber;
|
|
100
|
+
text: z.ZodString;
|
|
101
|
+
before: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
102
|
+
after: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
103
|
+
}, z.core.$strip>>;
|
|
104
|
+
total_matches: z.ZodNumber;
|
|
105
|
+
truncated: z.ZodBoolean;
|
|
106
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
107
|
+
action: z.ZodLiteral<"glob">;
|
|
108
|
+
pattern: z.ZodString;
|
|
109
|
+
files: z.ZodArray<z.ZodObject<{
|
|
110
|
+
path: z.ZodString;
|
|
111
|
+
is_dir: z.ZodBoolean;
|
|
112
|
+
size: z.ZodNumber;
|
|
113
|
+
mtime: z.ZodNumber;
|
|
114
|
+
}, z.core.$strip>>;
|
|
115
|
+
count: z.ZodNumber;
|
|
116
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
117
|
+
action: z.ZodLiteral<"edit">;
|
|
118
|
+
path: z.ZodString;
|
|
119
|
+
replacements: z.ZodNumber;
|
|
120
|
+
ok: z.ZodBoolean;
|
|
68
121
|
}, z.core.$strip>], "action">;
|
|
69
122
|
}, z.core.$strict>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from'zod';export const WorkspaceOperationInputSchema=z['object']({'action':z['enum'](['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename'])['describe']('Action:\x20\x27resolve\x27\x20=\x20return\x20the\x20workspace\x20root\x20directory;\x20\x27list\x27\x20=\x20list\x20files;\x20'+'\x27read\x27\x20=\x20read\x20a\x20file\x20(path\x20required);\x20\x27write\x27\x20=\x20write/overwrite\x20a\x20file\x20'+'(path\x20+\x20content\x20required);\x20\x27delete\x27\x20=\x20delete\x20a\x20file\x20or\x20directory\x20(path\x20required).\x20'+'\x27create_file\x27\x20=\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x20'+'\x27create_dir\x27\x20=\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x20'+'\x27copy\x27\x20=\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x20'+'\x27move\x27\x20/\x20\x27rename\x27\x20=\x20move\x20or\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).'),'path':z['string']()['optional']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root\x20(required\x20for\x20read/write/delete/create_file/create_dir).'),'content':z['string']()['optional']()['describe']('File\x20content\x20(required\x20for\x20write;\x20optional\x20for\x20create_file).'),'from':z['string']()['optional']()['describe']('Source\x20path\x20relative\x20to\x20root\x20(required\x20for\x20copy/move/rename).'),'to':z['string']()['optional']()['describe']('Destination\x20path\x20relative\x20to\x20root\x20(required\x20for\x20copy/move/rename).')})['strict']();export const WorkspaceOperationOutputSchema=z['object']({'result':z['discriminatedUnion']('action',[z['object']({'action':z['literal']('resolve'),'dir':z['string']()['describe']('Absolute\x20workspace\x20root\x20directory.')}),z['object']({'action':z['literal']('list'),'dir':z['string']()['describe']('Absolute\x20workspace\x20root\x20directory.'),'files':z['array'](z['object']({'path':z['string']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root.'),'is_dir':z['boolean'](),'size':z['number']()['describe']('File\x20size\x20in\x20bytes\x20(0\x20for\x20directories).'),'mtime':z['number']()['describe']('Last-modified\x20time\x20(epoch\x20ms).')}))['describe']('Files\x20under\x20the\x20workspace\x20root.')}),z['object']({'action':z['literal']('read'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20read\x20file.'),'content':z['string']()['describe']('File\x20content\x20(text).')}),z['object']({'action':z['literal']('write'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20written\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('delete'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20deleted\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('create_file'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20created\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('create_dir'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20created\x20directory.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('copy'),'from':z['string']()['describe']('Absolute\x20source\x20path.'),'to':z['string']()['describe']('Absolute\x20destination\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('move'),'from':z['string']()['describe']('Absolute\x20source\x20path.'),'to':z['string']()['describe']('Absolute\x20destination\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('rename'),'from':z['string']()['describe']('Absolute\x20old\x20path.'),'to':z['string']()['describe']('Absolute\x20new\x20path.'),'ok':z['boolean']()})])})['strict']();
|
|
1
|
+
import{z}from'zod';export const WorkspaceOperationInputSchema=z['object']({'action':z['enum'](['resolve','list','read','write','delete','create_file','create_dir','copy','move','rename','search','glob','edit'])['describe']('Action:\x20\x27resolve\x27\x20=\x20return\x20the\x20workspace\x20root\x20directory;\x20\x27list\x27\x20=\x20list\x20files;\x20'+'\x27read\x27\x20=\x20read\x20a\x20file\x20(path\x20required);\x20\x27write\x27\x20=\x20write/overwrite\x20a\x20file\x20'+'(path\x20+\x20content\x20required);\x20\x27delete\x27\x20=\x20delete\x20a\x20file\x20or\x20directory\x20(path\x20required).\x20'+'\x27create_file\x27\x20=\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x20'+'\x27create_dir\x27\x20=\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x20'+'\x27copy\x27\x20=\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x20'+'\x27move\x27\x20/\x20\x27rename\x27\x20=\x20move\x20or\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x20'+'\x27search\x27\x20=\x20regex\x20content\x20search\x20across\x20workspace\x20files\x20(pattern\x20required).\x20'+'\x27glob\x27\x20=\x20list\x20files\x20whose\x20workspace-relative\x20path\x20matches\x20a\x20wildcard\x20pattern\x20(pattern\x20required).\x20'+'\x27edit\x27\x20=\x20exact\x20string\x20replacement\x20inside\x20a\x20file\x20(path\x20+\x20old_string\x20+\x20new_string\x20required).'),'path':z['string']()['optional']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root\x20(required\x20for\x20read/write/delete/create_file/create_dir).'),'content':z['string']()['optional']()['describe']('File\x20content\x20(required\x20for\x20write;\x20optional\x20for\x20create_file).'),'from':z['string']()['optional']()['describe']('Source\x20path\x20relative\x20to\x20root\x20(required\x20for\x20copy/move/rename).'),'to':z['string']()['optional']()['describe']('Destination\x20path\x20relative\x20to\x20root\x20(required\x20for\x20copy/move/rename).'),'pattern':z['string']()['optional']()['describe']('search:\x20regular\x20expression\x20matched\x20against\x20every\x20file\x20line\x20(required\x20for\x20search).\x20'+'glob:\x20wildcard\x20pattern\x20matched\x20against\x20workspace-relative\x20paths\x20—\x20\x27**\x27\x20spans\x20directory\x20'+'segments,\x20\x27*\x27\x20stays\x20within\x20one\x20segment,\x20\x27?\x27\x20is\x20a\x20single\x20char\x20(e.g.\x20\x27**/*.json\x27,\x20\x27*.md\x27;\x20required\x20for\x20glob).'),'glob':z['string']()['optional']()['describe']('search\x20only:\x20optional\x20filename\x20wildcard\x20filter\x20matched\x20on\x20the\x20file\x20basename\x20(e.g.\x20\x27*.md\x27,\x20\x27*.{ts,tsx}\x27).'),'ignore_case':z['boolean']()['optional']()['describe']('search\x20only:\x20case-insensitive\x20pattern\x20matching\x20(default\x20false).'),'max_results':z['number']()['int']()['min'](0x1)['max'](0xc8)['optional']()['describe']('search\x20only:\x20maximum\x20matches\x20returned\x20(default\x2050,\x20hard\x20cap\x20200);\x20total_matches\x20still\x20counts\x20every\x20match.'),'context_lines':z['number']()['int']()['min'](0x0)['max'](0x5)['optional']()['describe']('search\x20only:\x20context\x20lines\x20included\x20before/after\x20each\x20match\x20(default\x202).'),'old_string':z['string']()['optional']()['describe']('edit\x20only:\x20exact\x20text\x20to\x20replace\x20(non-empty;\x20required\x20for\x20edit).'),'new_string':z['string']()['optional']()['describe']('edit\x20only:\x20replacement\x20text\x20(required\x20for\x20edit;\x20may\x20be\x20empty\x20to\x20delete).'),'replace_all':z['boolean']()['optional']()['describe']('edit\x20only:\x20replace\x20every\x20occurrence\x20of\x20old_string\x20(default\x20false\x20—\x20errors\x20when\x20old_string\x20is\x20not\x20unique).'),'offset':z['number']()['int']()['min'](0x1)['optional']()['describe']('read\x20only:\x201-based\x20line\x20number\x20to\x20start\x20from\x20(default\x201).'),'limit':z['number']()['int']()['min'](0x1)['max'](0x7d0)['optional']()['describe']('read\x20only:\x20maximum\x20lines\x20to\x20return\x20(default\x20and\x20hard\x20cap\x202000;\x20only\x20applied\x20when\x20offset\x20or\x20limit\x20is\x20given).'),'encoding':z['enum'](['text','base64'])['optional']()['describe']('read:\x20\x27text\x27\x20(default,\x20utf-8)\x20or\x20\x27base64\x27\x20(raw\x20bytes,\x20files\x20up\x20to\x2010MB).\x20'+'write/create_file:\x20\x27text\x27\x20(default,\x20utf-8)\x20or\x20\x27base64\x27\x20(content\x20is\x20base64-encoded\x20raw\x20bytes,\x20e.g.\x20binary\x20files).')})['strict']();export const WorkspaceOperationOutputSchema=z['object']({'result':z['discriminatedUnion']('action',[z['object']({'action':z['literal']('resolve'),'dir':z['string']()['describe']('Absolute\x20workspace\x20root\x20directory.')}),z['object']({'action':z['literal']('list'),'dir':z['string']()['describe']('Absolute\x20workspace\x20root\x20directory.'),'files':z['array'](z['object']({'path':z['string']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root.'),'is_dir':z['boolean'](),'size':z['number']()['describe']('File\x20size\x20in\x20bytes\x20(0\x20for\x20directories).'),'mtime':z['number']()['describe']('Last-modified\x20time\x20(epoch\x20ms).')}))['describe']('Files\x20under\x20the\x20workspace\x20root.')}),z['object']({'action':z['literal']('read'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20read\x20file.'),'content':z['string']()['describe']('File\x20content\x20(text,\x20possibly\x20sliced\x20by\x20offset/limit;\x20base64\x20when\x20encoding=\x27base64\x27).'),'encoding':z['enum'](['text','base64'])['optional']()['describe']('\x27base64\x27\x20when\x20raw\x20bytes\x20are\x20returned;\x20absent/undefined\x20for\x20text.'),'size':z['number']()['optional']()['describe']('File\x20size\x20in\x20bytes\x20(base64\x20reads\x20only).'),'total_lines':z['number']()['optional']()['describe']('Total\x20line\x20count\x20of\x20the\x20file\x20(text\x20reads\x20only).'),'offset':z['number']()['optional']()['describe']('1-based\x20start\x20line\x20of\x20the\x20returned\x20slice\x20(text\x20reads\x20only).'),'limit':z['number']()['optional']()['describe']('Max\x20lines\x20in\x20the\x20returned\x20slice\x20(text\x20reads\x20only).'),'truncated':z['boolean']()['optional']()['describe']('True\x20when\x20lines\x20were\x20cut\x20off\x20by\x20offset/limit\x20(text\x20reads\x20only).')}),z['object']({'action':z['literal']('write'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20written\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('delete'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20deleted\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('create_file'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20created\x20file.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('create_dir'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20created\x20directory.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('copy'),'from':z['string']()['describe']('Absolute\x20source\x20path.'),'to':z['string']()['describe']('Absolute\x20destination\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('move'),'from':z['string']()['describe']('Absolute\x20source\x20path.'),'to':z['string']()['describe']('Absolute\x20destination\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('rename'),'from':z['string']()['describe']('Absolute\x20old\x20path.'),'to':z['string']()['describe']('Absolute\x20new\x20path.'),'ok':z['boolean']()}),z['object']({'action':z['literal']('search'),'pattern':z['string']()['describe']('The\x20regex\x20pattern\x20that\x20was\x20searched.'),'matches':z['array'](z['object']({'path':z['string']()['describe']('Workspace-relative\x20file\x20path.'),'line':z['number']()['describe']('1-based\x20line\x20number\x20of\x20the\x20match.'),'text':z['string']()['describe']('The\x20matched\x20line.'),'before':z['array'](z['string']())['optional']()['describe']('Context\x20lines\x20before\x20the\x20match.'),'after':z['array'](z['string']())['optional']()['describe']('Context\x20lines\x20after\x20the\x20match.')}))['describe']('Matches\x20(at\x20most\x20max_results).'),'total_matches':z['number']()['describe']('Total\x20number\x20of\x20matches\x20found\x20across\x20all\x20scanned\x20files.'),'truncated':z['boolean']()['describe']('True\x20when\x20matches\x20were\x20cut\x20off\x20by\x20max_results.')}),z['object']({'action':z['literal']('glob'),'pattern':z['string']()['describe']('The\x20wildcard\x20pattern\x20that\x20was\x20matched.'),'files':z['array'](z['object']({'path':z['string']()['describe']('Path\x20relative\x20to\x20the\x20workspace\x20root.'),'is_dir':z['boolean'](),'size':z['number']()['describe']('File\x20size\x20in\x20bytes\x20(0\x20for\x20directories).'),'mtime':z['number']()['describe']('Last-modified\x20time\x20(epoch\x20ms).')}))['describe']('Files\x20whose\x20workspace-relative\x20path\x20matches\x20the\x20pattern.'),'count':z['number']()['describe']('Number\x20of\x20matching\x20files.')}),z['object']({'action':z['literal']('edit'),'path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20edited\x20file.'),'replacements':z['number']()['describe']('Number\x20of\x20replacements\x20performed.'),'ok':z['boolean']()})])})['strict']();
|
package/dist/schemas/index.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"title": "WoWok MCP Schema Index",
|
|
4
4
|
"description": "Index of all available JSON schemas for WoWok MCP tools",
|
|
5
|
-
"generatedAt": "2026-09-
|
|
5
|
+
"generatedAt": "2026-09-28T00:17:29.668Z",
|
|
6
6
|
"tools": [
|
|
7
7
|
{
|
|
8
8
|
"name": "onchain_operations",
|
|
@@ -88,7 +88,35 @@
|
|
|
88
88
|
},
|
|
89
89
|
"content": {
|
|
90
90
|
"type": "string",
|
|
91
|
-
"description": "File content (text)."
|
|
91
|
+
"description": "File content (text, possibly sliced by offset/limit; base64 when encoding='base64')."
|
|
92
|
+
},
|
|
93
|
+
"encoding": {
|
|
94
|
+
"description": "'base64' when raw bytes are returned; absent/undefined for text.",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"enum": [
|
|
97
|
+
"text",
|
|
98
|
+
"base64"
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"size": {
|
|
102
|
+
"description": "File size in bytes (base64 reads only).",
|
|
103
|
+
"type": "number"
|
|
104
|
+
},
|
|
105
|
+
"total_lines": {
|
|
106
|
+
"description": "Total line count of the file (text reads only).",
|
|
107
|
+
"type": "number"
|
|
108
|
+
},
|
|
109
|
+
"offset": {
|
|
110
|
+
"description": "1-based start line of the returned slice (text reads only).",
|
|
111
|
+
"type": "number"
|
|
112
|
+
},
|
|
113
|
+
"limit": {
|
|
114
|
+
"description": "Max lines in the returned slice (text reads only).",
|
|
115
|
+
"type": "number"
|
|
116
|
+
},
|
|
117
|
+
"truncated": {
|
|
118
|
+
"description": "True when lines were cut off by offset/limit (text reads only).",
|
|
119
|
+
"type": "boolean"
|
|
92
120
|
}
|
|
93
121
|
},
|
|
94
122
|
"required": [
|
|
@@ -266,6 +294,158 @@
|
|
|
266
294
|
"ok"
|
|
267
295
|
],
|
|
268
296
|
"additionalProperties": false
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"type": "object",
|
|
300
|
+
"properties": {
|
|
301
|
+
"action": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"const": "search"
|
|
304
|
+
},
|
|
305
|
+
"pattern": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"description": "The regex pattern that was searched."
|
|
308
|
+
},
|
|
309
|
+
"matches": {
|
|
310
|
+
"type": "array",
|
|
311
|
+
"items": {
|
|
312
|
+
"type": "object",
|
|
313
|
+
"properties": {
|
|
314
|
+
"path": {
|
|
315
|
+
"type": "string",
|
|
316
|
+
"description": "Workspace-relative file path."
|
|
317
|
+
},
|
|
318
|
+
"line": {
|
|
319
|
+
"type": "number",
|
|
320
|
+
"description": "1-based line number of the match."
|
|
321
|
+
},
|
|
322
|
+
"text": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"description": "The matched line."
|
|
325
|
+
},
|
|
326
|
+
"before": {
|
|
327
|
+
"description": "Context lines before the match.",
|
|
328
|
+
"type": "array",
|
|
329
|
+
"items": {
|
|
330
|
+
"type": "string"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"after": {
|
|
334
|
+
"description": "Context lines after the match.",
|
|
335
|
+
"type": "array",
|
|
336
|
+
"items": {
|
|
337
|
+
"type": "string"
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"required": [
|
|
342
|
+
"path",
|
|
343
|
+
"line",
|
|
344
|
+
"text"
|
|
345
|
+
],
|
|
346
|
+
"additionalProperties": false
|
|
347
|
+
},
|
|
348
|
+
"description": "Matches (at most max_results)."
|
|
349
|
+
},
|
|
350
|
+
"total_matches": {
|
|
351
|
+
"type": "number",
|
|
352
|
+
"description": "Total number of matches found across all scanned files."
|
|
353
|
+
},
|
|
354
|
+
"truncated": {
|
|
355
|
+
"type": "boolean",
|
|
356
|
+
"description": "True when matches were cut off by max_results."
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
"required": [
|
|
360
|
+
"action",
|
|
361
|
+
"pattern",
|
|
362
|
+
"matches",
|
|
363
|
+
"total_matches",
|
|
364
|
+
"truncated"
|
|
365
|
+
],
|
|
366
|
+
"additionalProperties": false
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"type": "object",
|
|
370
|
+
"properties": {
|
|
371
|
+
"action": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"const": "glob"
|
|
374
|
+
},
|
|
375
|
+
"pattern": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"description": "The wildcard pattern that was matched."
|
|
378
|
+
},
|
|
379
|
+
"files": {
|
|
380
|
+
"type": "array",
|
|
381
|
+
"items": {
|
|
382
|
+
"type": "object",
|
|
383
|
+
"properties": {
|
|
384
|
+
"path": {
|
|
385
|
+
"type": "string",
|
|
386
|
+
"description": "Path relative to the workspace root."
|
|
387
|
+
},
|
|
388
|
+
"is_dir": {
|
|
389
|
+
"type": "boolean"
|
|
390
|
+
},
|
|
391
|
+
"size": {
|
|
392
|
+
"type": "number",
|
|
393
|
+
"description": "File size in bytes (0 for directories)."
|
|
394
|
+
},
|
|
395
|
+
"mtime": {
|
|
396
|
+
"type": "number",
|
|
397
|
+
"description": "Last-modified time (epoch ms)."
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
"required": [
|
|
401
|
+
"path",
|
|
402
|
+
"is_dir",
|
|
403
|
+
"size",
|
|
404
|
+
"mtime"
|
|
405
|
+
],
|
|
406
|
+
"additionalProperties": false
|
|
407
|
+
},
|
|
408
|
+
"description": "Files whose workspace-relative path matches the pattern."
|
|
409
|
+
},
|
|
410
|
+
"count": {
|
|
411
|
+
"type": "number",
|
|
412
|
+
"description": "Number of matching files."
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
"required": [
|
|
416
|
+
"action",
|
|
417
|
+
"pattern",
|
|
418
|
+
"files",
|
|
419
|
+
"count"
|
|
420
|
+
],
|
|
421
|
+
"additionalProperties": false
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"type": "object",
|
|
425
|
+
"properties": {
|
|
426
|
+
"action": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"const": "edit"
|
|
429
|
+
},
|
|
430
|
+
"path": {
|
|
431
|
+
"type": "string",
|
|
432
|
+
"description": "Absolute path of the edited file."
|
|
433
|
+
},
|
|
434
|
+
"replacements": {
|
|
435
|
+
"type": "number",
|
|
436
|
+
"description": "Number of replacements performed."
|
|
437
|
+
},
|
|
438
|
+
"ok": {
|
|
439
|
+
"type": "boolean"
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
"required": [
|
|
443
|
+
"action",
|
|
444
|
+
"path",
|
|
445
|
+
"replacements",
|
|
446
|
+
"ok"
|
|
447
|
+
],
|
|
448
|
+
"additionalProperties": false
|
|
269
449
|
}
|
|
270
450
|
]
|
|
271
451
|
}
|
|
@@ -17,9 +17,12 @@
|
|
|
17
17
|
"create_dir",
|
|
18
18
|
"copy",
|
|
19
19
|
"move",
|
|
20
|
-
"rename"
|
|
20
|
+
"rename",
|
|
21
|
+
"search",
|
|
22
|
+
"glob",
|
|
23
|
+
"edit"
|
|
21
24
|
],
|
|
22
|
-
"description": "Action: 'resolve' = return the workspace root directory; 'list' = list files; 'read' = read a file (path required); 'write' = write/overwrite a file (path + content required); 'delete' = delete a file or directory (path required). 'create_file' = create an empty file (path required; content optional). 'create_dir' = create a directory recursively (path required). 'copy' = copy a file or directory (from + to required). 'move' / 'rename' = move or rename a file or directory (from + to required)."
|
|
25
|
+
"description": "Action: 'resolve' = return the workspace root directory; 'list' = list files; 'read' = read a file (path required); 'write' = write/overwrite a file (path + content required); 'delete' = delete a file or directory (path required). 'create_file' = create an empty file (path required; content optional). 'create_dir' = create a directory recursively (path required). 'copy' = copy a file or directory (from + to required). 'move' / 'rename' = move or rename a file or directory (from + to required). 'search' = regex content search across workspace files (pattern required). 'glob' = list files whose workspace-relative path matches a wildcard pattern (pattern required). 'edit' = exact string replacement inside a file (path + old_string + new_string required)."
|
|
23
26
|
},
|
|
24
27
|
"path": {
|
|
25
28
|
"description": "Path relative to the workspace root (required for read/write/delete/create_file/create_dir).",
|
|
@@ -36,6 +39,62 @@
|
|
|
36
39
|
"to": {
|
|
37
40
|
"description": "Destination path relative to root (required for copy/move/rename).",
|
|
38
41
|
"type": "string"
|
|
42
|
+
},
|
|
43
|
+
"pattern": {
|
|
44
|
+
"description": "search: regular expression matched against every file line (required for search). glob: wildcard pattern matched against workspace-relative paths — '**' spans directory segments, '*' stays within one segment, '?' is a single char (e.g. '**/*.json', '*.md'; required for glob).",
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
47
|
+
"glob": {
|
|
48
|
+
"description": "search only: optional filename wildcard filter matched on the file basename (e.g. '*.md', '*.{ts,tsx}').",
|
|
49
|
+
"type": "string"
|
|
50
|
+
},
|
|
51
|
+
"ignore_case": {
|
|
52
|
+
"description": "search only: case-insensitive pattern matching (default false).",
|
|
53
|
+
"type": "boolean"
|
|
54
|
+
},
|
|
55
|
+
"max_results": {
|
|
56
|
+
"description": "search only: maximum matches returned (default 50, hard cap 200); total_matches still counts every match.",
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"minimum": 1,
|
|
59
|
+
"maximum": 200
|
|
60
|
+
},
|
|
61
|
+
"context_lines": {
|
|
62
|
+
"description": "search only: context lines included before/after each match (default 2).",
|
|
63
|
+
"type": "integer",
|
|
64
|
+
"minimum": 0,
|
|
65
|
+
"maximum": 5
|
|
66
|
+
},
|
|
67
|
+
"old_string": {
|
|
68
|
+
"description": "edit only: exact text to replace (non-empty; required for edit).",
|
|
69
|
+
"type": "string"
|
|
70
|
+
},
|
|
71
|
+
"new_string": {
|
|
72
|
+
"description": "edit only: replacement text (required for edit; may be empty to delete).",
|
|
73
|
+
"type": "string"
|
|
74
|
+
},
|
|
75
|
+
"replace_all": {
|
|
76
|
+
"description": "edit only: replace every occurrence of old_string (default false — errors when old_string is not unique).",
|
|
77
|
+
"type": "boolean"
|
|
78
|
+
},
|
|
79
|
+
"offset": {
|
|
80
|
+
"description": "read only: 1-based line number to start from (default 1).",
|
|
81
|
+
"type": "integer",
|
|
82
|
+
"minimum": 1,
|
|
83
|
+
"maximum": 9007199254740991
|
|
84
|
+
},
|
|
85
|
+
"limit": {
|
|
86
|
+
"description": "read only: maximum lines to return (default and hard cap 2000; only applied when offset or limit is given).",
|
|
87
|
+
"type": "integer",
|
|
88
|
+
"minimum": 1,
|
|
89
|
+
"maximum": 2000
|
|
90
|
+
},
|
|
91
|
+
"encoding": {
|
|
92
|
+
"description": "read: 'text' (default, utf-8) or 'base64' (raw bytes, files up to 10MB). write/create_file: 'text' (default, utf-8) or 'base64' (content is base64-encoded raw bytes, e.g. binary files).",
|
|
93
|
+
"type": "string",
|
|
94
|
+
"enum": [
|
|
95
|
+
"text",
|
|
96
|
+
"base64"
|
|
97
|
+
]
|
|
39
98
|
}
|
|
40
99
|
},
|
|
41
100
|
"required": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readdirSync,readFileSync,writeFileSync,existsSync,mkdirSync,rmSync,statSync,cpSync,renameSync}from'node:fs';import{join,relative,resolve,sep,dirname,basename}from'node:path';import{getWowokWorkspaceDir}from'@wowok/wowok';import{strictParse}from'../../schema/index.js';import{WorkspaceOperationInputSchema}from'../../schema/workspace/index.js';const WORKSPACE_ROOT=getWowokWorkspaceDir();function resolveWorkspacePath(a){const b=resolve(WORKSPACE_ROOT,a);if(b!==WORKSPACE_ROOT&&!b['startsWith'](WORKSPACE_ROOT+sep))throw new Error('path\x20\x27'+a+'\x27\x20escapes\x20the\x20workspace\x20root');return b;}export function workspaceReadmeContent(){return['#\x20WoWok\x20Workspace','','>\x20This\x20folder\x20is\x20your\x20WoWok\x20file\x20workspace.\x20Files\x20here\x20are\x20managed\x20by\x20the','>\x20`workspace_operation`\x20tool\x20and\x20can\x20be\x20selected\x20as\x20AI\x20context\x20in\x20the\x20chat.','','##\x20What\x20lives\x20here','','-\x20**Generated\x20files**\x20—\x20`machineNode2file`\x20/\x20`guard2file`\x20exports\x20land\x20here','\x20\x20(`workspace/<kind>_<name>.<json|md>`)\x20for\x20review\x20before\x20deployment.','-\x20**WIP\x20/\x20WTS**\x20—\x20`generate_wip`,\x20`sign_wip`\x20/\x20`sign_wts`\x20and\x20`generate_wts`','\x20\x20write\x20their\x20outputs\x20here\x20(`wip_<ts>.wip`,\x20`signed_<name>`,\x20`wts/`).','-\x20**Your\x20documents**\x20—\x20anything\x20you\x20want\x20the\x20AI\x20to\x20read\x20as\x20context.','','##\x20How\x20to\x20use\x20it','','1.\x20Click\x20a\x20file\x20in\x20the\x20Workspace\x20drawer\x20to\x20load\x20it\x20into\x20the\x20chat\x20as\x20context.','2.\x20Ask\x20the\x20AI\x20to\x20generate\x20a\x20Machine\x20or\x20Guard\x20—\x20the\x20export\x20is\x20saved\x20here.','3.\x20Use\x20`workspace_operation`\x20(list\x20/\x20read\x20/\x20write\x20/\x20create\x20/\x20delete\x20/\x20move\x20/','\x20\x20\x20rename)\x20from\x20the\x20client\x20or\x20an\x20MCP-capable\x20AI\x20client.','','Everything\x20is\x20local\x20to\x20this\x20device\x20—\x20nothing\x20here\x20touches\x20the\x20chain.']['join']('\x0a');}export function ensureWorkspaceReadme(){mkdirSync(WORKSPACE_ROOT,{'recursive':!![]});const a=join(WORKSPACE_ROOT,'README.md');return!existsSync(a)&&writeFileSync(a,workspaceReadmeContent(),'utf-8'),a;}function listRecursive(a,b,c,d=0x0){if(d>0x8)return;let f;try{f=readdirSync(a,{'withFileTypes':!![]});}catch{return;}for(const g of f){const h=join(a,g['name']),i=relative(b,h)['split'](sep)['join']('/');let j=0x0,k=0x0;try{const l=statSync(h);k=l['size'],j=l['mtimeMs'];}catch{}g['isDirectory']()?(c['push']({'path':i,'is_dir':!![],'size':0x0,'mtime':j}),listRecursive(h,b,c,d+0x1)):c['push']({'path':i,'is_dir':![],'size':k,'mtime':j});}}export async function handleWorkspaceOperation(a){const b=strictParse(WorkspaceOperationInputSchema,a,'workspace_operation\x20input');mkdirSync(WORKSPACE_ROOT,{'recursive':!![]}),ensureWorkspaceReadme();let c;switch(b['action']){case'resolve':c={'action':'resolve','dir':WORKSPACE_ROOT};break;case'list':{const d=[];listRecursive(WORKSPACE_ROOT,WORKSPACE_ROOT,d),c={'action':'list','dir':WORKSPACE_ROOT,'files':d};break;}case'read':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27read\x27');const e=resolveWorkspacePath(b['path']);if(!existsSync(e))throw new Error('file\x20not\x20found:\x20'+b['path']);c={'action':'read','path':e,'content':readFileSync(e,'utf-8')};break;}case'write':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27write\x27');if(b['content']===undefined)throw new Error('\x27content\x27\x20is\x20required\x20for\x20action=\x27write\x27');const f=resolveWorkspacePath(b['path']);mkdirSync(dirname(f),{'recursive':!![]}),writeFileSync(f,b['content'],'utf-8'),c={'action':'write','path':f,'ok':!![]};break;}case'delete':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27delete\x27');const g=resolveWorkspacePath(b['path']);if(!existsSync(g))throw new Error('file\x20not\x20found:\x20'+b['path']);rmSync(g,{'recursive':!![],'force':!![]}),c={'action':'delete','path':g,'ok':!![]};break;}case'create_file':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27create_file\x27');const h=resolveWorkspacePath(b['path']);if(existsSync(h))throw new Error('file\x20already\x20exists:\x20'+b['path']);mkdirSync(dirname(h),{'recursive':!![]}),writeFileSync(h,b['content']??'','utf-8'),c={'action':'create_file','path':h,'ok':!![]};break;}case'create_dir':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27create_dir\x27');const i=resolveWorkspacePath(b['path']);mkdirSync(i,{'recursive':!![]}),c={'action':'create_dir','path':i,'ok':!![]};break;}case'copy':{if(!b['from'])throw new Error('\x27from\x27\x20is\x20required\x20for\x20action=\x27copy\x27');if(!b['to'])throw new Error('\x27to\x27\x20is\x20required\x20for\x20action=\x27copy\x27');const j=resolveWorkspacePath(b['from']);let k=resolveWorkspacePath(b['to']);if(!existsSync(j))throw new Error('source\x20not\x20found:\x20'+b['from']);try{existsSync(k)&&statSync(k)['isDirectory']()&&(k=join(k,basename(j)));}catch{}if(k===j)throw new Error('\x27copy\x27\x20cannot\x20copy\x20a\x20file\x20onto\x20itself');mkdirSync(dirname(k),{'recursive':!![]}),cpSync(j,k,{'recursive':!![],'force':!![]}),c={'action':'copy','from':j,'to':k,'ok':!![]};break;}case'move':case'rename':{if(!b['from'])throw new Error('\x27from\x27\x20is\x20required\x20for\x20action=\x27'+b['action']+'\x27');if(!b['to'])throw new Error('\x27to\x27\x20is\x20required\x20for\x20action=\x27'+b['action']+'\x27');const l=resolveWorkspacePath(b['from']);let m=resolveWorkspacePath(b['to']);if(!existsSync(l))throw new Error('source\x20not\x20found:\x20'+b['from']);try{existsSync(m)&&statSync(m)['isDirectory']()&&(m=join(m,basename(l)));}catch{}if(m===l)throw new Error('\x27'+b['action']+'\x27\x20cannot\x20move\x20onto\x20itself');mkdirSync(dirname(m),{'recursive':!![]}),renameSync(l,m),c={'action':b['action'],'from':l,'to':m,'ok':!![]};break;}default:throw new Error('Unknown\x20workspace_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c}};}
|
|
1
|
+
import{readdirSync,readFileSync,writeFileSync,existsSync,mkdirSync,rmSync,statSync,cpSync,renameSync}from'node:fs';import{join,relative,resolve,sep,dirname,basename}from'node:path';import{getWowokWorkspaceDir}from'@wowok/wowok';import{strictParse}from'../../schema/index.js';import{WorkspaceOperationInputSchema}from'../../schema/workspace/index.js';const WORKSPACE_ROOT=getWowokWorkspaceDir();function resolveWorkspacePath(a){const b=resolve(WORKSPACE_ROOT,a);if(b!==WORKSPACE_ROOT&&!b['startsWith'](WORKSPACE_ROOT+sep))throw new Error('path\x20\x27'+a+'\x27\x20escapes\x20the\x20workspace\x20root');return b;}function decodeWriteContent(a,b){if(b!=='base64')return Buffer['from'](a,'utf-8');const c=a['replace'](/\s+/g,''),d=Buffer['from'](c,'base64');if(d['toString']('base64')['replace'](/\s+/g,'')!==c)throw new Error('\x27content\x27\x20is\x20not\x20valid\x20base64');if(d['length']>0xa*0x400*0x400)throw new Error('base64\x20write\x20payload\x20exceeds\x20the\x2010MB\x20limit');return d;}export function workspaceReadmeContent(){return['#\x20WoWok\x20Workspace','','>\x20This\x20folder\x20is\x20your\x20WoWok\x20file\x20workspace.\x20Files\x20here\x20are\x20managed\x20by\x20the','>\x20`workspace_operation`\x20tool\x20and\x20can\x20be\x20selected\x20as\x20AI\x20context\x20in\x20the\x20chat.','','##\x20What\x20lives\x20here','','-\x20**Generated\x20files**\x20—\x20`machineNode2file`\x20/\x20`guard2file`\x20exports\x20land\x20here','\x20\x20(`workspace/<kind>_<name>.<json|md>`)\x20for\x20review\x20before\x20deployment.','-\x20**WIP\x20/\x20WTS**\x20—\x20`generate_wip`,\x20`sign_wip`\x20/\x20`sign_wts`\x20and\x20`generate_wts`','\x20\x20write\x20their\x20outputs\x20here\x20(`wip_<ts>.wip`,\x20`signed_<name>`,\x20`wts/`).','-\x20**Your\x20documents**\x20—\x20anything\x20you\x20want\x20the\x20AI\x20to\x20read\x20as\x20context.','','##\x20How\x20to\x20use\x20it','','1.\x20Click\x20a\x20file\x20in\x20the\x20Workspace\x20drawer\x20to\x20load\x20it\x20into\x20the\x20chat\x20as\x20context.','2.\x20Ask\x20the\x20AI\x20to\x20generate\x20a\x20Machine\x20or\x20Guard\x20—\x20the\x20export\x20is\x20saved\x20here.','3.\x20Use\x20`workspace_operation`\x20(list\x20/\x20read\x20/\x20write\x20/\x20create\x20/\x20delete\x20/\x20move\x20/','\x20\x20\x20rename)\x20from\x20the\x20client\x20or\x20an\x20MCP-capable\x20AI\x20client.','','Everything\x20is\x20local\x20to\x20this\x20device\x20—\x20nothing\x20here\x20touches\x20the\x20chain.']['join']('\x0a');}export function ensureWorkspaceReadme(){mkdirSync(WORKSPACE_ROOT,{'recursive':!![]});const a=join(WORKSPACE_ROOT,'README.md');return!existsSync(a)&&writeFileSync(a,workspaceReadmeContent(),'utf-8'),a;}function listRecursive(a,b,c,d=0x0){if(d>0x8)return;let f;try{f=readdirSync(a,{'withFileTypes':!![]});}catch{return;}for(const g of f){const h=join(a,g['name']),i=relative(b,h)['split'](sep)['join']('/');let j=0x0,k=0x0;try{const l=statSync(h);k=l['size'],j=l['mtimeMs'];}catch{}g['isDirectory']()?(c['push']({'path':i,'is_dir':!![],'size':0x0,'mtime':j}),listRecursive(h,b,c,d+0x1)):c['push']({'path':i,'is_dir':![],'size':k,'mtime':j});}}const SEARCH_MAX_FILE_BYTES=0x5*0x400*0x400,EDIT_MAX_FILE_BYTES=0x2*0x400*0x400,READ_BASE64_MAX_BYTES=0xa*0x400*0x400,SEARCH_DEFAULT_MAX_RESULTS=0x32,SEARCH_HARD_CAP_MAX_RESULTS=0xc8,READ_DEFAULT_LINE_LIMIT=0x7d0;function escapeRegExpLiteral(a){return a['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&');}function wildcardToRegExp(a){let b='';for(let d=0x0;d<a['length'];d++){const e=a[d];if(e==='*')a[d+0x1]==='*'?(d++,a[d+0x1]==='/'?(b+='(?:.*/)?',d++):b+='.*'):b+='[^/]*';else{if(e==='?')b+='[^/]';else{if(e==='{'){const f=a['indexOf']('}',d);if(f===-0x1){b+='\x5c{';continue;}const g=a['slice'](d+0x1,f)['split'](',')['map'](escapeRegExpLiteral)['join']('|');b+='(?:'+g+')',d=f;}else b+=escapeRegExpLiteral(e);}}}return new RegExp('^'+b+'$');}export async function handleWorkspaceOperation(a){const b=strictParse(WorkspaceOperationInputSchema,a,'workspace_operation\x20input');mkdirSync(WORKSPACE_ROOT,{'recursive':!![]}),ensureWorkspaceReadme();let c;switch(b['action']){case'resolve':c={'action':'resolve','dir':WORKSPACE_ROOT};break;case'list':{const d=[];listRecursive(WORKSPACE_ROOT,WORKSPACE_ROOT,d),c={'action':'list','dir':WORKSPACE_ROOT,'files':d};break;}case'read':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27read\x27');const g=resolveWorkspacePath(b['path']);if(!existsSync(g))throw new Error('file\x20not\x20found:\x20'+b['path']);if(b['encoding']==='base64'){const q=statSync(g);if(q['size']>READ_BASE64_MAX_BYTES)throw new Error('file\x20too\x20large\x20for\x20base64\x20read\x20(>10MB):\x20'+b['path']);const r=readFileSync(g)['toString']('base64');c={'action':'read','encoding':'base64','path':g,'content':r,'size':q['size']};break;}const h=readFileSync(g,'utf-8'),j=h['split']('\x0a')['length'];if(b['offset']===undefined&&b['limit']===undefined){c={'action':'read','path':g,'content':h,'total_lines':j,'offset':0x1,'limit':j,'truncated':![]};break;}const k=b['offset']??0x1,l=Math['min'](b['limit']??READ_DEFAULT_LINE_LIMIT,READ_DEFAULT_LINE_LIMIT),n=h['split']('\x0a'),o=n['slice'](k-0x1,k-0x1+l),p=k-0x1+l<j;c={'action':'read','path':g,'content':o['join']('\x0a'),'total_lines':j,'offset':k,'limit':l,'truncated':p};break;}case'write':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27write\x27');if(b['content']===undefined)throw new Error('\x27content\x27\x20is\x20required\x20for\x20action=\x27write\x27');const s=resolveWorkspacePath(b['path']);mkdirSync(dirname(s),{'recursive':!![]}),writeFileSync(s,decodeWriteContent(b['content'],b['encoding'])),c={'action':'write','path':s,'ok':!![]};break;}case'delete':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27delete\x27');const t=resolveWorkspacePath(b['path']);if(!existsSync(t))throw new Error('file\x20not\x20found:\x20'+b['path']);rmSync(t,{'recursive':!![],'force':!![]}),c={'action':'delete','path':t,'ok':!![]};break;}case'create_file':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27create_file\x27');const u=resolveWorkspacePath(b['path']);if(existsSync(u))throw new Error('file\x20already\x20exists:\x20'+b['path']);mkdirSync(dirname(u),{'recursive':!![]}),writeFileSync(u,decodeWriteContent(b['content']??'',b['encoding'])),c={'action':'create_file','path':u,'ok':!![]};break;}case'create_dir':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27create_dir\x27');const v=resolveWorkspacePath(b['path']);mkdirSync(v,{'recursive':!![]}),c={'action':'create_dir','path':v,'ok':!![]};break;}case'copy':{if(!b['from'])throw new Error('\x27from\x27\x20is\x20required\x20for\x20action=\x27copy\x27');if(!b['to'])throw new Error('\x27to\x27\x20is\x20required\x20for\x20action=\x27copy\x27');const w=resolveWorkspacePath(b['from']);let x=resolveWorkspacePath(b['to']);if(!existsSync(w))throw new Error('source\x20not\x20found:\x20'+b['from']);try{existsSync(x)&&statSync(x)['isDirectory']()&&(x=join(x,basename(w)));}catch{}if(x===w)throw new Error('\x27copy\x27\x20cannot\x20copy\x20a\x20file\x20onto\x20itself');mkdirSync(dirname(x),{'recursive':!![]}),cpSync(w,x,{'recursive':!![],'force':!![]}),c={'action':'copy','from':w,'to':x,'ok':!![]};break;}case'move':case'rename':{if(!b['from'])throw new Error('\x27from\x27\x20is\x20required\x20for\x20action=\x27'+b['action']+'\x27');if(!b['to'])throw new Error('\x27to\x27\x20is\x20required\x20for\x20action=\x27'+b['action']+'\x27');const y=resolveWorkspacePath(b['from']);let z=resolveWorkspacePath(b['to']);if(!existsSync(y))throw new Error('source\x20not\x20found:\x20'+b['from']);try{existsSync(z)&&statSync(z)['isDirectory']()&&(z=join(z,basename(y)));}catch{}if(z===y)throw new Error('\x27'+b['action']+'\x27\x20cannot\x20move\x20onto\x20itself');mkdirSync(dirname(z),{'recursive':!![]}),renameSync(y,z),c={'action':b['action'],'from':y,'to':z,'ok':!![]};break;}case'search':{if(!b['pattern'])throw new Error('\x27pattern\x27\x20is\x20required\x20for\x20action=\x27search\x27');let A;try{A=new RegExp(b['pattern'],b['ignore_case']?'i':'');}catch(I){throw new Error('invalid\x20search\x20pattern\x20\x27'+b['pattern']+'\x27:\x20'+(I instanceof Error?I['message']:String(I)));}const B=Math['min'](b['max_results']??SEARCH_DEFAULT_MAX_RESULTS,SEARCH_HARD_CAP_MAX_RESULTS),C=b['context_lines']??0x2;let D=WORKSPACE_ROOT;if(b['path']){D=resolveWorkspacePath(b['path']);if(!existsSync(D))throw new Error('path\x20not\x20found:\x20'+b['path']);if(!statSync(D)['isDirectory']())throw new Error('search\x20path\x20must\x20be\x20a\x20directory:\x20'+b['path']);}const E=b['glob']?wildcardToRegExp(b['glob']):null,F=[];listRecursive(D,WORKSPACE_ROOT,F);const G=[];let H=0x0;for(const J of F){if(J['is_dir'])continue;if(J['size']>SEARCH_MAX_FILE_BYTES)continue;if(E&&!E['test'](basename(J['path'])))continue;const K=join(WORKSPACE_ROOT,J['path']);let L;try{L=readFileSync(K,'utf-8');}catch{continue;}if(L['slice'](0x0,0x2000)['includes']('\x00'))continue;const M=new RegExp(A['source'],A['flags']),N=L['split']('\x0a');if(N['length']>0x1&&N[N['length']-0x1]==='')N['pop']();for(let O=0x0;O<N['length'];O++){if(!M['test'](N[O]))continue;H++;if(G['length']>=B)continue;const P={'path':J['path'],'line':O+0x1,'text':N[O]};if(C>0x0){const Q=N['slice'](Math['max'](0x0,O-C),O),R=N['slice'](O+0x1,Math['min'](N['length'],O+0x1+C));if(Q['length']>0x0)P['before']=Q;if(R['length']>0x0)P['after']=R;}G['push'](P);}}c={'action':'search','pattern':b['pattern'],'matches':G,'total_matches':H,'truncated':H>G['length']};break;}case'glob':{if(!b['pattern'])throw new Error('\x27pattern\x27\x20is\x20required\x20for\x20action=\x27glob\x27');const S=wildcardToRegExp(b['pattern']);let T=WORKSPACE_ROOT;if(b['path']){T=resolveWorkspacePath(b['path']);if(!existsSync(T))throw new Error('path\x20not\x20found:\x20'+b['path']);if(!statSync(T)['isDirectory']())throw new Error('glob\x20path\x20must\x20be\x20a\x20directory:\x20'+b['path']);}const U=[];listRecursive(T,WORKSPACE_ROOT,U);const V=U['filter'](W=>S['test'](W['path']));c={'action':'glob','pattern':b['pattern'],'files':V,'count':V['length']};break;}case'edit':{if(!b['path'])throw new Error('\x27path\x27\x20is\x20required\x20for\x20action=\x27edit\x27');if(!b['old_string'])throw new Error('\x27old_string\x27\x20must\x20be\x20a\x20non-empty\x20string\x20for\x20action=\x27edit\x27');if(b['new_string']===undefined)throw new Error('\x27new_string\x27\x20is\x20required\x20for\x20action=\x27edit\x27');const W=resolveWorkspacePath(b['path']);if(!existsSync(W))throw new Error('file\x20not\x20found:\x20'+b['path']);if(statSync(W)['size']>EDIT_MAX_FILE_BYTES)throw new Error('file\x20too\x20large\x20for\x20edit\x20(>2MB):\x20'+b['path']);const X=readFileSync(W,'utf-8'),Y=X['split'](b['old_string']),Z=Y['length']-0x1;if(Z===0x0)throw new Error('old_string\x20not\x20found\x20in\x20'+b['path']);if(Z>0x1&&!b['replace_all'])throw new Error('old_string\x20appears\x20'+Z+'\x20times\x20in\x20'+b['path']+';\x20provide\x20replace_all=true\x20or\x20a\x20longer\x20unique\x20string');writeFileSync(W,Y['join'](b['new_string']),'utf-8'),c={'action':'edit','path':W,'replacements':Z,'ok':!![]};break;}default:throw new Error('Unknown\x20workspace_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c}};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{handleIndustryPackOperation}from'../handlers/industry-pack.js';import{handleBenchmarkMigrationOperation}from'../handlers/benchmark-migration.js';import{handleStrategyReviewOperation}from'../handlers/strategy-review.js';import{handleWorkspaceOperation}from'../handlers/workspace.js';import{handleWorkflowOperation}from'../handlers/workflow.js';import{handlePermissionOperation}from'../handlers/permission.js';import{createToolMeta,IndustryPackOperationInputSchema,IndustryPackOperationOutputSchema,BenchmarkMigrationSchema,BenchmarkMigrationOutputSchema,StrategyReviewOperationInputSchema,StrategyReviewOperationOutputSchema,WorkspaceOperationInputSchema,WorkspaceOperationOutputSchema,WorkflowOperationInputSchema,WorkflowOperationOutputSchema,PermissionOperationInputSchema,PermissionOperationOutputSchema}from'../../schema/index.js';export const BUSINESS_TOOLS=[{'name':'industry_pack_operation','handler':handleIndustryPackOperation,'config':{'title':'🧩\x20Industry\x20Pack\x20-\x20Knowledge\x20Template\x20Orchestration','summary':'Industry\x20knowledge\x20packs:\x20scaffold,\x20register,\x20list,\x20reset\x20templates.','description':'Manage\x20industry\x20knowledge\x20packs\x20(distributable,\x20registrable,\x20versionable\x20units\x20carrying\x20'+'one\x20industry\x27s\x20object-shape,\x20matching\x20rules,\x20and\x20role\x20personae).\x0a\x0a'+'Pack\x20layout\x20(merged\x20v2):\x20pack.json\x20(settings\x20only\x20—\x20manifest\x20+\x20match\x20+\x20personae\x20+\x20'+'dispute/compliance/supply/rules\x20sections;\x20field\x20explanations\x20live\x20in\x20the\x20industry-root\x20'+'README.md)\x20and\x20playbook.md\x20(chaptered\x20AI\x20prompt\x20guide).\x20Legacy\x20split-file\x20layouts\x20'+'(manifest.json/match.json/personae)\x20are\x20still\x20read\x20for\x20backward\x20compatibility.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20scaffold\x20—\x20generate\x20a\x20pack\x20template\x20skeleton\x20(pack.json\x20+\x20playbook.md,\x20settings\x20only)\x20'+'into\x20the\x20industry\x20directory;\x20the\x20user\x20fills\x20in\x20the\x20content.\x0a'+'\x20\x20•\x20list\x20—\x20list\x20currently\x20registered\x20packs.\x0a'+'\x20\x20•\x20scan\x20—\x20scan\x20+\x20register\x20every\x20pack\x20under\x20the\x20default\x20industry\x20directory.\x0a'+'\x20\x20•\x20resolve\x20—\x20return\x20the\x20industry\x20root\x20directory.\x0a'+'\x20\x20•\x20list_files\x20—\x20list\x20files\x20under\x20the\x20industry\x20directory.\x0a'+'\x20\x20•\x20read_file\x20—\x20read\x20a\x20file\x20under\x20the\x20industry\x20directory\x20(path\x20required).\x0a'+'\x20\x20•\x20write_file\x20—\x20write\x20content\x20to\x20a\x20file\x20under\x20the\x20industry\x20directory\x20(path\x20+\x20content\x20required).\x0a'+'\x20\x20•\x20get\x20—\x20return\x20registered\x20layer\x20data\x20for\x20an\x20industry\x20(name\x20required;\x20dispute/compliance/supply/rules/playbook).\x0a'+'\x20\x20•\x20diff\x20—\x20compare\x20registered\x20vs\x20on-disk\x20manifest\x20version/layers\x20(name\x20required).\x0a'+'\x20\x20•\x20reset\x20—\x20restore\x20a\x20file\x20or\x20entire\x20pack\x20folder\x20to\x20its\x20pristine\x20annotated\x20template\x20(path\x20required).\x0a'+'\x20\x20•\x20delete_file\x20—\x20delete\x20a\x20file\x20or\x20directory\x20(path\x20required).\x0a'+'\x20\x20•\x20create_file\x20—\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x0a'+'\x20\x20•\x20create_dir\x20—\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x0a'+'\x20\x20•\x20copy\x20—\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20move\x20/\x20rename\x20—\x20move\x20or\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20recommend_industry\x20—\x20business\x20intent\x20text\x20→\x20top-3\x20similar\x20industry\x20modes\x20(trait\x20similarity;\x20optional\x20strategy\x20statements\x20re-rank\x20by\x20lever\x20alignment).\x0a'+'\x20\x20•\x20list_modes\x20—\x20list\x20builtin\x20+\x20caller\x27s\x20custom\x20industry\x20modes.\x0a'+'\x20\x20•\x20derive_user_mode\x20—\x20derive\x20(and\x20register)\x20a\x20custom\x20mode\x20from\x20a\x20builtin\x20mode.\x0a'+'\x20\x20•\x20evolve_user_mode\x20—\x20iterate\x20an\x20existing\x20custom\x20mode\x20(version-bumped\x20evolution\x20history).\x0a'+'\x20\x20•\x20register_user_mode\x20—\x20register\x20a\x20fully\x20custom\x20mode\x20(machine_shape\x20+\x20key_risk\x20required).\x0a'+'\x20\x20•\x20unregister_user_mode\x20—\x20delete\x20a\x20custom\x20mode\x20(owner\x20only).\x0a'+'\x20\x20•\x20register_custom_metric\x20—\x20register\x20a\x20global\x20custom\x20evaluation\x20metric\x20(risk/benefit;\x20persisted).\x0a'+'\x20\x20•\x20unregister_custom_metric\x20—\x20delete\x20a\x20custom\x20metric\x20(custom\x20only;\x20builtin\x20metrics\x20cannot\x20be\x20deleted).\x0a'+'\x20\x20•\x20register_custom_constraint\x20—\x20register\x20a\x20custom\x20mode\x20constraint\x20(4\x20rule\x20types;\x20hard/soft;\x20persisted).\x0a'+'\x20\x20•\x20unregister_custom_constraint\x20—\x20delete\x20a\x20custom\x20constraint\x20(custom\x20only;\x20builtin\x20constraints\x20cannot\x20be\x20deleted).\x0a'+'\x20\x20•\x20list_metrics_constraints\x20—\x20list\x20metrics\x20+\x20constraints\x20(filterable\x20by\x20type/scope).\x0a\x0a'+'Local\x20filesystem\x20+\x20in-memory\x20registry\x20only;\x20never\x20mutates\x20chain\x20state.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27industry_pack_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':IndustryPackOperationInputSchema,'outputSchema':IndustryPackOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('industry_pack',['industry','pack','mode','match','persona','scaffold','template'])}},{'name':'benchmark_migration_operation','handler':handleBenchmarkMigrationOperation,'config':{'title':'🏆\x20Template\x20Migration\x20-\x20Industry\x20Templates\x20&\x20Competitor\x20Migration','summary':'MD\x20industry-archetype\x20templates\x20(hot-loaded,\x2012\x20built-ins)\x20+\x20pre-deploy\x20risk\x20scan\x20+\x20one-click\x20competitor\x20migration.','description':'Industry-archetype\x20MD\x20templates\x20and\x20one-click\x20competitor\x20migration\x20(V2\x20MD-template\x20architecture).\x20'+'Templates\x20live\x20in\x20`.wowok/industry/<industry>/templates/<variant>.md`\x20(the\x20client\x27s\x20industry\x20drawer\x20tree\x20—\x20hot-loaded,\x20zod-validated\x20frontmatter;\x20'+'12\x20built-in\x20archetypes\x20—\x206\x20industries\x20x\x20leader\x20+\x20challenger\x20—\x20are\x20seeded\x20idempotently\x20and\x20never\x20'+'overwritten).\x20Each\x20template\x20is\x20a\x20ScenarioMode-compatible\x20build\x20shape\x20(machine_shape\x20/\x20guards\x20/\x20'+'allocator)\x20plus\x20fee\x20parameters\x20and\x20R1-R10\x20trust\x20mechanisms.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20template_list\x20—\x20list\x20the\x20loaded\x20MD\x20templates\x20(optional\x20industry\x20filter);\x20load\x20errors\x20are\x20'+'reported,\x20never\x20silently\x20dropped.\x0a'+'\x20\x20•\x20template_get\x20—\x20fetch\x20one\x20template\x20by\x20template_id\x20(full\x20machine_shape/guards/allocator/'+'fee_params/trust_mechanisms/body).\x0a'+'\x20\x20•\x20template_generate\x20—\x20generate\x20a\x20creation\x20plan\x20from\x20a\x20template\x20via\x20the\x20merchant-guide\x20pipeline\x20'+'(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20description\x20optional\x20as\x20the\x20intent\x20'+'text;\x20fee_overrides\x20optional;\x20never\x20executes\x20on-chain).\x0a'+'\x20\x20•\x20template_scan\x20—\x20pre-deploy\x20risk\x20scan\x20of\x20one\x20template\x20(template_id\x20required):\x20synthetic\x20draft\x20'+'topology\x20through\x20the\x20same\x20rule\x20surface\x20as\x20on-chain\x20analyze\x20+\x20static\x20R1-R10\x20checks;\x20returns\x20'+'risk_level/findings/red_flags;\x20CRITICAL\x20blocks\x20generation/apply.\x0a'+'\x20\x20•\x20migration_import\x20—\x20competitor\x20URL/description\x20→\x20structured\x20MigrationLog:\x20mapped\x20/\x20'+'unmapped\x20/\x20manual_review\x20entries,\x20WoWok\x20advantages,\x20customizable\x20modules,\x20role\x20assessment\x20'+'and\x20a\x20dry-run\x20risk\x20check\x20(description\x20required;\x20url\x20recorded\x20as\x20provenance\x20only;\x20default\x20'+'network\x20testnet).\x0a'+'\x20\x20•\x20migration_review\x20—\x20surface\x20a\x20prior\x20MigrationLog\x20with\x20counts\x20+\x20risk\x20status\x20for\x20user\x20'+'confirmation\x20(log\x20required).\x0a'+'\x20\x20•\x20migration_apply\x20—\x20run\x20the\x20approved\x20template\x20through\x20the\x20merchant-guide\x20pipeline\x20'+'(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20creation\x20plan\x20only\x20—\x20never\x20executes\x20'+'on-chain;\x20default\x20network\x20testnet,\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).\x0a\x0a'+'Deterministic\x20knowledge\x20lookups\x20+\x20planning;\x20never\x20mutates\x20chain\x20state.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27benchmark_migration_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':BenchmarkMigrationSchema,'outputSchema':BenchmarkMigrationOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('benchmark_migration',['template','migration','competitor','industry','leader','challenger','scan','risk'])}},{'name':'strategy_review_operation','handler':handleStrategyReviewOperation,'config':{'title':'📈\x20Strategy\x20Review\x20-\x20Posture-Weighted\x20Scorecard\x20&\x20Periodic\x20Review','summary':'Collect\x20on-chain/derived\x20evidence\x20for\x20an\x20(account,\x20industry),\x20snapshot\x20it\x20locally,\x20and\x20assemble\x20posture-weighted\x20strategy\x20reviews\x20with\x20current-layer\x20persona\x20proposals.','description':'Evidence-driven\x20operating\x20review\x20for\x20one\x20merchant\x20account\x20in\x20one\x20industry,\x20built\x20on\x20the\x20six-industry\x20'+'strategy\x20catalog\x20(education/rental/freelance/subscription/travel/retail\x20+\x20pack-registered\x20ids).\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20collect\x20—\x20gather\x20fresh\x20evidence\x20(journey\x20funnel,\x20order\x20flow,\x20market\x20metrics,\x20service\x20discovery\x20/\x20'+'competitor\x20count,\x20arbitration\x20trust,\x20account\x20attention),\x20persist\x20ONE\x20append-only\x20snapshot\x20in\x20local\x20'+'SQLite\x20KV,\x20and\x20return\x20the\x20raw\x20collection.\x20Failed\x20evidence\x20sources\x20degrade\x20single\x20metrics\x20to\x20'+'unavailable/error\x20—\x20never\x20zero-filled;\x20storage\x20failure\x20is\x20fail-soft\x20and\x20never\x20loses\x20the\x20collection.\x0a'+'\x20\x20•\x20review\x20—\x20gather\x20fresh\x20evidence\x20WITHOUT\x20persisting,\x20diff\x20against\x20the\x20latest\x20stored\x20snapshot,\x20'+'score\x200–100\x20under\x20the\x20persona\x27s\x20merchant\x20posture\x20(volume/balanced/margin,\x20renormalized\x20over\x20'+'available\x20anchored\x20metrics),\x20and\x20return\x20findings,\x20deterministic\x20pricing/posture\x20recommendations,\x20'+'cadence\x20status\x20and\x20at\x20most\x20two\x20persona\x20proposals.\x20Proposals\x20target\x20the\x20CURRENT\x20layer\x20ONLY\x20and\x20are\x20'+'applied\x20only\x20when\x20the\x20user\x20explicitly\x20calls\x20persona_operation\x20apply\x20—\x20this\x20tool\x20never\x20writes\x20the\x20'+'persona\x20and\x20never\x20mutates\x20chain\x20state.\x0a'+'\x20\x20•\x20list_snapshots\x20—\x20list\x20stored\x20snapshot\x20summaries\x20(oldest-first)\x20for\x20account+industry.\x0a\x0a'+'Posture\x20defaults:\x20explicit\x20`posture`\x20arg\x20→\x20merchant\x20posture\x20in\x20the\x20effective\x20persona\x20→\x20\x27balanced\x27.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27strategy_review_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':StrategyReviewOperationInputSchema,'outputSchema':StrategyReviewOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![],'openWorldHint':!![]},'_meta':createToolMeta('strategy',['strategy','scorecard','review','posture','metrics','industry','competitor','retention','dispute'])},'timeoutMs':0x1d4c0},{'name':'workspace_operation','handler':handleWorkspaceOperation,'config':{'title':'📁\x20Workspace\x20-\x20File\x20Generation\x20&\x20User\x20Data','summary':'Local\x20workspace\x20files:\x20list,\x20read,\x20write,\x20move,\x20copy,\x20delete.','description':'Manage\x20the\x20local\x20workspace\x20directory\x20(`.wowok/workspace`):\x20files\x20generated\x20for\x20review\x20'+'(machine/guard/wts/wip\x20JSON)\x20and\x20user-created\x20documents.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20resolve\x20—\x20return\x20the\x20workspace\x20root\x20directory.\x0a'+'\x20\x20•\x20list\x20—\x20list\x20files\x20under\x20the\x20workspace.\x0a'+'\x20\x20•\x20read\x20—\x20read\x20a\x20file\x27s\x20content\x20(use\x20as\x20AI\x20context).\x0a'+'\x20\x20•\x20write\x20—\x20write/overwrite\x20a\x20file\x20(path\x20+\x20content).\x0a'+'\x20\x20•\x20delete\x20—\x20delete\x20a\x20file.\x0a'+'\x20\x20•\x20create_file\x20—\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x0a'+'\x20\x20•\x20create_dir\x20—\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x0a'+'\x20\x20•\x20copy\x20—\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20move\x20—\x20move\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20rename\x20—\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a\x0a'+'Local\x20filesystem\x20only;\x20never\x20mutates\x20chain\x20state.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27workspace_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':WorkspaceOperationInputSchema,'outputSchema':WorkspaceOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('workspace',['workspace','file','document','machine','guard','wts','wip','context'])}},{'name':'workflow_operation','handler':handleWorkflowOperation,'config':{'title':'🔀\x20Workflow\x20-\x20Local-Account\x20Progress\x20Tasks','summary':'List\x20local-account\x20progress\x20(actionable\x20+\x20related/history)\x20+\x20advance/hold/unhold\x20forwards\x20+\x20view\x20progress\x20history.','description':'Local-account\x20workflow\x20view\x20over\x20on-chain\x20Progress\x20objects.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20list\x20—\x20enumerate\x20progress\x20related\x20to\x20local\x20accounts:\x20actionable\x20first\x20(a\x20'+'local\x20account\x20can\x20advance\x20a\x20forward),\x20plus\x20related\x20/\x20completed\x20progress\x20(order\x20'+'holder,\x20named\x20operator,\x20or\x20session\x20operator\x20involvement)\x20so\x20the\x20user\x20always\x20'+'keeps\x20visibility\x20of\x20their\x20own\x20progress\x20history.\x20Each\x20task\x20carries\x20every\x20'+'reachable\x20next\x20node\x20+\x20forward,\x20the\x20local\x20accounts\x20that\x20can\x20execute\x20each\x20'+'forward\x20(order\x20holder\x20/\x20named\x20operator\x20/\x20permission\x20index,\x20including\x20admin),\x20'+'guard\x20reminders\x20(a\x20forward\x20with\x20a\x20guard\x20must\x20be\x20verified\x20via\x20passport),\x20and\x20'+'the\x20on-chain\x20history_count.\x0a'+'\x20\x20•\x20operate\x20—\x20advance\x20(\x27next\x27)\x20/\x20block\x20(\x27hold\x27)\x20/\x20release\x20(\x27unhold\x27)\x20/\x20force-release\x20'+'(\x27adminUnhold\x27)\x20a\x20forward\x20as\x20a\x20chosen\x20local\x20account\x20(env.account).\x20Delegates\x20to\x20the\x20'+'on-chain\x20progress\x20operation\x20(guard-aware).\x0a'+'\x20\x20•\x20history\x20—\x20incrementally\x20sync\x20a\x20progress\x27s\x20ON-CHAIN\x20history\x20(Progress.history\x20'+'append-only\x20u64\x20index)\x20into\x20the\x20local\x20SQLite\x20mirror\x20via\x20a\x20per-progress\x20cursor\x20'+'(only\x20NEW\x20records\x20are\x20pulled),\x20then\x20return\x20the\x20migration\x20timeline\x20(newest\x20first)\x20'+'with\x20each\x20migration\x27s\x20session\x20snapshot\x20(forwards\x20/\x20operator\x20address\x20/\x20weight\x20/\x20time).\x20'+'Also\x20runs\x20a\x2090-day\x20retention\x20cleanup\x20of\x20stale\x20progress\x20histories\x20by\x20default.\x0a\x0a'+'Permission\x20model\x20(chain-authoritative):\x20a\x20forward\x20is\x20executable\x20by\x20an\x20account\x20when\x20'+'(a)\x20namedOperator=\x22\x22\x20and\x20the\x20account\x20is\x20the\x20order\x20holder\x20(order\x20builder\x20or\x20agent),\x20'+'or\x20(b)\x20namedOperator=name\x20and\x20the\x20account\x20is\x20in\x20progress.namedOperator[name],\x20or\x20'+'(c)\x20permissionIndex\x20is\x20set\x20and\x20the\x20account\x20is\x20in\x20permission.admin\x20or\x20permission.table.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27workflow_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':WorkflowOperationInputSchema,'outputSchema':WorkflowOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![],'openWorldHint':!![]},'_meta':createToolMeta('workflow',['workflow','progress','forward','permission','named-operator','guard','advance','hold'])},'timeoutMs':0x1d4c0},{'name':'permission_operation','handler':handlePermissionOperation,'config':{'title':'🛡️\x20Permissions\x20-\x20Local-Account\x20Overview','summary':'List\x20Permissions\x20related\x20to\x20local\x20accounts\x20with\x20related\x20accounts/objects.','description':'Local-account\x20Permission\x20overview.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20list\x20—\x20enumerate\x20every\x20on-chain\x20Permission\x20object\x20related\x20to\x20at\x20least\x20one\x20LOCAL\x20'+'account\x20(reverse-looked-up\x20via\x20the\x20global\x20entity_permission\x20index\x20@0xaad),\x20deduplicated\x20'+'and\x20merged.\x20Each\x20row\x20includes\x20description,\x20owner,\x20latest\x20on-chain\x20update\x20time,\x20related\x20'+'accounts\x20(owner/admin/entity),\x20and\x20related\x20objects\x20(grouped\x20by\x20type\x20via\x20the\x20registrar\x20'+'linker).\x20Pass\x20`permission`\x20to\x20scope\x20the\x20listing\x20to\x20ONE\x20Permission\x20address\x20—\x20fast\x20path\x20'+'(metadata\x20+\x20local-account\x20roles\x20only;\x20skips\x20the\x20per-permission\x20linker/tx-time\x20fan-out)\x20'+'for\x20detail-page\x20Permission\x20rows.\x0a\x0a'+'Read-only\x20(no\x20on-chain\x20mutation).\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27permission_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':PermissionOperationInputSchema,'outputSchema':PermissionOperationOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('query',['permission','account','role','owner','admin','entity','overview','registrar','reverse-index'])}}];
|
|
1
|
+
import{handleIndustryPackOperation}from'../handlers/industry-pack.js';import{handleBenchmarkMigrationOperation}from'../handlers/benchmark-migration.js';import{handleStrategyReviewOperation}from'../handlers/strategy-review.js';import{handleWorkspaceOperation}from'../handlers/workspace.js';import{handleWorkflowOperation}from'../handlers/workflow.js';import{handlePermissionOperation}from'../handlers/permission.js';import{createToolMeta,IndustryPackOperationInputSchema,IndustryPackOperationOutputSchema,BenchmarkMigrationSchema,BenchmarkMigrationOutputSchema,StrategyReviewOperationInputSchema,StrategyReviewOperationOutputSchema,WorkspaceOperationInputSchema,WorkspaceOperationOutputSchema,WorkflowOperationInputSchema,WorkflowOperationOutputSchema,PermissionOperationInputSchema,PermissionOperationOutputSchema}from'../../schema/index.js';export const BUSINESS_TOOLS=[{'name':'industry_pack_operation','handler':handleIndustryPackOperation,'config':{'title':'🧩\x20Industry\x20Pack\x20-\x20Knowledge\x20Template\x20Orchestration','summary':'Industry\x20knowledge\x20packs:\x20scaffold,\x20register,\x20list,\x20reset\x20templates.','description':'Manage\x20industry\x20knowledge\x20packs\x20(distributable,\x20registrable,\x20versionable\x20units\x20carrying\x20'+'one\x20industry\x27s\x20object-shape,\x20matching\x20rules,\x20and\x20role\x20personae).\x0a\x0a'+'Pack\x20layout\x20(merged\x20v2):\x20pack.json\x20(settings\x20only\x20—\x20manifest\x20+\x20match\x20+\x20personae\x20+\x20'+'dispute/compliance/supply/rules\x20sections;\x20field\x20explanations\x20live\x20in\x20the\x20industry-root\x20'+'README.md)\x20and\x20playbook.md\x20(chaptered\x20AI\x20prompt\x20guide).\x20Legacy\x20split-file\x20layouts\x20'+'(manifest.json/match.json/personae)\x20are\x20still\x20read\x20for\x20backward\x20compatibility.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20scaffold\x20—\x20generate\x20a\x20pack\x20template\x20skeleton\x20(pack.json\x20+\x20playbook.md,\x20settings\x20only)\x20'+'into\x20the\x20industry\x20directory;\x20the\x20user\x20fills\x20in\x20the\x20content.\x0a'+'\x20\x20•\x20list\x20—\x20list\x20currently\x20registered\x20packs.\x0a'+'\x20\x20•\x20scan\x20—\x20scan\x20+\x20register\x20every\x20pack\x20under\x20the\x20default\x20industry\x20directory.\x0a'+'\x20\x20•\x20resolve\x20—\x20return\x20the\x20industry\x20root\x20directory.\x0a'+'\x20\x20•\x20list_files\x20—\x20list\x20files\x20under\x20the\x20industry\x20directory.\x0a'+'\x20\x20•\x20read_file\x20—\x20read\x20a\x20file\x20under\x20the\x20industry\x20directory\x20(path\x20required).\x0a'+'\x20\x20•\x20write_file\x20—\x20write\x20content\x20to\x20a\x20file\x20under\x20the\x20industry\x20directory\x20(path\x20+\x20content\x20required).\x0a'+'\x20\x20•\x20get\x20—\x20return\x20registered\x20layer\x20data\x20for\x20an\x20industry\x20(name\x20required;\x20dispute/compliance/supply/rules/playbook).\x0a'+'\x20\x20•\x20diff\x20—\x20compare\x20registered\x20vs\x20on-disk\x20manifest\x20version/layers\x20(name\x20required).\x0a'+'\x20\x20•\x20reset\x20—\x20restore\x20a\x20file\x20or\x20entire\x20pack\x20folder\x20to\x20its\x20pristine\x20annotated\x20template\x20(path\x20required).\x0a'+'\x20\x20•\x20delete_file\x20—\x20delete\x20a\x20file\x20or\x20directory\x20(path\x20required).\x0a'+'\x20\x20•\x20create_file\x20—\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x0a'+'\x20\x20•\x20create_dir\x20—\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x0a'+'\x20\x20•\x20copy\x20—\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20move\x20/\x20rename\x20—\x20move\x20or\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20recommend_industry\x20—\x20business\x20intent\x20text\x20→\x20top-3\x20similar\x20industry\x20modes\x20(trait\x20similarity;\x20optional\x20strategy\x20statements\x20re-rank\x20by\x20lever\x20alignment).\x0a'+'\x20\x20•\x20list_modes\x20—\x20list\x20builtin\x20+\x20caller\x27s\x20custom\x20industry\x20modes.\x0a'+'\x20\x20•\x20derive_user_mode\x20—\x20derive\x20(and\x20register)\x20a\x20custom\x20mode\x20from\x20a\x20builtin\x20mode.\x0a'+'\x20\x20•\x20evolve_user_mode\x20—\x20iterate\x20an\x20existing\x20custom\x20mode\x20(version-bumped\x20evolution\x20history).\x0a'+'\x20\x20•\x20register_user_mode\x20—\x20register\x20a\x20fully\x20custom\x20mode\x20(machine_shape\x20+\x20key_risk\x20required).\x0a'+'\x20\x20•\x20unregister_user_mode\x20—\x20delete\x20a\x20custom\x20mode\x20(owner\x20only).\x0a'+'\x20\x20•\x20register_custom_metric\x20—\x20register\x20a\x20global\x20custom\x20evaluation\x20metric\x20(risk/benefit;\x20persisted).\x0a'+'\x20\x20•\x20unregister_custom_metric\x20—\x20delete\x20a\x20custom\x20metric\x20(custom\x20only;\x20builtin\x20metrics\x20cannot\x20be\x20deleted).\x0a'+'\x20\x20•\x20register_custom_constraint\x20—\x20register\x20a\x20custom\x20mode\x20constraint\x20(4\x20rule\x20types;\x20hard/soft;\x20persisted).\x0a'+'\x20\x20•\x20unregister_custom_constraint\x20—\x20delete\x20a\x20custom\x20constraint\x20(custom\x20only;\x20builtin\x20constraints\x20cannot\x20be\x20deleted).\x0a'+'\x20\x20•\x20list_metrics_constraints\x20—\x20list\x20metrics\x20+\x20constraints\x20(filterable\x20by\x20type/scope).\x0a\x0a'+'Local\x20filesystem\x20+\x20in-memory\x20registry\x20only;\x20never\x20mutates\x20chain\x20state.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27industry_pack_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':IndustryPackOperationInputSchema,'outputSchema':IndustryPackOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('industry_pack',['industry','pack','mode','match','persona','scaffold','template'])}},{'name':'benchmark_migration_operation','handler':handleBenchmarkMigrationOperation,'config':{'title':'🏆\x20Template\x20Migration\x20-\x20Industry\x20Templates\x20&\x20Competitor\x20Migration','summary':'MD\x20industry-archetype\x20templates\x20(hot-loaded,\x2012\x20built-ins)\x20+\x20pre-deploy\x20risk\x20scan\x20+\x20one-click\x20competitor\x20migration.','description':'Industry-archetype\x20MD\x20templates\x20and\x20one-click\x20competitor\x20migration\x20(V2\x20MD-template\x20architecture).\x20'+'Templates\x20live\x20in\x20`.wowok/industry/<industry>/templates/<variant>.md`\x20(the\x20client\x27s\x20industry\x20drawer\x20tree\x20—\x20hot-loaded,\x20zod-validated\x20frontmatter;\x20'+'12\x20built-in\x20archetypes\x20—\x206\x20industries\x20x\x20leader\x20+\x20challenger\x20—\x20are\x20seeded\x20idempotently\x20and\x20never\x20'+'overwritten).\x20Each\x20template\x20is\x20a\x20ScenarioMode-compatible\x20build\x20shape\x20(machine_shape\x20/\x20guards\x20/\x20'+'allocator)\x20plus\x20fee\x20parameters\x20and\x20R1-R10\x20trust\x20mechanisms.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20template_list\x20—\x20list\x20the\x20loaded\x20MD\x20templates\x20(optional\x20industry\x20filter);\x20load\x20errors\x20are\x20'+'reported,\x20never\x20silently\x20dropped.\x0a'+'\x20\x20•\x20template_get\x20—\x20fetch\x20one\x20template\x20by\x20template_id\x20(full\x20machine_shape/guards/allocator/'+'fee_params/trust_mechanisms/body).\x0a'+'\x20\x20•\x20template_generate\x20—\x20generate\x20a\x20creation\x20plan\x20from\x20a\x20template\x20via\x20the\x20merchant-guide\x20pipeline\x20'+'(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20description\x20optional\x20as\x20the\x20intent\x20'+'text;\x20fee_overrides\x20optional;\x20never\x20executes\x20on-chain).\x0a'+'\x20\x20•\x20template_scan\x20—\x20pre-deploy\x20risk\x20scan\x20of\x20one\x20template\x20(template_id\x20required):\x20synthetic\x20draft\x20'+'topology\x20through\x20the\x20same\x20rule\x20surface\x20as\x20on-chain\x20analyze\x20+\x20static\x20R1-R10\x20checks;\x20returns\x20'+'risk_level/findings/red_flags;\x20CRITICAL\x20blocks\x20generation/apply.\x0a'+'\x20\x20•\x20migration_import\x20—\x20competitor\x20URL/description\x20→\x20structured\x20MigrationLog:\x20mapped\x20/\x20'+'unmapped\x20/\x20manual_review\x20entries,\x20WoWok\x20advantages,\x20customizable\x20modules,\x20role\x20assessment\x20'+'and\x20a\x20dry-run\x20risk\x20check\x20(description\x20required;\x20url\x20recorded\x20as\x20provenance\x20only;\x20default\x20'+'network\x20testnet).\x0a'+'\x20\x20•\x20migration_review\x20—\x20surface\x20a\x20prior\x20MigrationLog\x20with\x20counts\x20+\x20risk\x20status\x20for\x20user\x20'+'confirmation\x20(log\x20required).\x0a'+'\x20\x20•\x20migration_apply\x20—\x20run\x20the\x20approved\x20template\x20through\x20the\x20merchant-guide\x20pipeline\x20'+'(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20creation\x20plan\x20only\x20—\x20never\x20executes\x20'+'on-chain;\x20default\x20network\x20testnet,\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).\x0a\x0a'+'Deterministic\x20knowledge\x20lookups\x20+\x20planning;\x20never\x20mutates\x20chain\x20state.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27benchmark_migration_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':BenchmarkMigrationSchema,'outputSchema':BenchmarkMigrationOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('benchmark_migration',['template','migration','competitor','industry','leader','challenger','scan','risk'])}},{'name':'strategy_review_operation','handler':handleStrategyReviewOperation,'config':{'title':'📈\x20Strategy\x20Review\x20-\x20Posture-Weighted\x20Scorecard\x20&\x20Periodic\x20Review','summary':'Collect\x20on-chain/derived\x20evidence\x20for\x20an\x20(account,\x20industry),\x20snapshot\x20it\x20locally,\x20and\x20assemble\x20posture-weighted\x20strategy\x20reviews\x20with\x20current-layer\x20persona\x20proposals.','description':'Evidence-driven\x20operating\x20review\x20for\x20one\x20merchant\x20account\x20in\x20one\x20industry,\x20built\x20on\x20the\x20six-industry\x20'+'strategy\x20catalog\x20(education/rental/freelance/subscription/travel/retail\x20+\x20pack-registered\x20ids).\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20collect\x20—\x20gather\x20fresh\x20evidence\x20(journey\x20funnel,\x20order\x20flow,\x20market\x20metrics,\x20service\x20discovery\x20/\x20'+'competitor\x20count,\x20arbitration\x20trust,\x20account\x20attention),\x20persist\x20ONE\x20append-only\x20snapshot\x20in\x20local\x20'+'SQLite\x20KV,\x20and\x20return\x20the\x20raw\x20collection.\x20Failed\x20evidence\x20sources\x20degrade\x20single\x20metrics\x20to\x20'+'unavailable/error\x20—\x20never\x20zero-filled;\x20storage\x20failure\x20is\x20fail-soft\x20and\x20never\x20loses\x20the\x20collection.\x0a'+'\x20\x20•\x20review\x20—\x20gather\x20fresh\x20evidence\x20WITHOUT\x20persisting,\x20diff\x20against\x20the\x20latest\x20stored\x20snapshot,\x20'+'score\x200–100\x20under\x20the\x20persona\x27s\x20merchant\x20posture\x20(volume/balanced/margin,\x20renormalized\x20over\x20'+'available\x20anchored\x20metrics),\x20and\x20return\x20findings,\x20deterministic\x20pricing/posture\x20recommendations,\x20'+'cadence\x20status\x20and\x20at\x20most\x20two\x20persona\x20proposals.\x20Proposals\x20target\x20the\x20CURRENT\x20layer\x20ONLY\x20and\x20are\x20'+'applied\x20only\x20when\x20the\x20user\x20explicitly\x20calls\x20persona_operation\x20apply\x20—\x20this\x20tool\x20never\x20writes\x20the\x20'+'persona\x20and\x20never\x20mutates\x20chain\x20state.\x0a'+'\x20\x20•\x20list_snapshots\x20—\x20list\x20stored\x20snapshot\x20summaries\x20(oldest-first)\x20for\x20account+industry.\x0a\x0a'+'Posture\x20defaults:\x20explicit\x20`posture`\x20arg\x20→\x20merchant\x20posture\x20in\x20the\x20effective\x20persona\x20→\x20\x27balanced\x27.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27strategy_review_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':StrategyReviewOperationInputSchema,'outputSchema':StrategyReviewOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![],'openWorldHint':!![]},'_meta':createToolMeta('strategy',['strategy','scorecard','review','posture','metrics','industry','competitor','retention','dispute'])},'timeoutMs':0x1d4c0},{'name':'workspace_operation','handler':handleWorkspaceOperation,'config':{'title':'📁\x20Workspace\x20-\x20File\x20Generation\x20&\x20User\x20Data','summary':'Local\x20workspace\x20files:\x20list,\x20read,\x20search,\x20glob,\x20edit,\x20write,\x20move,\x20copy,\x20delete.','description':'Manage\x20the\x20local\x20workspace\x20directory\x20(`.wowok/workspace`):\x20files\x20generated\x20for\x20review\x20'+'(machine/guard/wts/wip\x20JSON)\x20and\x20user-created\x20documents.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20resolve\x20—\x20return\x20the\x20workspace\x20root\x20directory.\x0a'+'\x20\x20•\x20list\x20—\x20list\x20files\x20under\x20the\x20workspace.\x0a'+'\x20\x20•\x20read\x20—\x20read\x20a\x20file\x27s\x20content\x20(use\x20as\x20AI\x20context);\x20optional\x20offset/limit\x20line\x20slicing\x20'+'(1-based\x20offset,\x20max\x202000\x20lines)\x20and\x20encoding=\x27base64\x27\x20for\x20raw\x20bytes\x20(≤10MB).\x0a'+'\x20\x20•\x20search\x20—\x20regex\x20content\x20search\x20across\x20workspace\x20files\x20(pattern\x20required;\x20optional\x20path\x20scope,\x20'+'glob\x20basename\x20filter,\x20ignore_case,\x20max_results\x20≤200,\x20context_lines\x20≤5).\x20Skips\x20binary/large\x20files.\x0a'+'\x20\x20•\x20glob\x20—\x20list\x20files\x20whose\x20workspace-relative\x20path\x20matches\x20a\x20wildcard\x20pattern\x20(\x27**\x27\x20spans\x20'+'directories,\x20\x27*\x27\x20stays\x20within\x20one\x20segment,\x20\x27?\x27\x20=\x20one\x20char,\x20\x27{a,b}\x27\x20alternation).\x0a'+'\x20\x20•\x20edit\x20—\x20exact\x20string\x20replacement\x20inside\x20a\x20file\x20(path\x20+\x20old_string\x20+\x20new_string\x20required;\x20'+'errors\x20when\x20old_string\x20is\x20not\x20unique\x20unless\x20replace_all=true;\x20files\x20≤2MB).\x0a'+'\x20\x20•\x20write\x20—\x20write/overwrite\x20a\x20file\x20(path\x20+\x20content).\x0a'+'\x20\x20•\x20delete\x20—\x20delete\x20a\x20file.\x0a'+'\x20\x20•\x20create_file\x20—\x20create\x20an\x20empty\x20file\x20(path\x20required;\x20content\x20optional).\x0a'+'\x20\x20•\x20create_dir\x20—\x20create\x20a\x20directory\x20recursively\x20(path\x20required).\x0a'+'\x20\x20•\x20copy\x20—\x20copy\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20move\x20—\x20move\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a'+'\x20\x20•\x20rename\x20—\x20rename\x20a\x20file\x20or\x20directory\x20(from\x20+\x20to\x20required).\x0a\x0a'+'Local\x20filesystem\x20only;\x20never\x20mutates\x20chain\x20state.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27workspace_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':WorkspaceOperationInputSchema,'outputSchema':WorkspaceOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('workspace',['workspace','file','document','machine','guard','wts','wip','context'])}},{'name':'workflow_operation','handler':handleWorkflowOperation,'config':{'title':'🔀\x20Workflow\x20-\x20Local-Account\x20Progress\x20Tasks','summary':'List\x20local-account\x20progress\x20(actionable\x20+\x20related/history)\x20+\x20advance/hold/unhold\x20forwards\x20+\x20view\x20progress\x20history.','description':'Local-account\x20workflow\x20view\x20over\x20on-chain\x20Progress\x20objects.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20list\x20—\x20enumerate\x20progress\x20related\x20to\x20local\x20accounts:\x20actionable\x20first\x20(a\x20'+'local\x20account\x20can\x20advance\x20a\x20forward),\x20plus\x20related\x20/\x20completed\x20progress\x20(order\x20'+'holder,\x20named\x20operator,\x20or\x20session\x20operator\x20involvement)\x20so\x20the\x20user\x20always\x20'+'keeps\x20visibility\x20of\x20their\x20own\x20progress\x20history.\x20Each\x20task\x20carries\x20every\x20'+'reachable\x20next\x20node\x20+\x20forward,\x20the\x20local\x20accounts\x20that\x20can\x20execute\x20each\x20'+'forward\x20(order\x20holder\x20/\x20named\x20operator\x20/\x20permission\x20index,\x20including\x20admin),\x20'+'guard\x20reminders\x20(a\x20forward\x20with\x20a\x20guard\x20must\x20be\x20verified\x20via\x20passport),\x20and\x20'+'the\x20on-chain\x20history_count.\x0a'+'\x20\x20•\x20operate\x20—\x20advance\x20(\x27next\x27)\x20/\x20block\x20(\x27hold\x27)\x20/\x20release\x20(\x27unhold\x27)\x20/\x20force-release\x20'+'(\x27adminUnhold\x27)\x20a\x20forward\x20as\x20a\x20chosen\x20local\x20account\x20(env.account).\x20Delegates\x20to\x20the\x20'+'on-chain\x20progress\x20operation\x20(guard-aware).\x0a'+'\x20\x20•\x20history\x20—\x20incrementally\x20sync\x20a\x20progress\x27s\x20ON-CHAIN\x20history\x20(Progress.history\x20'+'append-only\x20u64\x20index)\x20into\x20the\x20local\x20SQLite\x20mirror\x20via\x20a\x20per-progress\x20cursor\x20'+'(only\x20NEW\x20records\x20are\x20pulled),\x20then\x20return\x20the\x20migration\x20timeline\x20(newest\x20first)\x20'+'with\x20each\x20migration\x27s\x20session\x20snapshot\x20(forwards\x20/\x20operator\x20address\x20/\x20weight\x20/\x20time).\x20'+'Also\x20runs\x20a\x2090-day\x20retention\x20cleanup\x20of\x20stale\x20progress\x20histories\x20by\x20default.\x0a\x0a'+'Permission\x20model\x20(chain-authoritative):\x20a\x20forward\x20is\x20executable\x20by\x20an\x20account\x20when\x20'+'(a)\x20namedOperator=\x22\x22\x20and\x20the\x20account\x20is\x20the\x20order\x20holder\x20(order\x20builder\x20or\x20agent),\x20'+'or\x20(b)\x20namedOperator=name\x20and\x20the\x20account\x20is\x20in\x20progress.namedOperator[name],\x20or\x20'+'(c)\x20permissionIndex\x20is\x20set\x20and\x20the\x20account\x20is\x20in\x20permission.admin\x20or\x20permission.table.\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27workflow_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':WorkflowOperationInputSchema,'outputSchema':WorkflowOperationOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![],'openWorldHint':!![]},'_meta':createToolMeta('workflow',['workflow','progress','forward','permission','named-operator','guard','advance','hold'])},'timeoutMs':0x1d4c0},{'name':'permission_operation','handler':handlePermissionOperation,'config':{'title':'🛡️\x20Permissions\x20-\x20Local-Account\x20Overview','summary':'List\x20Permissions\x20related\x20to\x20local\x20accounts\x20with\x20related\x20accounts/objects.','description':'Local-account\x20Permission\x20overview.\x0a\x0a'+'Actions:\x0a'+'\x20\x20•\x20list\x20—\x20enumerate\x20every\x20on-chain\x20Permission\x20object\x20related\x20to\x20at\x20least\x20one\x20LOCAL\x20'+'account\x20(reverse-looked-up\x20via\x20the\x20global\x20entity_permission\x20index\x20@0xaad),\x20deduplicated\x20'+'and\x20merged.\x20Each\x20row\x20includes\x20description,\x20owner,\x20latest\x20on-chain\x20update\x20time,\x20related\x20'+'accounts\x20(owner/admin/entity),\x20and\x20related\x20objects\x20(grouped\x20by\x20type\x20via\x20the\x20registrar\x20'+'linker).\x20Pass\x20`permission`\x20to\x20scope\x20the\x20listing\x20to\x20ONE\x20Permission\x20address\x20—\x20fast\x20path\x20'+'(metadata\x20+\x20local-account\x20roles\x20only;\x20skips\x20the\x20per-permission\x20linker/tx-time\x20fan-out)\x20'+'for\x20detail-page\x20Permission\x20rows.\x0a\x0a'+'Read-only\x20(no\x20on-chain\x20mutation).\x0a\x0a'+'💡\x20Schema\x20hint:\x20Use\x20schema_query\x20with\x20action=\x27get\x27\x20and\x20name=\x27permission_operation\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema.','inputSchema':PermissionOperationInputSchema,'outputSchema':PermissionOperationOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('query',['permission','account','role','owner','admin','entity','overview','registrar','reverse-index'])}}];
|