@outlit/cli 3.2.2 → 3.2.3
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 +877 -31
- 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: "3.2.
|
|
107
|
+
version: "3.2.3",
|
|
108
108
|
description: "CLI for querying Outlit customer context and installing agent skills",
|
|
109
109
|
license: "Apache-2.0",
|
|
110
110
|
repository: {
|
|
@@ -147,7 +147,7 @@ var init_package = __esm(() => {
|
|
|
147
147
|
},
|
|
148
148
|
dependencies: {
|
|
149
149
|
"@clack/prompts": "^1.0.1",
|
|
150
|
-
"@outlit/tools": "^2.2.
|
|
150
|
+
"@outlit/tools": "^2.2.2",
|
|
151
151
|
citty: "^0.2.1"
|
|
152
152
|
},
|
|
153
153
|
devDependencies: {
|
|
@@ -1742,6 +1742,7 @@ var init_dist4 = __esm(() => {
|
|
|
1742
1742
|
"outlit_enable_destination",
|
|
1743
1743
|
"outlit_disable_destination",
|
|
1744
1744
|
"outlit_archive_destination",
|
|
1745
|
+
"outlit_submit_feedback",
|
|
1745
1746
|
"outlit_get_integration_capabilities",
|
|
1746
1747
|
"outlit_begin_integration_setup",
|
|
1747
1748
|
"outlit_get_integration_setup_status",
|
|
@@ -1773,6 +1774,10 @@ var init_dist4 = __esm(() => {
|
|
|
1773
1774
|
ownerDomain: "customers",
|
|
1774
1775
|
title: "List Customers",
|
|
1775
1776
|
description: "Browse and filter customers. Use this to find customers by billing status, activity recency, revenue, or name. Returns a paginated list with summary info (MRR, last activity, status).",
|
|
1777
|
+
annotations: {
|
|
1778
|
+
readOnlyHint: true,
|
|
1779
|
+
destructiveHint: false
|
|
1780
|
+
},
|
|
1776
1781
|
inputSchema: {
|
|
1777
1782
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
1778
1783
|
type: "object",
|
|
@@ -2094,6 +2099,10 @@ var init_dist4 = __esm(() => {
|
|
|
2094
2099
|
ownerDomain: "users",
|
|
2095
2100
|
title: "List Users",
|
|
2096
2101
|
description: "Browse and filter users. Use this to find users by journey stage, activity recency, customer, or email/name. Returns a paginated list with activity info.",
|
|
2102
|
+
annotations: {
|
|
2103
|
+
readOnlyHint: true,
|
|
2104
|
+
destructiveHint: false
|
|
2105
|
+
},
|
|
2097
2106
|
inputSchema: {
|
|
2098
2107
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
2099
2108
|
type: "object",
|
|
@@ -2374,6 +2383,10 @@ var init_dist4 = __esm(() => {
|
|
|
2374
2383
|
ownerDomain: "users",
|
|
2375
2384
|
title: "List Workspace Users",
|
|
2376
2385
|
description: "List active workspace members who resolve to local Outlit users. Use this to discover exact user IDs for customer ownership and access commands or to browse account ownership.",
|
|
2386
|
+
annotations: {
|
|
2387
|
+
readOnlyHint: true,
|
|
2388
|
+
destructiveHint: false
|
|
2389
|
+
},
|
|
2377
2390
|
inputSchema: {
|
|
2378
2391
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
2379
2392
|
type: "object",
|
|
@@ -2561,6 +2574,10 @@ var init_dist4 = __esm(() => {
|
|
|
2561
2574
|
ownerDomain: "customers",
|
|
2562
2575
|
title: "Get Customer",
|
|
2563
2576
|
description: "Get full details for a single customer. Optionally include users, revenue, recent activity, engagement metrics, or company enrichment.",
|
|
2577
|
+
annotations: {
|
|
2578
|
+
readOnlyHint: true,
|
|
2579
|
+
destructiveHint: false
|
|
2580
|
+
},
|
|
2564
2581
|
inputSchema: {
|
|
2565
2582
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
2566
2583
|
type: "object",
|
|
@@ -3363,6 +3380,10 @@ var init_dist4 = __esm(() => {
|
|
|
3363
3380
|
ownerDomain: "customers",
|
|
3364
3381
|
title: "Get Customer Relationship",
|
|
3365
3382
|
description: "Get the bounded, evidence-backed relationship shown on a customer page. Returns a summary, categorized current statements with ISO observed-at timestamps when supported, source labels, and the compiled summary timestamp when available without raw facts, quotes, or internal status.",
|
|
3383
|
+
annotations: {
|
|
3384
|
+
readOnlyHint: true,
|
|
3385
|
+
destructiveHint: false
|
|
3386
|
+
},
|
|
3366
3387
|
inputSchema: {
|
|
3367
3388
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
3368
3389
|
type: "object",
|
|
@@ -3514,6 +3535,10 @@ var init_dist4 = __esm(() => {
|
|
|
3514
3535
|
ownerDomain: "customers",
|
|
3515
3536
|
title: "Assign Customer Owner",
|
|
3516
3537
|
description: "Assign an active workspace member as this customer’s primary owner. The former owner keeps Editor access.",
|
|
3538
|
+
annotations: {
|
|
3539
|
+
readOnlyHint: false,
|
|
3540
|
+
destructiveHint: false
|
|
3541
|
+
},
|
|
3517
3542
|
inputSchema: {
|
|
3518
3543
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
3519
3544
|
type: "object",
|
|
@@ -3570,6 +3595,10 @@ var init_dist4 = __esm(() => {
|
|
|
3570
3595
|
ownerDomain: "customers",
|
|
3571
3596
|
title: "Grant Customer Access",
|
|
3572
3597
|
description: "Share a customer with an active workspace member as a Viewer or Editor. The customer ID must be exact.",
|
|
3598
|
+
annotations: {
|
|
3599
|
+
readOnlyHint: false,
|
|
3600
|
+
destructiveHint: false
|
|
3601
|
+
},
|
|
3573
3602
|
inputSchema: {
|
|
3574
3603
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
3575
3604
|
type: "object",
|
|
@@ -3651,6 +3680,10 @@ var init_dist4 = __esm(() => {
|
|
|
3651
3680
|
ownerDomain: "customers",
|
|
3652
3681
|
title: "Update Customer Access",
|
|
3653
3682
|
description: "Change an existing customer collaborator between Viewer and Editor.",
|
|
3683
|
+
annotations: {
|
|
3684
|
+
readOnlyHint: false,
|
|
3685
|
+
destructiveHint: false
|
|
3686
|
+
},
|
|
3654
3687
|
inputSchema: {
|
|
3655
3688
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
3656
3689
|
type: "object",
|
|
@@ -3732,6 +3765,10 @@ var init_dist4 = __esm(() => {
|
|
|
3732
3765
|
ownerDomain: "customers",
|
|
3733
3766
|
title: "Revoke Customer Access",
|
|
3734
3767
|
description: "Remove a collaborator’s explicit access to a customer.",
|
|
3768
|
+
annotations: {
|
|
3769
|
+
readOnlyHint: false,
|
|
3770
|
+
destructiveHint: true
|
|
3771
|
+
},
|
|
3735
3772
|
inputSchema: {
|
|
3736
3773
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
3737
3774
|
type: "object",
|
|
@@ -3776,7 +3813,11 @@ var init_dist4 = __esm(() => {
|
|
|
3776
3813
|
commandVersion: 1,
|
|
3777
3814
|
ownerDomain: "customer-context",
|
|
3778
3815
|
title: "Get Customer Timeline",
|
|
3779
|
-
description:
|
|
3816
|
+
description: 'Get the chronological activity timeline for a customer — compact event entries by default, so unfiltered calls stay small. When channels is omitted the response covers the relationship chronology (communication, meetings, support, CRM, billing). Pass channels:["PRODUCT"] to add a weekly product-usage aggregate; set productDetail to "material" or "raw" to also return individual product events. Set includeMetadata:true only when a specific event metadata field is needed; pass sourceType/sourceId or sourceRef to outlit_get_source to read a full underlying record.',
|
|
3817
|
+
annotations: {
|
|
3818
|
+
readOnlyHint: true,
|
|
3819
|
+
destructiveHint: false
|
|
3820
|
+
},
|
|
3780
3821
|
inputSchema: {
|
|
3781
3822
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
3782
3823
|
type: "object",
|
|
@@ -3788,7 +3829,7 @@ var init_dist4 = __esm(() => {
|
|
|
3788
3829
|
description: "Customer ID or domain"
|
|
3789
3830
|
},
|
|
3790
3831
|
channels: {
|
|
3791
|
-
description:
|
|
3832
|
+
description: 'Filter by event channel. When omitted, defaults to the relationship channels COMMUNICATION, MEETING, SUPPORT, CRM, and BILLING. PRODUCT, IDENTITY, DOCUMENT, and SYSTEM are included only when listed here. Pass channels:["PRODUCT"] to read the weekly product usage aggregate, and combine with productDetail to also return individual product events.',
|
|
3792
3833
|
type: "array",
|
|
3793
3834
|
items: {
|
|
3794
3835
|
type: "string",
|
|
@@ -3805,6 +3846,19 @@ var init_dist4 = __esm(() => {
|
|
|
3805
3846
|
]
|
|
3806
3847
|
}
|
|
3807
3848
|
},
|
|
3849
|
+
productDetail: {
|
|
3850
|
+
description: 'Controls whether PRODUCT-channel rows appear in `events` when channels includes PRODUCT. "none" (default): product activity is returned only as the `product` weekly usage aggregate — no product telemetry rows. "material": also include individual product events that match the organization\'s configured value-feature event names (each keeps an `id` usable for citations); when the organization has no configured value features this returns no product rows, but the `product` aggregate is still returned. "raw": include every product event, including autocapture, pageview, feature-flag, and identity telemetry — large; request only when the aggregate and material events are insufficient.',
|
|
3851
|
+
type: "string",
|
|
3852
|
+
enum: [
|
|
3853
|
+
"none",
|
|
3854
|
+
"material",
|
|
3855
|
+
"raw"
|
|
3856
|
+
]
|
|
3857
|
+
},
|
|
3858
|
+
includeMetadata: {
|
|
3859
|
+
description: "Include each event's raw metadata/properties payload. Default false: events return compact fields only, keeping the response small. Pass true only when a specific metadata field is needed.",
|
|
3860
|
+
type: "boolean"
|
|
3861
|
+
},
|
|
3808
3862
|
eventTypes: {
|
|
3809
3863
|
description: "Filter by event type",
|
|
3810
3864
|
type: "array",
|
|
@@ -3861,7 +3915,8 @@ var init_dist4 = __esm(() => {
|
|
|
3861
3915
|
type: "object",
|
|
3862
3916
|
properties: {
|
|
3863
3917
|
id: {
|
|
3864
|
-
type: "string"
|
|
3918
|
+
type: "string",
|
|
3919
|
+
description: "Stable event identifier. Pass as timeline_event eventId when citing this event."
|
|
3865
3920
|
},
|
|
3866
3921
|
eventType: {
|
|
3867
3922
|
type: "string"
|
|
@@ -3901,7 +3956,8 @@ var init_dist4 = __esm(() => {
|
|
|
3901
3956
|
{
|
|
3902
3957
|
type: "null"
|
|
3903
3958
|
}
|
|
3904
|
-
]
|
|
3959
|
+
],
|
|
3960
|
+
description: "Bounded display summary, truncated past roughly 2 KB. Use outlit_get_source on sourceType/sourceId for the full underlying content."
|
|
3905
3961
|
},
|
|
3906
3962
|
occurredAt: {
|
|
3907
3963
|
type: "string",
|
|
@@ -3939,6 +3995,7 @@ var init_dist4 = __esm(() => {
|
|
|
3939
3995
|
]
|
|
3940
3996
|
},
|
|
3941
3997
|
sourceRef: {
|
|
3998
|
+
description: "Canonical source handle for this event, emitted only when outlit_get_source can retrieve the underlying record; omitted when the event is marked unreadable.",
|
|
3942
3999
|
type: "object",
|
|
3943
4000
|
properties: {
|
|
3944
4001
|
sourceType: {
|
|
@@ -3954,7 +4011,17 @@ var init_dist4 = __esm(() => {
|
|
|
3954
4011
|
],
|
|
3955
4012
|
additionalProperties: false
|
|
3956
4013
|
},
|
|
4014
|
+
unreadable: {
|
|
4015
|
+
description: "Present only when the event's underlying source record cannot be retrieved via outlit_get_source. Do not retry source lookups for this event.",
|
|
4016
|
+
type: "boolean",
|
|
4017
|
+
const: true
|
|
4018
|
+
},
|
|
4019
|
+
unreadableReason: {
|
|
4020
|
+
description: "Why the event's source is unreadable, e.g. unresolved_source or ambiguous_source.",
|
|
4021
|
+
type: "string"
|
|
4022
|
+
},
|
|
3957
4023
|
metadata: {
|
|
4024
|
+
description: "Raw event properties. Present only when the request set includeMetadata:true.",
|
|
3958
4025
|
type: "object",
|
|
3959
4026
|
propertyNames: {
|
|
3960
4027
|
type: "string"
|
|
@@ -3972,8 +4039,7 @@ var init_dist4 = __esm(() => {
|
|
|
3972
4039
|
"occurredAt",
|
|
3973
4040
|
"contact",
|
|
3974
4041
|
"sourceType",
|
|
3975
|
-
"sourceId"
|
|
3976
|
-
"metadata"
|
|
4042
|
+
"sourceId"
|
|
3977
4043
|
],
|
|
3978
4044
|
additionalProperties: false
|
|
3979
4045
|
}
|
|
@@ -3993,11 +4059,112 @@ var init_dist4 = __esm(() => {
|
|
|
3993
4059
|
type: "null"
|
|
3994
4060
|
}
|
|
3995
4061
|
]
|
|
4062
|
+
},
|
|
4063
|
+
effectiveLimit: {
|
|
4064
|
+
type: "integer",
|
|
4065
|
+
minimum: 1,
|
|
4066
|
+
maximum: 9007199254740991,
|
|
4067
|
+
description: "The maximum number of events a page of this response can contain. Responses can hold fewer events than requested when hosted response-size limits apply; callers should rely on pagination.hasMore/nextCursor rather than event count to detect truncation."
|
|
3996
4068
|
}
|
|
3997
4069
|
},
|
|
3998
4070
|
required: [
|
|
3999
4071
|
"hasMore",
|
|
4000
|
-
"nextCursor"
|
|
4072
|
+
"nextCursor",
|
|
4073
|
+
"effectiveLimit"
|
|
4074
|
+
],
|
|
4075
|
+
additionalProperties: false
|
|
4076
|
+
},
|
|
4077
|
+
product: {
|
|
4078
|
+
description: 'Present when the request\'s channels include PRODUCT. Weekly product usage aggregate for the requested window: value-feature event counts and distinct active users per UTC week, plus the window\'s top value-feature event names. Individual product events appear in `events` only when productDetail is "material" or "raw".',
|
|
4079
|
+
type: "object",
|
|
4080
|
+
properties: {
|
|
4081
|
+
windowStartAt: {
|
|
4082
|
+
type: "string",
|
|
4083
|
+
format: "date-time",
|
|
4084
|
+
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))$",
|
|
4085
|
+
description: "Start of the aggregate coverage window: the UTC week containing the requested start (or the earliest retained week)."
|
|
4086
|
+
},
|
|
4087
|
+
windowEndAt: {
|
|
4088
|
+
type: "string",
|
|
4089
|
+
format: "date-time",
|
|
4090
|
+
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))$",
|
|
4091
|
+
description: "End of the aggregate coverage window (the request end bound)"
|
|
4092
|
+
},
|
|
4093
|
+
weeklyBuckets: {
|
|
4094
|
+
type: "array",
|
|
4095
|
+
items: {
|
|
4096
|
+
type: "object",
|
|
4097
|
+
properties: {
|
|
4098
|
+
weekStartAt: {
|
|
4099
|
+
type: "string",
|
|
4100
|
+
format: "date-time",
|
|
4101
|
+
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))$",
|
|
4102
|
+
description: "Start of the bucket's UTC week (Monday 00:00:00Z)"
|
|
4103
|
+
},
|
|
4104
|
+
events: {
|
|
4105
|
+
type: "integer",
|
|
4106
|
+
minimum: 0,
|
|
4107
|
+
maximum: 9007199254740991,
|
|
4108
|
+
description: "Events in this week matching the organization's configured value features"
|
|
4109
|
+
},
|
|
4110
|
+
activeUsers: {
|
|
4111
|
+
type: "integer",
|
|
4112
|
+
minimum: 0,
|
|
4113
|
+
maximum: 9007199254740991,
|
|
4114
|
+
description: "Distinct users with product activity this week"
|
|
4115
|
+
}
|
|
4116
|
+
},
|
|
4117
|
+
required: [
|
|
4118
|
+
"weekStartAt",
|
|
4119
|
+
"events",
|
|
4120
|
+
"activeUsers"
|
|
4121
|
+
],
|
|
4122
|
+
additionalProperties: false
|
|
4123
|
+
},
|
|
4124
|
+
description: "UTC week buckets covering the requested window, oldest first"
|
|
4125
|
+
},
|
|
4126
|
+
topEventNames: {
|
|
4127
|
+
type: "array",
|
|
4128
|
+
items: {
|
|
4129
|
+
type: "object",
|
|
4130
|
+
properties: {
|
|
4131
|
+
eventName: {
|
|
4132
|
+
type: "string"
|
|
4133
|
+
},
|
|
4134
|
+
events: {
|
|
4135
|
+
type: "integer",
|
|
4136
|
+
minimum: 0,
|
|
4137
|
+
maximum: 9007199254740991
|
|
4138
|
+
}
|
|
4139
|
+
},
|
|
4140
|
+
required: [
|
|
4141
|
+
"eventName",
|
|
4142
|
+
"events"
|
|
4143
|
+
],
|
|
4144
|
+
additionalProperties: false
|
|
4145
|
+
},
|
|
4146
|
+
description: "Most frequent configured value-feature event names across the window"
|
|
4147
|
+
}
|
|
4148
|
+
},
|
|
4149
|
+
required: [
|
|
4150
|
+
"windowStartAt",
|
|
4151
|
+
"windowEndAt",
|
|
4152
|
+
"weeklyBuckets",
|
|
4153
|
+
"topEventNames"
|
|
4154
|
+
],
|
|
4155
|
+
additionalProperties: false
|
|
4156
|
+
},
|
|
4157
|
+
productUnavailable: {
|
|
4158
|
+
description: "Present only when channels included PRODUCT but the weekly usage aggregate could not be computed. Report product usage as unavailable — never as zero or absent usage. When configured value-feature names are still known, material product events are returned in `events` instead of the aggregate.",
|
|
4159
|
+
type: "object",
|
|
4160
|
+
properties: {
|
|
4161
|
+
reason: {
|
|
4162
|
+
type: "string",
|
|
4163
|
+
description: "Machine-readable reason the usage aggregate could not be computed"
|
|
4164
|
+
}
|
|
4165
|
+
},
|
|
4166
|
+
required: [
|
|
4167
|
+
"reason"
|
|
4001
4168
|
],
|
|
4002
4169
|
additionalProperties: false
|
|
4003
4170
|
}
|
|
@@ -4016,6 +4183,10 @@ var init_dist4 = __esm(() => {
|
|
|
4016
4183
|
ownerDomain: "customer-context",
|
|
4017
4184
|
title: "List Customer Facts",
|
|
4018
4185
|
description: "List structured facts known about a customer. Use filters like status, sourceTypes, factTypes, factCategories, and date bounds to narrow the result set. For topic-specific retrieval, use outlit_search_customer_context instead.",
|
|
4186
|
+
annotations: {
|
|
4187
|
+
readOnlyHint: true,
|
|
4188
|
+
destructiveHint: false
|
|
4189
|
+
},
|
|
4019
4190
|
inputSchema: {
|
|
4020
4191
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
4021
4192
|
type: "object",
|
|
@@ -4702,6 +4873,10 @@ CHAMPION_RISK: Historical broad relationship-risk fact retained for existing row
|
|
|
4702
4873
|
ownerDomain: "customer-context",
|
|
4703
4874
|
title: "Get Customer Fact",
|
|
4704
4875
|
description: "Get one exact fact by ID. Returns the canonical fact shape and optionally expands requested related data such as evidence.",
|
|
4876
|
+
annotations: {
|
|
4877
|
+
readOnlyHint: true,
|
|
4878
|
+
destructiveHint: false
|
|
4879
|
+
},
|
|
4705
4880
|
inputSchema: {
|
|
4706
4881
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
4707
4882
|
type: "object",
|
|
@@ -5204,6 +5379,10 @@ CHAMPION_RISK: Historical broad relationship-risk fact retained for existing row
|
|
|
5204
5379
|
ownerDomain: "customer-context",
|
|
5205
5380
|
title: "Get Source",
|
|
5206
5381
|
description: "Get one exact source record by generic sourceType and sourceId. Use this when you already know the concrete underlying source you want to inspect.",
|
|
5382
|
+
annotations: {
|
|
5383
|
+
readOnlyHint: true,
|
|
5384
|
+
destructiveHint: false
|
|
5385
|
+
},
|
|
5207
5386
|
inputSchema: {
|
|
5208
5387
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
5209
5388
|
type: "object",
|
|
@@ -5584,6 +5763,10 @@ CHAMPION_RISK: Historical broad relationship-risk fact retained for existing row
|
|
|
5584
5763
|
ownerDomain: "customer-context",
|
|
5585
5764
|
title: "List Sources",
|
|
5586
5765
|
description: "List concrete source records deterministically. Use this instead of semantic search when you need enumerated calls, emails, calendar events, support tickets, Slack conversations, or opportunities.",
|
|
5766
|
+
annotations: {
|
|
5767
|
+
readOnlyHint: true,
|
|
5768
|
+
destructiveHint: false
|
|
5769
|
+
},
|
|
5587
5770
|
inputSchema: {
|
|
5588
5771
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
5589
5772
|
type: "object",
|
|
@@ -6027,6 +6210,10 @@ CHAMPION_RISK: Historical broad relationship-risk fact retained for existing row
|
|
|
6027
6210
|
ownerDomain: "customer-context",
|
|
6028
6211
|
title: "Search Customer Context",
|
|
6029
6212
|
description: "Search across all known customer context using a natural-language query. Returns ranked artifact-level discovery previews with at most two matching excerpts per source or fact. Use outlit_get_source with a returned sourceType and sourceId when you need the canonical source contents. Omit customer to search across all customers in the organization.",
|
|
6213
|
+
annotations: {
|
|
6214
|
+
readOnlyHint: true,
|
|
6215
|
+
destructiveHint: false
|
|
6216
|
+
},
|
|
6030
6217
|
inputSchema: {
|
|
6031
6218
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
6032
6219
|
type: "object",
|
|
@@ -6816,6 +7003,10 @@ Example queries:
|
|
|
6816
7003
|
- SELECT event_name, count(*) FROM activity GROUP BY 1 ORDER BY 2 DESC LIMIT 10
|
|
6817
7004
|
- SELECT billing_status, sum(mrr_cents)/100 as mrr FROM customers GROUP BY 1
|
|
6818
7005
|
- SELECT * FROM activity WHERE customer_id = 'cust_123' ORDER BY occurred_at DESC LIMIT 50`,
|
|
7006
|
+
annotations: {
|
|
7007
|
+
readOnlyHint: true,
|
|
7008
|
+
destructiveHint: false
|
|
7009
|
+
},
|
|
6819
7010
|
inputSchema: {
|
|
6820
7011
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
6821
7012
|
type: "object",
|
|
@@ -6898,6 +7089,10 @@ Example queries:
|
|
|
6898
7089
|
|
|
6899
7090
|
Use this to discover column names, types, and descriptions before writing SQL queries.
|
|
6900
7091
|
Returns column definitions and example queries for each view.`,
|
|
7092
|
+
annotations: {
|
|
7093
|
+
readOnlyHint: true,
|
|
7094
|
+
destructiveHint: false
|
|
7095
|
+
},
|
|
6901
7096
|
inputSchema: {
|
|
6902
7097
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
6903
7098
|
type: "object",
|
|
@@ -7102,6 +7297,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
7102
7297
|
ownerDomain: "destinations",
|
|
7103
7298
|
title: "List Destinations",
|
|
7104
7299
|
description: "List configured destinations using safe status fields and masked configuration only.",
|
|
7300
|
+
annotations: {
|
|
7301
|
+
readOnlyHint: true,
|
|
7302
|
+
destructiveHint: false
|
|
7303
|
+
},
|
|
7105
7304
|
inputSchema: {
|
|
7106
7305
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
7107
7306
|
type: "object",
|
|
@@ -7481,6 +7680,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
7481
7680
|
ownerDomain: "destinations",
|
|
7482
7681
|
title: "Get Destination",
|
|
7483
7682
|
description: "Get one destination using safe status fields and masked configuration only.",
|
|
7683
|
+
annotations: {
|
|
7684
|
+
readOnlyHint: true,
|
|
7685
|
+
destructiveHint: false
|
|
7686
|
+
},
|
|
7484
7687
|
inputSchema: {
|
|
7485
7688
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
7486
7689
|
type: "object",
|
|
@@ -7866,6 +8069,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
7866
8069
|
ownerDomain: "destinations",
|
|
7867
8070
|
title: "Create Destination",
|
|
7868
8071
|
description: "Create a Slack channel destination from an available channel.",
|
|
8072
|
+
annotations: {
|
|
8073
|
+
readOnlyHint: false,
|
|
8074
|
+
destructiveHint: false
|
|
8075
|
+
},
|
|
7869
8076
|
inputSchema: {
|
|
7870
8077
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
7871
8078
|
type: "object",
|
|
@@ -8270,6 +8477,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
8270
8477
|
ownerDomain: "destinations",
|
|
8271
8478
|
title: "Update Destination",
|
|
8272
8479
|
description: "Update ordinary destination metadata. Use the dedicated enable or disable tool for lifecycle state.",
|
|
8480
|
+
annotations: {
|
|
8481
|
+
readOnlyHint: false,
|
|
8482
|
+
destructiveHint: false
|
|
8483
|
+
},
|
|
8273
8484
|
inputSchema: {
|
|
8274
8485
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
8275
8486
|
type: "object",
|
|
@@ -8669,6 +8880,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
8669
8880
|
ownerDomain: "destinations",
|
|
8670
8881
|
title: "Enable Destination",
|
|
8671
8882
|
description: "Enable an ordinary destination that is ready for delivery.",
|
|
8883
|
+
annotations: {
|
|
8884
|
+
readOnlyHint: false,
|
|
8885
|
+
destructiveHint: false
|
|
8886
|
+
},
|
|
8672
8887
|
inputSchema: {
|
|
8673
8888
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
8674
8889
|
type: "object",
|
|
@@ -9054,6 +9269,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9054
9269
|
ownerDomain: "destinations",
|
|
9055
9270
|
title: "Disable Destination",
|
|
9056
9271
|
description: "Disable an ordinary non-default destination.",
|
|
9272
|
+
annotations: {
|
|
9273
|
+
readOnlyHint: false,
|
|
9274
|
+
destructiveHint: false
|
|
9275
|
+
},
|
|
9057
9276
|
inputSchema: {
|
|
9058
9277
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9059
9278
|
type: "object",
|
|
@@ -9439,6 +9658,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9439
9658
|
ownerDomain: "destinations",
|
|
9440
9659
|
title: "Archive Destination",
|
|
9441
9660
|
description: "Archive an ordinary destination.",
|
|
9661
|
+
annotations: {
|
|
9662
|
+
readOnlyHint: false,
|
|
9663
|
+
destructiveHint: true
|
|
9664
|
+
},
|
|
9442
9665
|
inputSchema: {
|
|
9443
9666
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9444
9667
|
type: "object",
|
|
@@ -9485,6 +9708,64 @@ Returns column definitions and example queries for each view.`,
|
|
|
9485
9708
|
additionalProperties: false
|
|
9486
9709
|
}
|
|
9487
9710
|
},
|
|
9711
|
+
outlit_submit_feedback: {
|
|
9712
|
+
toolName: "outlit_submit_feedback",
|
|
9713
|
+
commandId: "feedback.submit",
|
|
9714
|
+
commandVersion: 1,
|
|
9715
|
+
ownerDomain: "feedback",
|
|
9716
|
+
title: "Submit Product Feedback",
|
|
9717
|
+
description: "Submit product feedback to Outlit. This does not open a support ticket or promise a reply.",
|
|
9718
|
+
annotations: {
|
|
9719
|
+
readOnlyHint: false,
|
|
9720
|
+
destructiveHint: false
|
|
9721
|
+
},
|
|
9722
|
+
inputSchema: {
|
|
9723
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9724
|
+
type: "object",
|
|
9725
|
+
properties: {
|
|
9726
|
+
body: {
|
|
9727
|
+
type: "string",
|
|
9728
|
+
minLength: 1,
|
|
9729
|
+
maxLength: 20000
|
|
9730
|
+
},
|
|
9731
|
+
area: {
|
|
9732
|
+
type: "string",
|
|
9733
|
+
minLength: 1,
|
|
9734
|
+
maxLength: 100
|
|
9735
|
+
},
|
|
9736
|
+
context: {
|
|
9737
|
+
type: "object",
|
|
9738
|
+
propertyNames: {
|
|
9739
|
+
type: "string"
|
|
9740
|
+
},
|
|
9741
|
+
additionalProperties: {}
|
|
9742
|
+
}
|
|
9743
|
+
},
|
|
9744
|
+
required: [
|
|
9745
|
+
"body"
|
|
9746
|
+
],
|
|
9747
|
+
additionalProperties: false
|
|
9748
|
+
},
|
|
9749
|
+
outputSchema: {
|
|
9750
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9751
|
+
type: "object",
|
|
9752
|
+
properties: {
|
|
9753
|
+
id: {
|
|
9754
|
+
type: "string"
|
|
9755
|
+
},
|
|
9756
|
+
createdAt: {
|
|
9757
|
+
type: "string",
|
|
9758
|
+
format: "date-time",
|
|
9759
|
+
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))$"
|
|
9760
|
+
}
|
|
9761
|
+
},
|
|
9762
|
+
required: [
|
|
9763
|
+
"id",
|
|
9764
|
+
"createdAt"
|
|
9765
|
+
],
|
|
9766
|
+
additionalProperties: false
|
|
9767
|
+
}
|
|
9768
|
+
},
|
|
9488
9769
|
outlit_get_integration_capabilities: {
|
|
9489
9770
|
toolName: "outlit_get_integration_capabilities",
|
|
9490
9771
|
commandId: "integration.capabilities.get",
|
|
@@ -9492,6 +9773,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9492
9773
|
ownerDomain: "integrations",
|
|
9493
9774
|
title: "Get Integration Capabilities",
|
|
9494
9775
|
description: "Describe safe integration setup modes without exposing credential fields or provider configuration.",
|
|
9776
|
+
annotations: {
|
|
9777
|
+
readOnlyHint: true,
|
|
9778
|
+
destructiveHint: false
|
|
9779
|
+
},
|
|
9495
9780
|
inputSchema: {
|
|
9496
9781
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9497
9782
|
type: "object",
|
|
@@ -9584,6 +9869,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9584
9869
|
ownerDomain: "integrations",
|
|
9585
9870
|
title: "Begin Integration Setup",
|
|
9586
9871
|
description: "Begin a short-lived browser handoff for an integration that supports browser authentication.",
|
|
9872
|
+
annotations: {
|
|
9873
|
+
readOnlyHint: false,
|
|
9874
|
+
destructiveHint: false
|
|
9875
|
+
},
|
|
9587
9876
|
inputSchema: {
|
|
9588
9877
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9589
9878
|
type: "object",
|
|
@@ -9668,6 +9957,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9668
9957
|
ownerDomain: "integrations",
|
|
9669
9958
|
title: "Get Integration Setup Status",
|
|
9670
9959
|
description: "Check a browser setup handoff owned by the current actor.",
|
|
9960
|
+
annotations: {
|
|
9961
|
+
readOnlyHint: true,
|
|
9962
|
+
destructiveHint: false
|
|
9963
|
+
},
|
|
9671
9964
|
inputSchema: {
|
|
9672
9965
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9673
9966
|
type: "object",
|
|
@@ -9723,6 +10016,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9723
10016
|
ownerDomain: "integrations",
|
|
9724
10017
|
title: "Get Integration Status",
|
|
9725
10018
|
description: "Get the configuration-readiness status for one integration or the public integration catalog.",
|
|
10019
|
+
annotations: {
|
|
10020
|
+
readOnlyHint: true,
|
|
10021
|
+
destructiveHint: false
|
|
10022
|
+
},
|
|
9726
10023
|
inputSchema: {
|
|
9727
10024
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9728
10025
|
type: "object",
|
|
@@ -9818,6 +10115,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
9818
10115
|
ownerDomain: "integrations",
|
|
9819
10116
|
title: "Set Up Integration",
|
|
9820
10117
|
description: "Continue integration setup through validated credentials, safe configuration, or a trusted browser handoff.",
|
|
10118
|
+
annotations: {
|
|
10119
|
+
readOnlyHint: false,
|
|
10120
|
+
destructiveHint: false
|
|
10121
|
+
},
|
|
9821
10122
|
inputSchema: {
|
|
9822
10123
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
9823
10124
|
anyOf: [
|
|
@@ -10693,6 +10994,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
10693
10994
|
ownerDomain: "customer_activation",
|
|
10694
10995
|
title: "Get Customer Activation",
|
|
10695
10996
|
description: "Get the product event currently configured to activate customers and users.",
|
|
10997
|
+
annotations: {
|
|
10998
|
+
readOnlyHint: true,
|
|
10999
|
+
destructiveHint: false
|
|
11000
|
+
},
|
|
10696
11001
|
inputSchema: {
|
|
10697
11002
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
10698
11003
|
type: "object",
|
|
@@ -10738,6 +11043,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
10738
11043
|
ownerDomain: "customer_activation",
|
|
10739
11044
|
title: "Preview Customer Activation",
|
|
10740
11045
|
description: "Preview the bounded recent impact of choosing a product event for customer activation without changing configuration.",
|
|
11046
|
+
annotations: {
|
|
11047
|
+
readOnlyHint: true,
|
|
11048
|
+
destructiveHint: false
|
|
11049
|
+
},
|
|
10741
11050
|
inputSchema: {
|
|
10742
11051
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
10743
11052
|
type: "object",
|
|
@@ -10930,6 +11239,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
10930
11239
|
ownerDomain: "customer_activation",
|
|
10931
11240
|
title: "Update Customer Activation",
|
|
10932
11241
|
description: "Set the product event used for future customer activation, or disable event-based activation with null. This does not backfill history.",
|
|
11242
|
+
annotations: {
|
|
11243
|
+
readOnlyHint: false,
|
|
11244
|
+
destructiveHint: false
|
|
11245
|
+
},
|
|
10933
11246
|
inputSchema: {
|
|
10934
11247
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
10935
11248
|
type: "object",
|
|
@@ -10994,7 +11307,11 @@ Returns column definitions and example queries for each view.`,
|
|
|
10994
11307
|
commandVersion: 1,
|
|
10995
11308
|
ownerDomain: "settings",
|
|
10996
11309
|
title: "Get Workspace Settings",
|
|
10997
|
-
description: "Get the workspace default timezone used
|
|
11310
|
+
description: "Get the workspace default timezone and the default customer owner used as the lowest-ranked ownership source.",
|
|
11311
|
+
annotations: {
|
|
11312
|
+
readOnlyHint: true,
|
|
11313
|
+
destructiveHint: false
|
|
11314
|
+
},
|
|
10998
11315
|
inputSchema: {
|
|
10999
11316
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
11000
11317
|
type: "object",
|
|
@@ -11011,10 +11328,32 @@ Returns column definitions and example queries for each view.`,
|
|
|
11011
11328
|
defaultTimezone: {
|
|
11012
11329
|
type: "string",
|
|
11013
11330
|
minLength: 1
|
|
11331
|
+
},
|
|
11332
|
+
customerOwnership: {
|
|
11333
|
+
type: "object",
|
|
11334
|
+
properties: {
|
|
11335
|
+
defaultOwnerUserId: {
|
|
11336
|
+
anyOf: [
|
|
11337
|
+
{
|
|
11338
|
+
type: "string",
|
|
11339
|
+
minLength: 1,
|
|
11340
|
+
maxLength: 191
|
|
11341
|
+
},
|
|
11342
|
+
{
|
|
11343
|
+
type: "null"
|
|
11344
|
+
}
|
|
11345
|
+
]
|
|
11346
|
+
}
|
|
11347
|
+
},
|
|
11348
|
+
required: [
|
|
11349
|
+
"defaultOwnerUserId"
|
|
11350
|
+
],
|
|
11351
|
+
additionalProperties: false
|
|
11014
11352
|
}
|
|
11015
11353
|
},
|
|
11016
11354
|
required: [
|
|
11017
|
-
"defaultTimezone"
|
|
11355
|
+
"defaultTimezone",
|
|
11356
|
+
"customerOwnership"
|
|
11018
11357
|
],
|
|
11019
11358
|
additionalProperties: false
|
|
11020
11359
|
}
|
|
@@ -11031,7 +11370,11 @@ Returns column definitions and example queries for each view.`,
|
|
|
11031
11370
|
commandVersion: 1,
|
|
11032
11371
|
ownerDomain: "settings",
|
|
11033
11372
|
title: "Update Workspace Settings",
|
|
11034
|
-
description: "Update the workspace default timezone
|
|
11373
|
+
description: "Update the workspace default timezone (a valid IANA timezone) and/or the default customer owner (an active workspace member, or null to clear).",
|
|
11374
|
+
annotations: {
|
|
11375
|
+
readOnlyHint: false,
|
|
11376
|
+
destructiveHint: false
|
|
11377
|
+
},
|
|
11035
11378
|
inputSchema: {
|
|
11036
11379
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
11037
11380
|
type: "object",
|
|
@@ -11039,11 +11382,29 @@ Returns column definitions and example queries for each view.`,
|
|
|
11039
11382
|
defaultTimezone: {
|
|
11040
11383
|
type: "string",
|
|
11041
11384
|
minLength: 1
|
|
11385
|
+
},
|
|
11386
|
+
customerOwnership: {
|
|
11387
|
+
type: "object",
|
|
11388
|
+
properties: {
|
|
11389
|
+
defaultOwnerUserId: {
|
|
11390
|
+
anyOf: [
|
|
11391
|
+
{
|
|
11392
|
+
type: "string",
|
|
11393
|
+
minLength: 1,
|
|
11394
|
+
maxLength: 191
|
|
11395
|
+
},
|
|
11396
|
+
{
|
|
11397
|
+
type: "null"
|
|
11398
|
+
}
|
|
11399
|
+
]
|
|
11400
|
+
}
|
|
11401
|
+
},
|
|
11402
|
+
required: [
|
|
11403
|
+
"defaultOwnerUserId"
|
|
11404
|
+
],
|
|
11405
|
+
additionalProperties: false
|
|
11042
11406
|
}
|
|
11043
11407
|
},
|
|
11044
|
-
required: [
|
|
11045
|
-
"defaultTimezone"
|
|
11046
|
-
],
|
|
11047
11408
|
additionalProperties: false
|
|
11048
11409
|
},
|
|
11049
11410
|
outputSchema: {
|
|
@@ -11056,10 +11417,32 @@ Returns column definitions and example queries for each view.`,
|
|
|
11056
11417
|
defaultTimezone: {
|
|
11057
11418
|
type: "string",
|
|
11058
11419
|
minLength: 1
|
|
11420
|
+
},
|
|
11421
|
+
customerOwnership: {
|
|
11422
|
+
type: "object",
|
|
11423
|
+
properties: {
|
|
11424
|
+
defaultOwnerUserId: {
|
|
11425
|
+
anyOf: [
|
|
11426
|
+
{
|
|
11427
|
+
type: "string",
|
|
11428
|
+
minLength: 1,
|
|
11429
|
+
maxLength: 191
|
|
11430
|
+
},
|
|
11431
|
+
{
|
|
11432
|
+
type: "null"
|
|
11433
|
+
}
|
|
11434
|
+
]
|
|
11435
|
+
}
|
|
11436
|
+
},
|
|
11437
|
+
required: [
|
|
11438
|
+
"defaultOwnerUserId"
|
|
11439
|
+
],
|
|
11440
|
+
additionalProperties: false
|
|
11059
11441
|
}
|
|
11060
11442
|
},
|
|
11061
11443
|
required: [
|
|
11062
|
-
"defaultTimezone"
|
|
11444
|
+
"defaultTimezone",
|
|
11445
|
+
"customerOwnership"
|
|
11063
11446
|
],
|
|
11064
11447
|
additionalProperties: false
|
|
11065
11448
|
}
|
|
@@ -11077,6 +11460,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
11077
11460
|
ownerDomain: "value_features",
|
|
11078
11461
|
title: "List Features",
|
|
11079
11462
|
description: "List configured features, exact historical usage, eligible sources, and observed event candidates.",
|
|
11463
|
+
annotations: {
|
|
11464
|
+
readOnlyHint: true,
|
|
11465
|
+
destructiveHint: false
|
|
11466
|
+
},
|
|
11080
11467
|
inputSchema: {
|
|
11081
11468
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
11082
11469
|
type: "object",
|
|
@@ -11627,6 +12014,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
11627
12014
|
ownerDomain: "value_features",
|
|
11628
12015
|
title: "Create Feature",
|
|
11629
12016
|
description: "Create or idempotently return one customer-value Feature observed by one event rule.",
|
|
12017
|
+
annotations: {
|
|
12018
|
+
readOnlyHint: false,
|
|
12019
|
+
destructiveHint: false
|
|
12020
|
+
},
|
|
11630
12021
|
inputSchema: {
|
|
11631
12022
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
11632
12023
|
type: "object",
|
|
@@ -11943,6 +12334,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
11943
12334
|
ownerDomain: "value_features",
|
|
11944
12335
|
title: "Archive Feature",
|
|
11945
12336
|
description: "Archive a Feature when at least one other active Feature remains.",
|
|
12337
|
+
annotations: {
|
|
12338
|
+
readOnlyHint: false,
|
|
12339
|
+
destructiveHint: true
|
|
12340
|
+
},
|
|
11946
12341
|
inputSchema: {
|
|
11947
12342
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
11948
12343
|
type: "object",
|
|
@@ -12003,6 +12398,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
12003
12398
|
ownerDomain: "value_features",
|
|
12004
12399
|
title: "Get Customer Features",
|
|
12005
12400
|
description: "Read Outlit event evidence and stored non-credit Autumn feature quantities, frequency, recency, weekly coverage, and explicit links for one authorized customer. Provider totals and linked event counts remain separate.",
|
|
12401
|
+
annotations: {
|
|
12402
|
+
readOnlyHint: true,
|
|
12403
|
+
destructiveHint: false
|
|
12404
|
+
},
|
|
12006
12405
|
inputSchema: {
|
|
12007
12406
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
12008
12407
|
type: "object",
|
|
@@ -13191,6 +13590,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
13191
13590
|
ownerDomain: "customers",
|
|
13192
13591
|
title: "Get Customer Credits",
|
|
13193
13592
|
description: "Read a customer's credit pools, remaining credits, provider reset dates, and deterministic daily burn rate, rate change, runway, and trend from stored data. Missing or stale evidence is explicit; no live provider calls. For individual product feature usage use outlit_get_customer_features.",
|
|
13593
|
+
annotations: {
|
|
13594
|
+
readOnlyHint: true,
|
|
13595
|
+
destructiveHint: false
|
|
13596
|
+
},
|
|
13194
13597
|
inputSchema: {
|
|
13195
13598
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
13196
13599
|
type: "object",
|
|
@@ -13353,25 +13756,90 @@ Returns column definitions and example queries for each view.`,
|
|
|
13353
13756
|
type: "null"
|
|
13354
13757
|
}
|
|
13355
13758
|
],
|
|
13356
|
-
description: "Average daily usage over the
|
|
13759
|
+
description: "Average daily usage over the trailing rate window (28 days, shrinking to the covered history with a seven-day floor). See scope before interpreting this as pool deductions."
|
|
13760
|
+
},
|
|
13761
|
+
scope: {
|
|
13762
|
+
type: "string",
|
|
13763
|
+
enum: [
|
|
13764
|
+
"customer_balance",
|
|
13765
|
+
"account"
|
|
13766
|
+
]
|
|
13767
|
+
},
|
|
13768
|
+
rateBasis: {
|
|
13769
|
+
description: "Length of the trailing window the forecast rate averages over.",
|
|
13770
|
+
anyOf: [
|
|
13771
|
+
{
|
|
13772
|
+
type: "object",
|
|
13773
|
+
properties: {
|
|
13774
|
+
kind: {
|
|
13775
|
+
type: "string",
|
|
13776
|
+
const: "trailing"
|
|
13777
|
+
},
|
|
13778
|
+
days: {
|
|
13779
|
+
type: "integer",
|
|
13780
|
+
exclusiveMinimum: 0,
|
|
13781
|
+
maximum: 9007199254740991
|
|
13782
|
+
}
|
|
13783
|
+
},
|
|
13784
|
+
required: [
|
|
13785
|
+
"kind",
|
|
13786
|
+
"days"
|
|
13787
|
+
],
|
|
13788
|
+
additionalProperties: false
|
|
13789
|
+
},
|
|
13790
|
+
{
|
|
13791
|
+
type: "null"
|
|
13792
|
+
}
|
|
13793
|
+
]
|
|
13794
|
+
},
|
|
13795
|
+
paceSinceReset: {
|
|
13796
|
+
description: "Context-only average daily usage since the current grant period started; never the forecast rate.",
|
|
13797
|
+
anyOf: [
|
|
13798
|
+
{
|
|
13799
|
+
type: "number",
|
|
13800
|
+
minimum: 0
|
|
13801
|
+
},
|
|
13802
|
+
{
|
|
13803
|
+
type: "null"
|
|
13804
|
+
}
|
|
13805
|
+
]
|
|
13806
|
+
},
|
|
13807
|
+
periodStart: {
|
|
13808
|
+
description: "UTC day the current grant period started, when derivable from the reset interval.",
|
|
13809
|
+
anyOf: [
|
|
13810
|
+
{
|
|
13811
|
+
type: "string",
|
|
13812
|
+
format: "date",
|
|
13813
|
+
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])))$"
|
|
13814
|
+
},
|
|
13815
|
+
{
|
|
13816
|
+
type: "null"
|
|
13817
|
+
}
|
|
13818
|
+
]
|
|
13819
|
+
},
|
|
13820
|
+
change: {
|
|
13821
|
+
anyOf: [
|
|
13822
|
+
{
|
|
13823
|
+
type: "number"
|
|
13824
|
+
},
|
|
13825
|
+
{
|
|
13826
|
+
type: "null"
|
|
13827
|
+
}
|
|
13828
|
+
],
|
|
13829
|
+
description: "Percentage change in customer-balance burn rate versus the preceding equal-length window. Null when either window is incomplete or the prior rate is zero."
|
|
13357
13830
|
},
|
|
13358
|
-
|
|
13359
|
-
|
|
13360
|
-
enum: [
|
|
13361
|
-
"customer_balance",
|
|
13362
|
-
"account"
|
|
13363
|
-
]
|
|
13364
|
-
},
|
|
13365
|
-
change: {
|
|
13831
|
+
changeDays: {
|
|
13832
|
+
description: "Days in each side of the percentage comparison: 28 when covered, else 7.",
|
|
13366
13833
|
anyOf: [
|
|
13367
13834
|
{
|
|
13368
|
-
type: "
|
|
13835
|
+
type: "integer",
|
|
13836
|
+
exclusiveMinimum: 0,
|
|
13837
|
+
maximum: 9007199254740991
|
|
13369
13838
|
},
|
|
13370
13839
|
{
|
|
13371
13840
|
type: "null"
|
|
13372
13841
|
}
|
|
13373
|
-
]
|
|
13374
|
-
description: "Percentage change in customer-balance burn rate versus the preceding seven complete days. Null when either window is incomplete or the prior rate is zero."
|
|
13842
|
+
]
|
|
13375
13843
|
},
|
|
13376
13844
|
days: {
|
|
13377
13845
|
anyOf: [
|
|
@@ -13445,7 +13913,7 @@ Returns column definitions and example queries for each view.`,
|
|
|
13445
13913
|
"end"
|
|
13446
13914
|
],
|
|
13447
13915
|
additionalProperties: false,
|
|
13448
|
-
description: "UTC dates for the
|
|
13916
|
+
description: "UTC dates for the rate window; end is exclusive."
|
|
13449
13917
|
},
|
|
13450
13918
|
trend: {
|
|
13451
13919
|
maxItems: 14,
|
|
@@ -13560,6 +14028,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
13560
14028
|
ownerDomain: "attention",
|
|
13561
14029
|
title: "List Attention Items",
|
|
13562
14030
|
description: "List authorized open or resolved Attention items. Returns bounded customer identity, current priority, ARR importance, lifecycle timestamps, and a prepared-action URL without evidence bodies or internal agent state.",
|
|
14031
|
+
annotations: {
|
|
14032
|
+
readOnlyHint: true,
|
|
14033
|
+
destructiveHint: false
|
|
14034
|
+
},
|
|
13563
14035
|
inputSchema: {
|
|
13564
14036
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
13565
14037
|
type: "object",
|
|
@@ -13881,6 +14353,10 @@ Returns column definitions and example queries for each view.`,
|
|
|
13881
14353
|
ownerDomain: "attention",
|
|
13882
14354
|
title: "Get Attention Item",
|
|
13883
14355
|
description: "Get one authorized Attention item with its bounded current assessment, timeline, evidence summaries, and prepared-action URL. Does not return evidence IDs, quotes, email drafts, or internal agent state.",
|
|
14356
|
+
annotations: {
|
|
14357
|
+
readOnlyHint: true,
|
|
14358
|
+
destructiveHint: false
|
|
14359
|
+
},
|
|
13884
14360
|
inputSchema: {
|
|
13885
14361
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
13886
14362
|
type: "object",
|
|
@@ -14954,6 +15430,225 @@ Returns column definitions and example queries for each view.`,
|
|
|
14954
15430
|
}
|
|
14955
15431
|
]
|
|
14956
15432
|
},
|
|
15433
|
+
jevEvidence: {
|
|
15434
|
+
description: "Jev advisory model evidence scoped to this suggestion's customers. Uncalibrated and never part of eligibility, confidence, or recommended action.",
|
|
15435
|
+
anyOf: [
|
|
15436
|
+
{
|
|
15437
|
+
type: "object",
|
|
15438
|
+
properties: {
|
|
15439
|
+
computedAt: {
|
|
15440
|
+
type: "string",
|
|
15441
|
+
format: "date-time",
|
|
15442
|
+
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))$"
|
|
15443
|
+
},
|
|
15444
|
+
expiresAt: {
|
|
15445
|
+
type: "string",
|
|
15446
|
+
format: "date-time",
|
|
15447
|
+
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))$"
|
|
15448
|
+
},
|
|
15449
|
+
expired: {
|
|
15450
|
+
type: "boolean"
|
|
15451
|
+
},
|
|
15452
|
+
pairs: {
|
|
15453
|
+
minItems: 1,
|
|
15454
|
+
type: "array",
|
|
15455
|
+
items: {
|
|
15456
|
+
type: "object",
|
|
15457
|
+
properties: {
|
|
15458
|
+
incoming: {
|
|
15459
|
+
type: "object",
|
|
15460
|
+
properties: {
|
|
15461
|
+
id: {
|
|
15462
|
+
type: "string",
|
|
15463
|
+
minLength: 1,
|
|
15464
|
+
maxLength: 191
|
|
15465
|
+
},
|
|
15466
|
+
name: {
|
|
15467
|
+
type: "string",
|
|
15468
|
+
minLength: 1,
|
|
15469
|
+
maxLength: 500
|
|
15470
|
+
},
|
|
15471
|
+
domain: {
|
|
15472
|
+
anyOf: [
|
|
15473
|
+
{
|
|
15474
|
+
type: "string",
|
|
15475
|
+
minLength: 1,
|
|
15476
|
+
maxLength: 500
|
|
15477
|
+
},
|
|
15478
|
+
{
|
|
15479
|
+
type: "null"
|
|
15480
|
+
}
|
|
15481
|
+
]
|
|
15482
|
+
},
|
|
15483
|
+
type: {
|
|
15484
|
+
type: "string",
|
|
15485
|
+
enum: [
|
|
15486
|
+
"COMPANY",
|
|
15487
|
+
"INDIVIDUAL"
|
|
15488
|
+
]
|
|
15489
|
+
},
|
|
15490
|
+
status: {
|
|
15491
|
+
anyOf: [
|
|
15492
|
+
{
|
|
15493
|
+
type: "string",
|
|
15494
|
+
enum: [
|
|
15495
|
+
"PROVISIONAL",
|
|
15496
|
+
"ACTIVE",
|
|
15497
|
+
"CHURNED",
|
|
15498
|
+
"MERGED"
|
|
15499
|
+
]
|
|
15500
|
+
},
|
|
15501
|
+
{
|
|
15502
|
+
type: "null"
|
|
15503
|
+
}
|
|
15504
|
+
]
|
|
15505
|
+
},
|
|
15506
|
+
identifierCount: {
|
|
15507
|
+
type: "integer",
|
|
15508
|
+
minimum: 0,
|
|
15509
|
+
maximum: 9007199254740991
|
|
15510
|
+
},
|
|
15511
|
+
contactCount: {
|
|
15512
|
+
type: "integer",
|
|
15513
|
+
minimum: 0,
|
|
15514
|
+
maximum: 9007199254740991
|
|
15515
|
+
}
|
|
15516
|
+
},
|
|
15517
|
+
required: [
|
|
15518
|
+
"id",
|
|
15519
|
+
"name",
|
|
15520
|
+
"domain",
|
|
15521
|
+
"type",
|
|
15522
|
+
"status",
|
|
15523
|
+
"identifierCount",
|
|
15524
|
+
"contactCount"
|
|
15525
|
+
],
|
|
15526
|
+
additionalProperties: false
|
|
15527
|
+
},
|
|
15528
|
+
candidate: {
|
|
15529
|
+
type: "object",
|
|
15530
|
+
properties: {
|
|
15531
|
+
id: {
|
|
15532
|
+
type: "string",
|
|
15533
|
+
minLength: 1,
|
|
15534
|
+
maxLength: 191
|
|
15535
|
+
},
|
|
15536
|
+
name: {
|
|
15537
|
+
type: "string",
|
|
15538
|
+
minLength: 1,
|
|
15539
|
+
maxLength: 500
|
|
15540
|
+
},
|
|
15541
|
+
domain: {
|
|
15542
|
+
anyOf: [
|
|
15543
|
+
{
|
|
15544
|
+
type: "string",
|
|
15545
|
+
minLength: 1,
|
|
15546
|
+
maxLength: 500
|
|
15547
|
+
},
|
|
15548
|
+
{
|
|
15549
|
+
type: "null"
|
|
15550
|
+
}
|
|
15551
|
+
]
|
|
15552
|
+
},
|
|
15553
|
+
type: {
|
|
15554
|
+
type: "string",
|
|
15555
|
+
enum: [
|
|
15556
|
+
"COMPANY",
|
|
15557
|
+
"INDIVIDUAL"
|
|
15558
|
+
]
|
|
15559
|
+
},
|
|
15560
|
+
status: {
|
|
15561
|
+
anyOf: [
|
|
15562
|
+
{
|
|
15563
|
+
type: "string",
|
|
15564
|
+
enum: [
|
|
15565
|
+
"PROVISIONAL",
|
|
15566
|
+
"ACTIVE",
|
|
15567
|
+
"CHURNED",
|
|
15568
|
+
"MERGED"
|
|
15569
|
+
]
|
|
15570
|
+
},
|
|
15571
|
+
{
|
|
15572
|
+
type: "null"
|
|
15573
|
+
}
|
|
15574
|
+
]
|
|
15575
|
+
},
|
|
15576
|
+
identifierCount: {
|
|
15577
|
+
type: "integer",
|
|
15578
|
+
minimum: 0,
|
|
15579
|
+
maximum: 9007199254740991
|
|
15580
|
+
},
|
|
15581
|
+
contactCount: {
|
|
15582
|
+
type: "integer",
|
|
15583
|
+
minimum: 0,
|
|
15584
|
+
maximum: 9007199254740991
|
|
15585
|
+
}
|
|
15586
|
+
},
|
|
15587
|
+
required: [
|
|
15588
|
+
"id",
|
|
15589
|
+
"name",
|
|
15590
|
+
"domain",
|
|
15591
|
+
"type",
|
|
15592
|
+
"status",
|
|
15593
|
+
"identifierCount",
|
|
15594
|
+
"contactCount"
|
|
15595
|
+
],
|
|
15596
|
+
additionalProperties: false
|
|
15597
|
+
},
|
|
15598
|
+
pSameEntity: {
|
|
15599
|
+
type: "number",
|
|
15600
|
+
minimum: 0,
|
|
15601
|
+
maximum: 1
|
|
15602
|
+
},
|
|
15603
|
+
relation: {
|
|
15604
|
+
anyOf: [
|
|
15605
|
+
{
|
|
15606
|
+
type: "string",
|
|
15607
|
+
minLength: 1,
|
|
15608
|
+
maxLength: 100
|
|
15609
|
+
},
|
|
15610
|
+
{
|
|
15611
|
+
type: "null"
|
|
15612
|
+
}
|
|
15613
|
+
]
|
|
15614
|
+
},
|
|
15615
|
+
relationProbability: {
|
|
15616
|
+
anyOf: [
|
|
15617
|
+
{
|
|
15618
|
+
type: "number",
|
|
15619
|
+
minimum: 0,
|
|
15620
|
+
maximum: 1
|
|
15621
|
+
},
|
|
15622
|
+
{
|
|
15623
|
+
type: "null"
|
|
15624
|
+
}
|
|
15625
|
+
]
|
|
15626
|
+
}
|
|
15627
|
+
},
|
|
15628
|
+
required: [
|
|
15629
|
+
"incoming",
|
|
15630
|
+
"candidate",
|
|
15631
|
+
"pSameEntity",
|
|
15632
|
+
"relation",
|
|
15633
|
+
"relationProbability"
|
|
15634
|
+
],
|
|
15635
|
+
additionalProperties: false
|
|
15636
|
+
}
|
|
15637
|
+
}
|
|
15638
|
+
},
|
|
15639
|
+
required: [
|
|
15640
|
+
"computedAt",
|
|
15641
|
+
"expiresAt",
|
|
15642
|
+
"expired",
|
|
15643
|
+
"pairs"
|
|
15644
|
+
],
|
|
15645
|
+
additionalProperties: false
|
|
15646
|
+
},
|
|
15647
|
+
{
|
|
15648
|
+
type: "null"
|
|
15649
|
+
}
|
|
15650
|
+
]
|
|
15651
|
+
},
|
|
14957
15652
|
canMerge: {
|
|
14958
15653
|
type: "boolean"
|
|
14959
15654
|
},
|
|
@@ -15432,6 +16127,7 @@ Returns column definitions and example queries for each view.`,
|
|
|
15432
16127
|
"outlit_enable_destination",
|
|
15433
16128
|
"outlit_disable_destination",
|
|
15434
16129
|
"outlit_archive_destination",
|
|
16130
|
+
"outlit_submit_feedback",
|
|
15435
16131
|
"outlit_get_integration_capabilities",
|
|
15436
16132
|
"outlit_begin_integration_setup",
|
|
15437
16133
|
"outlit_get_integration_setup_status",
|
|
@@ -15480,6 +16176,7 @@ Returns column definitions and example queries for each view.`,
|
|
|
15480
16176
|
"outlit_enable_destination",
|
|
15481
16177
|
"outlit_disable_destination",
|
|
15482
16178
|
"outlit_archive_destination",
|
|
16179
|
+
"outlit_submit_feedback",
|
|
15483
16180
|
"outlit_get_integration_capabilities",
|
|
15484
16181
|
"outlit_begin_integration_setup",
|
|
15485
16182
|
"outlit_get_integration_setup_status",
|
|
@@ -20798,12 +21495,147 @@ var init_search = __esm(() => {
|
|
|
20798
21495
|
});
|
|
20799
21496
|
});
|
|
20800
21497
|
|
|
21498
|
+
// src/commands/feedback.ts
|
|
21499
|
+
var exports_feedback = {};
|
|
21500
|
+
__export(exports_feedback, {
|
|
21501
|
+
default: () => feedback_default
|
|
21502
|
+
});
|
|
21503
|
+
import { readFileSync as readFileSync4 } from "node:fs";
|
|
21504
|
+
function readTextFile(path, flag, json) {
|
|
21505
|
+
try {
|
|
21506
|
+
return readFileSync4(path, "utf-8");
|
|
21507
|
+
} catch (error) {
|
|
21508
|
+
return outputError({
|
|
21509
|
+
message: `Cannot read ${flag} file: ${errorMessage(error, "unknown error")}`,
|
|
21510
|
+
code: "file_error"
|
|
21511
|
+
}, json);
|
|
21512
|
+
}
|
|
21513
|
+
}
|
|
21514
|
+
function resolveBody(args, json) {
|
|
21515
|
+
if (args.body !== undefined && args.bodyFile !== undefined) {
|
|
21516
|
+
return outputError({ message: "Use either --body or --body-file, not both", code: "invalid_input" }, json);
|
|
21517
|
+
}
|
|
21518
|
+
const raw = args.bodyFile !== undefined ? readTextFile(args.bodyFile, "--body-file", json) : args.body;
|
|
21519
|
+
const trimmed = raw?.trim();
|
|
21520
|
+
if (!trimmed) {
|
|
21521
|
+
return outputError({ message: "Provide --body or --body-file", code: "missing_input" }, json);
|
|
21522
|
+
}
|
|
21523
|
+
if (trimmed.length > BODY_MAX_LENGTH) {
|
|
21524
|
+
return outputError({ message: `--body must be at most ${BODY_MAX_LENGTH} characters`, code: "invalid_input" }, json);
|
|
21525
|
+
}
|
|
21526
|
+
return trimmed;
|
|
21527
|
+
}
|
|
21528
|
+
function resolveArea(area, json) {
|
|
21529
|
+
if (area === undefined)
|
|
21530
|
+
return;
|
|
21531
|
+
const trimmed = area.trim();
|
|
21532
|
+
if (!trimmed) {
|
|
21533
|
+
return outputError({ message: "--area must be a non-empty string", code: "invalid_input" }, json);
|
|
21534
|
+
}
|
|
21535
|
+
if (trimmed.length > AREA_MAX_LENGTH) {
|
|
21536
|
+
return outputError({ message: `--area must be at most ${AREA_MAX_LENGTH} characters`, code: "invalid_input" }, json);
|
|
21537
|
+
}
|
|
21538
|
+
return trimmed;
|
|
21539
|
+
}
|
|
21540
|
+
function resolveContext(args, json) {
|
|
21541
|
+
if (args.context !== undefined && args.contextFile !== undefined) {
|
|
21542
|
+
return outputError({ message: "Use either --context or --context-file, not both", code: "invalid_input" }, json);
|
|
21543
|
+
}
|
|
21544
|
+
const raw = args.contextFile !== undefined ? readTextFile(args.contextFile, "--context-file", json) : args.context;
|
|
21545
|
+
if (raw === undefined)
|
|
21546
|
+
return;
|
|
21547
|
+
let parsed;
|
|
21548
|
+
try {
|
|
21549
|
+
parsed = JSON.parse(raw);
|
|
21550
|
+
} catch (error) {
|
|
21551
|
+
return outputError({
|
|
21552
|
+
message: `Invalid --context JSON: ${errorMessage(error, "parse failed")}`,
|
|
21553
|
+
code: "invalid_input"
|
|
21554
|
+
}, json);
|
|
21555
|
+
}
|
|
21556
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
21557
|
+
return outputError({ message: "--context must be a JSON object", code: "invalid_input" }, json);
|
|
21558
|
+
}
|
|
21559
|
+
if (Buffer.byteLength(JSON.stringify(parsed), "utf-8") > CONTEXT_MAX_BYTES) {
|
|
21560
|
+
return outputError({ message: "--context must serialize to at most 16 KiB", code: "invalid_input" }, json);
|
|
21561
|
+
}
|
|
21562
|
+
return parsed;
|
|
21563
|
+
}
|
|
21564
|
+
var BODY_MAX_LENGTH = 20000, AREA_MAX_LENGTH = 100, CONTEXT_MAX_BYTES, feedback_default;
|
|
21565
|
+
var init_feedback = __esm(() => {
|
|
21566
|
+
init_dist4();
|
|
21567
|
+
init_dist();
|
|
21568
|
+
init_auth();
|
|
21569
|
+
init_output2();
|
|
21570
|
+
init_api();
|
|
21571
|
+
init_output();
|
|
21572
|
+
CONTEXT_MAX_BYTES = 16 * 1024;
|
|
21573
|
+
feedback_default = defineCommand2({
|
|
21574
|
+
meta: {
|
|
21575
|
+
name: "feedback",
|
|
21576
|
+
description: [
|
|
21577
|
+
"Submit product feedback to the Outlit team: bugs, feature ideas, or agent friction.",
|
|
21578
|
+
"Feedback is product intake, not a support ticket, and does not guarantee a reply.",
|
|
21579
|
+
"Do not include secrets or unnecessary customer data.",
|
|
21580
|
+
"",
|
|
21581
|
+
"Examples:",
|
|
21582
|
+
" outlit feedback --body 'The customers merge preview did not list the losing record traits' --json",
|
|
21583
|
+
" outlit feedback --body 'Add a way to export attention items' --area attention --json",
|
|
21584
|
+
` outlit feedback --body 'SQL tool rejected a valid LIMIT clause' --context '{"surface":"cli","command":"sql"}' --json`,
|
|
21585
|
+
" outlit feedback --body-file report.md --context-file diagnostics.json --json",
|
|
21586
|
+
"",
|
|
21587
|
+
AGENT_JSON_HINT
|
|
21588
|
+
].join(`
|
|
21589
|
+
`)
|
|
21590
|
+
},
|
|
21591
|
+
args: {
|
|
21592
|
+
...authArgs,
|
|
21593
|
+
...outputArgs,
|
|
21594
|
+
body: {
|
|
21595
|
+
type: "string",
|
|
21596
|
+
description: "Feedback text: trimmed, non-empty, at most 20000 characters"
|
|
21597
|
+
},
|
|
21598
|
+
"body-file": {
|
|
21599
|
+
type: "string",
|
|
21600
|
+
description: "Path to a UTF-8 text file containing the feedback body"
|
|
21601
|
+
},
|
|
21602
|
+
area: {
|
|
21603
|
+
type: "string",
|
|
21604
|
+
description: "Optional product area label, at most 100 characters"
|
|
21605
|
+
},
|
|
21606
|
+
context: {
|
|
21607
|
+
type: "string",
|
|
21608
|
+
description: "Optional JSON object with diagnostic context, at most 16 KiB serialized. Never include secrets."
|
|
21609
|
+
},
|
|
21610
|
+
"context-file": {
|
|
21611
|
+
type: "string",
|
|
21612
|
+
description: "Path to a JSON file with diagnostic context (mutually exclusive with --context)"
|
|
21613
|
+
}
|
|
21614
|
+
},
|
|
21615
|
+
async run({ args }) {
|
|
21616
|
+
const json = !!args.json;
|
|
21617
|
+
const client = await getClientOrExit(args["api-key"], json);
|
|
21618
|
+
const body = resolveBody({ body: args.body, bodyFile: args["body-file"] }, json);
|
|
21619
|
+
const area = resolveArea(args.area, json);
|
|
21620
|
+
const context = resolveContext({ context: args.context, contextFile: args["context-file"] }, json);
|
|
21621
|
+
const input = { body };
|
|
21622
|
+
if (area !== undefined)
|
|
21623
|
+
input.area = area;
|
|
21624
|
+
if (context !== undefined)
|
|
21625
|
+
input.context = context;
|
|
21626
|
+
return runTool(client, publicToolContracts.outlit_submit_feedback.toolName, input, json, {
|
|
21627
|
+
spinnerMessage: "Submitting feedback..."
|
|
21628
|
+
});
|
|
21629
|
+
}
|
|
21630
|
+
});
|
|
21631
|
+
});
|
|
21632
|
+
|
|
20801
21633
|
// src/commands/sql.ts
|
|
20802
21634
|
var exports_sql = {};
|
|
20803
21635
|
__export(exports_sql, {
|
|
20804
21636
|
default: () => sql_default
|
|
20805
21637
|
});
|
|
20806
|
-
import { readFileSync as
|
|
21638
|
+
import { readFileSync as readFileSync5 } from "node:fs";
|
|
20807
21639
|
var publicSqlViews, sql_default;
|
|
20808
21640
|
var init_sql = __esm(() => {
|
|
20809
21641
|
init_dist4();
|
|
@@ -20857,7 +21689,7 @@ var init_sql = __esm(() => {
|
|
|
20857
21689
|
let sql;
|
|
20858
21690
|
if (args["query-file"]) {
|
|
20859
21691
|
try {
|
|
20860
|
-
sql =
|
|
21692
|
+
sql = readFileSync5(args["query-file"], "utf-8");
|
|
20861
21693
|
} catch (err) {
|
|
20862
21694
|
return outputError({
|
|
20863
21695
|
message: `Cannot read file: ${errorMessage(err, "unknown error")}`,
|
|
@@ -22872,6 +23704,18 @@ var init_completions = __esm(() => {
|
|
|
22872
23704
|
}
|
|
22873
23705
|
]
|
|
22874
23706
|
},
|
|
23707
|
+
{
|
|
23708
|
+
name: "feedback",
|
|
23709
|
+
desc: "Submit product feedback",
|
|
23710
|
+
flags: [
|
|
23711
|
+
...COMMON,
|
|
23712
|
+
{ name: "--body", desc: "Feedback text (max 20000 chars)" },
|
|
23713
|
+
{ name: "--body-file", desc: "Read feedback text from a file" },
|
|
23714
|
+
{ name: "--area", desc: "Optional product area label" },
|
|
23715
|
+
{ name: "--context", desc: "Optional JSON context object (max 16 KiB)" },
|
|
23716
|
+
{ name: "--context-file", desc: "Read JSON context object from a file" }
|
|
23717
|
+
]
|
|
23718
|
+
},
|
|
22875
23719
|
{
|
|
22876
23720
|
name: "search",
|
|
22877
23721
|
desc: "Search customer context",
|
|
@@ -23832,6 +24676,7 @@ async function startCli() {
|
|
|
23832
24676
|
" outlit features create --source metric_source_v1_0123456789abcdef0123456789abcdef --event report_exported --key reports_exported --name 'Reports exported' --json",
|
|
23833
24677
|
" outlit customers features acme.com --weekly --json",
|
|
23834
24678
|
" outlit customers credits acme.com --json",
|
|
24679
|
+
" outlit feedback --body 'The merge preview dropped trait history' --area customers --json",
|
|
23835
24680
|
" outlit doctor --json",
|
|
23836
24681
|
"",
|
|
23837
24682
|
"For AI agents: commands auto-output JSON when stdout is piped. No --json flag needed."
|
|
@@ -23852,6 +24697,7 @@ async function startCli() {
|
|
|
23852
24697
|
facts: () => Promise.resolve().then(() => (init_facts(), exports_facts)).then((m) => m.default),
|
|
23853
24698
|
sources: () => Promise.resolve().then(() => (init_sources(), exports_sources)).then((m) => m.default),
|
|
23854
24699
|
search: () => Promise.resolve().then(() => (init_search(), exports_search)).then((m) => m.default),
|
|
24700
|
+
feedback: () => Promise.resolve().then(() => (init_feedback(), exports_feedback)).then((m) => m.default),
|
|
23855
24701
|
sql: () => Promise.resolve().then(() => (init_sql(), exports_sql)).then((m) => m.default),
|
|
23856
24702
|
schema: () => Promise.resolve().then(() => (init_schema(), exports_schema)).then((m) => m.default),
|
|
23857
24703
|
destinations: () => Promise.resolve().then(() => (init_destinations(), exports_destinations)).then((m) => m.default),
|