@dotzero.ai/dotzero-mcp 1.2.0 → 1.2.2
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/auth-state.d.ts +2 -0
- package/dist/auth-state.js +1 -1
- package/dist/service-loader.d.ts +1 -0
- package/dist/service-loader.js +1 -1
- package/dist/tool-catalog.js +1 -1
- package/package.json +4 -4
package/dist/auth-state.d.ts
CHANGED
|
@@ -30,3 +30,5 @@ export interface AuthResult {
|
|
|
30
30
|
}
|
|
31
31
|
export declare function authenticate(email: string, password: string, tid: string): Promise<AuthResult>;
|
|
32
32
|
export declare function refreshAuth(rToken: string, tid: string): Promise<AuthResult>;
|
|
33
|
+
/** Clear all authentication state from memory */
|
|
34
|
+
export declare function clearAuth(): void;
|
package/dist/auth-state.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import axios from"axios";const DEFAULT_USER_API_URL="https://dotzerotech-user-api.dotzero.app";export const SERVICE_CONFIGS=[{name:"work-order",envVar:"WORK_ORDER_API_URL",baseUrl:null},{name:"spc",envVar:"SPC_API_URL",baseUrl:null},{name:"equipment",envVar:"EQUIPMENT_API_URL",baseUrl:null},{name:"device-topology",envVar:"DEVICE_TOPOLOGY_API_URL",baseUrl:null},{name:"oee",envVar:"OEE_API_URL",baseUrl:null}];let userApiUrl=DEFAULT_USER_API_URL,token=null,refreshTokenValue=null,tenantId=null;const apiClients=new Map;export function initialize(){userApiUrl=process.env.USER_API_URL||DEFAULT_USER_API_URL;for(const e of SERVICE_CONFIGS)e.baseUrl=process.env[e.envVar]||null}function createClient(e,
|
|
1
|
+
import axios from"axios";const DEFAULT_USER_API_URL="https://dotzerotech-user-api.dotzero.app";export const SERVICE_CONFIGS=[{name:"work-order",envVar:"WORK_ORDER_API_URL",baseUrl:null},{name:"spc",envVar:"SPC_API_URL",baseUrl:null},{name:"equipment",envVar:"EQUIPMENT_API_URL",baseUrl:null},{name:"device-topology",envVar:"DEVICE_TOPOLOGY_API_URL",baseUrl:null},{name:"oee",envVar:"OEE_API_URL",baseUrl:null}];let userApiUrl=DEFAULT_USER_API_URL,token=null,refreshTokenValue=null,tenantId=null;const apiClients=new Map;export function initialize(){userApiUrl=process.env.USER_API_URL||DEFAULT_USER_API_URL;for(const e of SERVICE_CONFIGS)e.baseUrl=process.env[e.envVar]||null}function createClient(e,t){const r=axios.create({baseURL:e,timeout:3e4,headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${t}`}});return r.interceptors.response.use(e=>e,async e=>{const t=e.config;if(401===e.response?.status&&!t._retried&&refreshTokenValue&&tenantId){t._retried=!0;const e=await refreshAuth(refreshTokenValue,tenantId);if(e.success&&e.token)return t.headers.Authorization=`Bearer ${e.token}`,axios(t)}throw e}),r}export function setToken(e,t,r){token=e,t&&(refreshTokenValue=t),r&&(tenantId=r),apiClients.clear();for(const t of SERVICE_CONFIGS)t.baseUrl&&apiClients.set(t.name,createClient(t.baseUrl,e))}export function getToken(){return token}export function getRefreshToken(){return refreshTokenValue}export function getTenantId(){return tenantId}export function isAuthenticated(){return null!==token}export function getClientForService(e){return apiClients.get(e)||null}export function getConfiguredServices(){return SERVICE_CONFIGS.filter(e=>null!==e.baseUrl)}export function getUserApiUrl(){return userApiUrl}export async function authenticate(e,t,r){try{const n=`${userApiUrl}/v2/auth/login?tenantID=${encodeURIComponent(r)}`,s=await axios.post(n,{email:e,password:t},{timeout:1e4,headers:{"Content-Type":"application/json"}}),o=s.data.token;return o?(setToken(o,s.data.refresh_token,s.data.tenant_id||r),{success:!0,token:o,refreshToken:s.data.refresh_token,email:s.data.email,name:s.data.name,tenantId:s.data.tenant_id||r}):{success:!1,error:"No token received"}}catch(e){if(axios.isAxiosError(e)){const t=e;if(401===t.response?.status)return{success:!1,error:"Invalid email or password"};if(400===t.response?.status)return{success:!1,error:"Bad request. Verify tenant_id."};if(404===t.response?.status)return{success:!1,error:"Tenant not found."};const r=t.response?.data?.message||t.response?.data?.error;if(r)return{success:!1,error:r}}return{success:!1,error:`Authentication failed: ${e instanceof Error?e.message:String(e)}`}}}export async function refreshAuth(e,t){try{const r=`${userApiUrl}/v2/auth/token?tenantID=${encodeURIComponent(t)}`,n=await axios.post(r,{grant_type:"refresh_token",refresh_token:e},{timeout:1e4,headers:{"Content-Type":"application/json"}}),s="string"==typeof n.data?n.data:n.data.token;return s?(setToken(s,e,t),{success:!0,token:s,refreshToken:e,tenantId:t}):{success:!1,error:"No token received from refresh"}}catch(e){if(axios.isAxiosError(e)){const t=e,r=t.response?.data?.message||t.response?.data?.error;if(r)return{success:!1,error:r}}return{success:!1,error:`Token refresh failed: ${e instanceof Error?e.message:String(e)}`}}}export function clearAuth(){token=null,refreshTokenValue=null,tenantId=null,apiClients.clear()}process.on("exit",clearAuth);
|
package/dist/service-loader.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare function isServiceLoaded(name: string): boolean;
|
|
|
16
16
|
/**
|
|
17
17
|
* Load a service's tools into the MCP server.
|
|
18
18
|
* Uses a proxy pattern: tools are thin wrappers that forward requests to the service API.
|
|
19
|
+
* Local services (export) are listed in find_tools but not proxied through the gateway.
|
|
19
20
|
*/
|
|
20
21
|
export declare function loadService(server: McpServer, serviceName: string): {
|
|
21
22
|
success: boolean;
|
package/dist/service-loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getConfiguredServices,isAuthenticated,getClientForService}from"./auth-state.js";import{getToolsForService}from"./tool-catalog.js";import axios from"axios";import{z}from"zod";const loadedServices=new Set;export function getServiceStatuses(){const e=getConfiguredServices();return["work-order","spc","equipment","device-topology","oee"].map(t=>{const o=e.find(e=>e.name===t),r=getToolsForService(t);return{name:t,configured:void 0!==o,loaded:loadedServices.has(t),toolCount:r.length,baseUrl:o?.baseUrl||null}})}export function isServiceLoaded(e){return loadedServices.has(e)}function regProxy(e,t,o){e.registerTool(t.name,{title:t.title,description:t.description,inputSchema:t.inputSchema,annotations:t.annotations},async e=>o(e))}async function makeProxyRequest(e,t,o="GET",r,n){return(await e.request({method:o,url:t,data:r,params:n})).data}function handleProxyError(e){if(axios.isAxiosError(e)){const t=e;if(t.response){const e=t.response.status,o=t.response.data?.message||t.response.data?.error;return 401===e?"Error: Authentication failed. Use auth_login.":403===e?"Error: Permission denied.":404===e?"Error: Resource not found.":`Error: Status ${e}. ${o||""}`}if("ECONNREFUSED"===t.code)return"Error: Cannot connect to API."}return`Error: ${e instanceof Error?e.message:String(e)}`}export function loadService(e,t){if(loadedServices.has(t)){const e=getToolsForService(t);return{success:!0,message:`Service '${t}' is already loaded.`,toolCount:e.length}}if(!getConfiguredServices().find(e=>e.name===t))return{success:!1,message:`Service '${t}' is not configured. Set ${getEnvVarForService(t)} environment variable.`,toolCount:0};if(!isAuthenticated())return{success:!1,message:"Not authenticated. Use auth_login first.",toolCount:0};const o=getClientForService(t);if(!o)return{success:!1,message:`Cannot create API client for '${t}'.`,toolCount:0};const r=getToolsForService(t);for(const n of r){if("auth_login"===n.name||"auth_status"===n.name)continue;const r=z.object({params:z.record(z.unknown()).optional().describe("Parameters to pass to the tool (see find_tools for details)"),response_format:z.enum(["markdown","json"]).default("json").describe("Output format")}).strict();e.registerTool(n.name,{title:n.title,description:`[${t}] ${n.description}\n\nPass parameters as a JSON object in the 'params' field.`,inputSchema:r,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0}},async e=>{try{const t=await makeProxyRequest(o,`/mcp/tool/${n.name}`,"POST",{params:e.params||{},response_format:e.response_format||"json"});return{content:[{type:"text",text:"string"==typeof t?t:JSON.stringify(t,null,2)}]}}catch(e){return{content:[{type:"text",text:handleProxyError(e)}],isError:!0}}})}const n=r.filter(e=>"auth_login"!==e.name&&"auth_status"!==e.name).length;return loadedServices.add(t),{success:!0,message:`Loaded ${n} tools for '${t}'.`,toolCount:n}}function getEnvVarForService(e){return{"work-order":"WORK_ORDER_API_URL",spc:"SPC_API_URL",equipment:"EQUIPMENT_API_URL","device-topology":"DEVICE_TOPOLOGY_API_URL",oee:"OEE_API_URL"}[e]||`${e.toUpperCase().replace(/-/g,"_")}_API_URL`}
|
|
1
|
+
import{getConfiguredServices,isAuthenticated,getClientForService}from"./auth-state.js";import{getToolsForService}from"./tool-catalog.js";import axios from"axios";import{z}from"zod";const loadedServices=new Set;export function getServiceStatuses(){const e=getConfiguredServices();return["work-order","spc","equipment","device-topology","oee","export"].map(t=>{const o=e.find(e=>e.name===t),r=getToolsForService(t),n=LOCAL_SERVICES.has(t);return{name:t,configured:n||void 0!==o,loaded:loadedServices.has(t),toolCount:r.length,baseUrl:n?"(local)":o?.baseUrl||null}})}export function isServiceLoaded(e){return loadedServices.has(e)}function regProxy(e,t,o){e.registerTool(t.name,{title:t.title,description:t.description,inputSchema:t.inputSchema,annotations:t.annotations},async e=>o(e))}async function makeProxyRequest(e,t,o="GET",r,n){return(await e.request({method:o,url:t,data:r,params:n})).data}function handleProxyError(e){if(axios.isAxiosError(e)){const t=e;if(t.response){const e=t.response.status,o=t.response.data?.message||t.response.data?.error;return 401===e?"Error: Authentication failed. Use auth_login.":403===e?"Error: Permission denied.":404===e?"Error: Resource not found.":`Error: Status ${e}. ${o||""}`}if("ECONNREFUSED"===t.code)return"Error: Cannot connect to API."}return`Error: ${e instanceof Error?e.message:String(e)}`}const LOCAL_SERVICES=new Set(["export"]);export function loadService(e,t){if(loadedServices.has(t)){const e=getToolsForService(t);return{success:!0,message:`Service '${t}' is already loaded.`,toolCount:e.length}}if(LOCAL_SERVICES.has(t)){const e=getToolsForService(t);return loadedServices.add(t),{success:!0,message:`Service '${t}' has ${e.length} tools available via the dedicated dotzero-export MCP server. Use those tools directly (no proxy needed).`,toolCount:e.length}}if(!getConfiguredServices().find(e=>e.name===t))return{success:!1,message:`Service '${t}' is not configured. Set ${getEnvVarForService(t)} environment variable.`,toolCount:0};if(!isAuthenticated())return{success:!1,message:"Not authenticated. Use auth_login first.",toolCount:0};const o=getClientForService(t);if(!o)return{success:!1,message:`Cannot create API client for '${t}'.`,toolCount:0};const r=getToolsForService(t);for(const n of r){if("auth_login"===n.name||"auth_status"===n.name)continue;const r=z.object({params:z.record(z.unknown()).optional().describe("Parameters to pass to the tool (see find_tools for details)"),response_format:z.enum(["markdown","json"]).default("json").describe("Output format")}).strict();e.registerTool(n.name,{title:n.title,description:`[${t}] ${n.description}\n\nPass parameters as a JSON object in the 'params' field.`,inputSchema:r,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0}},async e=>{try{const t=await makeProxyRequest(o,`/mcp/tool/${n.name}`,"POST",{params:e.params||{},response_format:e.response_format||"json"});return{content:[{type:"text",text:"string"==typeof t?t:JSON.stringify(t,null,2)}]}}catch(e){return{content:[{type:"text",text:handleProxyError(e)}],isError:!0}}})}const n=r.filter(e=>"auth_login"!==e.name&&"auth_status"!==e.name).length;return loadedServices.add(t),{success:!0,message:`Loaded ${n} tools for '${t}'.`,toolCount:n}}function getEnvVarForService(e){return{"work-order":"WORK_ORDER_API_URL",spc:"SPC_API_URL",equipment:"EQUIPMENT_API_URL","device-topology":"DEVICE_TOPOLOGY_API_URL",oee:"OEE_API_URL"}[e]||`${e.toUpperCase().replace(/-/g,"_")}_API_URL`}
|
package/dist/tool-catalog.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const TOOL_CATALOG=[{name:"auth_login",title:"Login",description:"Authenticate with email, password, and tenant_id",keywords:["auth","login","authenticate","token"],service:"work-order"},{name:"auth_status",title:"Auth Status",description:"Check authentication status",keywords:["auth","status","token"],service:"work-order"},{name:"workorder_list",title:"List Work Orders",description:"List work orders with filters for status, date ranges, rush orders",keywords:["workorder","list","filter","production","母工單"],service:"work-order"},{name:"workorder_get",title:"Get Work Order",description:"Get a specific work order by UUID or ID",keywords:["workorder","get","detail"],service:"work-order"},{name:"workorder_create",title:"Create Work Order",description:"Create a new work order",keywords:["workorder","create","new"],service:"work-order"},{name:"workorder_update",title:"Update Work Order",description:"Update an existing work order",keywords:["workorder","update","modify"],service:"work-order"},{name:"workorder_delete",title:"Delete Work Order",description:"Delete a work order",keywords:["workorder","delete","remove"],service:"work-order"},{name:"workorder_details",title:"Work Order Details",description:"Get work order with product info and operations",keywords:["workorder","detail","product","operation"],service:"work-order"},{name:"workorder_count",title:"Work Order Count",description:"Get total work order count",keywords:["workorder","count","total"],service:"work-order"},{name:"product_list",title:"List Products",description:"List products with filters",keywords:["product","list","material"],service:"work-order"},{name:"product_get",title:"Get Product",description:"Get product details by UUID",keywords:["product","get","detail"],service:"work-order"},{name:"product_create",title:"Create Product",description:"Create a new product",keywords:["product","create"],service:"work-order"},{name:"product_update",title:"Update Product",description:"Update a product",keywords:["product","update"],service:"work-order"},{name:"product_details",title:"Product Details",description:"Get product with routes and operations",keywords:["product","detail","route"],service:"work-order"},{name:"product_copy",title:"Copy Product",description:"Copy a product with its routes and operations",keywords:["product","copy","duplicate"],service:"work-order"},{name:"worker_list",title:"List Workers",description:"List workers with filters",keywords:["worker","employee","list"],service:"work-order"},{name:"worker_get",title:"Get Worker",description:"Get worker details",keywords:["worker","employee","get"],service:"work-order"},{name:"worker_create",title:"Create Worker",description:"Create a new worker",keywords:["worker","employee","create"],service:"work-order"},{name:"worker_update",title:"Update Worker",description:"Update a worker",keywords:["worker","employee","update"],service:"work-order"},{name:"worker_delete",title:"Delete Worker",description:"Delete a worker",keywords:["worker","employee","delete"],service:"work-order"},{name:"operation_history_list",title:"List Operation History",description:"List work order operation history (子工單)",keywords:["operation","history","子工單","sub","child"],service:"work-order"},{name:"operation_history_by_workorder",title:"Operation History by WO",description:"Get operations for a specific work order",keywords:["operation","history","workorder"],service:"work-order"},{name:"operation_history_get",title:"Get Operation History",description:"Get operation history details",keywords:["operation","history","get"],service:"work-order"},{name:"operation_history_create",title:"Create Operation History",description:"Create an operation history record",keywords:["operation","history","create"],service:"work-order"},{name:"operation_history_create_many",title:"Create Many Operations",description:"Batch create operation history records",keywords:["operation","history","batch","create"],service:"work-order"},{name:"operation_history_delete",title:"Delete Operation History",description:"Delete an operation history record",keywords:["operation","history","delete"],service:"work-order"},{name:"operation_history_timeline",title:"Operation Timeline",description:"Get operation timeline for a work order",keywords:["operation","timeline","history"],service:"work-order"},{name:"workorder_report",title:"Work Order Report",description:"Get operation report with filters",keywords:["report","analytics","production"],service:"work-order"},{name:"report_update",title:"Update Report",description:"Update report configuration",keywords:["report","update"],service:"work-order"},{name:"weekly_report",title:"Weekly Report",description:"Get weekly production report",keywords:["report","weekly","production"],service:"work-order"},{name:"analytics_operations",title:"Analytics Operations",description:"Get operation analytics data",keywords:["analytics","operation","data"],service:"work-order"},{name:"analytics_workorder_report",title:"Analytics WO Report",description:"Get work order analytics report",keywords:["analytics","workorder","report"],service:"work-order"},{name:"worker_efficiency_ranking",title:"Worker Efficiency",description:"Rank workers by efficiency metrics",keywords:["worker","efficiency","ranking","performance"],service:"work-order"},{name:"device_utilization_ranking",title:"Device Utilization",description:"Rank devices by utilization",keywords:["device","utilization","ranking","machine"],service:"work-order"},{name:"production_summary",title:"Production Summary",description:"Get production summary with good/defect counts",keywords:["production","summary","good","defect"],service:"work-order"},{name:"route_list",title:"List Routes",description:"List production routes",keywords:["route","process","list"],service:"work-order"},{name:"route_get",title:"Get Route",description:"Get route details",keywords:["route","get"],service:"work-order"},{name:"route_create",title:"Create Route",description:"Create a production route",keywords:["route","create"],service:"work-order"},{name:"route_update",title:"Update Route",description:"Update a route",keywords:["route","update"],service:"work-order"},{name:"route_delete",title:"Delete Route",description:"Delete a route",keywords:["route","delete"],service:"work-order"},{name:"route_by_product",title:"Routes by Product",description:"Get routes for a product",keywords:["route","product"],service:"work-order"},{name:"route_copy",title:"Copy Route",description:"Copy a route",keywords:["route","copy","duplicate"],service:"work-order"},{name:"operation_list",title:"List Operations",description:"List operation definitions",keywords:["operation","process","list"],service:"work-order"},{name:"operation_get",title:"Get Operation",description:"Get operation details",keywords:["operation","get"],service:"work-order"},{name:"operation_create",title:"Create Operation",description:"Create an operation definition",keywords:["operation","create"],service:"work-order"},{name:"operation_update",title:"Update Operation",description:"Update an operation",keywords:["operation","update"],service:"work-order"},{name:"operation_delete",title:"Delete Operation",description:"Delete an operation",keywords:["operation","delete"],service:"work-order"},{name:"route_operation_list",title:"List Route Operations",description:"List operations in a route",keywords:["route","operation","list","sequence"],service:"work-order"},{name:"route_operation_get",title:"Get Route Operation",description:"Get route operation details",keywords:["route","operation","get"],service:"work-order"},{name:"route_operation_create",title:"Create Route Operation",description:"Add operation to a route",keywords:["route","operation","create","add"],service:"work-order"},{name:"route_operation_update",title:"Update Route Operation",description:"Update a route operation",keywords:["route","operation","update"],service:"work-order"},{name:"route_operation_delete",title:"Delete Route Operation",description:"Remove operation from route",keywords:["route","operation","delete","remove"],service:"work-order"},{name:"route_operation_by_route",title:"Operations by Route",description:"Get all operations for a route",keywords:["route","operation","by"],service:"work-order"},{name:"device_list",title:"List Devices",description:"List manufacturing devices/machines",keywords:["device","machine","list"],service:"work-order"},{name:"device_get",title:"Get Device",description:"Get device details",keywords:["device","machine","get"],service:"work-order"},{name:"device_create",title:"Create Device",description:"Create a device",keywords:["device","machine","create"],service:"work-order"},{name:"device_update",title:"Update Device",description:"Update a device",keywords:["device","machine","update"],service:"work-order"},{name:"device_delete",title:"Delete Device",description:"Delete a device",keywords:["device","machine","delete"],service:"work-order"},{name:"defect_reason_list",title:"List Defect Reasons",description:"List defect reason codes",keywords:["defect","reason","quality","list"],service:"work-order"},{name:"defect_reason_create",title:"Create Defect Reason",description:"Create a defect reason",keywords:["defect","reason","create"],service:"work-order"},{name:"defect_reason_update",title:"Update Defect Reason",description:"Update a defect reason",keywords:["defect","reason","update"],service:"work-order"},{name:"defect_reason_delete",title:"Delete Defect Reason",description:"Delete a defect reason",keywords:["defect","reason","delete"],service:"work-order"},{name:"defect_reason_category_list",title:"List Defect Categories",description:"List defect reason categories",keywords:["defect","category","list"],service:"work-order"},{name:"defect_reason_category_get",title:"Get Defect Category",description:"Get defect category details",keywords:["defect","category","get"],service:"work-order"},{name:"defect_reason_category_create",title:"Create Defect Category",description:"Create a defect category",keywords:["defect","category","create"],service:"work-order"},{name:"defect_reason_category_update",title:"Update Defect Category",description:"Update a defect category",keywords:["defect","category","update"],service:"work-order"},{name:"station_list",title:"List Stations",description:"List production stations",keywords:["station","workstation","list"],service:"work-order"},{name:"station_get",title:"Get Station",description:"Get station details",keywords:["station","get"],service:"work-order"},{name:"station_create",title:"Create Station",description:"Create a station",keywords:["station","create"],service:"work-order"},{name:"station_update",title:"Update Station",description:"Update a station",keywords:["station","update"],service:"work-order"},{name:"station_delete",title:"Delete Station",description:"Delete a station",keywords:["station","delete"],service:"work-order"},{name:"station_device_list",title:"Station Devices",description:"List devices at a station",keywords:["station","device","machine"],service:"work-order"},{name:"abnormal_history_list",title:"List Abnormal History",description:"List abnormal/exception history",keywords:["abnormal","exception","history","list"],service:"work-order"},{name:"abnormal_history_get",title:"Get Abnormal History",description:"Get abnormal history details",keywords:["abnormal","exception","get"],service:"work-order"},{name:"abnormal_history_create",title:"Create Abnormal History",description:"Log an abnormal event",keywords:["abnormal","exception","create","log"],service:"work-order"},{name:"abnormal_history_update",title:"Update Abnormal History",description:"Update abnormal history",keywords:["abnormal","exception","update"],service:"work-order"},{name:"abnormal_history_by_workorder",title:"Abnormal by WO",description:"Get abnormal history for a work order",keywords:["abnormal","exception","workorder"],service:"work-order"},{name:"abnormal_category_list",title:"List Abnormal Categories",description:"List abnormal categories",keywords:["abnormal","category","list"],service:"work-order"},{name:"abnormal_category_create",title:"Create Abnormal Category",description:"Create abnormal category",keywords:["abnormal","category","create"],service:"work-order"},{name:"abnormal_state_list",title:"List Abnormal States",description:"List abnormal states",keywords:["abnormal","state","list"],service:"work-order"},{name:"abnormal_state_create",title:"Create Abnormal State",description:"Create abnormal state",keywords:["abnormal","state","create"],service:"work-order"},{name:"op_product_bom_list",title:"List Op Product BOM",description:"List operation product BOM entries",keywords:["bom","material","list","bill"],service:"work-order"},{name:"op_product_bom_create",title:"Create Op Product BOM",description:"Create BOM entry",keywords:["bom","material","create"],service:"work-order"},{name:"op_product_bom_update",title:"Update Op Product BOM",description:"Update BOM entry",keywords:["bom","material","update"],service:"work-order"},{name:"op_product_bom_delete",title:"Delete Op Product BOM",description:"Delete BOM entry",keywords:["bom","material","delete"],service:"work-order"},{name:"warehouse_list",title:"List Warehouses",description:"List warehouses",keywords:["warehouse","inventory","list"],service:"work-order"},{name:"warehouse_get",title:"Get Warehouse",description:"Get warehouse details",keywords:["warehouse","get"],service:"work-order"},{name:"warehouse_create",title:"Create Warehouse",description:"Create a warehouse",keywords:["warehouse","create"],service:"work-order"},{name:"warehouse_update",title:"Update Warehouse",description:"Update a warehouse",keywords:["warehouse","update"],service:"work-order"},{name:"warehouse_storage_list",title:"List Warehouse Storage",description:"List warehouse storage locations",keywords:["warehouse","storage","location","list"],service:"work-order"},{name:"warehouse_storage_get",title:"Get Warehouse Storage",description:"Get storage location details",keywords:["warehouse","storage","get"],service:"work-order"},{name:"warehouse_storage_create",title:"Create Warehouse Storage",description:"Create storage location",keywords:["warehouse","storage","create"],service:"work-order"},{name:"warehouse_storage_update",title:"Update Warehouse Storage",description:"Update storage location",keywords:["warehouse","storage","update"],service:"work-order"},{name:"product_storage_list",title:"List Product Storage",description:"List product storage records",keywords:["product","storage","inventory","list"],service:"work-order"},{name:"product_storage_get",title:"Get Product Storage",description:"Get product storage details",keywords:["product","storage","get"],service:"work-order"},{name:"product_storage_by_product",title:"Storage by Product",description:"Get storage for a product",keywords:["product","storage","by"],service:"work-order"},{name:"wms_check_inventory",title:"Check Inventory",description:"Check product inventory levels",keywords:["wms","inventory","check","stock"],service:"work-order"},{name:"wms_query_product_storage",title:"Query Product Storage",description:"Query WMS product storage",keywords:["wms","product","storage","query"],service:"work-order"},{name:"wms_query_storage_history",title:"Storage History",description:"Query storage transaction history",keywords:["wms","storage","history","transaction"],service:"work-order"},{name:"wms_minimal_stock_count",title:"Minimal Stock Count",description:"Get products below minimum stock",keywords:["wms","stock","minimal","alert","reorder"],service:"work-order"},{name:"spc_product_manufacture_list",title:"SPC Manufacture Products",description:"List SPC products for manufacturing",keywords:["spc","product","manufacture","list"],service:"spc"},{name:"spc_product_stock_list",title:"SPC Stock Products",description:"List SPC products for stock inspection",keywords:["spc","product","stock","list"],service:"spc"},{name:"spc_history_list",title:"SPC History List",description:"List SPC measurement history",keywords:["spc","history","measurement","list"],service:"spc"},{name:"spc_history_batch_upsert",title:"SPC History Batch Upsert",description:"Batch upsert SPC history records",keywords:["spc","history","batch","upsert"],service:"spc"},{name:"spc_history_batch_by_group",title:"SPC History by Group",description:"Get SPC history by group",keywords:["spc","history","group"],service:"spc"},{name:"spc_history_delete_by_group",title:"SPC History Delete Group",description:"Delete SPC history by group",keywords:["spc","history","group","delete"],service:"spc"},{name:"spc_config_parent_get",title:"Get SPC Config Parent",description:"Get SPC config parent with measure point configs",keywords:["spc","config","parent","get"],service:"spc"},{name:"spc_config_parent_create",title:"Create SPC Config Parent",description:"Create SPC config parent",keywords:["spc","config","parent","create"],service:"spc"},{name:"spc_config_parent_update",title:"Update SPC Config Parent",description:"Update SPC config parent",keywords:["spc","config","parent","update"],service:"spc"},{name:"spc_config_parent_attachment_add",title:"Add Config Attachment",description:"Add attachment to SPC config parent",keywords:["spc","config","attachment","add","upload"],service:"spc"},{name:"spc_config_parent_attachment_delete",title:"Delete Config Attachment",description:"Delete attachment from SPC config parent",keywords:["spc","config","attachment","delete"],service:"spc"},{name:"spc_measure_config_list",title:"List Measure Configs",description:"List SPC measure point configurations",keywords:["spc","measure","config","list","tolerance"],service:"spc"},{name:"spc_measure_config_get",title:"Get Measure Config",description:"Get measure point config details",keywords:["spc","measure","config","get"],service:"spc"},{name:"spc_measure_config_create",title:"Create Measure Config",description:"Create a measure point config (USL/LSL/std value)",keywords:["spc","measure","config","create","usl","lsl"],service:"spc"},{name:"spc_measure_config_update",title:"Update Measure Config",description:"Update a measure point config",keywords:["spc","measure","config","update"],service:"spc"},{name:"spc_measure_config_delete",title:"Delete Measure Config",description:"Delete a measure point config",keywords:["spc","measure","config","delete"],service:"spc"},{name:"spc_measure_config_attachment_add",title:"Add Measure Attachment",description:"Add attachment to measure config",keywords:["spc","measure","attachment","upload"],service:"spc"},{name:"spc_measure_config_attachment_delete",title:"Delete Measure Attachment",description:"Delete attachment from measure config",keywords:["spc","measure","attachment","delete"],service:"spc"},{name:"spc_measure_config_modes",title:"Measure Config Modes",description:"List tolerance modes",keywords:["spc","measure","mode","tolerance"],service:"spc"},{name:"spc_measure_config_categories",title:"Measure Config Categories",description:"List measure categories",keywords:["spc","measure","category"],service:"spc"},{name:"spc_measure_history_create",title:"Create Measurement",description:"Create a measurement record",keywords:["spc","measure","history","create"],service:"spc"},{name:"spc_measure_history_upsert",title:"Upsert Measurement",description:"Upsert a measurement record",keywords:["spc","measure","history","upsert"],service:"spc"},{name:"spc_measure_history_update",title:"Update Measurement",description:"Update a measurement record",keywords:["spc","measure","history","update"],service:"spc"},{name:"spc_measure_history_delete",title:"Delete Measurement",description:"Delete a measurement",keywords:["spc","measure","history","delete"],service:"spc"},{name:"spc_measure_history_batch_upsert",title:"Batch Upsert Measurements",description:"Batch upsert measurements",keywords:["spc","measure","history","batch","upsert"],service:"spc"},{name:"spc_measure_history_batch_delete",title:"Batch Delete Measurements",description:"Batch delete measurements",keywords:["spc","measure","history","batch","delete"],service:"spc"},{name:"spc_measure_history_manufacture",title:"Manufacture Measurements",description:"Get manufacture measurement history",keywords:["spc","measure","manufacture","history"],service:"spc"},{name:"spc_measure_history_stock",title:"Stock Measurements",description:"Get stock measurement history",keywords:["spc","measure","stock","history"],service:"spc"},{name:"spc_measure_history_count",title:"Measurement Count",description:"Get measurement history count",keywords:["spc","measure","count"],service:"spc"},{name:"spc_measure_history_filter_list",title:"Filter Manufacture History",description:"Filter manufacture measurement history",keywords:["spc","measure","filter","manufacture"],service:"spc"},{name:"spc_measure_history_filter_list_stock",title:"Filter Stock History",description:"Filter stock measurement history",keywords:["spc","measure","filter","stock"],service:"spc"},{name:"spc_instrument_list",title:"List Instruments",description:"List SPC instruments",keywords:["spc","instrument","calibration","list"],service:"spc"},{name:"spc_instrument_create",title:"Create Instrument",description:"Create an SPC instrument",keywords:["spc","instrument","create"],service:"spc"},{name:"spc_instrument_update",title:"Update Instrument",description:"Update an instrument",keywords:["spc","instrument","update"],service:"spc"},{name:"spc_instrument_delete",title:"Delete Instrument",description:"Delete an instrument",keywords:["spc","instrument","delete"],service:"spc"},{name:"spc_instrument_batch_delete",title:"Batch Delete Instruments",description:"Batch delete instruments",keywords:["spc","instrument","batch","delete"],service:"spc"},{name:"spc_rule_list",title:"List SPC Rules",description:"List Nelson rules",keywords:["spc","rule","nelson"],service:"spc"},{name:"spc_dashboard_list",title:"List Dashboards",description:"List SPC dashboards",keywords:["spc","dashboard","chart","list"],service:"spc"},{name:"spc_dashboard_create",title:"Create Dashboard",description:"Create SPC stock dashboard",keywords:["spc","dashboard","chart","create","stock"],service:"spc"},{name:"spc_dashboard_update",title:"Update Dashboard",description:"Update SPC stock dashboard",keywords:["spc","dashboard","chart","update","stock"],service:"spc"},{name:"spc_dashboard_delete",title:"Delete Dashboard",description:"Delete SPC dashboard",keywords:["spc","dashboard","delete"],service:"spc"},{name:"spc_dashboard_manufacture_create",title:"Create Mfg Dashboard",description:"Create SPC manufacture dashboard",keywords:["spc","dashboard","manufacture","create","control chart"],service:"spc"},{name:"spc_dashboard_manufacture_update",title:"Update Mfg Dashboard",description:"Update SPC manufacture dashboard",keywords:["spc","dashboard","manufacture","update","control chart"],service:"spc"},{name:"spc_statistics_nelson",title:"Nelson Analysis",description:"Run Nelson rules analysis on measurement data",keywords:["spc","statistics","nelson","rule","analysis","control chart"],service:"spc"},{name:"spc_statistics_capability",title:"Process Capability",description:"Calculate Cp, Cpk, Pp, Ppk capability indices",keywords:["spc","statistics","capability","cpk","cp","ppk"],service:"spc"},{name:"spc_statistics_capability_by_point",title:"Capability by Point",description:"Get capability per measure point",keywords:["spc","statistics","capability","point"],service:"spc"},{name:"spc_statistics_calculate_result",title:"Calculate Statistic",description:"Calculate SPC statistic metric",keywords:["spc","statistics","calculate","metric"],service:"spc"},{name:"equip_alarm_list",title:"Equipment Alarms",description:"List equipment alarms with time range",keywords:["equipment","alarm","alert","list"],service:"equipment"},{name:"equip_idle_list",title:"Equipment Idle",description:"List equipment idle periods",keywords:["equipment","idle","downtime","list"],service:"equipment"},{name:"equip_machine_status_history",title:"Machine Status History",description:"Get machine status history",keywords:["equipment","machine","status","history"],service:"equipment"},{name:"equip_machine_status_part_counts",title:"Part Counts",description:"Get machine part counts",keywords:["equipment","machine","part","count","output"],service:"equipment"},{name:"equip_machine_status_part_counts_batch",title:"Part Counts Batch",description:"Get part counts for multiple devices",keywords:["equipment","machine","part","count","batch"],service:"equipment"},{name:"equip_machine_status_realtime",title:"Realtime Status",description:"Get machine realtime status",keywords:["equipment","machine","realtime","status","live"],service:"equipment"},{name:"equip_machine_status_realtime_batch",title:"Realtime Batch",description:"Get realtime status for multiple devices",keywords:["equipment","machine","realtime","batch"],service:"equipment"},{name:"equip_off_time_list",title:"Off Time",description:"List equipment off-time periods",keywords:["equipment","off","time","shutdown","list"],service:"equipment"},{name:"equip_state_counts_factory",title:"Factory State Counts",description:"Get equipment state counts for factory",keywords:["equipment","state","count","factory"],service:"equipment"},{name:"equip_state_counts_line",title:"Line State Counts",description:"Get equipment state counts for line",keywords:["equipment","state","count","line"],service:"equipment"},{name:"topo_group_list",title:"List Groups",description:"List device topology groups",keywords:["topology","group","list"],service:"device-topology"},{name:"topo_group_get",title:"Get Group",description:"Get topology group details",keywords:["topology","group","get"],service:"device-topology"},{name:"topo_group_create",title:"Create Group",description:"Create topology group",keywords:["topology","group","create"],service:"device-topology"},{name:"topo_group_update",title:"Update Group",description:"Update topology group",keywords:["topology","group","update"],service:"device-topology"},{name:"topo_group_delete",title:"Delete Group",description:"Delete topology group",keywords:["topology","group","delete"],service:"device-topology"},{name:"topo_factory_list",title:"List Factories",description:"List factories",keywords:["topology","factory","plant","list"],service:"device-topology"},{name:"topo_factory_get",title:"Get Factory",description:"Get factory details",keywords:["topology","factory","get"],service:"device-topology"},{name:"topo_factory_create",title:"Create Factory",description:"Create factory",keywords:["topology","factory","create"],service:"device-topology"},{name:"topo_factory_update",title:"Update Factory",description:"Update factory",keywords:["topology","factory","update"],service:"device-topology"},{name:"topo_factory_delete",title:"Delete Factory",description:"Delete factory",keywords:["topology","factory","delete"],service:"device-topology"},{name:"topo_line_list",title:"List Lines",description:"List production lines",keywords:["topology","line","production","list"],service:"device-topology"},{name:"topo_line_get",title:"Get Line",description:"Get line details",keywords:["topology","line","get"],service:"device-topology"},{name:"topo_line_create",title:"Create Line",description:"Create production line",keywords:["topology","line","create"],service:"device-topology"},{name:"topo_line_update",title:"Update Line",description:"Update line",keywords:["topology","line","update"],service:"device-topology"},{name:"topo_line_delete",title:"Delete Line",description:"Delete line",keywords:["topology","line","delete"],service:"device-topology"},{name:"topo_device_list",title:"List Topo Devices",description:"List devices in topology",keywords:["topology","device","machine","list"],service:"device-topology"},{name:"topo_device_get",title:"Get Topo Device",description:"Get topology device details",keywords:["topology","device","get"],service:"device-topology"},{name:"topo_device_create",title:"Create Topo Device",description:"Create device in topology",keywords:["topology","device","create"],service:"device-topology"},{name:"topo_device_update",title:"Update Topo Device",description:"Update topology device",keywords:["topology","device","update"],service:"device-topology"},{name:"topo_device_delete",title:"Delete Topo Device",description:"Delete topology device",keywords:["topology","device","delete"],service:"device-topology"},{name:"topo_plant_floor_get",title:"Get Plant Floor",description:"Get plant floor layout",keywords:["topology","plant","floor","layout","get"],service:"device-topology"},{name:"topo_plant_floor_create",title:"Create Plant Floor",description:"Create plant floor",keywords:["topology","plant","floor","create"],service:"device-topology"},{name:"topo_plant_floor_update",title:"Update Plant Floor",description:"Update plant floor",keywords:["topology","plant","floor","update"],service:"device-topology"},{name:"topo_plant_floor_delete",title:"Delete Plant Floor",description:"Delete plant floor",keywords:["topology","plant","floor","delete"],service:"device-topology"},{name:"topo_alarm_list",title:"List Topo Alarms",description:"List topology alarm definitions",keywords:["topology","alarm","list"],service:"device-topology"},{name:"topo_alarm_get",title:"Get Topo Alarm",description:"Get alarm details",keywords:["topology","alarm","get"],service:"device-topology"},{name:"topo_alarm_create",title:"Create Topo Alarm",description:"Create alarm definition",keywords:["topology","alarm","create"],service:"device-topology"},{name:"topo_alarm_update",title:"Update Topo Alarm",description:"Update alarm",keywords:["topology","alarm","update"],service:"device-topology"},{name:"topo_alarm_delete",title:"Delete Topo Alarm",description:"Delete alarm",keywords:["topology","alarm","delete"],service:"device-topology"},{name:"topo_alarm_code_list",title:"List Alarm Codes",description:"List alarm codes",keywords:["topology","alarm","code","list"],service:"device-topology"},{name:"topo_alarm_code_get",title:"Get Alarm Code",description:"Get alarm code details",keywords:["topology","alarm","code","get"],service:"device-topology"},{name:"topo_alarm_code_create",title:"Create Alarm Code",description:"Create alarm code",keywords:["topology","alarm","code","create"],service:"device-topology"},{name:"topo_alarm_code_update",title:"Update Alarm Code",description:"Update alarm code",keywords:["topology","alarm","code","update"],service:"device-topology"},{name:"topo_alarm_code_delete",title:"Delete Alarm Code",description:"Delete alarm code",keywords:["topology","alarm","code","delete"],service:"device-topology"},{name:"topo_alarm_code_batch",title:"Batch Alarm Codes",description:"Batch create/update alarm codes",keywords:["topology","alarm","code","batch"],service:"device-topology"},{name:"topo_topology_count",title:"Topology Count",description:"Get counts of topology entities",keywords:["topology","count","summary"],service:"device-topology"},{name:"topo_topology_all",title:"Topology All",description:"Get complete topology tree",keywords:["topology","tree","all","hierarchy"],service:"device-topology"},{name:"oee_availability_device",title:"Device Availability",description:"Get availability for a single device",keywords:["oee","availability","device","uptime"],service:"oee"},{name:"oee_availability_devices",title:"Multi-Device Availability",description:"Get availability for multiple devices",keywords:["oee","availability","devices","batch"],service:"oee"},{name:"oee_availability_line",title:"Line Availability",description:"Get availability for a production line",keywords:["oee","availability","line"],service:"oee"},{name:"oee_availability_factory",title:"Factory Availability",description:"Get availability for a factory",keywords:["oee","availability","factory"],service:"oee"},{name:"oee_quality_device",title:"Device Quality",description:"Get quality rate for a device",keywords:["oee","quality","device","yield"],service:"oee"},{name:"oee_quality_devices",title:"Multi-Device Quality",description:"Get quality for multiple devices",keywords:["oee","quality","devices","batch"],service:"oee"},{name:"oee_quality_line",title:"Line Quality",description:"Get quality for a line",keywords:["oee","quality","line"],service:"oee"},{name:"oee_quality_factory",title:"Factory Quality",description:"Get quality for a factory",keywords:["oee","quality","factory"],service:"oee"},{name:"oee_performance_device",title:"Device Performance",description:"Get performance rate for a device",keywords:["oee","performance","device","speed"],service:"oee"},{name:"oee_performance_devices",title:"Multi-Device Performance",description:"Get performance for multiple devices",keywords:["oee","performance","devices","batch"],service:"oee"},{name:"oee_performance_line",title:"Line Performance",description:"Get performance for a line",keywords:["oee","performance","line"],service:"oee"},{name:"oee_performance_factory",title:"Factory Performance",description:"Get performance for a factory",keywords:["oee","performance","factory"],service:"oee"},{name:"oee_performance_device_range",title:"Device Perf Range",description:"Get performance over date range",keywords:["oee","performance","device","range","trend"],service:"oee"},{name:"oee_device",title:"Device OEE",description:"Get OEE for a device (availability × quality × performance)",keywords:["oee","device","overall","effectiveness"],service:"oee"},{name:"oee_devices",title:"Multi-Device OEE",description:"Get OEE for multiple devices",keywords:["oee","devices","batch"],service:"oee"},{name:"oee_line",title:"Line OEE",description:"Get OEE for a line",keywords:["oee","line","overall"],service:"oee"},{name:"oee_factory",title:"Factory OEE",description:"Get OEE for a factory",keywords:["oee","factory","overall"],service:"oee"},{name:"oee_device_status",title:"Device Status",description:"Get current device status (run/idle/off)",keywords:["oee","device","status","realtime"],service:"oee"},{name:"oee_alarm_history",title:"OEE Alarm History",description:"Get alarm history with downtime data",keywords:["oee","alarm","history","downtime"],service:"oee"}];export function getServiceNames(){return[...new Set(TOOL_CATALOG.map(e=>e.service))]}export function getToolsForService(e){return TOOL_CATALOG.filter(t=>t.service===e)}export function searchTools(e,t=10){const r=e.toLowerCase().split(/\s+/).filter(e=>e.length>1);if(0===r.length)return[];return TOOL_CATALOG.map(e=>{let t=0;const o=e.name.toLowerCase(),i=e.title.toLowerCase(),s=e.description.toLowerCase(),a=e.keywords.join(" ").toLowerCase();for(const e of r)o.includes(e)&&(t+=3),i.includes(e)&&(t+=2),s.includes(e)&&(t+=1),a.includes(e)&&(t+=2);return{...e,score:t}}).filter(e=>e.score>0).sort((e,t)=>t.score-e.score).slice(0,t)}
|
|
1
|
+
export const TOOL_CATALOG=[{name:"auth_login",title:"Login",description:"Authenticate with email, password, and tenant_id",keywords:["auth","login","authenticate","token"],service:"work-order"},{name:"auth_status",title:"Auth Status",description:"Check authentication status",keywords:["auth","status","token"],service:"work-order"},{name:"workorder_list",title:"List Work Orders",description:"List work orders with filters for status, date ranges, rush orders",keywords:["workorder","list","filter","production","parent","main"],service:"work-order"},{name:"workorder_get",title:"Get Work Order",description:"Get a specific work order by UUID or ID",keywords:["workorder","get","detail"],service:"work-order"},{name:"workorder_create",title:"Create Work Order",description:"Create a new work order",keywords:["workorder","create","new"],service:"work-order"},{name:"workorder_update",title:"Update Work Order",description:"Update an existing work order",keywords:["workorder","update","modify"],service:"work-order"},{name:"workorder_delete",title:"Delete Work Order",description:"Delete a work order",keywords:["workorder","delete","remove"],service:"work-order"},{name:"workorder_details",title:"Work Order Details",description:"Get work order with product info and operations",keywords:["workorder","detail","product","operation"],service:"work-order"},{name:"workorder_count",title:"Work Order Count",description:"Get total work order count",keywords:["workorder","count","total"],service:"work-order"},{name:"product_list",title:"List Products",description:"List products with filters",keywords:["product","list","material"],service:"work-order"},{name:"product_get",title:"Get Product",description:"Get product details by UUID",keywords:["product","get","detail"],service:"work-order"},{name:"product_create",title:"Create Product",description:"Create a new product",keywords:["product","create"],service:"work-order"},{name:"product_update",title:"Update Product",description:"Update a product",keywords:["product","update"],service:"work-order"},{name:"product_details",title:"Product Details",description:"Get product with routes and operations",keywords:["product","detail","route"],service:"work-order"},{name:"product_copy",title:"Copy Product",description:"Copy a product with its routes and operations",keywords:["product","copy","duplicate"],service:"work-order"},{name:"worker_list",title:"List Workers",description:"List workers with filters",keywords:["worker","employee","list"],service:"work-order"},{name:"worker_get",title:"Get Worker",description:"Get worker details",keywords:["worker","employee","get"],service:"work-order"},{name:"worker_create",title:"Create Worker",description:"Create a new worker",keywords:["worker","employee","create"],service:"work-order"},{name:"worker_update",title:"Update Worker",description:"Update a worker",keywords:["worker","employee","update"],service:"work-order"},{name:"worker_delete",title:"Delete Worker",description:"Delete a worker",keywords:["worker","employee","delete"],service:"work-order"},{name:"operation_history_list",title:"List Operation History",description:"List work order operation history (sub work orders)",keywords:["operation","history","sub-order","child"],service:"work-order"},{name:"operation_history_by_workorder",title:"Operation History by WO",description:"Get operations for a specific work order",keywords:["operation","history","workorder"],service:"work-order"},{name:"operation_history_get",title:"Get Operation History",description:"Get operation history details",keywords:["operation","history","get"],service:"work-order"},{name:"operation_history_create",title:"Create Operation History",description:"Create an operation history record",keywords:["operation","history","create"],service:"work-order"},{name:"operation_history_create_many",title:"Create Many Operations",description:"Batch create operation history records",keywords:["operation","history","batch","create"],service:"work-order"},{name:"operation_history_delete",title:"Delete Operation History",description:"Delete an operation history record",keywords:["operation","history","delete"],service:"work-order"},{name:"operation_history_timeline",title:"Operation Timeline",description:"Get operation timeline for a work order",keywords:["operation","timeline","history"],service:"work-order"},{name:"workorder_report",title:"Work Order Report",description:"Get operation report with filters",keywords:["report","analytics","production"],service:"work-order"},{name:"report_update",title:"Update Report",description:"Update report configuration",keywords:["report","update"],service:"work-order"},{name:"weekly_report",title:"Weekly Report",description:"Get weekly production report",keywords:["report","weekly","production"],service:"work-order"},{name:"analytics_operations",title:"Analytics Operations",description:"Get operation analytics data",keywords:["analytics","operation","data"],service:"work-order"},{name:"analytics_workorder_report",title:"Analytics WO Report",description:"Get work order analytics report",keywords:["analytics","workorder","report"],service:"work-order"},{name:"worker_efficiency_ranking",title:"Worker Efficiency",description:"Rank workers by efficiency metrics",keywords:["worker","efficiency","ranking","performance"],service:"work-order"},{name:"device_utilization_ranking",title:"Device Utilization",description:"Rank devices by utilization",keywords:["device","utilization","ranking","machine"],service:"work-order"},{name:"production_summary",title:"Production Summary",description:"Get production summary with good/defect counts",keywords:["production","summary","good","defect"],service:"work-order"},{name:"route_list",title:"List Routes",description:"List production routes",keywords:["route","process","list"],service:"work-order"},{name:"route_get",title:"Get Route",description:"Get route details",keywords:["route","get"],service:"work-order"},{name:"route_create",title:"Create Route",description:"Create a production route",keywords:["route","create"],service:"work-order"},{name:"route_update",title:"Update Route",description:"Update a route",keywords:["route","update"],service:"work-order"},{name:"route_delete",title:"Delete Route",description:"Delete a route",keywords:["route","delete"],service:"work-order"},{name:"route_by_product",title:"Routes by Product",description:"Get routes for a product",keywords:["route","product"],service:"work-order"},{name:"route_copy",title:"Copy Route",description:"Copy a route",keywords:["route","copy","duplicate"],service:"work-order"},{name:"operation_list",title:"List Operations",description:"List operation definitions",keywords:["operation","process","list"],service:"work-order"},{name:"operation_get",title:"Get Operation",description:"Get operation details",keywords:["operation","get"],service:"work-order"},{name:"operation_create",title:"Create Operation",description:"Create an operation definition",keywords:["operation","create"],service:"work-order"},{name:"operation_update",title:"Update Operation",description:"Update an operation",keywords:["operation","update"],service:"work-order"},{name:"operation_delete",title:"Delete Operation",description:"Delete an operation",keywords:["operation","delete"],service:"work-order"},{name:"route_operation_list",title:"List Route Operations",description:"List operations in a route",keywords:["route","operation","list","sequence"],service:"work-order"},{name:"route_operation_get",title:"Get Route Operation",description:"Get route operation details",keywords:["route","operation","get"],service:"work-order"},{name:"route_operation_create",title:"Create Route Operation",description:"Add operation to a route",keywords:["route","operation","create","add"],service:"work-order"},{name:"route_operation_update",title:"Update Route Operation",description:"Update a route operation",keywords:["route","operation","update"],service:"work-order"},{name:"route_operation_delete",title:"Delete Route Operation",description:"Remove operation from route",keywords:["route","operation","delete","remove"],service:"work-order"},{name:"route_operation_by_route",title:"Operations by Route",description:"Get all operations for a route",keywords:["route","operation","by"],service:"work-order"},{name:"device_list",title:"List Devices",description:"List manufacturing devices/machines",keywords:["device","machine","list"],service:"work-order"},{name:"device_get",title:"Get Device",description:"Get device details",keywords:["device","machine","get"],service:"work-order"},{name:"device_create",title:"Create Device",description:"Create a device",keywords:["device","machine","create"],service:"work-order"},{name:"device_update",title:"Update Device",description:"Update a device",keywords:["device","machine","update"],service:"work-order"},{name:"device_delete",title:"Delete Device",description:"Delete a device",keywords:["device","machine","delete"],service:"work-order"},{name:"defect_reason_list",title:"List Defect Reasons",description:"List defect reason codes",keywords:["defect","reason","quality","list"],service:"work-order"},{name:"defect_reason_create",title:"Create Defect Reason",description:"Create a defect reason",keywords:["defect","reason","create"],service:"work-order"},{name:"defect_reason_update",title:"Update Defect Reason",description:"Update a defect reason",keywords:["defect","reason","update"],service:"work-order"},{name:"defect_reason_delete",title:"Delete Defect Reason",description:"Delete a defect reason",keywords:["defect","reason","delete"],service:"work-order"},{name:"defect_reason_category_list",title:"List Defect Categories",description:"List defect reason categories",keywords:["defect","category","list"],service:"work-order"},{name:"defect_reason_category_get",title:"Get Defect Category",description:"Get defect category details",keywords:["defect","category","get"],service:"work-order"},{name:"defect_reason_category_create",title:"Create Defect Category",description:"Create a defect category",keywords:["defect","category","create"],service:"work-order"},{name:"defect_reason_category_update",title:"Update Defect Category",description:"Update a defect category",keywords:["defect","category","update"],service:"work-order"},{name:"station_list",title:"List Stations",description:"List production stations",keywords:["station","workstation","list"],service:"work-order"},{name:"station_get",title:"Get Station",description:"Get station details",keywords:["station","get"],service:"work-order"},{name:"station_create",title:"Create Station",description:"Create a station",keywords:["station","create"],service:"work-order"},{name:"station_update",title:"Update Station",description:"Update a station",keywords:["station","update"],service:"work-order"},{name:"station_delete",title:"Delete Station",description:"Delete a station",keywords:["station","delete"],service:"work-order"},{name:"station_device_list",title:"Station Devices",description:"List devices at a station",keywords:["station","device","machine"],service:"work-order"},{name:"abnormal_history_list",title:"List Abnormal History",description:"List abnormal/exception history",keywords:["abnormal","exception","history","list"],service:"work-order"},{name:"abnormal_history_get",title:"Get Abnormal History",description:"Get abnormal history details",keywords:["abnormal","exception","get"],service:"work-order"},{name:"abnormal_history_create",title:"Create Abnormal History",description:"Log an abnormal event",keywords:["abnormal","exception","create","log"],service:"work-order"},{name:"abnormal_history_update",title:"Update Abnormal History",description:"Update abnormal history",keywords:["abnormal","exception","update"],service:"work-order"},{name:"abnormal_history_by_workorder",title:"Abnormal by WO",description:"Get abnormal history for a work order",keywords:["abnormal","exception","workorder"],service:"work-order"},{name:"abnormal_category_list",title:"List Abnormal Categories",description:"List abnormal categories",keywords:["abnormal","category","list"],service:"work-order"},{name:"abnormal_category_create",title:"Create Abnormal Category",description:"Create abnormal category",keywords:["abnormal","category","create"],service:"work-order"},{name:"abnormal_state_list",title:"List Abnormal States",description:"List abnormal states",keywords:["abnormal","state","list"],service:"work-order"},{name:"abnormal_state_create",title:"Create Abnormal State",description:"Create abnormal state",keywords:["abnormal","state","create"],service:"work-order"},{name:"op_product_bom_list",title:"List Op Product BOM",description:"List operation product BOM entries",keywords:["bom","material","list","bill"],service:"work-order"},{name:"op_product_bom_create",title:"Create Op Product BOM",description:"Create BOM entry",keywords:["bom","material","create"],service:"work-order"},{name:"op_product_bom_update",title:"Update Op Product BOM",description:"Update BOM entry",keywords:["bom","material","update"],service:"work-order"},{name:"op_product_bom_delete",title:"Delete Op Product BOM",description:"Delete BOM entry",keywords:["bom","material","delete"],service:"work-order"},{name:"warehouse_list",title:"List Warehouses",description:"List warehouses",keywords:["warehouse","inventory","list"],service:"work-order"},{name:"warehouse_get",title:"Get Warehouse",description:"Get warehouse details",keywords:["warehouse","get"],service:"work-order"},{name:"warehouse_create",title:"Create Warehouse",description:"Create a warehouse",keywords:["warehouse","create"],service:"work-order"},{name:"warehouse_update",title:"Update Warehouse",description:"Update a warehouse",keywords:["warehouse","update"],service:"work-order"},{name:"warehouse_storage_list",title:"List Warehouse Storage",description:"List warehouse storage locations",keywords:["warehouse","storage","location","list"],service:"work-order"},{name:"warehouse_storage_get",title:"Get Warehouse Storage",description:"Get storage location details",keywords:["warehouse","storage","get"],service:"work-order"},{name:"warehouse_storage_create",title:"Create Warehouse Storage",description:"Create storage location",keywords:["warehouse","storage","create"],service:"work-order"},{name:"warehouse_storage_update",title:"Update Warehouse Storage",description:"Update storage location",keywords:["warehouse","storage","update"],service:"work-order"},{name:"product_storage_list",title:"List Product Storage",description:"List product storage records",keywords:["product","storage","inventory","list"],service:"work-order"},{name:"product_storage_get",title:"Get Product Storage",description:"Get product storage details",keywords:["product","storage","get"],service:"work-order"},{name:"product_storage_by_product",title:"Storage by Product",description:"Get storage for a product",keywords:["product","storage","by"],service:"work-order"},{name:"wms_check_inventory",title:"Check Inventory",description:"Check product inventory levels",keywords:["wms","inventory","check","stock"],service:"work-order"},{name:"wms_query_product_storage",title:"Query Product Storage",description:"Query WMS product storage",keywords:["wms","product","storage","query"],service:"work-order"},{name:"wms_query_storage_history",title:"Storage History",description:"Query storage transaction history",keywords:["wms","storage","history","transaction"],service:"work-order"},{name:"wms_minimal_stock_count",title:"Minimal Stock Count",description:"Get products below minimum stock",keywords:["wms","stock","minimal","alert","reorder"],service:"work-order"},{name:"spc_product_manufacture_list",title:"SPC Manufacture Products",description:"List SPC products for manufacturing",keywords:["spc","product","manufacture","list"],service:"spc"},{name:"spc_product_stock_list",title:"SPC Stock Products",description:"List SPC products for stock inspection",keywords:["spc","product","stock","list"],service:"spc"},{name:"spc_history_list",title:"SPC History List",description:"List SPC measurement history",keywords:["spc","history","measurement","list"],service:"spc"},{name:"spc_history_batch_upsert",title:"SPC History Batch Upsert",description:"Batch upsert SPC history records",keywords:["spc","history","batch","upsert"],service:"spc"},{name:"spc_history_batch_by_group",title:"SPC History by Group",description:"Get SPC history by group",keywords:["spc","history","group"],service:"spc"},{name:"spc_history_delete_by_group",title:"SPC History Delete Group",description:"Delete SPC history by group",keywords:["spc","history","group","delete"],service:"spc"},{name:"spc_config_parent_get",title:"Get SPC Config Parent",description:"Get SPC config parent with measure point configs",keywords:["spc","config","parent","get"],service:"spc"},{name:"spc_config_parent_create",title:"Create SPC Config Parent",description:"Create SPC config parent",keywords:["spc","config","parent","create"],service:"spc"},{name:"spc_config_parent_update",title:"Update SPC Config Parent",description:"Update SPC config parent",keywords:["spc","config","parent","update"],service:"spc"},{name:"spc_config_parent_attachment_add",title:"Add Config Attachment",description:"Add attachment to SPC config parent",keywords:["spc","config","attachment","add","upload"],service:"spc"},{name:"spc_config_parent_attachment_delete",title:"Delete Config Attachment",description:"Delete attachment from SPC config parent",keywords:["spc","config","attachment","delete"],service:"spc"},{name:"spc_measure_config_list",title:"List Measure Configs",description:"List SPC measure point configurations",keywords:["spc","measure","config","list","tolerance"],service:"spc"},{name:"spc_measure_config_get",title:"Get Measure Config",description:"Get measure point config details",keywords:["spc","measure","config","get"],service:"spc"},{name:"spc_measure_config_create",title:"Create Measure Config",description:"Create a measure point config (USL/LSL/std value)",keywords:["spc","measure","config","create","usl","lsl"],service:"spc"},{name:"spc_measure_config_update",title:"Update Measure Config",description:"Update a measure point config",keywords:["spc","measure","config","update"],service:"spc"},{name:"spc_measure_config_delete",title:"Delete Measure Config",description:"Delete a measure point config",keywords:["spc","measure","config","delete"],service:"spc"},{name:"spc_measure_config_attachment_add",title:"Add Measure Attachment",description:"Add attachment to measure config",keywords:["spc","measure","attachment","upload"],service:"spc"},{name:"spc_measure_config_attachment_delete",title:"Delete Measure Attachment",description:"Delete attachment from measure config",keywords:["spc","measure","attachment","delete"],service:"spc"},{name:"spc_measure_config_modes",title:"Measure Config Modes",description:"List tolerance modes",keywords:["spc","measure","mode","tolerance"],service:"spc"},{name:"spc_measure_config_categories",title:"Measure Config Categories",description:"List measure categories",keywords:["spc","measure","category"],service:"spc"},{name:"spc_measure_history_create",title:"Create Measurement",description:"Create a measurement record",keywords:["spc","measure","history","create"],service:"spc"},{name:"spc_measure_history_upsert",title:"Upsert Measurement",description:"Upsert a measurement record",keywords:["spc","measure","history","upsert"],service:"spc"},{name:"spc_measure_history_update",title:"Update Measurement",description:"Update a measurement record",keywords:["spc","measure","history","update"],service:"spc"},{name:"spc_measure_history_delete",title:"Delete Measurement",description:"Delete a measurement",keywords:["spc","measure","history","delete"],service:"spc"},{name:"spc_measure_history_batch_upsert",title:"Batch Upsert Measurements",description:"Batch upsert measurements",keywords:["spc","measure","history","batch","upsert"],service:"spc"},{name:"spc_measure_history_batch_delete",title:"Batch Delete Measurements",description:"Batch delete measurements",keywords:["spc","measure","history","batch","delete"],service:"spc"},{name:"spc_measure_history_manufacture",title:"Manufacture Measurements",description:"Get manufacture measurement history",keywords:["spc","measure","manufacture","history"],service:"spc"},{name:"spc_measure_history_stock",title:"Stock Measurements",description:"Get stock measurement history",keywords:["spc","measure","stock","history"],service:"spc"},{name:"spc_measure_history_count",title:"Measurement Count",description:"Get measurement history count",keywords:["spc","measure","count"],service:"spc"},{name:"spc_measure_history_filter_list",title:"Filter Manufacture History",description:"Filter manufacture measurement history",keywords:["spc","measure","filter","manufacture"],service:"spc"},{name:"spc_measure_history_filter_list_stock",title:"Filter Stock History",description:"Filter stock measurement history",keywords:["spc","measure","filter","stock"],service:"spc"},{name:"spc_instrument_list",title:"List Instruments",description:"List SPC instruments",keywords:["spc","instrument","calibration","list"],service:"spc"},{name:"spc_instrument_create",title:"Create Instrument",description:"Create an SPC instrument",keywords:["spc","instrument","create"],service:"spc"},{name:"spc_instrument_update",title:"Update Instrument",description:"Update an instrument",keywords:["spc","instrument","update"],service:"spc"},{name:"spc_instrument_delete",title:"Delete Instrument",description:"Delete an instrument",keywords:["spc","instrument","delete"],service:"spc"},{name:"spc_instrument_batch_delete",title:"Batch Delete Instruments",description:"Batch delete instruments",keywords:["spc","instrument","batch","delete"],service:"spc"},{name:"spc_rule_list",title:"List SPC Rules",description:"List Nelson rules",keywords:["spc","rule","nelson"],service:"spc"},{name:"spc_dashboard_list",title:"List Dashboards",description:"List SPC dashboards",keywords:["spc","dashboard","chart","list"],service:"spc"},{name:"spc_dashboard_create",title:"Create Dashboard",description:"Create SPC stock dashboard",keywords:["spc","dashboard","chart","create","stock"],service:"spc"},{name:"spc_dashboard_update",title:"Update Dashboard",description:"Update SPC stock dashboard",keywords:["spc","dashboard","chart","update","stock"],service:"spc"},{name:"spc_dashboard_delete",title:"Delete Dashboard",description:"Delete SPC dashboard",keywords:["spc","dashboard","delete"],service:"spc"},{name:"spc_dashboard_manufacture_create",title:"Create Mfg Dashboard",description:"Create SPC manufacture dashboard",keywords:["spc","dashboard","manufacture","create","control chart"],service:"spc"},{name:"spc_dashboard_manufacture_update",title:"Update Mfg Dashboard",description:"Update SPC manufacture dashboard",keywords:["spc","dashboard","manufacture","update","control chart"],service:"spc"},{name:"spc_statistics_nelson",title:"Nelson Analysis",description:"Run Nelson rules analysis on measurement data",keywords:["spc","statistics","nelson","rule","analysis","control chart"],service:"spc"},{name:"spc_statistics_capability",title:"Process Capability",description:"Calculate Cp, Cpk, Pp, Ppk capability indices",keywords:["spc","statistics","capability","cpk","cp","ppk"],service:"spc"},{name:"spc_statistics_capability_by_point",title:"Capability by Point",description:"Get capability per measure point",keywords:["spc","statistics","capability","point"],service:"spc"},{name:"spc_statistics_calculate_result",title:"Calculate Statistic",description:"Calculate SPC statistic metric",keywords:["spc","statistics","calculate","metric"],service:"spc"},{name:"equip_alarm_list",title:"Equipment Alarms",description:"List equipment alarms with time range",keywords:["equipment","alarm","alert","list"],service:"equipment"},{name:"equip_idle_list",title:"Equipment Idle",description:"List equipment idle periods",keywords:["equipment","idle","downtime","list"],service:"equipment"},{name:"equip_machine_status_history",title:"Machine Status History",description:"Get machine status history",keywords:["equipment","machine","status","history"],service:"equipment"},{name:"equip_machine_status_part_counts",title:"Part Counts",description:"Get machine part counts",keywords:["equipment","machine","part","count","output"],service:"equipment"},{name:"equip_machine_status_part_counts_batch",title:"Part Counts Batch",description:"Get part counts for multiple devices",keywords:["equipment","machine","part","count","batch"],service:"equipment"},{name:"equip_machine_status_realtime",title:"Realtime Status",description:"Get machine realtime status",keywords:["equipment","machine","realtime","status","live"],service:"equipment"},{name:"equip_machine_status_realtime_batch",title:"Realtime Batch",description:"Get realtime status for multiple devices",keywords:["equipment","machine","realtime","batch"],service:"equipment"},{name:"equip_off_time_list",title:"Off Time",description:"List equipment off-time periods",keywords:["equipment","off","time","shutdown","list"],service:"equipment"},{name:"equip_state_counts_factory",title:"Factory State Counts",description:"Get equipment state counts for factory",keywords:["equipment","state","count","factory"],service:"equipment"},{name:"equip_state_counts_line",title:"Line State Counts",description:"Get equipment state counts for line",keywords:["equipment","state","count","line"],service:"equipment"},{name:"topo_group_list",title:"List Groups",description:"List device topology groups",keywords:["topology","group","list"],service:"device-topology"},{name:"topo_group_get",title:"Get Group",description:"Get topology group details",keywords:["topology","group","get"],service:"device-topology"},{name:"topo_group_create",title:"Create Group",description:"Create topology group",keywords:["topology","group","create"],service:"device-topology"},{name:"topo_group_update",title:"Update Group",description:"Update topology group",keywords:["topology","group","update"],service:"device-topology"},{name:"topo_group_delete",title:"Delete Group",description:"Delete topology group",keywords:["topology","group","delete"],service:"device-topology"},{name:"topo_factory_list",title:"List Factories",description:"List factories",keywords:["topology","factory","plant","list"],service:"device-topology"},{name:"topo_factory_get",title:"Get Factory",description:"Get factory details",keywords:["topology","factory","get"],service:"device-topology"},{name:"topo_factory_create",title:"Create Factory",description:"Create factory",keywords:["topology","factory","create"],service:"device-topology"},{name:"topo_factory_update",title:"Update Factory",description:"Update factory",keywords:["topology","factory","update"],service:"device-topology"},{name:"topo_factory_delete",title:"Delete Factory",description:"Delete factory",keywords:["topology","factory","delete"],service:"device-topology"},{name:"topo_line_list",title:"List Lines",description:"List production lines",keywords:["topology","line","production","list"],service:"device-topology"},{name:"topo_line_get",title:"Get Line",description:"Get line details",keywords:["topology","line","get"],service:"device-topology"},{name:"topo_line_create",title:"Create Line",description:"Create production line",keywords:["topology","line","create"],service:"device-topology"},{name:"topo_line_update",title:"Update Line",description:"Update line",keywords:["topology","line","update"],service:"device-topology"},{name:"topo_line_delete",title:"Delete Line",description:"Delete line",keywords:["topology","line","delete"],service:"device-topology"},{name:"topo_device_list",title:"List Topo Devices",description:"List devices in topology",keywords:["topology","device","machine","list"],service:"device-topology"},{name:"topo_device_get",title:"Get Topo Device",description:"Get topology device details",keywords:["topology","device","get"],service:"device-topology"},{name:"topo_device_create",title:"Create Topo Device",description:"Create device in topology",keywords:["topology","device","create"],service:"device-topology"},{name:"topo_device_update",title:"Update Topo Device",description:"Update topology device",keywords:["topology","device","update"],service:"device-topology"},{name:"topo_device_delete",title:"Delete Topo Device",description:"Delete topology device",keywords:["topology","device","delete"],service:"device-topology"},{name:"topo_plant_floor_get",title:"Get Plant Floor",description:"Get plant floor layout",keywords:["topology","plant","floor","layout","get"],service:"device-topology"},{name:"topo_plant_floor_create",title:"Create Plant Floor",description:"Create plant floor",keywords:["topology","plant","floor","create"],service:"device-topology"},{name:"topo_plant_floor_update",title:"Update Plant Floor",description:"Update plant floor",keywords:["topology","plant","floor","update"],service:"device-topology"},{name:"topo_plant_floor_delete",title:"Delete Plant Floor",description:"Delete plant floor",keywords:["topology","plant","floor","delete"],service:"device-topology"},{name:"topo_alarm_list",title:"List Topo Alarms",description:"List topology alarm definitions",keywords:["topology","alarm","list"],service:"device-topology"},{name:"topo_alarm_get",title:"Get Topo Alarm",description:"Get alarm details",keywords:["topology","alarm","get"],service:"device-topology"},{name:"topo_alarm_create",title:"Create Topo Alarm",description:"Create alarm definition",keywords:["topology","alarm","create"],service:"device-topology"},{name:"topo_alarm_update",title:"Update Topo Alarm",description:"Update alarm",keywords:["topology","alarm","update"],service:"device-topology"},{name:"topo_alarm_delete",title:"Delete Topo Alarm",description:"Delete alarm",keywords:["topology","alarm","delete"],service:"device-topology"},{name:"topo_alarm_code_list",title:"List Alarm Codes",description:"List alarm codes",keywords:["topology","alarm","code","list"],service:"device-topology"},{name:"topo_alarm_code_get",title:"Get Alarm Code",description:"Get alarm code details",keywords:["topology","alarm","code","get"],service:"device-topology"},{name:"topo_alarm_code_create",title:"Create Alarm Code",description:"Create alarm code",keywords:["topology","alarm","code","create"],service:"device-topology"},{name:"topo_alarm_code_update",title:"Update Alarm Code",description:"Update alarm code",keywords:["topology","alarm","code","update"],service:"device-topology"},{name:"topo_alarm_code_delete",title:"Delete Alarm Code",description:"Delete alarm code",keywords:["topology","alarm","code","delete"],service:"device-topology"},{name:"topo_alarm_code_batch",title:"Batch Alarm Codes",description:"Batch create/update alarm codes",keywords:["topology","alarm","code","batch"],service:"device-topology"},{name:"topo_topology_count",title:"Topology Count",description:"Get counts of topology entities",keywords:["topology","count","summary"],service:"device-topology"},{name:"topo_topology_all",title:"Topology All",description:"Get complete topology tree",keywords:["topology","tree","all","hierarchy"],service:"device-topology"},{name:"oee_availability_device",title:"Device Availability",description:"Get availability for a single device",keywords:["oee","availability","device","uptime"],service:"oee"},{name:"oee_availability_devices",title:"Multi-Device Availability",description:"Get availability for multiple devices",keywords:["oee","availability","devices","batch"],service:"oee"},{name:"oee_availability_line",title:"Line Availability",description:"Get availability for a production line",keywords:["oee","availability","line"],service:"oee"},{name:"oee_availability_factory",title:"Factory Availability",description:"Get availability for a factory",keywords:["oee","availability","factory"],service:"oee"},{name:"oee_quality_device",title:"Device Quality",description:"Get quality rate for a device",keywords:["oee","quality","device","yield"],service:"oee"},{name:"oee_quality_devices",title:"Multi-Device Quality",description:"Get quality for multiple devices",keywords:["oee","quality","devices","batch"],service:"oee"},{name:"oee_quality_line",title:"Line Quality",description:"Get quality for a line",keywords:["oee","quality","line"],service:"oee"},{name:"oee_quality_factory",title:"Factory Quality",description:"Get quality for a factory",keywords:["oee","quality","factory"],service:"oee"},{name:"oee_performance_device",title:"Device Performance",description:"Get performance rate for a device",keywords:["oee","performance","device","speed"],service:"oee"},{name:"oee_performance_devices",title:"Multi-Device Performance",description:"Get performance for multiple devices",keywords:["oee","performance","devices","batch"],service:"oee"},{name:"oee_performance_line",title:"Line Performance",description:"Get performance for a line",keywords:["oee","performance","line"],service:"oee"},{name:"oee_performance_factory",title:"Factory Performance",description:"Get performance for a factory",keywords:["oee","performance","factory"],service:"oee"},{name:"oee_performance_device_range",title:"Device Perf Range",description:"Get performance over date range",keywords:["oee","performance","device","range","trend"],service:"oee"},{name:"oee_device",title:"Device OEE",description:"Get OEE for a device (availability × quality × performance)",keywords:["oee","device","overall","effectiveness"],service:"oee"},{name:"oee_devices",title:"Multi-Device OEE",description:"Get OEE for multiple devices",keywords:["oee","devices","batch"],service:"oee"},{name:"oee_line",title:"Line OEE",description:"Get OEE for a line",keywords:["oee","line","overall"],service:"oee"},{name:"oee_factory",title:"Factory OEE",description:"Get OEE for a factory",keywords:["oee","factory","overall"],service:"oee"},{name:"oee_device_status",title:"Device Status",description:"Get current device status (run/idle/off)",keywords:["oee","device","status","realtime"],service:"oee"},{name:"oee_alarm_history",title:"OEE Alarm History",description:"Get alarm history with downtime data",keywords:["oee","alarm","history","downtime"],service:"oee"},{name:"chart_bar",title:"Bar Chart",description:"Generate a bar chart (vertical/horizontal/stacked)",keywords:["chart","bar","graph","visualization","export"],service:"export"},{name:"chart_line",title:"Line Chart",description:"Generate a line chart with multiple series",keywords:["chart","line","graph","trend","visualization"],service:"export"},{name:"chart_pie",title:"Pie Chart",description:"Generate a pie or doughnut chart",keywords:["chart","pie","doughnut","graph","visualization"],service:"export"},{name:"chart_scatter",title:"Scatter Chart",description:"Generate a scatter plot",keywords:["chart","scatter","plot","visualization"],service:"export"},{name:"chart_gauge",title:"Gauge Chart",description:"Generate a gauge/dial chart for a single KPI",keywords:["chart","gauge","kpi","dial","visualization"],service:"export"},{name:"chart_oee_breakdown",title:"OEE Breakdown Chart",description:"Generate OEE breakdown chart (Availability/Quality/Performance)",keywords:["chart","oee","breakdown","availability","quality","performance"],service:"export"},{name:"chart_control",title:"SPC Control Chart",description:"Generate SPC control chart with UCL/CL/LCL lines",keywords:["chart","spc","control","ucl","lcl","nelson"],service:"export"},{name:"chart_timeline",title:"Device Timeline",description:"Generate device state timeline chart (running/idle/down)",keywords:["chart","timeline","device","state","status"],service:"export"},{name:"chart_multi",title:"Multi Chart Dashboard",description:"Generate multiple charts in a dashboard layout",keywords:["chart","dashboard","multi","grid","composite"],service:"export"},{name:"export_csv",title:"Export CSV",description:"Export data to CSV file",keywords:["export","csv","file","download","data"],service:"export"},{name:"export_xlsx",title:"Export XLSX",description:"Export data to Excel XLSX file",keywords:["export","xlsx","excel","file","spreadsheet"],service:"export"},{name:"chart_from_json",title:"Chart from JSON",description:"Auto-detect JSON data and generate appropriate chart",keywords:["chart","auto","json","smart","visualization"],service:"export"},{name:"export_table_from_json",title:"Export Table from JSON",description:"Auto-convert JSON data to CSV or XLSX",keywords:["export","table","json","csv","xlsx","auto"],service:"export"}];export function getServiceNames(){return[...new Set(TOOL_CATALOG.map(e=>e.service))]}export function getToolsForService(e){return TOOL_CATALOG.filter(t=>t.service===e)}export function searchTools(e,t=10){const r=e.toLowerCase().split(/\s+/).filter(e=>e.length>1);if(0===r.length)return[];return TOOL_CATALOG.map(e=>{let t=0;const o=e.name.toLowerCase(),i=e.title.toLowerCase(),a=e.description.toLowerCase(),s=e.keywords.join(" ").toLowerCase();for(const e of r)o.includes(e)&&(t+=3),i.includes(e)&&(t+=2),a.includes(e)&&(t+=1),s.includes(e)&&(t+=2);return{...e,score:t}}).filter(e=>e.score>0).sort((e,t)=>t.score-e.score).slice(0,t)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotzero.ai/dotzero-mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Unified DotZero MCP gateway - dynamically loads service modules on demand",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
|
-
"url": "https://
|
|
36
|
+
"url": "https://github.com/dotzero-ai/dz-ai.git",
|
|
37
37
|
"directory": "packages/dotzero-mcp"
|
|
38
38
|
},
|
|
39
39
|
"bugs": {
|
|
40
|
-
"url": "https://
|
|
40
|
+
"url": "https://github.com/dotzero-ai/dz-ai/issues"
|
|
41
41
|
},
|
|
42
|
-
"homepage": "https://
|
|
42
|
+
"homepage": "https://github.com/dotzero-ai/dz-ai",
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|