@outlit/cli 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +294 -28
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -104,7 +104,7 @@ var package_default;
|
|
|
104
104
|
var init_package = __esm(() => {
|
|
105
105
|
package_default = {
|
|
106
106
|
name: "@outlit/cli",
|
|
107
|
-
version: "1.7.
|
|
107
|
+
version: "1.7.1",
|
|
108
108
|
description: "CLI for Outlit customer intelligence platform",
|
|
109
109
|
license: "Apache-2.0",
|
|
110
110
|
repository: {
|
|
@@ -135,7 +135,7 @@ var init_package = __esm(() => {
|
|
|
135
135
|
},
|
|
136
136
|
dependencies: {
|
|
137
137
|
"@clack/prompts": "^1.0.1",
|
|
138
|
-
"@outlit/tools": "^0.2.
|
|
138
|
+
"@outlit/tools": "^0.2.1",
|
|
139
139
|
citty: "^0.2.1"
|
|
140
140
|
},
|
|
141
141
|
devDependencies: {
|
|
@@ -1602,7 +1602,7 @@ function createOutlitClient(options) {
|
|
|
1602
1602
|
}
|
|
1603
1603
|
};
|
|
1604
1604
|
}
|
|
1605
|
-
var customerToolNames, customerSourceTypes, customerSourceTypeAliases, customerSourceTypeInputs,
|
|
1605
|
+
var customerToolNames, customerSourceTypes, customerSourceTypeAliases, customerSourceTypeInputs, customerToolContracts, customerBillingStatuses, customerFactStatuses, customerFactTypes, unsupportedCustomerFactTypes, customerFactCategories, customerIncludeSections, customerTimeframes, notificationProviderValues, notificationSeverityValues, timelineChannels, timelineTimeframes, userJourneyStages, customerToolNameSet, customerSourceTypeSet, customerSourceTypeAliasMap, iso8601UtcDateTimeRegex, DEFAULT_OUTLIT_API_URL = "https://app.outlit.ai", actionToolNames, defaultAgentToolNames, sqlToolNames, analyticalAgentToolNames;
|
|
1606
1606
|
var init_dist4 = __esm(() => {
|
|
1607
1607
|
customerToolNames = [
|
|
1608
1608
|
"outlit_list_customers",
|
|
@@ -1612,6 +1612,7 @@ var init_dist4 = __esm(() => {
|
|
|
1612
1612
|
"outlit_list_facts",
|
|
1613
1613
|
"outlit_get_fact",
|
|
1614
1614
|
"outlit_get_source",
|
|
1615
|
+
"outlit_list_sources",
|
|
1615
1616
|
"outlit_search_customer_context",
|
|
1616
1617
|
"outlit_query",
|
|
1617
1618
|
"outlit_schema",
|
|
@@ -1634,7 +1635,6 @@ var init_dist4 = __esm(() => {
|
|
|
1634
1635
|
"CRM",
|
|
1635
1636
|
"CRM_OPPORTUNITY"
|
|
1636
1637
|
];
|
|
1637
|
-
notificationProviderValues = ["slack"];
|
|
1638
1638
|
customerToolContracts = {
|
|
1639
1639
|
outlit_list_customers: {
|
|
1640
1640
|
toolName: "outlit_list_customers",
|
|
@@ -2039,6 +2039,69 @@ var init_dist4 = __esm(() => {
|
|
|
2039
2039
|
additionalProperties: false
|
|
2040
2040
|
}
|
|
2041
2041
|
},
|
|
2042
|
+
outlit_list_sources: {
|
|
2043
|
+
toolName: "outlit_list_sources",
|
|
2044
|
+
description: "List concrete source records deterministically. Use this instead of semantic search when you need enumerated calls, emails, calendar events, support tickets, or opportunities.",
|
|
2045
|
+
inputSchema: {
|
|
2046
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
2047
|
+
type: "object",
|
|
2048
|
+
properties: {
|
|
2049
|
+
sourceType: {
|
|
2050
|
+
description: "Generic source type to list.",
|
|
2051
|
+
type: "string",
|
|
2052
|
+
enum: customerSourceTypeInputs
|
|
2053
|
+
},
|
|
2054
|
+
customer: {
|
|
2055
|
+
description: "Customer ID, domain, or name to scope source listing.",
|
|
2056
|
+
type: "string",
|
|
2057
|
+
minLength: 1,
|
|
2058
|
+
maxLength: 200
|
|
2059
|
+
},
|
|
2060
|
+
after: {
|
|
2061
|
+
description: "ISO 8601 datetime lower bound.",
|
|
2062
|
+
type: "string",
|
|
2063
|
+
format: "date-time",
|
|
2064
|
+
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
2065
|
+
},
|
|
2066
|
+
before: {
|
|
2067
|
+
description: "ISO 8601 datetime upper bound.",
|
|
2068
|
+
type: "string",
|
|
2069
|
+
format: "date-time",
|
|
2070
|
+
pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
2071
|
+
},
|
|
2072
|
+
participant: {
|
|
2073
|
+
description: "Participant email or name to filter source records.",
|
|
2074
|
+
type: "string",
|
|
2075
|
+
minLength: 1,
|
|
2076
|
+
maxLength: 500
|
|
2077
|
+
},
|
|
2078
|
+
provider: {
|
|
2079
|
+
description: "Provider identifier such as gmail, gong, or google-calendar.",
|
|
2080
|
+
type: "string",
|
|
2081
|
+
minLength: 1,
|
|
2082
|
+
maxLength: 200
|
|
2083
|
+
},
|
|
2084
|
+
hasTranscript: {
|
|
2085
|
+
description: "Filter call sources by transcript presence.",
|
|
2086
|
+
type: "boolean"
|
|
2087
|
+
},
|
|
2088
|
+
limit: {
|
|
2089
|
+
description: "Results per page.",
|
|
2090
|
+
default: 50,
|
|
2091
|
+
type: "integer",
|
|
2092
|
+
minimum: 1,
|
|
2093
|
+
maximum: 100
|
|
2094
|
+
},
|
|
2095
|
+
cursor: {
|
|
2096
|
+
description: "Pagination cursor.",
|
|
2097
|
+
type: "string",
|
|
2098
|
+
minLength: 1,
|
|
2099
|
+
maxLength: 2000
|
|
2100
|
+
}
|
|
2101
|
+
},
|
|
2102
|
+
additionalProperties: false
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2042
2105
|
outlit_search_customer_context: {
|
|
2043
2106
|
toolName: "outlit_search_customer_context",
|
|
2044
2107
|
description: "Search across all known customer context using a natural-language query. Returns grouped artifact-level results for matching sources and facts. Omit customer to search across all customers in the organization.",
|
|
@@ -2210,7 +2273,7 @@ Returns column definitions and example queries for each view.`,
|
|
|
2210
2273
|
provider: {
|
|
2211
2274
|
description: "Notification provider",
|
|
2212
2275
|
type: "string",
|
|
2213
|
-
enum:
|
|
2276
|
+
enum: ["slack"]
|
|
2214
2277
|
},
|
|
2215
2278
|
channelId: {
|
|
2216
2279
|
description: "Provider-specific destination channel ID",
|
|
@@ -2321,6 +2384,7 @@ Returns column definitions and example queries for each view.`,
|
|
|
2321
2384
|
"behaviorMetrics"
|
|
2322
2385
|
];
|
|
2323
2386
|
customerTimeframes = ["7d", "14d", "30d", "90d"];
|
|
2387
|
+
notificationProviderValues = ["slack"];
|
|
2324
2388
|
notificationSeverityValues = ["low", "medium", "high"];
|
|
2325
2389
|
timelineChannels = [
|
|
2326
2390
|
"SDK",
|
|
@@ -2541,10 +2605,12 @@ function renderTable(headers, rows, emptyMessage = "(no results)") {
|
|
|
2541
2605
|
function renderPaginationHint(pagination, itemCount) {
|
|
2542
2606
|
if (itemCount === 0)
|
|
2543
2607
|
return "";
|
|
2608
|
+
const total = typeof pagination.total === "number" ? pagination.total : null;
|
|
2544
2609
|
if (pagination.hasMore && pagination.nextCursor) {
|
|
2545
|
-
|
|
2610
|
+
const countLabel = total === null ? `${itemCount} results` : `${itemCount} of ${total} total`;
|
|
2611
|
+
return `Showing ${countLabel}. Next page: --cursor ${pagination.nextCursor}`;
|
|
2546
2612
|
}
|
|
2547
|
-
return `Showing all ${
|
|
2613
|
+
return total === null ? `Showing ${itemCount} results.` : `Showing all ${total} results.`;
|
|
2548
2614
|
}
|
|
2549
2615
|
var BOX;
|
|
2550
2616
|
var init_table = __esm(() => {
|
|
@@ -2601,10 +2667,11 @@ async function pingApiKey(apiKey) {
|
|
|
2601
2667
|
const message = payload?.error ?? (text.length > 0 ? text : `API error (${response.status})`);
|
|
2602
2668
|
throw new Error(message);
|
|
2603
2669
|
}
|
|
2670
|
+
return payload;
|
|
2604
2671
|
}
|
|
2605
2672
|
async function validateKeyOrExit(apiKey, json) {
|
|
2606
2673
|
try {
|
|
2607
|
-
await pingApiKey(apiKey);
|
|
2674
|
+
return await pingApiKey(apiKey);
|
|
2608
2675
|
} catch (err) {
|
|
2609
2676
|
return outputError({
|
|
2610
2677
|
message: `API key is invalid or expired: ${errorMessage(err, "unknown error")}`,
|
|
@@ -2931,9 +2998,18 @@ var init_whoami = __esm(() => {
|
|
|
2931
2998
|
const json = !!args.json;
|
|
2932
2999
|
const credential = requireCredential(args["api-key"], json);
|
|
2933
3000
|
const masked = maskKey(credential.key);
|
|
2934
|
-
await validateKeyOrExit(credential.key, json);
|
|
3001
|
+
const validation = await validateKeyOrExit(credential.key, json);
|
|
2935
3002
|
if (isJsonMode(json)) {
|
|
2936
|
-
return outputResult({
|
|
3003
|
+
return outputResult({
|
|
3004
|
+
key: masked,
|
|
3005
|
+
source: credential.source,
|
|
3006
|
+
valid: true,
|
|
3007
|
+
organizationId: validation.organizationId,
|
|
3008
|
+
createdById: validation.createdById,
|
|
3009
|
+
organization: validation.organization,
|
|
3010
|
+
createdBy: validation.createdBy,
|
|
3011
|
+
apiKey: validation.apiKey
|
|
3012
|
+
});
|
|
2937
3013
|
}
|
|
2938
3014
|
process.stdout.write(`${masked} (${credential.source})
|
|
2939
3015
|
`);
|
|
@@ -4877,12 +4953,183 @@ var init_facts = __esm(() => {
|
|
|
4877
4953
|
});
|
|
4878
4954
|
});
|
|
4879
4955
|
|
|
4956
|
+
// src/commands/sources/list.ts
|
|
4957
|
+
var exports_list4 = {};
|
|
4958
|
+
__export(exports_list4, {
|
|
4959
|
+
default: () => list_default4
|
|
4960
|
+
});
|
|
4961
|
+
function parseLimit(value, json) {
|
|
4962
|
+
if (!value)
|
|
4963
|
+
return;
|
|
4964
|
+
const limit = Number(value);
|
|
4965
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > 100) {
|
|
4966
|
+
outputError({
|
|
4967
|
+
message: `--limit must be an integer between 1 and 100 (got: ${value})`,
|
|
4968
|
+
code: "invalid_input"
|
|
4969
|
+
}, json);
|
|
4970
|
+
return;
|
|
4971
|
+
}
|
|
4972
|
+
return limit;
|
|
4973
|
+
}
|
|
4974
|
+
function parseDateArg(name, value, json) {
|
|
4975
|
+
if (!value)
|
|
4976
|
+
return null;
|
|
4977
|
+
if (!ISO_8601_UTC_DATE_TIME_REGEX.test(value)) {
|
|
4978
|
+
outputError({
|
|
4979
|
+
message: `${name} must be a valid ISO 8601 UTC datetime`,
|
|
4980
|
+
code: "invalid_input"
|
|
4981
|
+
}, json);
|
|
4982
|
+
return null;
|
|
4983
|
+
}
|
|
4984
|
+
const date = new Date(value);
|
|
4985
|
+
if (Number.isNaN(date.getTime())) {
|
|
4986
|
+
outputError({
|
|
4987
|
+
message: `${name} must be a valid ISO 8601 datetime`,
|
|
4988
|
+
code: "invalid_input"
|
|
4989
|
+
}, json);
|
|
4990
|
+
return null;
|
|
4991
|
+
}
|
|
4992
|
+
return date;
|
|
4993
|
+
}
|
|
4994
|
+
var sourceTypeDescription2, ISO_8601_UTC_DATE_TIME_REGEX, list_default4;
|
|
4995
|
+
var init_list4 = __esm(() => {
|
|
4996
|
+
init_dist4();
|
|
4997
|
+
init_dist();
|
|
4998
|
+
init_auth();
|
|
4999
|
+
init_output2();
|
|
5000
|
+
init_api();
|
|
5001
|
+
init_output();
|
|
5002
|
+
sourceTypeDescription2 = `${customerSourceTypes.join(", ")} (aliases: ${customerSourceTypeAliases.join(", ")})`;
|
|
5003
|
+
ISO_8601_UTC_DATE_TIME_REGEX = /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/;
|
|
5004
|
+
list_default4 = defineCommand2({
|
|
5005
|
+
meta: {
|
|
5006
|
+
name: "list",
|
|
5007
|
+
description: [
|
|
5008
|
+
"List concrete source records deterministically.",
|
|
5009
|
+
"",
|
|
5010
|
+
"Use this when you need enumerated calls, emails, calendar events, support tickets, or opportunities rather than semantic ranking.",
|
|
5011
|
+
"",
|
|
5012
|
+
"Examples:",
|
|
5013
|
+
" outlit sources list --customer acme.com --source-type CALL",
|
|
5014
|
+
" outlit sources list --participant alice@acme.com --source-type CALENDAR_EVENT --json",
|
|
5015
|
+
" outlit sources list --after 2026-01-01T00:00:00Z --limit 25",
|
|
5016
|
+
"",
|
|
5017
|
+
`Source types: ${sourceTypeDescription2}`,
|
|
5018
|
+
"",
|
|
5019
|
+
AGENT_JSON_HINT
|
|
5020
|
+
].join(`
|
|
5021
|
+
`)
|
|
5022
|
+
},
|
|
5023
|
+
args: {
|
|
5024
|
+
...authArgs,
|
|
5025
|
+
...outputArgs,
|
|
5026
|
+
"source-type": {
|
|
5027
|
+
type: "string",
|
|
5028
|
+
description: `Source type (${sourceTypeDescription2})`
|
|
5029
|
+
},
|
|
5030
|
+
customer: {
|
|
5031
|
+
type: "string",
|
|
5032
|
+
description: "Customer UUID, domain, or name to scope source listing"
|
|
5033
|
+
},
|
|
5034
|
+
participant: {
|
|
5035
|
+
type: "string",
|
|
5036
|
+
description: "Participant email or name to filter source records"
|
|
5037
|
+
},
|
|
5038
|
+
provider: {
|
|
5039
|
+
type: "string",
|
|
5040
|
+
description: "Provider identifier such as gmail, gong, or google-calendar"
|
|
5041
|
+
},
|
|
5042
|
+
"has-transcript": {
|
|
5043
|
+
type: "boolean",
|
|
5044
|
+
description: "Only list call sources with a finalized transcript"
|
|
5045
|
+
},
|
|
5046
|
+
after: {
|
|
5047
|
+
type: "string",
|
|
5048
|
+
description: "Filter to sources occurring after this ISO 8601 datetime"
|
|
5049
|
+
},
|
|
5050
|
+
before: {
|
|
5051
|
+
type: "string",
|
|
5052
|
+
description: "Filter to sources occurring before this ISO 8601 datetime"
|
|
5053
|
+
},
|
|
5054
|
+
limit: {
|
|
5055
|
+
type: "string",
|
|
5056
|
+
description: "Results per page (1-100). Default: 50."
|
|
5057
|
+
},
|
|
5058
|
+
cursor: {
|
|
5059
|
+
type: "string",
|
|
5060
|
+
description: "Pagination cursor from a previous response (pagination.nextCursor)"
|
|
5061
|
+
}
|
|
5062
|
+
},
|
|
5063
|
+
async run({ args }) {
|
|
5064
|
+
const json = !!args.json;
|
|
5065
|
+
const sourceType = args["source-type"] ? normalizeCustomerSourceType(args["source-type"]) : undefined;
|
|
5066
|
+
if (args["source-type"] && !sourceType) {
|
|
5067
|
+
return outputError({
|
|
5068
|
+
message: `--source-type must be one of ${customerSourceTypeInputs.join(", ")}`,
|
|
5069
|
+
code: "invalid_input"
|
|
5070
|
+
}, json);
|
|
5071
|
+
}
|
|
5072
|
+
if (args["has-transcript"] && sourceType && sourceType !== "CALL") {
|
|
5073
|
+
return outputError({
|
|
5074
|
+
message: "--has-transcript can only be used with CALL sources",
|
|
5075
|
+
code: "invalid_input"
|
|
5076
|
+
}, json);
|
|
5077
|
+
}
|
|
5078
|
+
const afterDate = parseDateArg("--after", args.after, json);
|
|
5079
|
+
if (args.after && !afterDate)
|
|
5080
|
+
return;
|
|
5081
|
+
const beforeDate = parseDateArg("--before", args.before, json);
|
|
5082
|
+
if (args.before && !beforeDate)
|
|
5083
|
+
return;
|
|
5084
|
+
if (afterDate && beforeDate && afterDate.getTime() > beforeDate.getTime()) {
|
|
5085
|
+
return outputError({
|
|
5086
|
+
message: "--after must be before or equal to --before",
|
|
5087
|
+
code: "invalid_input"
|
|
5088
|
+
}, json);
|
|
5089
|
+
}
|
|
5090
|
+
const limit = parseLimit(args.limit, json);
|
|
5091
|
+
if (args.limit && !limit)
|
|
5092
|
+
return;
|
|
5093
|
+
const client = await getClientOrExit(args["api-key"], json);
|
|
5094
|
+
const params = {};
|
|
5095
|
+
if (sourceType)
|
|
5096
|
+
params.sourceType = sourceType;
|
|
5097
|
+
if (args.customer)
|
|
5098
|
+
params.customer = args.customer;
|
|
5099
|
+
if (args.participant)
|
|
5100
|
+
params.participant = args.participant;
|
|
5101
|
+
if (args.provider)
|
|
5102
|
+
params.provider = args.provider;
|
|
5103
|
+
if (args["has-transcript"])
|
|
5104
|
+
params.hasTranscript = true;
|
|
5105
|
+
if (args.after)
|
|
5106
|
+
params.after = args.after;
|
|
5107
|
+
if (args.before)
|
|
5108
|
+
params.before = args.before;
|
|
5109
|
+
if (limit)
|
|
5110
|
+
params.limit = limit;
|
|
5111
|
+
if (args.cursor)
|
|
5112
|
+
params.cursor = args.cursor;
|
|
5113
|
+
return runTool(client, customerToolContracts.outlit_list_sources.toolName, params, json, {
|
|
5114
|
+
table: {
|
|
5115
|
+
columns: [
|
|
5116
|
+
{ header: "TYPE", key: "sourceType" },
|
|
5117
|
+
{ header: "OCCURRED", key: "occurredAt" },
|
|
5118
|
+
{ header: "TITLE", key: "title" },
|
|
5119
|
+
{ header: "SOURCE ID", key: "sourceId" }
|
|
5120
|
+
]
|
|
5121
|
+
}
|
|
5122
|
+
});
|
|
5123
|
+
}
|
|
5124
|
+
});
|
|
5125
|
+
});
|
|
5126
|
+
|
|
4880
5127
|
// src/commands/sources/get.ts
|
|
4881
5128
|
var exports_get3 = {};
|
|
4882
5129
|
__export(exports_get3, {
|
|
4883
5130
|
default: () => get_default3
|
|
4884
5131
|
});
|
|
4885
|
-
var
|
|
5132
|
+
var sourceTypeDescription3, get_default3;
|
|
4886
5133
|
var init_get3 = __esm(() => {
|
|
4887
5134
|
init_dist4();
|
|
4888
5135
|
init_dist();
|
|
@@ -4890,19 +5137,21 @@ var init_get3 = __esm(() => {
|
|
|
4890
5137
|
init_output2();
|
|
4891
5138
|
init_api();
|
|
4892
5139
|
init_output();
|
|
4893
|
-
|
|
5140
|
+
sourceTypeDescription3 = `${customerSourceTypes.join(", ")} (aliases: ${customerSourceTypeAliases.join(", ")})`;
|
|
4894
5141
|
get_default3 = defineCommand2({
|
|
4895
5142
|
meta: {
|
|
4896
5143
|
name: "get",
|
|
4897
5144
|
description: [
|
|
4898
5145
|
"Get one exact source by source type and source id.",
|
|
5146
|
+
"Returns the same normalized source envelope as `sources list`, with more detailed source-specific fields when available.",
|
|
4899
5147
|
"",
|
|
4900
5148
|
"Examples:",
|
|
4901
5149
|
" outlit sources get --source-type CALL --source-id call_123",
|
|
4902
5150
|
" outlit sources get --source-type OPPORTUNITY --source-id opp_123",
|
|
4903
5151
|
" outlit sources get --source-type SUPPORT_TICKET --source-id ticket_456 --json",
|
|
4904
5152
|
"",
|
|
4905
|
-
`Source types: ${
|
|
5153
|
+
`Source types: ${sourceTypeDescription3}`,
|
|
5154
|
+
"Use `outlit sources list` when you need deterministic enumeration rather than exact lookup.",
|
|
4906
5155
|
"",
|
|
4907
5156
|
AGENT_JSON_HINT
|
|
4908
5157
|
].join(`
|
|
@@ -4913,7 +5162,7 @@ var init_get3 = __esm(() => {
|
|
|
4913
5162
|
...outputArgs,
|
|
4914
5163
|
"source-type": {
|
|
4915
5164
|
type: "string",
|
|
4916
|
-
description: `Source type (${
|
|
5165
|
+
description: `Source type (${sourceTypeDescription3})`,
|
|
4917
5166
|
required: true
|
|
4918
5167
|
},
|
|
4919
5168
|
"source-id": {
|
|
@@ -4953,9 +5202,10 @@ var init_sources = __esm(() => {
|
|
|
4953
5202
|
meta: {
|
|
4954
5203
|
name: "sources",
|
|
4955
5204
|
description: [
|
|
4956
|
-
"
|
|
5205
|
+
"List or fetch concrete customer source records.",
|
|
4957
5206
|
"",
|
|
4958
5207
|
"Subcommands:",
|
|
5208
|
+
" list -- list source records with deterministic filters",
|
|
4959
5209
|
" get -- fetch one exact source by sourceType and sourceId",
|
|
4960
5210
|
"",
|
|
4961
5211
|
AGENT_JSON_HINT
|
|
@@ -4963,6 +5213,7 @@ var init_sources = __esm(() => {
|
|
|
4963
5213
|
`)
|
|
4964
5214
|
},
|
|
4965
5215
|
subCommands: {
|
|
5216
|
+
list: () => Promise.resolve().then(() => (init_list4(), exports_list4)).then((m) => m.default),
|
|
4966
5217
|
get: () => Promise.resolve().then(() => (init_get3(), exports_get3)).then((m) => m.default)
|
|
4967
5218
|
}
|
|
4968
5219
|
});
|
|
@@ -4973,7 +5224,7 @@ var exports_search = {};
|
|
|
4973
5224
|
__export(exports_search, {
|
|
4974
5225
|
default: () => search_default
|
|
4975
5226
|
});
|
|
4976
|
-
var
|
|
5227
|
+
var sourceTypeDescription4, search_default;
|
|
4977
5228
|
var init_search = __esm(() => {
|
|
4978
5229
|
init_dist4();
|
|
4979
5230
|
init_dist();
|
|
@@ -4982,7 +5233,7 @@ var init_search = __esm(() => {
|
|
|
4982
5233
|
init_api();
|
|
4983
5234
|
init_config();
|
|
4984
5235
|
init_output();
|
|
4985
|
-
|
|
5236
|
+
sourceTypeDescription4 = `${customerSourceTypes.join(", ")} (aliases: ${customerSourceTypeAliases.join(", ")})`;
|
|
4986
5237
|
search_default = defineCommand2({
|
|
4987
5238
|
meta: {
|
|
4988
5239
|
name: "search",
|
|
@@ -4990,6 +5241,7 @@ var init_search = __esm(() => {
|
|
|
4990
5241
|
"Search customer context using natural language.",
|
|
4991
5242
|
"",
|
|
4992
5243
|
"Performs a semantic search over grouped source and fact results.",
|
|
5244
|
+
"Use `outlit sources list` when you need deterministic source enumeration rather than semantic ranking.",
|
|
4993
5245
|
"Optionally scope to a specific customer with --customer.",
|
|
4994
5246
|
"",
|
|
4995
5247
|
"Examples:",
|
|
@@ -5029,7 +5281,7 @@ var init_search = __esm(() => {
|
|
|
5029
5281
|
},
|
|
5030
5282
|
"source-types": {
|
|
5031
5283
|
type: "string",
|
|
5032
|
-
description: `Comma-separated generic source type filter (${
|
|
5284
|
+
description: `Comma-separated generic source type filter (${sourceTypeDescription4})`
|
|
5033
5285
|
}
|
|
5034
5286
|
},
|
|
5035
5287
|
async run({ args }) {
|
|
@@ -5548,17 +5800,17 @@ var init_providers = __esm(() => {
|
|
|
5548
5800
|
});
|
|
5549
5801
|
|
|
5550
5802
|
// src/commands/integrations/list.ts
|
|
5551
|
-
var
|
|
5552
|
-
__export(
|
|
5553
|
-
default: () =>
|
|
5803
|
+
var exports_list5 = {};
|
|
5804
|
+
__export(exports_list5, {
|
|
5805
|
+
default: () => list_default5
|
|
5554
5806
|
});
|
|
5555
|
-
var
|
|
5556
|
-
var
|
|
5807
|
+
var list_default5;
|
|
5808
|
+
var init_list5 = __esm(() => {
|
|
5557
5809
|
init_dist();
|
|
5558
5810
|
init_auth();
|
|
5559
5811
|
init_output2();
|
|
5560
5812
|
init_api();
|
|
5561
|
-
|
|
5813
|
+
list_default5 = defineCommand2({
|
|
5562
5814
|
meta: {
|
|
5563
5815
|
name: "list",
|
|
5564
5816
|
description: [
|
|
@@ -6032,7 +6284,7 @@ var init_integrations = __esm(() => {
|
|
|
6032
6284
|
`)
|
|
6033
6285
|
},
|
|
6034
6286
|
subCommands: {
|
|
6035
|
-
list: () => Promise.resolve().then(() => (
|
|
6287
|
+
list: () => Promise.resolve().then(() => (init_list5(), exports_list5)).then((m) => m.default),
|
|
6036
6288
|
add: () => Promise.resolve().then(() => (init_add(), exports_add)).then((m) => m.default),
|
|
6037
6289
|
remove: () => Promise.resolve().then(() => (init_remove(), exports_remove)).then((m) => m.default),
|
|
6038
6290
|
status: () => Promise.resolve().then(() => (init_status2(), exports_status2)).then((m) => m.default)
|
|
@@ -6237,8 +6489,8 @@ function generateFish() {
|
|
|
6237
6489
|
}
|
|
6238
6490
|
}
|
|
6239
6491
|
}
|
|
6240
|
-
return lines.join(`
|
|
6241
|
-
`)
|
|
6492
|
+
return `${lines.join(`
|
|
6493
|
+
`)}
|
|
6242
6494
|
`;
|
|
6243
6495
|
}
|
|
6244
6496
|
var JSON_F, API_KEY_F, LIMIT_F, CURSOR_F, COMMON, PAGINATED, ACTIVITY_ORDER, COMMANDS, cmdsWithSubs, leafCmds, SCRIPTS, completions_default;
|
|
@@ -6361,8 +6613,22 @@ var init_completions = __esm(() => {
|
|
|
6361
6613
|
},
|
|
6362
6614
|
{
|
|
6363
6615
|
name: "sources",
|
|
6364
|
-
desc: "
|
|
6616
|
+
desc: "List or fetch concrete source records",
|
|
6365
6617
|
subs: [
|
|
6618
|
+
{
|
|
6619
|
+
name: "list",
|
|
6620
|
+
desc: "List source records",
|
|
6621
|
+
flags: [
|
|
6622
|
+
...PAGINATED,
|
|
6623
|
+
{ name: "--source-type", desc: "Source type" },
|
|
6624
|
+
{ name: "--customer", desc: "Scope to customer" },
|
|
6625
|
+
{ name: "--participant", desc: "Filter by participant" },
|
|
6626
|
+
{ name: "--provider", desc: "Filter by provider" },
|
|
6627
|
+
{ name: "--has-transcript", desc: "Only calls with transcripts" },
|
|
6628
|
+
{ name: "--after", desc: "Sources after date (ISO 8601)" },
|
|
6629
|
+
{ name: "--before", desc: "Sources before date (ISO 8601)" }
|
|
6630
|
+
]
|
|
6631
|
+
},
|
|
6366
6632
|
{
|
|
6367
6633
|
name: "get",
|
|
6368
6634
|
desc: "Get one exact source record",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outlit/cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "CLI for Outlit customer intelligence platform",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@clack/prompts": "^1.0.1",
|
|
34
|
-
"@outlit/tools": "^0.2.
|
|
34
|
+
"@outlit/tools": "^0.2.1",
|
|
35
35
|
"citty": "^0.2.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|