@uipath/skills 1.197.2 → 1.198.0-preview.21
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CODEOWNERS +18 -11
- package/README.md +1 -0
- package/assets/skill-status.json +8 -0
- package/hooks/hooks.json +44 -8
- package/hooks/send-telemetry.ps1 +392 -0
- package/hooks/send-telemetry.sh +118 -86
- package/hooks/set-session-env.ps1 +72 -0
- package/hooks/set-session-env.sh +64 -0
- package/hooks/suggest-permissions.ps1 +45 -0
- package/hooks/suggest-permissions.sh +4 -0
- package/package.json +1 -1
- package/skills/uipath-admin/references/audit-commands.md +2 -2
- package/skills/uipath-admin/references/audit-workflow-guide.md +4 -4
- package/skills/uipath-agents/references/coded/capabilities/batch-transform/planning.md +1 -1
- package/skills/uipath-agents/references/coded/capabilities/deeprag/planning.md +1 -1
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +5 -2
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +8 -4
- package/skills/uipath-agents/references/coded/embedding-in-flows.md +1 -1
- package/skills/uipath-agents/references/coded/flow-integration.md +2 -2
- package/skills/uipath-agents/references/coded/lifecycle/build.md +0 -1
- package/skills/uipath-agents/references/coded/lifecycle/setup.md +0 -1
- package/skills/uipath-agents/references/coded/quickstart.md +1 -1
- package/skills/uipath-agents/references/lowcode/agent-definition.md +24 -5
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/planning.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/planning.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/attachments.md +1 -0
- package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +1 -0
- package/skills/uipath-api-workflow/references/cli-reference.md +1 -1
- package/skills/uipath-api-workflow/references/connector-activity-discovery.md +1 -1
- package/skills/uipath-api-workflow/references/troubleshooting.md +1 -1
- package/skills/uipath-automation-discovery/SKILL.md +26 -1
- package/skills/uipath-automation-discovery/assets/templates/estimation-worksheet-template.md +80 -0
- package/skills/uipath-automation-discovery/references/estimation-guide.md +104 -0
- package/skills/uipath-connector-builder/SKILL.md +6 -4
- package/skills/uipath-connector-builder/references/auth.md +137 -13
- package/skills/uipath-connector-builder/references/configuration.md +29 -7
- package/skills/uipath-connector-builder/references/debugging.md +1 -1
- package/skills/uipath-connector-builder/references/standard-resources.md +162 -13
- package/skills/uipath-governance/references/cli-cheatsheet.md +3 -3
- package/skills/uipath-governance/references/diagnose/references/failure-modes.md +5 -5
- package/skills/uipath-insights/SKILL.md +277 -0
- package/skills/uipath-insights/references/investigation-playbook-guide.md +145 -0
- package/skills/uipath-insights/references/jobs-commands-guide.md +144 -0
- package/skills/uipath-ixp/SKILL.md +4 -1
- package/skills/uipath-ixp/references/cli-reference.md +18 -3
- package/skills/uipath-maestro-bpmn/references/cli-conventions.md +2 -0
- package/skills/uipath-maestro-bpmn/validator/README.md +12 -2
- package/skills/uipath-maestro-case/SKILL.md +27 -13
- package/skills/uipath-maestro-case/assets/templates/sdd-template-examples.md +37 -4
- package/skills/uipath-maestro-case/assets/templates/sdd-template.md +20 -9
- package/skills/uipath-maestro-case/assets/templates/sdd-viewer.html +8 -7
- package/skills/uipath-maestro-case/references/bindings-v2-sync.md +5 -1
- package/skills/uipath-maestro-case/references/brownfield.md +86 -0
- package/skills/uipath-maestro-case/references/case-commands.md +8 -0
- package/skills/uipath-maestro-case/references/case-editing-operations.md +230 -21
- package/skills/uipath-maestro-case/references/case-schema.md +29 -11
- package/skills/uipath-maestro-case/references/connector-integration.md +1 -1
- package/skills/uipath-maestro-case/references/connector-trigger-common.md +1 -1
- package/skills/uipath-maestro-case/references/entry-points-sync.md +204 -0
- package/skills/uipath-maestro-case/references/implementation.md +19 -9
- package/skills/uipath-maestro-case/references/phase-0-interview.md +10 -8
- package/skills/uipath-maestro-case/references/phased-execution.md +11 -4
- package/skills/uipath-maestro-case/references/placeholder-tasks.md +24 -2
- package/skills/uipath-maestro-case/references/planning.md +9 -3
- package/skills/uipath-maestro-case/references/plugins/case/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/sla/planning.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +11 -10
- package/skills/uipath-maestro-case/references/plugins/stages/planning.md +13 -14
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +91 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +87 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +2 -1
- package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +20 -10
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +9 -8
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +1 -1
- package/skills/uipath-maestro-case/references/registry-discovery.md +87 -10
- package/skills/uipath-maestro-case/references/sdd-generation-rules.md +34 -26
- package/skills/uipath-maestro-flow/SKILL.md +4 -1
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +1 -2
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +3 -3
- package/skills/uipath-maestro-flow/references/author/references/greenfield.md +4 -2
- package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +0 -1
- package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +0 -1
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +1 -0
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector-trigger/impl.md +7 -7
- package/skills/uipath-maestro-flow/references/author/references/plugins/ixp/impl.md +14 -14
- package/skills/uipath-maestro-flow/references/author/references/plugins/script/impl.md +10 -6
- package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +7 -0
- package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
- package/skills/uipath-mcp-servers/references/is-activity-workflow.md +3 -3
- package/skills/uipath-planner/SKILL.md +1 -1
- package/skills/uipath-platform/SKILL.md +4 -14
- package/skills/uipath-platform/references/data-fabric/data-fabric.md +1 -1
- package/skills/uipath-platform/references/integration-service/agent-workflow.md +4 -4
- package/skills/uipath-platform/references/integration-service/reference-resolution.md +1 -1
- package/skills/uipath-platform/references/integration-service/resources.md +5 -5
- package/skills/uipath-platform/references/integration-service/triggers.md +10 -9
- package/skills/uipath-platform/references/orchestrator/setup-environment.md +2 -0
- package/skills/uipath-review/SKILL.md +8 -4
- package/skills/uipath-review/references/agents/agent-review-checklist.md +1 -22
- package/skills/uipath-review/references/agents/agents-coded-rules.md +24 -7
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +0 -1
- package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +231 -0
- package/skills/uipath-review/references/rule-catalog-workflow.md +4 -2
- package/skills/uipath-rpa/SKILL.md +2 -2
- package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/guides/data-service-filter-builder-guide.md +1 -1
- package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/coded-api.md +1 -1
- package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/curl-import.md +3 -3
- package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/http-request-upgrade.md +3 -3
- package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/service-discovery.md +2 -2
- package/skills/uipath-rpa/references/coded/coding-guidelines.md +1 -1
- package/skills/uipath-rpa/references/ui-automation-guide.md +7 -7
- package/skills/uipath-rpa/references/uia-configure-target-workflows.md +5 -5
- package/skills/uipath-rpa/references/uia-elements-interaction-guide.md +19 -10
- package/skills/uipath-rpa/references/uia-prerequisites.md +7 -7
- package/skills/uipath-rpa/references/validation-guide.md +2 -2
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +4 -0
- package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +3 -1
- package/skills/uipath-rpa/references/xaml/csharp-expression-pitfalls.md +9 -4
- package/skills/uipath-rpa/references/xaml/workflow-guide.md +2 -2
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +1 -1
- package/skills/uipath-solution/SKILL.md +4 -4
- package/skills/uipath-solution/references/activate-and-manage.md +6 -1
- package/skills/uipath-solution/references/develop-solution.md +24 -5
- package/skills/uipath-solution/references/pack-and-deploy.md +5 -2
- package/skills/uipath-solution/references/scenarios/manual-edits.md +2 -2
- package/skills/uipath-solution/references/solution-overview.md +2 -2
- package/skills/uipath-troubleshoot/SKILL.md +3 -3
- package/skills/uipath-troubleshoot/references/products/agents/playbooks/context-grounding-index-not-found.md +0 -2
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/personal-automation-quota.md +1 -1
- package/version-manifest.json +3 -3
- package/hooks/ensure-uip.sh +0 -220
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/data-fabric/impl.md +0 -683
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/data-fabric/planning.md +0 -45
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: uipath-insights
|
|
3
|
+
description: "UiPath Insights job monitoring via `uip insights` — query job execution metrics, failure analysis, and process performance. Covers job KPIs, failure reasons, completion trends, process breakdowns. For Orchestrator job start/stop/logs→uipath-platform, root-cause analysis of specific errors→uipath-troubleshoot, RPA workflow authoring→uipath-rpa."
|
|
4
|
+
when_to_use: "User says 'job failures', 'automation health', 'job success rate', 'processing time', 'which processes fail the most', 'failure reasons', 'job trends', 'how many jobs ran', 'insights dashboard', 'job metrics', 'job KPIs', 'job performance', 'uncompleted jobs', 'pending jobs', 'faulted jobs', 'job timeline', 'process details'. Also 'uip insights', 'insights jobs'. NOT for starting/stopping jobs (uipath-platform), NOT for root-cause debugging of a specific job error (uipath-troubleshoot), NOT for queue metrics (not yet supported)."
|
|
5
|
+
allowed-tools: Bash, Read
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# UiPath Insights — Job Monitoring Agent Skill
|
|
9
|
+
|
|
10
|
+
Insights provides analytics and monitoring for UiPath automation execution. This skill covers **job monitoring** — querying aggregated job execution data for dashboards, health checks, and failure investigation.
|
|
11
|
+
|
|
12
|
+
All operations go through `uip insights jobs <subcommand> --output json`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
- Checking overall automation health (how many jobs ran, how many succeeded)
|
|
19
|
+
- Investigating job failures (which processes fail most, what are the failure reasons)
|
|
20
|
+
- Monitoring job execution trends over time (completed/uncompleted timelines)
|
|
21
|
+
- Getting per-process performance breakdowns
|
|
22
|
+
- Drilling into specific failure details for investigation
|
|
23
|
+
|
|
24
|
+
> **Not in scope:** Starting, stopping, or managing individual jobs (use `uip or jobs` via uipath-platform). Root-cause debugging of a specific job's error (use uipath-troubleshoot). Queue item metrics, robot utilization, or dashboard CRUD (not yet available in CLI).
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Login & Tenant Setup
|
|
29
|
+
|
|
30
|
+
**Default to Production. Only switch environment/org/tenant when explicitly stated in the request.**
|
|
31
|
+
|
|
32
|
+
- If the request mentions no environment, use the current session (defaults to prod `cloud.uipath.com`)
|
|
33
|
+
- If the request explicitly names an environment/org/tenant, check `uip login status` and re-login if needed
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Check current environment, org, and tenant
|
|
37
|
+
uip login status --output json
|
|
38
|
+
|
|
39
|
+
# Login to a specific environment
|
|
40
|
+
uip login --authority https://alpha.uipath.com --tenant MyTenant
|
|
41
|
+
|
|
42
|
+
# Switch tenant within the same environment
|
|
43
|
+
uip login tenant set MyTenant
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Critical Rules
|
|
49
|
+
|
|
50
|
+
1. **A time range is always required.** Every `uip insights jobs` command needs either `--time-range <minutes>` (relative) or both `--started-after <epoch-ms>` and `--started-before <epoch-ms>` (absolute). Without one, the command fails. Common values:
|
|
51
|
+
- `--time-range 60` — last 1 hour
|
|
52
|
+
- `--time-range 1440` — last 24 hours
|
|
53
|
+
- `--time-range 10080` — last 7 days
|
|
54
|
+
- `--time-range 43200` — last 30 days
|
|
55
|
+
|
|
56
|
+
2. **Always use `--output json`.** All commands return a JSON envelope: `{ Result: "Success", Code: "<code>", Data: { ... } }`. Parse the `Data` field for the actual metrics.
|
|
57
|
+
|
|
58
|
+
3. **Filter options are repeatable.** `--folder-key`, `--process-name`, and `--machine-name` can be specified multiple times to filter by several values: `--process-name "ProcessA" --process-name "ProcessB"`.
|
|
59
|
+
|
|
60
|
+
4. **Empty data is normal.** If no jobs ran in the time window, the response will have `Data` with null/zero/empty fields. This is not an error.
|
|
61
|
+
|
|
62
|
+
5. **Start with summary, then drill down.** For any investigation, start with `summary` to get the big picture, then use specific subcommands to investigate areas of concern.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Command Reference
|
|
67
|
+
|
|
68
|
+
All commands share these filter options:
|
|
69
|
+
|
|
70
|
+
| Option | Description |
|
|
71
|
+
|--------|-------------|
|
|
72
|
+
| `--time-range <minutes>` | Relative time range in minutes |
|
|
73
|
+
| `--started-after <epoch-ms>` | Absolute start time (Unix epoch ms) |
|
|
74
|
+
| `--started-before <epoch-ms>` | Absolute end time (Unix epoch ms) |
|
|
75
|
+
| `--folder-key <guid>` | Filter by folder key (repeatable) |
|
|
76
|
+
| `--process-name <name>` | Filter by process name (repeatable) |
|
|
77
|
+
| `--machine-name <name>` | Filter by machine name (repeatable) |
|
|
78
|
+
| `--timezone-offset <minutes>` | Client timezone offset from UTC |
|
|
79
|
+
|
|
80
|
+
### summary
|
|
81
|
+
|
|
82
|
+
Get job KPIs: total count, successful count, and average processing time.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
uip insights jobs summary --time-range 1440 --output json
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Key Data fields:** `jobsCount`, `successfulJobsCount`, `averageProcessingTime`
|
|
89
|
+
|
|
90
|
+
**Use when:** User asks "how are my automations doing?" or "what's my job success rate?"
|
|
91
|
+
|
|
92
|
+
### completed-timeline
|
|
93
|
+
|
|
94
|
+
Get completed jobs over time, grouped by job state (successful, faulted, stopped, etc.).
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
uip insights jobs completed-timeline --time-range 1440 --output json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Key Data fields:** `jobState`, `jobCountByTime`, `timestamp`
|
|
101
|
+
|
|
102
|
+
**Use when:** User asks "show me job completion trends" or "when do most jobs run?"
|
|
103
|
+
|
|
104
|
+
### uncompleted-timeline
|
|
105
|
+
|
|
106
|
+
Get running and pending jobs over time.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
uip insights jobs uncompleted-timeline --time-range 1440 --output json
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Key Data fields:** `jobState`, `jobCountByTime`, `timestamp`
|
|
113
|
+
|
|
114
|
+
**Use when:** User asks "are there stuck jobs?" or "how many jobs are still running?"
|
|
115
|
+
|
|
116
|
+
### top-failures
|
|
117
|
+
|
|
118
|
+
Get processes ranked by failure count.
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
uip insights jobs top-failures --time-range 43200 --output json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Key Data fields:** `processName`, `jobCountByTime`
|
|
125
|
+
|
|
126
|
+
**Use when:** User asks "which processes fail the most?" or "what's causing failures?"
|
|
127
|
+
|
|
128
|
+
### failures-by-reason
|
|
129
|
+
|
|
130
|
+
Get job failures grouped by exception reason, with total job count for context.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
uip insights jobs failures-by-reason --time-range 1440 --output json
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Key Data fields:** `processExceptionReason`, `processName`, `robotName`, `jobsCount`
|
|
137
|
+
|
|
138
|
+
**Use when:** User asks "why are jobs failing?" or "what are the common error messages?"
|
|
139
|
+
|
|
140
|
+
### process-details
|
|
141
|
+
|
|
142
|
+
Get per-process job breakdown with counts by state.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
uip insights jobs process-details --time-range 1440 --output json
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Key Data fields:** `processName`, `jobAggregate`
|
|
149
|
+
|
|
150
|
+
**Use when:** User asks "show me per-process stats" or "which process has the most faulted jobs?"
|
|
151
|
+
|
|
152
|
+
### failure-details
|
|
153
|
+
|
|
154
|
+
Get detailed failure information for drill-down investigation.
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
uip insights jobs failure-details --time-range 1440 --output json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Key Data fields:** `processName`, `machineName`, `processExceptionReason`, `startTime`, `endTime`
|
|
161
|
+
|
|
162
|
+
**Use when:** User asks "show me the details of recent failures" or "which machines are failing?"
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Workflow: Investigate Job Health
|
|
167
|
+
|
|
168
|
+
Follow this pattern when a user asks about automation health or job failures:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# 1. Check login
|
|
172
|
+
uip login status --output json
|
|
173
|
+
|
|
174
|
+
# 2. Get the big picture — how many jobs ran? how many succeeded?
|
|
175
|
+
uip insights jobs summary --time-range 1440 --output json
|
|
176
|
+
|
|
177
|
+
# 3. If success rate is low, find which processes fail most
|
|
178
|
+
uip insights jobs top-failures --time-range 1440 --output json
|
|
179
|
+
|
|
180
|
+
# 4. Find out WHY they're failing
|
|
181
|
+
uip insights jobs failures-by-reason --time-range 1440 --output json
|
|
182
|
+
|
|
183
|
+
# 5. Drill into specific failure details
|
|
184
|
+
uip insights jobs failure-details --time-range 1440 --output json
|
|
185
|
+
|
|
186
|
+
# 6. For time-based trends, check timelines
|
|
187
|
+
uip insights jobs completed-timeline --time-range 10080 --output json
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Present findings clearly:** After gathering data, summarize for the user:
|
|
191
|
+
- Total jobs vs successful jobs (derive failure rate)
|
|
192
|
+
- Top failing processes by name
|
|
193
|
+
- Most common failure reasons
|
|
194
|
+
- Which machines are affected
|
|
195
|
+
- Whether failures are trending up or down
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Workflow: Filter by Folder or Process
|
|
200
|
+
|
|
201
|
+
When the user asks about a specific folder or process:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Filter by folder
|
|
205
|
+
uip insights jobs summary --time-range 1440 --folder-key "abc-123-def" --output json
|
|
206
|
+
|
|
207
|
+
# Filter by process name
|
|
208
|
+
uip insights jobs top-failures --time-range 43200 --process-name "Invoice_Processing" --output json
|
|
209
|
+
|
|
210
|
+
# Combine filters
|
|
211
|
+
uip insights jobs failures-by-reason --time-range 1440 \
|
|
212
|
+
--folder-key "abc-123-def" \
|
|
213
|
+
--process-name "Invoice_Processing" \
|
|
214
|
+
--output json
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
To discover available folder keys, use `uip or folders list --output json` (from the uipath-platform skill).
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Workflow: Absolute Time Range
|
|
222
|
+
|
|
223
|
+
When the user specifies an exact date range instead of "last N hours":
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Convert dates to epoch milliseconds
|
|
227
|
+
# Example: 2026-07-01 00:00:00 UTC to 2026-07-06 00:00:00 UTC
|
|
228
|
+
uip insights jobs summary \
|
|
229
|
+
--started-after 1782691200000 \
|
|
230
|
+
--started-before 1783123200000 \
|
|
231
|
+
--output json
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Compute epoch milliseconds in bash:
|
|
235
|
+
```bash
|
|
236
|
+
# macOS
|
|
237
|
+
START=$(date -j -f "%Y-%m-%d" "2026-07-01" +%s)000
|
|
238
|
+
END=$(date -j -f "%Y-%m-%d" "2026-07-06" +%s)000
|
|
239
|
+
|
|
240
|
+
# Linux
|
|
241
|
+
START=$(date -d "2026-07-01" +%s)000
|
|
242
|
+
END=$(date -d "2026-07-06" +%s)000
|
|
243
|
+
|
|
244
|
+
uip insights jobs summary --started-after "$START" --started-before "$END" --output json
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Troubleshooting
|
|
250
|
+
|
|
251
|
+
| Error | Cause | Fix |
|
|
252
|
+
|-------|-------|-----|
|
|
253
|
+
| `Not logged in` | Auth expired | `uip login` |
|
|
254
|
+
| `time range is required` | Missing `--time-range` or `--started-after`/`--started-before` | Add `--time-range 1440` (or your preferred window) |
|
|
255
|
+
| `API request failed: 401` | Token doesn't have Insights access | Re-login; ensure the org has Insights enabled |
|
|
256
|
+
| `API request failed: 403` | User has no folder permissions | Check folder assignments in Orchestrator Admin |
|
|
257
|
+
| `API request failed: 500` | Server error (often missing time range on older deployments) | Ensure time range is provided in the request body |
|
|
258
|
+
| All Data fields are null/zero | No jobs ran in the given time window | Widen the `--time-range` (try 43200 for 30 days) |
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## What NOT to Do
|
|
263
|
+
|
|
264
|
+
- **Don't call `uip insights jobs` without a time range.** The server returns a 500 with a misleading success-shaped response. Always pass `--time-range` or `--started-after`/`--started-before`.
|
|
265
|
+
- **Don't start, stop, or manage individual jobs.** This skill is for monitoring and analytics only. Use `uip or jobs start/stop` via uipath-platform to manage jobs.
|
|
266
|
+
- **Don't construct raw API calls to the Insights endpoint.** The CLI handles auth headers (`X-UiPath-Internal-AccountName`, `X-UiPath-Internal-TenantName`), URL construction, and error handling. Hand-rolling `curl` or `fetch` calls will miss these.
|
|
267
|
+
- **Don't retry on auth errors.** If `uip insights jobs` returns 401 or "Not logged in", the fix is `uip login`, not retrying the same command.
|
|
268
|
+
- **Don't use this skill for root-cause debugging.** "Why did job X fail with error Y?" is a troubleshooting question — hand off to uipath-troubleshoot. This skill answers "which processes fail the most and what are the common reasons."
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## References
|
|
273
|
+
|
|
274
|
+
For deeper guidance, read these files only when needed:
|
|
275
|
+
|
|
276
|
+
- [`references/jobs-commands-guide.md`](references/jobs-commands-guide.md) — Full command reference with all options, response shapes, and example outputs
|
|
277
|
+
- [`references/investigation-playbook-guide.md`](references/investigation-playbook-guide.md) — Step-by-step playbooks for common investigation scenarios
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Insights — Investigation Playbooks
|
|
2
|
+
|
|
3
|
+
Step-by-step playbooks for common job monitoring scenarios. Each playbook shows the exact commands to run and how to interpret the results.
|
|
4
|
+
|
|
5
|
+
## Playbook 1: "How healthy are my automations?"
|
|
6
|
+
|
|
7
|
+
User asks about overall automation health, success rates, or general status.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Step 1: Get the summary KPIs
|
|
11
|
+
uip insights jobs summary --time-range 1440 --output json
|
|
12
|
+
|
|
13
|
+
# Step 2: Interpret the results
|
|
14
|
+
# - jobsCount: total jobs in the time window
|
|
15
|
+
# - successfulJobsCount: jobs that completed successfully
|
|
16
|
+
# - averageProcessingTime: mean execution time in seconds
|
|
17
|
+
#
|
|
18
|
+
# Failure rate = (jobsCount - successfulJobsCount) / jobsCount * 100
|
|
19
|
+
#
|
|
20
|
+
# Thresholds (rules of thumb):
|
|
21
|
+
# < 5% failure rate → healthy
|
|
22
|
+
# 5-15% failure rate → needs attention
|
|
23
|
+
# > 15% failure rate → investigate immediately
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
If the failure rate is concerning, move to Playbook 2.
|
|
27
|
+
|
|
28
|
+
## Playbook 2: "Which processes are failing?"
|
|
29
|
+
|
|
30
|
+
User wants to know what's breaking.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Step 1: Get processes ranked by failure count (use 30 days for a broader view)
|
|
34
|
+
uip insights jobs top-failures --time-range 43200 --output json
|
|
35
|
+
|
|
36
|
+
# Step 2: Get the failure reasons
|
|
37
|
+
uip insights jobs failures-by-reason --time-range 43200 --output json
|
|
38
|
+
|
|
39
|
+
# Step 3: Present findings as a table:
|
|
40
|
+
# | Process Name | Failure Count | Top Reason |
|
|
41
|
+
# |---|---|---|
|
|
42
|
+
# | Invoice_Processing | 23 | ApplicationException: File not found |
|
|
43
|
+
# | Email_Parser | 15 | TimeoutException: SMTP server unreachable |
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Playbook 3: "Why did this specific process fail?"
|
|
47
|
+
|
|
48
|
+
User asks about failures in a specific process.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Step 1: Filter failures to that process
|
|
52
|
+
uip insights jobs failures-by-reason --time-range 1440 \
|
|
53
|
+
--process-name "Invoice_Processing" --output json
|
|
54
|
+
|
|
55
|
+
# Step 2: Get detailed failure info (machine, timestamps, error messages)
|
|
56
|
+
uip insights jobs failure-details --time-range 1440 \
|
|
57
|
+
--process-name "Invoice_Processing" --output json
|
|
58
|
+
|
|
59
|
+
# Step 3: Check if it's a recent regression with the timeline
|
|
60
|
+
uip insights jobs completed-timeline --time-range 10080 \
|
|
61
|
+
--process-name "Invoice_Processing" --output json
|
|
62
|
+
|
|
63
|
+
# Step 4: Present findings:
|
|
64
|
+
# - Most common error reason
|
|
65
|
+
# - Which machines are affected
|
|
66
|
+
# - When failures started (trend direction)
|
|
67
|
+
# - Recommended next steps
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Playbook 4: "Are there stuck or long-running jobs?"
|
|
71
|
+
|
|
72
|
+
User asks about jobs that haven't completed.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Step 1: Check uncompleted jobs
|
|
76
|
+
uip insights jobs uncompleted-timeline --time-range 1440 --output json
|
|
77
|
+
|
|
78
|
+
# Step 2: Get the summary to compare completed vs uncompleted
|
|
79
|
+
uip insights jobs summary --time-range 1440 --output json
|
|
80
|
+
|
|
81
|
+
# Step 3: If many uncompleted, check per-process breakdown
|
|
82
|
+
uip insights jobs process-details --time-range 1440 --output json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Playbook 5: "Compare this week vs last week"
|
|
86
|
+
|
|
87
|
+
User wants to see if things are getting better or worse.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# This week (last 7 days)
|
|
91
|
+
uip insights jobs summary --time-range 10080 --output json
|
|
92
|
+
|
|
93
|
+
# For last week, use absolute timestamps
|
|
94
|
+
# Calculate: last Monday to this Monday in epoch ms
|
|
95
|
+
uip insights jobs summary \
|
|
96
|
+
--started-after <last-monday-epoch-ms> \
|
|
97
|
+
--started-before <this-monday-epoch-ms> \
|
|
98
|
+
--output json
|
|
99
|
+
|
|
100
|
+
# Compare jobsCount, successfulJobsCount, and averageProcessingTime
|
|
101
|
+
# between the two results
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Playbook 6: "Show me jobs for a specific folder"
|
|
105
|
+
|
|
106
|
+
User asks about a specific Orchestrator folder.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Step 1: Find the folder key (requires uipath-platform)
|
|
110
|
+
uip or folders list --output json
|
|
111
|
+
# Look for the folder's Key (GUID) in the output
|
|
112
|
+
|
|
113
|
+
# Step 2: Query insights with folder filter
|
|
114
|
+
uip insights jobs summary --time-range 1440 \
|
|
115
|
+
--folder-key "abc-123-def" --output json
|
|
116
|
+
|
|
117
|
+
uip insights jobs top-failures --time-range 1440 \
|
|
118
|
+
--folder-key "abc-123-def" --output json
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Interpreting Array Data
|
|
122
|
+
|
|
123
|
+
Several endpoints return parallel arrays. The same index across arrays corresponds to the same entity:
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"processName": ["ProcessA", "ProcessB", "ProcessC"],
|
|
128
|
+
"jobCountByTime": [[10, 5, 2]]
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
This means:
|
|
133
|
+
- ProcessA had 10 failures
|
|
134
|
+
- ProcessB had 5 failures
|
|
135
|
+
- ProcessC had 2 failures
|
|
136
|
+
|
|
137
|
+
## When to Hand Off to Other Skills
|
|
138
|
+
|
|
139
|
+
| Situation | Hand off to |
|
|
140
|
+
|---|---|
|
|
141
|
+
| User wants to start/stop/restart a specific job | `uipath-platform` (`uip or jobs start`) |
|
|
142
|
+
| User wants to read the logs of a failed job | `uipath-platform` (`uip or jobs logs`) |
|
|
143
|
+
| User wants to debug why a specific job error happened | `uipath-troubleshoot` |
|
|
144
|
+
| User wants to find a folder key to filter by | `uipath-platform` (`uip or folders list`) |
|
|
145
|
+
| User wants to fix the code that's causing failures | `uipath-rpa` or `uipath-agents` |
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Insights Jobs — Command Reference
|
|
2
|
+
|
|
3
|
+
Complete reference for `uip insights jobs` subcommands with response shapes and examples.
|
|
4
|
+
|
|
5
|
+
## Shared Options
|
|
6
|
+
|
|
7
|
+
Every subcommand accepts these filter options:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
--time-range <minutes> Relative time range (e.g. 1440 = 24h, 43200 = 30d)
|
|
11
|
+
--started-after <epoch-ms> Absolute start time as Unix epoch milliseconds
|
|
12
|
+
--started-before <epoch-ms> Absolute end time as Unix epoch milliseconds
|
|
13
|
+
--folder-key <guid> Folder key filter (repeatable)
|
|
14
|
+
--process-name <name> Process name filter (repeatable)
|
|
15
|
+
--machine-name <name> Machine name filter (repeatable)
|
|
16
|
+
--timezone-offset <minutes> Client timezone offset from UTC
|
|
17
|
+
--output <format> Output format: json, yaml, table (always use json)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Time range rule:** Either `--time-range` OR both `--started-after` and `--started-before` must be provided. Omitting both causes a validation error.
|
|
21
|
+
|
|
22
|
+
**Repeatable options:** `--folder-key`, `--process-name`, and `--machine-name` can be specified multiple times:
|
|
23
|
+
```bash
|
|
24
|
+
uip insights jobs summary --time-range 1440 \
|
|
25
|
+
--process-name "ProcessA" \
|
|
26
|
+
--process-name "ProcessB" \
|
|
27
|
+
--output json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Response Envelope
|
|
31
|
+
|
|
32
|
+
All commands return:
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"Result": "Success",
|
|
36
|
+
"Code": "<CommandCode>",
|
|
37
|
+
"Data": { ... }
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
On error:
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"Result": "Failure",
|
|
45
|
+
"Message": "<error description>",
|
|
46
|
+
"Instructions": "<how to fix>",
|
|
47
|
+
"ErrorCode": "unknown_error"
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Response Data Shape
|
|
52
|
+
|
|
53
|
+
All endpoints return the same `JobsResponse` shape. Fields are populated or null depending on the endpoint:
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
interface JobsResponse {
|
|
57
|
+
jobState: string[] | null;
|
|
58
|
+
robotName: string[] | null;
|
|
59
|
+
processName: string[] | null;
|
|
60
|
+
jobCount: number[] | null;
|
|
61
|
+
jobCountByTime: number[][] | null;
|
|
62
|
+
folderName: string[] | null;
|
|
63
|
+
folderKey: string[] | null;
|
|
64
|
+
machineName: string[] | null;
|
|
65
|
+
hostMachineName: string[] | null;
|
|
66
|
+
machineKey: string[] | null;
|
|
67
|
+
machineStatus: string[] | null;
|
|
68
|
+
timestamp: string[] | null;
|
|
69
|
+
processExceptionType: string[] | null;
|
|
70
|
+
processExceptionReason: string[] | null;
|
|
71
|
+
startTime: string[] | null;
|
|
72
|
+
endTime: string[] | null;
|
|
73
|
+
utilizationTime: string[] | null;
|
|
74
|
+
duration: number[] | null;
|
|
75
|
+
successRate: number[] | null;
|
|
76
|
+
averageProcessingTime: number | null;
|
|
77
|
+
jobsCount: number | null;
|
|
78
|
+
successfulJobsCount: number | null;
|
|
79
|
+
jobAggregate: number[][] | null;
|
|
80
|
+
creationTime: string[] | null;
|
|
81
|
+
folderId: string[] | null;
|
|
82
|
+
jobKey: string[] | null;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Per-Endpoint Key Fields
|
|
87
|
+
|
|
88
|
+
| Endpoint | Code | Key Data Fields |
|
|
89
|
+
|----------|------|-----------------|
|
|
90
|
+
| `summary` | `InsightsJobsSummary` | `jobsCount`, `successfulJobsCount`, `averageProcessingTime` |
|
|
91
|
+
| `completed-timeline` | `InsightsJobsCompletedTimeline` | `jobState`, `jobCountByTime`, `timestamp` |
|
|
92
|
+
| `uncompleted-timeline` | `InsightsJobsUncompletedTimeline` | `jobState`, `jobCountByTime`, `timestamp` |
|
|
93
|
+
| `top-failures` | `InsightsJobsTopFailures` | `processName`, `jobCountByTime` |
|
|
94
|
+
| `failures-by-reason` | `InsightsJobsFailuresByReason` | `processExceptionReason`, `processName`, `robotName`, `jobsCount` |
|
|
95
|
+
| `process-details` | `InsightsJobsProcessDetails` | `processName`, `jobAggregate` |
|
|
96
|
+
| `failure-details` | `InsightsJobsFailureDetails` | `processName`, `machineName`, `processExceptionReason`, `startTime`, `endTime` |
|
|
97
|
+
|
|
98
|
+
## Example: Summary
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
$ uip insights jobs summary --time-range 1440 --output json
|
|
102
|
+
{
|
|
103
|
+
"Result": "Success",
|
|
104
|
+
"Code": "InsightsJobsSummary",
|
|
105
|
+
"Data": {
|
|
106
|
+
"jobsCount": 142,
|
|
107
|
+
"successfulJobsCount": 135,
|
|
108
|
+
"averageProcessingTime": 45.7,
|
|
109
|
+
"jobState": null,
|
|
110
|
+
"processName": null,
|
|
111
|
+
...
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Deriving metrics:
|
|
117
|
+
- **Failure rate:** `(jobsCount - successfulJobsCount) / jobsCount * 100`
|
|
118
|
+
- **Success rate:** `successfulJobsCount / jobsCount * 100`
|
|
119
|
+
|
|
120
|
+
## Example: Top Failures with Filter
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
$ uip insights jobs top-failures --time-range 43200 \
|
|
124
|
+
--folder-key "a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
|
|
125
|
+
--output json
|
|
126
|
+
{
|
|
127
|
+
"Result": "Success",
|
|
128
|
+
"Code": "InsightsJobsTopFailures",
|
|
129
|
+
"Data": {
|
|
130
|
+
"processName": ["Invoice_Processing", "Email_Parser", "Data_Upload"],
|
|
131
|
+
"jobCountByTime": [[23, 15, 8]],
|
|
132
|
+
...
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
The `processName` array and `jobCountByTime[0]` array are parallel — index 0 of both corresponds to the same process.
|
|
138
|
+
|
|
139
|
+
## API Details
|
|
140
|
+
|
|
141
|
+
- **Base URL:** `{host}/{orgId}/{tenantName}/insightsrtm_/api/v1.0/InsightsJobs/{endpoint}`
|
|
142
|
+
- **Method:** POST (all endpoints)
|
|
143
|
+
- **Auth:** Bearer token + `X-UiPath-Internal-AccountName` + `X-UiPath-Internal-TenantName` headers
|
|
144
|
+
- **The CLI handles all of this.** Do not construct raw API calls — use `uip insights jobs <subcommand>`.
|
|
@@ -50,6 +50,8 @@ Do not answer these from this skill. Re-activate `uipath-maestro-flow` and follo
|
|
|
50
50
|
13. **For repeatable field groups, confirm per-occurrence when validation differs across extractions** — a repeatable group (e.g. `Line Items`) produces one extraction per physical line/section. Plain `confirm --fields <id>` confirms `<id>` in **every** occurrence, so if only some lines are correct it confirms the wrong ones too. Each label in `get-predictions` carries an explicit 0-based `Occurrence` (repeated same-named labels appear in document order); if all occurrences are correct use the plain form, otherwise target with `--group`. `--group <name> --occurrence <N>` confirms **ONE** occurrence; `--group <name> --updates '[...]'` confirms **SEVERAL** in one atomic call (avoids N round-trips) — `--occurrence <N>` ≡ a single-entry `--updates`, same per-occurrence logic. `--group` must be the FULL label path from the `Name` field (e.g. `"Invoice > Line Items"`), not the leaf. Without `--fields`, every predicted field in the occurrence is confirmed; with it, only those. Occurrences not selected keep their existing annotation. Flag details: [CLI Reference](references/cli-reference.md#labellings).
|
|
51
51
|
14. **`confirm` is additive — it never un-confirms.** The labelling endpoint is full-replacement, so `confirm`/`mark-missing` carry every existing annotation forward: `--occurrence 0` on an already-labelled table yields "row 0 confirmed AND everything previously confirmed stays confirmed" — NOT "only row 0". To roll back a confirmation, use `unconfirm` (see the task-navigation table).
|
|
52
52
|
15. **F1 reflects confirmed labels, not document truth — never blind-confirm.** F1/`ProjectScore` measure prediction-vs-confirmed-label agreement, so a wrong value you confirm becomes the "right" answer and scores 1.00. A perfect score is **not** evidence the values are correct. Before confirming, sanity-check each value against the document. The per-document no-`--fields` form (confirm all predicted fields on one document) is fine once you've reviewed them all; never run `confirm` without a document-id — that confirms every document at once, bypassing review. See [Label Documents Guide](references/label-documents-guide.md) §2c.
|
|
53
|
+
16. **Ambiguous entity reference → ask, never guess.** Projects (Titles), field groups, fields, and data types share one namespace in user speech ("rename subscriptions"). Before any mutation (`update-title`, `rename`, `delete`, `change-type`), resolve which entity KIND the user means. If the name matches more than one kind — in the user's own context or in `projects list` / taxonomy output — STOP and ask which one (project / group / field / data type). Do NOT pick one, and do NOT mutate several candidates "to cover all cases". When the user can't be asked interactively, surface the question through whatever channel the task provides and stop.
|
|
54
|
+
17. **Reuse the built-in data types before adding new ones.** Every IXP project ships with default data types — `Exact Text`, `Inferred Text`, `Number`, `Date`, `Monetary Quantity`, `Boolean` (the project's `entity_defs` from `projects get-taxonomy` are the authoritative list). Before `data-types add` or picking a field's `--type`, reuse a matching default — e.g. `Monetary Quantity` for a currency amount, never a hand-rolled clone (`Currency Amount`). Add a new type only when no default covers it: a project-specific `Choice`, or a concept needing its own tailored extraction instructions. Never add one just to reformat — the pre-trained defaults keep their fixed output format regardless of instructions. Mapping: [CLI Reference § Default data types](references/cli-reference.md#default-data-types).
|
|
53
55
|
|
|
54
56
|
## Quick Start
|
|
55
57
|
|
|
@@ -79,8 +81,9 @@ If the user provides a taxonomy file, use `--skip-taxonomy` and `import-taxonomy
|
|
|
79
81
|
| "Upload a document" / "Add documents to an existing project" | `uip ixp documents upload <project-name> <file> --output json` — see [CLI Reference § Uploading documents](references/cli-reference.md#uploading-documents-to-an-existing-project). One file per call; loop for multiple. For brand-new projects use `projects create` instead. |
|
|
80
82
|
| "Delete a document" / "Remove a document" | `uip ixp documents delete <project-name> <document-id> -y --output json` — irreversible, triggers retrain. `-y/--yes` is required (the CLI never prompts). To delete by filename, look up the `DocumentId` via `documents list` (the `Filename` field shows the original upload name). |
|
|
81
83
|
| "Add / delete / rename a field group" | `uip ixp groups {add,delete,rename} <project-name> --name <name> ... --output json` — see [CLI Reference § Groups](references/cli-reference.md#groups). `groups add` requires `--instructions` and `--fields '<json>'` — pass **all** of the new group's fields in that one `--fields` array (batch); do NOT create the group then add fields one at a time (use `fields add` only for an already-existing group). `delete` requires `-y/--yes` (the CLI never prompts). |
|
|
82
|
-
| "Add / edit / rename / delete a data type" | `uip ixp data-types {add,update-instructions,rename,delete} <project-name> --name <name> ... --output json` — see [CLI Reference § Data Types](references/cli-reference.md#data-types). `add` requires `--kind` (text/date/money/number/boolean/choice) and `--instructions`. `--input-value` (exact-match/inferred) is required only for `--kind text` and `--kind choice`; the other kinds don't have this property and the CLI rejects the flag for them. `delete` requires `-y/--yes` (the CLI never prompts); deleting a data type breaks any field referencing it. |
|
|
84
|
+
| "Add / edit / rename / delete a data type" | `uip ixp data-types {add,update-instructions,rename,delete} <project-name> --name <name> ... --output json` — see [CLI Reference § Data Types](references/cli-reference.md#data-types). `add` requires `--kind` (text/date/money/number/boolean/choice) and `--instructions`. `--input-value` (exact-match/inferred) is required only for `--kind text` and `--kind choice`; the other kinds don't have this property and the CLI rejects the flag for them. `delete` requires `-y/--yes` (the CLI never prompts); deleting a data type breaks any field referencing it. **Reuse a default data type before adding a custom one (Critical Rule 17)** — most needs map to a built-in (e.g. currency → `Monetary Quantity`). |
|
|
83
85
|
| "Add / delete / rename / retype a field" | `uip ixp fields {add,delete,rename,change-type} <project-name> --group <name> --field <name> ... --output json` — see [CLI Reference § Fields](references/cli-reference.md#fields). `delete` requires `-y/--yes`; `change-type` deletes annotations and also requires `-y/--yes`. |
|
|
86
|
+
| "Fix an OCR-garbled value" / "Confirm with a correction" | `uip ixp labellings confirm <project-name> <document-id> --fields <ids> --corrections '[{"field_id":"<id>","value":"<fixed>"}]' --output json` — confirms the listed fields and records the corrected value for the garbled one (include the corrected field's id in `--fields`). **`--corrections` is only for OCR garble** — the prediction is already the right answer in the right location, merely misread (e.g. `MSIÓÓÓ601020/` → `MSI0601020`); never use it to flip a wrong prediction, that field stays unannotated (Critical Rule 8). For one occurrence of a repeatable group add `--group <name> --occurrence <N>`; in the batched `--group <name> --updates '[…]'` form each entry takes `"corrections": {"<field_id>": "<value>"}` (an object keyed by field id, not the flat array). See [CLI Reference](references/cli-reference.md#labellings). |
|
|
84
87
|
| "Mark a field as missing for a document" | `uip ixp labellings mark-missing <project-name> <document-id> --fields <ids> --output json` — marks the listed fields missing; use when a field is genuinely absent and IXP predicted no value for it. Listing the field in `labellings confirm --fields` records the same missing marker when the field appears in predictions with an empty value. **Only mark a field missing if IXP also predicted nothing for it** — never to override a wrong prediction. See Critical Rule 12. |
|
|
85
88
|
| "Undo / unconfirm a wrong confirmation" | `uip ixp labellings unconfirm <project-name> <document-id> --fields <ids> --output json` — rolls back an earlier `confirm` or `mark-missing` for the listed fields (`confirm` can't un-confirm — Critical Rule 14). Every other annotation on the document is carried forward. With `--fields` alone, a field id shared across occurrences of a repeatable group is removed from **all** of them; to roll back specific occurrences, add `--group` with `--occurrence <N>` or `--updates '[…]'` (mirrors `confirm` — see the row below and Critical Rule 14). |
|
|
86
89
|
| "Confirm one line item / extraction" / "Confirm only this occurrence" | `uip ixp labellings confirm <project-name> <document-id> --group <name> --occurrence <N> [--fields <ids>] --output json` — targets one specific extraction of a repeatable field group (0-based index). Without `--fields`, confirms every predicted field in that occurrence; with `--fields`, only those. Other occurrences untouched. For confirming multiple occurrences in one call, use `--updates '[…]'` instead. See Critical Rule 13. |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
All commands use `uip ixp` prefix. Always append `--output json` when parsing output programmatically.
|
|
4
4
|
|
|
5
|
-
> **Destructive commands require `-y, --yes`.** Every irreversible `uip ixp` command (all `delete`s and `fields change-type`) gates on `-y/--yes`; the CLI never prompts.
|
|
5
|
+
> **Destructive commands require `-y, --yes`.** Every irreversible `uip ixp` command (all `delete`s and `fields change-type`) gates on `-y/--yes`; the CLI never prompts. Always pass `-y/--yes`.
|
|
6
6
|
|
|
7
7
|
## Projects
|
|
8
8
|
|
|
@@ -76,13 +76,28 @@ Manage the reusable type definitions (entity_defs) that fields reference via `fi
|
|
|
76
76
|
| `uip ixp data-types rename <project-name> --name <name> --new-name <name> --output json` | Rename a data type. Existing field references (via `field_type_id`) stay intact. |
|
|
77
77
|
| `uip ixp data-types delete <project-name> --name <name> -y --output json` | Delete a data type. **IRREVERSIBLE** — any field referencing it via `field_type_id` will break. `-y, --yes` is **required** (the CLI never prompts). |
|
|
78
78
|
|
|
79
|
+
### Default data types
|
|
80
|
+
|
|
81
|
+
Every IXP project ships with the built-in data types below (the project's `entity_defs` from `projects get-taxonomy` are the authoritative list). **Before `data-types add`, or before choosing a field's `--type` (in `fields add` / `groups add`), check the existing `entity_defs` and reuse a matching default.** A redundant custom type (e.g. a `Currency Amount` when `Monetary Quantity` already exists) splits annotations across two types and forfeits the default's pre-trained model. Add a new data type only when it carries something no default does — a `Choice`, or a reusable concept that needs its own tailored extraction instructions — not as a clone of a default.
|
|
82
|
+
|
|
83
|
+
| Default type | `--kind` | `--input-value` | Reuse for |
|
|
84
|
+
|--------------|----------|-----------------|-----------|
|
|
85
|
+
| `Exact Text` | `text` | `exact-match` | Text copied verbatim from the document — names, IDs, addresses, codes |
|
|
86
|
+
| `Inferred Text` | `text` | `inferred` | Text derived/computed, not appearing verbatim in the document |
|
|
87
|
+
| `Number` | `number` | — | Counts, quantities, plain numbers |
|
|
88
|
+
| `Date` | `date` | — | Dates |
|
|
89
|
+
| `Monetary Quantity` | `money` | — | Any currency / monetary amount — total, subtotal, tax, unit price, freight |
|
|
90
|
+
| `Boolean` | `boolean` | — | True / false values |
|
|
91
|
+
|
|
92
|
+
`Date`, `Number`, and `Monetary Quantity` carry pre-trained models with a fixed output format (e.g. `Monetary Quantity` normalises `"1M USD"`, `"USD 1000000"`, and `"1,000,000 usd"` all to `1,000,000.00 USD`) — instructions cannot change their formatting, so a hand-rolled equivalent is strictly worse. `Choice` is the only `--kind` with no default: choice types are always project-specific (`data-types add --kind choice --choices …`).
|
|
93
|
+
|
|
79
94
|
## Groups
|
|
80
95
|
|
|
81
96
|
Manage field groups (label_defs) — the document type containers for fields. To edit fields **inside** an existing group, use the `fields` subject below.
|
|
82
97
|
|
|
83
98
|
| Command | Description |
|
|
84
99
|
|---------|-------------|
|
|
85
|
-
| `uip ixp groups add <project-name> --name <group-name> --instructions <text> --fields <json> --output json` | Create a new field group with its fields. `--instructions` describes what document/section the group covers (the model sees it during extraction). `--fields` is a JSON array `[{"name":"...","type":"<type-name>","instructions":"..."}]` — **put ALL of the new group's fields in this one array (batch); do NOT create the group then add its fields one at a time.** Every entry must include `name`, `type`, and a non-empty `instructions`. `type` resolves against the project's `entity_defs
|
|
100
|
+
| `uip ixp groups add <project-name> --name <group-name> --instructions <text> --fields <json> --output json` | Create a new field group with its fields. `--instructions` describes what document/section the group covers (the model sees it during extraction). `--fields` is a JSON array `[{"name":"...","type":"<type-name>","instructions":"..."}]` — **put ALL of the new group's fields in this one array (batch); do NOT create the group then add its fields one at a time.** Every entry must include `name`, `type`, and a non-empty `instructions`. `type` resolves against the project's `entity_defs` — reuse a [default data type](#default-data-types) before inventing a new one. To add a field to an **already-existing** group, use `fields add` instead. |
|
|
86
101
|
| `uip ixp groups delete <project-name> --name <group-name> -y --output json` | Delete a field group. **IRREVERSIBLE** — deletes all annotations on all fields in the group. `-y, --yes` is **required** (the CLI never prompts). |
|
|
87
102
|
| `uip ixp groups rename <project-name> --name <group-name> --new-name <name> --output json` | Rename a field group. Preserves all fields and annotations. |
|
|
88
103
|
| `uip ixp groups update-prompts <project-name> --updates <json> --output json` | Bulk-update field group (label_def) instructions. `--updates` is a JSON array `[{"name":"<group>","instructions":"..."}]` matched by group name. Existing fields are preserved. Unmatched names are reported in the response without failing the command. |
|
|
@@ -93,7 +108,7 @@ Structural edits to a field within an existing field group. For instruction-only
|
|
|
93
108
|
|
|
94
109
|
| Command | Description |
|
|
95
110
|
|---------|-------------|
|
|
96
|
-
| `uip ixp fields add <project-name> --group <field-group-name> --field <name> --type <type-name> --instructions <text> --output json` | Add a new field to an **existing** field group. `--type` is the name of an entity_def in the project's taxonomy (see `projects get-taxonomy`). `--instructions` is required — describe what to extract and where it appears. |
|
|
111
|
+
| `uip ixp fields add <project-name> --group <field-group-name> --field <name> --type <type-name> --instructions <text> --output json` | Add a new field to an **existing** field group. `--type` is the name of an entity_def in the project's taxonomy (see `projects get-taxonomy`) — reuse a [default data type](#default-data-types) (e.g. `Monetary Quantity` for a currency amount) before adding a custom one. `--instructions` is required — describe what to extract and where it appears. |
|
|
97
112
|
| `uip ixp fields delete <project-name> --group <field-group-name> --field <name> -y --output json` | Remove a field from a field group. `-y, --yes` is **required** (the CLI never prompts). |
|
|
98
113
|
| `uip ixp fields rename <project-name> --group <field-group-name> --field <name> --new-name <name> --output json` | Rename a field. Preserves `field_id` and existing annotations. |
|
|
99
114
|
| `uip ixp fields change-type <project-name> --group <field-group-name> --field <name> --type <type-name> -y --output json` | Change a field's type. **IRREVERSIBLE** — the server creates a new field under the hood, so all existing annotations for that field are deleted. `-y, --yes` is **required** (the CLI never prompts). |
|
|
@@ -25,6 +25,8 @@ particular, there is **no** `uip maestro bpmn validate` command — see
|
|
|
25
25
|
[Validation](structural-bpmn.md#validation). Validation is done with the bundled
|
|
26
26
|
offline validator, not a CLI.
|
|
27
27
|
|
|
28
|
+
> **Don't conclude "it doesn't exist" from truncated discovery output.** A row past a cutoff reads exactly like a missing row. Two cutoffs bite here: `registry list` defaults to **30** — pass `--limit -1` for the full set — and piping `registry search`/`is connections list` through `head`/`tail`/`grep -m`/a pager drops everything past the cap. To check existence, narrow the query (keyword to `registry search`, `--all-folders` to connection lists) rather than capping rows; cap only data already known complete.
|
|
29
|
+
|
|
28
30
|
## Output parsing
|
|
29
31
|
|
|
30
32
|
Whenever a CLI result is parsed programmatically, pass `--output json`. If a
|