[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M781ER5NJ0KBVXW3PCVK4MPP":3,"skill-same:01M781ER5NJ0KBVXW3PCVK4MPP":47},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":29,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M781ER5NJ0KBVXW3PCVK4MPP","pm-ezofficeinventory",null,"EZOfficeInventory connector knowledge and safe action guide.","polymetrics-ai\u002Fcli","polymetrics-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F177650388?v=4","01M77Z920R1RTP5NXCP1V1HNMS","Polymetrics","01M77Z921DPWZC4DQSSZNWF82B",7,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-ezofficeinventory\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: pm-ezofficeinventory\ndescription: EZOfficeInventory connector knowledge and safe action guide.\n---\n\n# pm-ezofficeinventory\n\n## Purpose\n\nReads and writes EZOfficeInventory assets, inventory items, stock assets, members, locations, groups, vendors, and purchase orders through the EZOfficeInventory REST API.\n\n## Icon\n\n- id: pm-sample\n- asset: icons\u002Fpm-sample.svg\n- source: polymetrics\n- review_status: polymetrics\n- review_url: https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\n\n## Capabilities\n\n- check=true catalog=true read=true write=true query=false\n- Integration type: api\n\n## Authentication\n\n- Use pm credentials add with --from-env or --value-stdin for secret fields.\n\n## Configuration\n\n- mode\n- subdomain (required)\n- api_key (secret) (required)\n\n## ETL Streams\n\n- assets:\n  - primary key: identifier\n  - fields: asset_type(string), assigned_to_user_email(string), assigned_to_user_name(string), created_at(string), description(string), group_id(integer), identifier(integer), location_id(integer), location_name(string), name(string), price(string), purchased_on(string), updated_at(string)\n- inventories:\n  - primary key: identifier\n  - fields: asset_type(string), created_at(string), description(string), group_id(integer), identifier(integer), location_id(integer), location_name(string), name(string), net_quantity(integer), price(string), updated_at(string)\n- asset_stocks:\n  - primary key: identifier\n  - fields: asset_type(string), assigned_to_user_email(string), assigned_to_user_name(string), created_at(string), description(string), group_id(integer), identifier(integer), location_id(integer), location_name(string), name(string), price(string), purchased_on(string), updated_at(string)\n- members:\n  - primary key: id\n  - fields: contact_type(string), country(string), created_at(string), email(string), first_name(string), full_name(string), id(integer), last_name(string), role_id(integer), role_name(string), status(string)\n- locations:\n  - primary key: id\n  - fields: city(string), country(string), created_at(string), description(string), id(integer), name(string), parent_id(integer), state(string), status(string), street1(string), street2(string), updated_at(string), zipcode(string)\n- groups:\n  - primary key: id\n  - fields: active(boolean), asset_depreciation_mode(string), assets_count(integer), company_id(integer), created_at(string), description(string), hidden_on_web_store(boolean), id(integer), name(string), updated_at(string)\n- vendors:\n  - primary key: id\n  - fields: assets_count(integer), company_id(integer), created_at(string), id(integer), name(string), services_count(integer), status(integer), updated_at(string)\n- purchase_orders:\n  - primary key: id\n  - fields: approver_type(string), company_id(integer), created_at(string), created_by_id(integer), id(integer), net_amount(string), paid_amount(string), payable_amount(string), po_type(string), requested_by_id(integer), sequence_num(integer), state(string), updated_at(string), vendor_id(integer)\n\n## Sync Modes\n\n- ETL sync modes: full_refresh_append, full_refresh_overwrite\n\n## Reverse ETL Actions\n\n- create_asset:\n  - endpoint: POST \u002Fassets.api\n  - required fields: fixed_asset[name], fixed_asset[group_id], fixed_asset[location_id]\n  - risk: external mutation; creates a new asset record; approval required\n- update_asset:\n  - endpoint: PUT \u002Fassets\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_member:\n  - endpoint: POST \u002Fmembers.api\n  - required fields: user[email], user[first_name], user[last_name], user[role_id]\n  - risk: external mutation; creates a new member\u002Fuser account; approval required\n- update_member:\n  - endpoint: PUT \u002Fmembers\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_location:\n  - endpoint: POST \u002Flocations.api\n  - required fields: location[name]\n  - risk: external mutation; creates a new location; approval required\n- update_location:\n  - endpoint: PUT \u002Flocations\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_group:\n  - endpoint: POST \u002Fgroups.api\n  - required fields: group[name]\n  - risk: external mutation; creates a new asset group\u002Fclassification; approval required\n- update_group:\n  - endpoint: PUT \u002Fgroups\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_vendor:\n  - endpoint: POST \u002Fvendors.api\n  - required fields: vendor[name]\n  - risk: external mutation; creates a new vendor; approval required\n- update_vendor:\n  - endpoint: PUT \u002Fvendors\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_purchase_order:\n  - endpoint: POST \u002Fpurchase_orders.api\n  - required fields: vendor_id\n  - risk: external mutation; creates a new purchase order (financial document); approval required\n\n## Security\n\n- read risk: external EZOfficeInventory API read of asset, inventory, member, location, group, vendor, and purchase order data\n- write risk: external mutation of asset, member, location, group, vendor, and purchase order records; create\u002Fupdate only, no delete actions implemented\n- approval: writes require approval; reads are unrestricted\n- Never pass secret values in chat, shell arguments, logs, docs, or JSON output.\n\n## Commands\n\n### Inspect as a manual\n\n```bash\npm connectors inspect ezofficeinventory\n```\n\n### Inspect as structured JSON\n\n```bash\npm connectors inspect ezofficeinventory --json\n```\n\n## Agent Rules\n\n- Run pm connectors inspect ezofficeinventory before creating credentials or plans.\n- Use --json only when the caller needs structured output; use the manual for human-readable guidance.\n- Never ask the user to paste secret values into chat.\n- For reverse ETL writes, create a plan, show the preview, wait for explicit approval, then run with the approval token.\n","# pm-ezofficeinventory\n\n## Purpose\n\nReads and writes EZOfficeInventory assets, inventory items, stock assets, members, locations, groups, vendors, and purchase orders through the EZOfficeInventory REST API.\n\n## Icon\n\n- id: pm-sample\n- asset: icons\u002Fpm-sample.svg\n- source: polymetrics\n- review_status: polymetrics\n- review_url: https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\n\n## Capabilities\n\n- check=true catalog=true read=true write=true query=false\n- Integration type: api\n\n## Authentication\n\n- Use pm credentials add with --from-env or --value-stdin for secret fields.\n\n## Configuration\n\n- mode\n- subdomain (required)\n- api_key (secret) (required)\n\n## ETL Streams\n\n- assets:\n  - primary key: identifier\n  - fields: asset_type(string), assigned_to_user_email(string), assigned_to_user_name(string), created_at(string), description(string), group_id(integer), identifier(integer), location_id(integer), location_name(string), name(string), price(string), purchased_on(string), updated_at(string)\n- inventories:\n  - primary key: identifier\n  - fields: asset_type(string), created_at(string), description(string), group_id(integer), identifier(integer), location_id(integer), location_name(string), name(string), net_quantity(integer), price(string), updated_at(string)\n- asset_stocks:\n  - primary key: identifier\n  - fields: asset_type(string), assigned_to_user_email(string), assigned_to_user_name(string), created_at(string), description(string), group_id(integer), identifier(integer), location_id(integer), location_name(string), name(string), price(string), purchased_on(string), updated_at(string)\n- members:\n  - primary key: id\n  - fields: contact_type(string), country(string), created_at(string), email(string), first_name(string), full_name(string), id(integer), last_name(string), role_id(integer), role_name(string), status(string)\n- locations:\n  - primary key: id\n  - fields: city(string), country(string), created_at(string), description(string), id(integer), name(string), parent_id(integer), state(string), status(string), street1(string), street2(string), updated_at(string), zipcode(string)\n- groups:\n  - primary key: id\n  - fields: active(boolean), asset_depreciation_mode(string), assets_count(integer), company_id(integer), created_at(string), description(string), hidden_on_web_store(boolean), id(integer), name(string), updated_at(string)\n- vendors:\n  - primary key: id\n  - fields: assets_count(integer), company_id(integer), created_at(string), id(integer), name(string), services_count(integer), status(integer), updated_at(string)\n- purchase_orders:\n  - primary key: id\n  - fields: approver_type(string), company_id(integer), created_at(string), created_by_id(integer), id(integer), net_amount(string), paid_amount(string), payable_amount(string), po_type(string), requested_by_id(integer), sequence_num(integer), state(string), updated_at(string), vendor_id(integer)\n\n## Sync Modes\n\n- ETL sync modes: full_refresh_append, full_refresh_overwrite\n\n## Reverse ETL Actions\n\n- create_asset:\n  - endpoint: POST \u002Fassets.api\n  - required fields: fixed_asset[name], fixed_asset[group_id], fixed_asset[location_id]\n  - risk: external mutation; creates a new asset record; approval required\n- update_asset:\n  - endpoint: PUT \u002Fassets\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_member:\n  - endpoint: POST \u002Fmembers.api\n  - required fields: user[email], user[first_name], user[last_name], user[role_id]\n  - risk: external mutation; creates a new member\u002Fuser account; approval required\n- update_member:\n  - endpoint: PUT \u002Fmembers\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_location:\n  - endpoint: POST \u002Flocations.api\n  - required fields: location[name]\n  - risk: external mutation; creates a new location; approval required\n- update_location:\n  - endpoint: PUT \u002Flocations\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_group:\n  - endpoint: POST \u002Fgroups.api\n  - required fields: group[name]\n  - risk: external mutation; creates a new asset group\u002Fclassification; approval required\n- update_group:\n  - endpoint: PUT \u002Fgroups\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_vendor:\n  - endpoint: POST \u002Fvendors.api\n  - required fields: vendor[name]\n  - risk: external mutation; creates a new vendor; approval required\n- update_vendor:\n  - endpoint: PUT \u002Fvendors\u002F{{ record.id }}.api\n  - required fields: id\n  - risk: external mutation; approval required\n- create_purchase_order:\n  - endpoint: POST \u002Fpurchase_orders.api\n  - required fields: vendor_id\n  - risk: external mutation; creates a new purchase order (financial document); approval required\n\n## Security\n\n- read risk: external EZOfficeInventory API read of asset, inventory, member, location, group, vendor, and purchase order data\n- write risk: external mutation of asset, member, location, group, vendor, and purchase order records; create\u002Fupdate only, no delete actions implemented\n- approval: writes require approval; reads are unrestricted\n- Never pass secret values in chat, shell arguments, logs, docs, or JSON output.\n\n## Commands\n\n### Inspect as a manual\n\n```bash\npm connectors inspect ezofficeinventory\n```\n\n### Inspect as structured JSON\n\n```bash\npm connectors inspect ezofficeinventory --json\n```\n\n## Agent Rules\n\n- Run pm connectors inspect ezofficeinventory before creating credentials or plans.\n- Use --json only when the caller needs structured output; use the manual for human-readable guidance.\n- Never ask the user to paste secret values into chat.\n- For reverse ETL writes, create a plan, show the preview, wait for explicit approval, then run with the approval token.\n",{"name":5,"description":7},"main","813f457a925f7ee3fe3bea101a43e445992c8552","docs\u002Fskills\u002Fpm-ezofficeinventory",0,"https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli","https:\u002F\u002Fcli.polymetrics.ai","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai","Local-first data infrastructure for agents and developers.","2026-09-21 12:42:03",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add polymetrics-ai\u002Fcli --skill pm-ezofficeinventory",{"tool":39,"command":40},"bunx","bunx skills add polymetrics-ai\u002Fcli --skill pm-ezofficeinventory",{"tool":42,"command":43},"pnpm","pnpm dlx skills add polymetrics-ai\u002Fcli --skill pm-ezofficeinventory","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-ezofficeinventory\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M782EH9BFHYZVECKJ31F427S","recipe-preview-approve-reverse-etl","Preview and approve a reverse ETL plan safely.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Frecipe-preview-approve-reverse-etl\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M782EFGH5NRZ2CXDK0V9YWFW","recipe-github-prs-to-warehouse","Sync GitHub pull requests into the local warehouse.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Frecipe-github-prs-to-warehouse\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M782ECJZRQAK8E86CE7R2YM2","pm-zoom","Zoom connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zoom\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M782EASYDANMV35W2ZHG2QD0","pm-zonka-feedback","Zonka Feedback connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zonka-feedback\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M782E8WA94A906385AET1ZWH","pm-zoho-invoice","Zoho Invoice connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zoho-invoice\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M782E73M7F23B6VBGM72QMMQ","pm-zoho-inventory","Zoho Inventory connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zoho-inventory\u002FSKILL.md",[],[]]