@epilot/cli 0.1.89 → 0.1.90

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/README.md CHANGED
@@ -29,7 +29,7 @@ npm install -g @epilot/cli
29
29
 
30
30
  <!-- usage-help -->
31
31
  ```
32
- epilot v0.1.89 — CLI for epilot APIs
32
+ epilot v0.1.90 — CLI for epilot APIs
33
33
 
34
34
  USAGE
35
35
  epilot <api> <operationId> [params...] [flags]
@@ -621,6 +621,42 @@
621
621
  }
622
622
  }
623
623
  },
624
+ "/v1/automation/executions:search": {
625
+ "post": {
626
+ "operationId": "searchExecutions",
627
+ "summary": "searchExecutions",
628
+ "description": "Search automation executions of an entity with cursor-based pagination.\nReturns pages of up to 100 executions, newest first.\nPrefer this over GET /v1/automation/executions, which returns the full\nexecution history in a single response.\n",
629
+ "tags": [
630
+ "executions"
631
+ ],
632
+ "requestBody": {
633
+ "description": "Search parameters",
634
+ "required": true,
635
+ "content": {
636
+ "application/json": {
637
+ "schema": {
638
+ "$ref": "#/components/schemas/SearchExecutionsReq"
639
+ }
640
+ }
641
+ }
642
+ },
643
+ "responses": {
644
+ "200": {
645
+ "description": "A page of automation executions",
646
+ "content": {
647
+ "application/json": {
648
+ "schema": {
649
+ "$ref": "#/components/schemas/SearchExecutionsResp"
650
+ }
651
+ }
652
+ }
653
+ },
654
+ "403": {
655
+ "$ref": "#/components/responses/ForbiddenError"
656
+ }
657
+ }
658
+ }
659
+ },
624
660
  "/v1/automation/executions/bulk-jobs": {
625
661
  "post": {
626
662
  "operationId": "bulkTriggerExecutions",
@@ -2187,7 +2223,59 @@
2187
2223
  },
2188
2224
  "add": {
2189
2225
  "type": "array",
2190
- "description": "Assignees to add to the thread",
2226
+ "description": "Assignees to add to the thread. For even_distribution this may contain group IDs (prefixed \"group_\") whose members are candidates.",
2227
+ "items": {
2228
+ "type": "string"
2229
+ }
2230
+ },
2231
+ "assignment_type": {
2232
+ "type": "string",
2233
+ "description": "How assignees in `add` are resolved.\n- direct: assign exactly the users in `add` (default).\n- even_distribution: treat `add` as a candidate pool (users and/or groups)\n and assign the least-loaded available agent.\n- sequential: reserved for future use.\n",
2234
+ "enum": [
2235
+ "direct",
2236
+ "even_distribution",
2237
+ "sequential"
2238
+ ],
2239
+ "default": "direct"
2240
+ },
2241
+ "only_available_users": {
2242
+ "type": "boolean",
2243
+ "description": "Candidate condition for even_distribution: when true, skip users who\nare currently absent (out-of-office). Opt-in; defaults to false.\n",
2244
+ "default": false
2245
+ },
2246
+ "match_user_skills": {
2247
+ "type": "boolean",
2248
+ "description": "Candidate condition for even_distribution: when true, only assign to\nusers whose skills (tags) match a label on the message. Opt-in;\ndefaults to false.\n",
2249
+ "default": false
2250
+ },
2251
+ "required_skill_categories": {
2252
+ "type": "array",
2253
+ "description": "Candidate condition (with match_user_skills): label families\n(taxonomy slugs) that must match. A user qualifies only if it shares\na label with the message within each of these categories. Leave empty\nto match on any label (flat OR across all categories).\n",
2254
+ "items": {
2255
+ "type": "string"
2256
+ }
2257
+ },
2258
+ "skill_match_mode": {
2259
+ "type": "string",
2260
+ "description": "How strictly required skill categories are matched (applies with\nmatch_user_skills and required skill categories set).\n- require_all: hard match (default) — a user must match every required\n category the message has a label in.\n- prefer: soft match — prefer the best-matching users, relaxing to\n fewer categories only when no better match exists; a user matching\n no category is never eligible (the fallback then applies).\n",
2261
+ "enum": [
2262
+ "require_all",
2263
+ "prefer"
2264
+ ],
2265
+ "default": "require_all"
2266
+ },
2267
+ "fallback": {
2268
+ "type": "string",
2269
+ "description": "What to do when smart assignment resolves no assignable candidate.\nApplies to even_distribution.\n- leave_unassigned: leave the thread unassigned (default).\n- assign_to_fallback: route to the users/groups in `fallback_assignees`.\n",
2270
+ "enum": [
2271
+ "leave_unassigned",
2272
+ "assign_to_fallback"
2273
+ ],
2274
+ "default": "leave_unassigned"
2275
+ },
2276
+ "fallback_assignees": {
2277
+ "type": "array",
2278
+ "description": "Target user/group IDs (group IDs prefixed \"group_\") to assign when\n`fallback` is \"assign_to_fallback\".\n",
2191
2279
  "items": {
2192
2280
  "type": "string"
2193
2281
  }
@@ -3885,6 +3973,56 @@
3885
3973
  "results"
3886
3974
  ]
3887
3975
  },
3976
+ "SearchExecutionsReq": {
3977
+ "type": "object",
3978
+ "properties": {
3979
+ "entity_id": {
3980
+ "$ref": "#/components/schemas/EntityId"
3981
+ },
3982
+ "include_flows": {
3983
+ "description": "Include flow automations in the response",
3984
+ "type": "boolean",
3985
+ "default": false
3986
+ },
3987
+ "size": {
3988
+ "description": "Max number of executions to return per page",
3989
+ "type": "integer",
3990
+ "minimum": 1,
3991
+ "maximum": 100,
3992
+ "default": 25
3993
+ },
3994
+ "cursor": {
3995
+ "description": "Opaque cursor returned as next_cursor by a previous page.\nPass it to fetch the next page of results.\n",
3996
+ "type": "string"
3997
+ }
3998
+ },
3999
+ "required": [
4000
+ "entity_id"
4001
+ ]
4002
+ },
4003
+ "SearchExecutionsResp": {
4004
+ "type": "object",
4005
+ "properties": {
4006
+ "total": {
4007
+ "description": "Number of executions in this page",
4008
+ "type": "number"
4009
+ },
4010
+ "results": {
4011
+ "type": "array",
4012
+ "items": {
4013
+ "$ref": "#/components/schemas/AutomationExecution"
4014
+ }
4015
+ },
4016
+ "next_cursor": {
4017
+ "description": "Opaque cursor to fetch the next page of results.\nOnly present when more results are available.\n",
4018
+ "type": "string"
4019
+ }
4020
+ },
4021
+ "required": [
4022
+ "total",
4023
+ "results"
4024
+ ]
4025
+ },
3888
4026
  "StartExecutionRequest": {
3889
4027
  "type": "object",
3890
4028
  "properties": {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  API_LIST
4
- } from "../chunk-TGXMWYHZ.js";
4
+ } from "../chunk-CQ2AI324.js";
5
5
 
6
6
  // bin/epilot.ts
7
7
  import { runMain } from "citty";
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
11
11
  var main = defineCommand({
12
12
  meta: {
13
13
  name: "epilot",
14
- version: "0.1.89",
14
+ version: "0.1.90",
15
15
  description: "CLI for epilot APIs"
16
16
  },
17
17
  args: {
@@ -30,8 +30,8 @@ var main = defineCommand({
30
30
  auth: () => import("../auth-4HG7B2GC.js").then((m) => m.default),
31
31
  profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
32
32
  config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
33
- completion: () => import("../completion-NXJUERAR.js").then((m) => m.default),
34
- upgrade: () => import("../upgrade-ZAHLMDUI.js").then((m) => m.default),
33
+ completion: () => import("../completion-N4BE6543.js").then((m) => m.default),
34
+ upgrade: () => import("../upgrade-VGR6IELC.js").then((m) => m.default),
35
35
  "access-token": () => import("../access-token-WWE6BDJH.js").then((m) => m.default),
36
36
  address: () => import("../address-EH3C4CVB.js").then((m) => m.default),
37
37
  "address-suggestions": () => import("../address-suggestions-RRSLOBFW.js").then((m) => m.default),
@@ -134,13 +134,13 @@ process.stderr.on("error", (err) => {
134
134
  if (err.code === "EPIPE") process.exit(0);
135
135
  throw err;
136
136
  });
137
- var VERSION = true ? "0.1.89" : (await null).default.version;
137
+ var VERSION = true ? "0.1.90" : (await null).default.version;
138
138
  var reorderedArgv = hoistFlagsAfterSubcommand(process.argv.slice(2));
139
139
  process.argv = [process.argv[0], process.argv[1], ...reorderedArgv];
140
140
  var args = process.argv.slice(2);
141
141
  var completionsIdx = args.indexOf("--_completions");
142
142
  if (completionsIdx >= 0) {
143
- const { handleCompletions } = await import("../completion-NXJUERAR.js");
143
+ const { handleCompletions } = await import("../completion-N4BE6543.js");
144
144
  handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
145
145
  process.exit(0);
146
146
  }
@@ -121,7 +121,7 @@ var API_LIST = [
121
121
  kebabName: "automation",
122
122
  title: "Automation API",
123
123
  serverUrl: "https://automation.sls.epilot.io",
124
- operationCount: 16,
124
+ operationCount: 17,
125
125
  operationIds: [
126
126
  "searchFlows",
127
127
  "createFlow",
@@ -131,6 +131,7 @@ var API_LIST = [
131
131
  "deleteFlow",
132
132
  "getExecutions",
133
133
  "startExecution",
134
+ "searchExecutions",
134
135
  "bulkTriggerExecutions",
135
136
  "getBulkJob",
136
137
  "patchBulkJob",
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  API_LIST
4
- } from "./chunk-TGXMWYHZ.js";
4
+ } from "./chunk-CQ2AI324.js";
5
5
  import {
6
6
  DIM,
7
7
  GREEN,
@@ -72,7 +72,7 @@ ${GREEN}${BOLD}Upgraded to @epilot/cli@${latest}${RESET}
72
72
  }
73
73
  });
74
74
  var getCurrentVersion = () => {
75
- if (true) return "0.1.89";
75
+ if (true) return "0.1.90";
76
76
  try {
77
77
  const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
78
78
  encoding: "utf-8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/cli",
3
- "version": "0.1.89",
3
+ "version": "0.1.90",
4
4
  "description": "CLI for epilot APIs",
5
5
  "type": "module",
6
6
  "bin": {