@epilot/cli 0.1.104 → 0.1.105
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
|
@@ -1295,6 +1295,9 @@
|
|
|
1295
1295
|
},
|
|
1296
1296
|
{
|
|
1297
1297
|
"$ref": "#/components/schemas/ReplyEmailAction"
|
|
1298
|
+
},
|
|
1299
|
+
{
|
|
1300
|
+
"$ref": "#/components/schemas/AssignEntityAction"
|
|
1298
1301
|
}
|
|
1299
1302
|
]
|
|
1300
1303
|
},
|
|
@@ -1341,6 +1344,9 @@
|
|
|
1341
1344
|
},
|
|
1342
1345
|
{
|
|
1343
1346
|
"$ref": "#/components/schemas/ReplyEmailActionConfig"
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
"$ref": "#/components/schemas/AssignEntityActionConfig"
|
|
1344
1350
|
}
|
|
1345
1351
|
]
|
|
1346
1352
|
},
|
|
@@ -1851,6 +1857,10 @@
|
|
|
1851
1857
|
"type": "string",
|
|
1852
1858
|
"description": "Schema of target entity"
|
|
1853
1859
|
},
|
|
1860
|
+
"use_uniqueness_criteria": {
|
|
1861
|
+
"type": "boolean",
|
|
1862
|
+
"description": "Resolve this action's target (contact/account) via the organization's global uniqueness criteria instead of per-action identifiers (target_unique / Unique switches). Forwarded to entity mapping by automation-workers.\n"
|
|
1863
|
+
},
|
|
1854
1864
|
"target_unique": {
|
|
1855
1865
|
"type": "array",
|
|
1856
1866
|
"description": "Unique key for target entity (see upsertEntity of Entity API)",
|
|
@@ -2243,6 +2253,11 @@
|
|
|
2243
2253
|
"description": "Candidate condition for even_distribution: when true, skip users who\nare currently absent (out-of-office). Opt-in; defaults to false.\n",
|
|
2244
2254
|
"default": false
|
|
2245
2255
|
},
|
|
2256
|
+
"hold_until_available": {
|
|
2257
|
+
"type": "boolean",
|
|
2258
|
+
"description": "Sub-option of only_available_users: when a day off (weekend / whole\nday off with a known return) is what empties the candidate pool, hold\nthe thread and retry when the soonest candidate is back — bounded to\n7 retries over 7 days — before applying the fallback. Defaults to\ntrue; set false to skip the hold and fall straight through to the\nfallback. Out-of-office / vacation and non-availability reasons never\nhold regardless.\n",
|
|
2259
|
+
"default": true
|
|
2260
|
+
},
|
|
2246
2261
|
"match_user_skills": {
|
|
2247
2262
|
"type": "boolean",
|
|
2248
2263
|
"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",
|
|
@@ -2282,6 +2297,161 @@
|
|
|
2282
2297
|
}
|
|
2283
2298
|
}
|
|
2284
2299
|
},
|
|
2300
|
+
"EntityAssignee": {
|
|
2301
|
+
"type": "object",
|
|
2302
|
+
"description": "A single assignee as stored in a user-relation attribute. Written through\nverbatim by the assign-entity worker. Note this object encoding differs\ndeliberately from AssignThreadConfig, which stores bare id strings —\neach matches what its own target accepts.\n",
|
|
2303
|
+
"properties": {
|
|
2304
|
+
"type": {
|
|
2305
|
+
"type": "string",
|
|
2306
|
+
"description": "Which kind of principal this assignee is. Required: it selects which\nof the identifier properties below applies, and forms part of the\nappend-mode de-duplication key.\n",
|
|
2307
|
+
"enum": [
|
|
2308
|
+
"user",
|
|
2309
|
+
"partner_user",
|
|
2310
|
+
"partner_organization",
|
|
2311
|
+
"group"
|
|
2312
|
+
]
|
|
2313
|
+
},
|
|
2314
|
+
"user_id": {
|
|
2315
|
+
"type": "string",
|
|
2316
|
+
"description": "Set for user and partner_user assignees."
|
|
2317
|
+
},
|
|
2318
|
+
"group_id": {
|
|
2319
|
+
"type": "string",
|
|
2320
|
+
"description": "Set for group assignees."
|
|
2321
|
+
},
|
|
2322
|
+
"org_id": {
|
|
2323
|
+
"type": "string",
|
|
2324
|
+
"description": "Organization the assignee belongs to."
|
|
2325
|
+
},
|
|
2326
|
+
"partner_id": {
|
|
2327
|
+
"type": "string",
|
|
2328
|
+
"description": "Set for partner_user and partner_organization assignees."
|
|
2329
|
+
},
|
|
2330
|
+
"display_name": {
|
|
2331
|
+
"type": "string",
|
|
2332
|
+
"description": "Label snapshotted at configuration time; may go stale after a rename."
|
|
2333
|
+
},
|
|
2334
|
+
"email": {
|
|
2335
|
+
"type": "string"
|
|
2336
|
+
}
|
|
2337
|
+
},
|
|
2338
|
+
"required": [
|
|
2339
|
+
"type"
|
|
2340
|
+
]
|
|
2341
|
+
},
|
|
2342
|
+
"AssignEntityConfig": {
|
|
2343
|
+
"type": "object",
|
|
2344
|
+
"properties": {
|
|
2345
|
+
"attribute": {
|
|
2346
|
+
"type": "string",
|
|
2347
|
+
"description": "Slug of the user-relation attribute on the triggering entity to write to."
|
|
2348
|
+
},
|
|
2349
|
+
"assignees": {
|
|
2350
|
+
"type": "array",
|
|
2351
|
+
"description": "Assignees to write into `attribute`, in the order given.",
|
|
2352
|
+
"items": {
|
|
2353
|
+
"$ref": "#/components/schemas/EntityAssignee"
|
|
2354
|
+
}
|
|
2355
|
+
},
|
|
2356
|
+
"write_mode": {
|
|
2357
|
+
"type": "string",
|
|
2358
|
+
"description": "How `assignees` combine with the attribute's current value.\n- replace: overwrite the attribute with `assignees` (default).\n- append: union with the existing assignees, de-duplicated, existing\n entries first. Two assignees are duplicates when their `type` and\n `org_id` both match and the identifier for that type matches:\n `user_id` for user and partner_user, `group_id` for group,\n `partner_id` for partner_organization. Scoping by `org_id` keeps\n assignees from different organizations distinct even when their\n identifiers coincide.\n",
|
|
2359
|
+
"enum": [
|
|
2360
|
+
"replace",
|
|
2361
|
+
"append"
|
|
2362
|
+
],
|
|
2363
|
+
"default": "replace"
|
|
2364
|
+
},
|
|
2365
|
+
"assignment_type": {
|
|
2366
|
+
"type": "string",
|
|
2367
|
+
"description": "How assignees are resolved.\n- direct: assign exactly the assignees listed (default, and the only\n accepted value).\nReserved for a future routing strategy; widening this enum later is\nbackwards compatible and needs no migration of existing flows.\n",
|
|
2368
|
+
"enum": [
|
|
2369
|
+
"direct"
|
|
2370
|
+
],
|
|
2371
|
+
"default": "direct"
|
|
2372
|
+
},
|
|
2373
|
+
"source": {
|
|
2374
|
+
"type": "object",
|
|
2375
|
+
"description": "Which entity to assign to. Omit for the triggering entity (the\ndefault, and the behaviour of every flow saved before this field\nexisted).\n- trigger: the entity that started the flow.\n- action: the entity produced by an earlier action, identified by\n that action's `flow_action_id`.\n",
|
|
2376
|
+
"properties": {
|
|
2377
|
+
"id": {
|
|
2378
|
+
"type": "string",
|
|
2379
|
+
"description": "The producing action's `flow_action_id` when origin is `action`, or the trigger id when origin is `trigger`. Note this is `flow_action_id` (stable across executions), not `id`.\n"
|
|
2380
|
+
},
|
|
2381
|
+
"origin": {
|
|
2382
|
+
"type": "string",
|
|
2383
|
+
"enum": [
|
|
2384
|
+
"trigger",
|
|
2385
|
+
"action"
|
|
2386
|
+
]
|
|
2387
|
+
},
|
|
2388
|
+
"schema": {
|
|
2389
|
+
"type": "string",
|
|
2390
|
+
"description": "Entity schema recorded when the source was chosen, for display. The worker uses the schema on the resolved entity itself, since this value goes stale if the producing action's target changes.\n"
|
|
2391
|
+
}
|
|
2392
|
+
}
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
},
|
|
2396
|
+
"AssignEntityActionConfig": {
|
|
2397
|
+
"allOf": [
|
|
2398
|
+
{
|
|
2399
|
+
"$ref": "#/components/schemas/AutomationActionConfig"
|
|
2400
|
+
},
|
|
2401
|
+
{
|
|
2402
|
+
"type": "object",
|
|
2403
|
+
"properties": {
|
|
2404
|
+
"type": {
|
|
2405
|
+
"enum": [
|
|
2406
|
+
"assign-entity"
|
|
2407
|
+
]
|
|
2408
|
+
},
|
|
2409
|
+
"config": {
|
|
2410
|
+
"$ref": "#/components/schemas/AssignEntityConfig"
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2413
|
+
}
|
|
2414
|
+
],
|
|
2415
|
+
"example": {
|
|
2416
|
+
"id": "25jga0-gkasl26-0asg-908sgaj2",
|
|
2417
|
+
"name": "Assign Entity",
|
|
2418
|
+
"type": "assign-entity",
|
|
2419
|
+
"config": {
|
|
2420
|
+
"attribute": "assigned_to",
|
|
2421
|
+
"write_mode": "replace",
|
|
2422
|
+
"assignment_type": "direct",
|
|
2423
|
+
"assignees": [
|
|
2424
|
+
{
|
|
2425
|
+
"type": "user",
|
|
2426
|
+
"user_id": "90503",
|
|
2427
|
+
"org_id": "66",
|
|
2428
|
+
"display_name": "Jane Doe",
|
|
2429
|
+
"email": "jane.doe@example.com"
|
|
2430
|
+
}
|
|
2431
|
+
]
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2434
|
+
},
|
|
2435
|
+
"AssignEntityAction": {
|
|
2436
|
+
"allOf": [
|
|
2437
|
+
{
|
|
2438
|
+
"$ref": "#/components/schemas/AutomationAction"
|
|
2439
|
+
},
|
|
2440
|
+
{
|
|
2441
|
+
"type": "object",
|
|
2442
|
+
"properties": {
|
|
2443
|
+
"type": {
|
|
2444
|
+
"enum": [
|
|
2445
|
+
"assign-entity"
|
|
2446
|
+
]
|
|
2447
|
+
},
|
|
2448
|
+
"config": {
|
|
2449
|
+
"$ref": "#/components/schemas/AssignEntityConfig"
|
|
2450
|
+
}
|
|
2451
|
+
}
|
|
2452
|
+
}
|
|
2453
|
+
]
|
|
2454
|
+
},
|
|
2285
2455
|
"SendEmailActionConfig": {
|
|
2286
2456
|
"allOf": [
|
|
2287
2457
|
{
|
|
@@ -3690,6 +3860,13 @@
|
|
|
3690
3860
|
"_execution_chain": {
|
|
3691
3861
|
"$ref": "#/components/schemas/ExecutionChain"
|
|
3692
3862
|
},
|
|
3863
|
+
"_automation_chain": {
|
|
3864
|
+
"type": "array",
|
|
3865
|
+
"description": "[Internal] Ordered automation flow ids that led to the parent flow being started. The started execution appends its own flow id, so entity writes it performs carry the full chain and a loop running through a workflow can be detected. This is an internal property and should not be used by external consumers.\n",
|
|
3866
|
+
"items": {
|
|
3867
|
+
"type": "string"
|
|
3868
|
+
}
|
|
3869
|
+
},
|
|
3693
3870
|
"entity_contexts": {
|
|
3694
3871
|
"type": "array",
|
|
3695
3872
|
"description": "Additional entity contexts from the parent flow execution. Used when an automation is triggered from a workflow task to carry all flow contexts into the automation, not just the primary entity.\n",
|
package/dist/bin/epilot.js
CHANGED
|
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
|
|
|
11
11
|
var main = defineCommand({
|
|
12
12
|
meta: {
|
|
13
13
|
name: "epilot",
|
|
14
|
-
version: "0.1.
|
|
14
|
+
version: "0.1.105",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -31,7 +31,7 @@ var main = defineCommand({
|
|
|
31
31
|
profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
|
|
32
32
|
config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
|
|
33
33
|
completion: () => import("../completion-RUUFYBPO.js").then((m) => m.default),
|
|
34
|
-
upgrade: () => import("../upgrade-
|
|
34
|
+
upgrade: () => import("../upgrade-BGDALZVE.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,7 +134,7 @@ 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.
|
|
137
|
+
var VERSION = true ? "0.1.105" : (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);
|
|
@@ -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.
|
|
75
|
+
if (true) return "0.1.105";
|
|
76
76
|
try {
|
|
77
77
|
const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
|
|
78
78
|
encoding: "utf-8",
|