| caddis_get_companyA | Fetch the active company (name, timezone, point-of-contact, and other top-level settings). Useful as a first call to confirm which company the session is scoped to. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_devicesB | List all physical Caddis devices registered to the company, with their assigned equipment. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_deviceB | Fetch a single Caddis device by ID, including its attached equipment. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_equipmentB | List all equipment visible to the authenticated user in the active company. Each row includes the equipment's current status (running/down). Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipmentA | Fetch a single equipment record by its ID. Includes the equipment's current status (running/down). Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_utilizationA | Grouped utilization metrics for a piece of equipment. Buckets the running/down seconds into intervals (default '1d') over the requested window in the given timezone (default 'UTC'). Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_scheduleA | Current schedule for a piece of equipment, including where the schedule was inherited from (equipment vs org unit vs company) and the resolved timezone. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_cyclesA | Production cycles (individual part/unit runs) for a piece of equipment within a time window. Keep windows and limits modest — cycle counts can be very high. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_statuslogsA | Running/down status log transitions for a piece of equipment within a time window. Each row is a status change; pair with statusreasons to decode reason IDs. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_telemetryA | Raw telemetry data points for a piece of equipment within a time window. Very chatty — always scope with a tight window and limit. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_shift_historyA | Historical shift boundaries (start/end, scheduled/worked) for a piece of equipment. Both start and end are required — this is a closed-window query. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_equipment_excessive_downtimesB | List shifts where a piece of equipment had excessive downtime (XSF) events. Both start and end are required. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_equipment_excessive_downtimeA | Fetch a single excessive downtime record (with operator-assigned reason, if any) identified by the shift history + status log pair for a piece of equipment. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_org_unitA | Fetch a single organizational unit with its direct equipment and child org units. For the whole tree, use caddis_get_tree instead. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_org_unit_scheduleC | Current schedule for an organizational unit, with inheritance source and resolved timezone. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_org_unit_utilizationA | Utilization metrics aggregated across every piece of equipment under an org unit. Buckets the running/down seconds into intervals (default '1d') over the requested window in the given timezone (default 'UTC'). Returns one entry per bucket. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_org_unit_excessive_downtimesA | Excessive downtime (XSF) events across every piece of equipment under an org unit in a closed time window. Both start and end are required. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_treeA | Structural overview of the org-unit hierarchy with the equipment and devices under it. Without orgUnitId, returns the full company tree from the root; with orgUnitId, returns the subtree rooted there. The body is a TOON document with three named tabular sections — org_units[...]{...}:, equipment[...]{...}:, and devices[...]{...}: — each followed by its indented rows. Hierarchy is encoded in the path columns rather than nesting: each org_units row carries parent_id and parent_path (dot-delimited ancestor ids, e.g. "root.1.2"), each equipment row carries parent_org_unit_id and parent_org_unit_path, and each devices row carries equipment_id. Reconstruct the tree by joining on these. Schedules, device input_setup, hardware_info, and other nested config blobs are NOT included here — fetch them via caddis_get_org_unit_schedule, caddis_get_equipment_schedule, caddis_get_equipment, or caddis_get_device when needed. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_alarmsA | List enabled alarms for the company along with their type definitions, latest history entry, and subscribers (users and rosters). Optionally filter by equipment IDs or by whether the alarm type is preventative maintenance (pm). The body is a TOON document with five named tabular sections — alarms[...]{...}:, alarm_types[...]{...}:, alarm_history[...]{...}:, user_alarms[...]{...}:, and roster_alarms[...]{...}: — each followed by its indented rows. Join keys: each alarms row carries alarm_type_id ↔ alarm_types.id; alarm_history, user_alarms, and roster_alarms rows each carry alarm_id back to alarms.id. alarm_history is capped at the single most recent entry per alarm. Several columns are JSON-stringified blobs — args, args_latest, device_output_config, and config on alarms; args_template on alarm_types; and args + device_output_config on alarm_history — JSON.parse() them to recover their structured values. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_tagsB | List cycle tags for the company. Optionally filter by active state or by tag group. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_tagA | Fetch a single cycle tag by ID. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_tag_groupsA | List all cycle tag groups for the company. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_tag_groupA | Fetch a single tag group by ID. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_runsA | List production runs for the company. Optionally filter by equipment and/or a date range (runs whose active interval intersects [start, end)). Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_runA | Fetch a single production run by ID, including its equipment. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_get_run_cyclesA | All production cycles associated with a specific run. Use this instead of caddis_get_equipment_cycles when the scope is a known run. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_status_reasonsA | List active status reasons available for classifying downtime. Use in combination with caddis_get_equipment_statuslogs to decode reason IDs in the log stream. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_manufacturersA | List equipment manufacturers defined for the company, sorted by name. Use to decode the manufacturer of a piece of equipment or to look up a manufacturer ID for caddis_list_models. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_modelsA | List equipment models defined for the company, sorted by model number. Optionally filter to a single manufacturer via manufacturerId. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_list_categoriesA | List equipment categories defined for the company, sorted by name. Use to decode the category of a piece of equipment. Responses are TOON-encoded (toonformat.dev) — a token-efficient JSON dialect mixing YAML-style indentation with CSV-style tables. Example: name: Caddis Co
timezone: America/Denver
equipment[3]{id,name,tags,current_status.status,current_status.reason_id}:
1,Mill A,"["cnc","critical"]",running,null
2,"Press, Big",null,down,3
3,Lathe C,null,null,null Object fields: key: value; nested objects indent their children. Uniform arrays of objects: field[N]{cols}: followed by N indented comma-separated rows in column order. Nested objects inside table rows are recursively flattened to dotted columns (e.g. current_status.status, input_setup.cycle.logic); a null parent yields null across all its dotted columns (see row 3 above). Primitive arrays at object level: field[N]: a,b,c inline. Arrays inside table cells are JSON-stringified into a single cell value (JSON.parse() to recover); empty arrays render as null (see rows 1–3 tags column). Strings with commas/colons/quotes/leading whitespace are double-quoted (escapes: \\, \"); other strings, numbers, booleans, and null are bare.
|
| caddis_batchA | Run multiple caddis_* tools in a single call, fanning out in parallel. Each request in requests is dispatched to the same handler the tool would run individually, so 429 retry/jitter and login-dedup behavior is preserved. Up to 20 requests per call; concurrency is capped at 1 in-flight. Response contains one text block per request, in input order, each prefixed with #<index> <tool> <ok|error>. One failed request does not sink the batch. Available tools: caddis_get_company, caddis_get_device, caddis_get_equipment, caddis_get_equipment_cycles, caddis_get_equipment_excessive_downtime, caddis_get_equipment_schedule, caddis_get_equipment_shift_history, caddis_get_equipment_statuslogs, caddis_get_equipment_telemetry, caddis_get_equipment_utilization, caddis_get_org_unit, caddis_get_org_unit_schedule, caddis_get_org_unit_utilization, caddis_get_run, caddis_get_run_cycles, caddis_get_tag, caddis_get_tag_group, caddis_get_tree, caddis_list_alarms, caddis_list_categories, caddis_list_devices, caddis_list_equipment, caddis_list_equipment_excessive_downtimes, caddis_list_manufacturers, caddis_list_models, caddis_list_org_unit_excessive_downtimes, caddis_list_runs, caddis_list_status_reasons, caddis_list_tag_groups, caddis_list_tags |