diff --git a/apps/code/src/main/services/agent/service.ts b/apps/code/src/main/services/agent/service.ts index b03024eb5..7589994b8 100644 --- a/apps/code/src/main/services/agent/service.ts +++ b/apps/code/src/main/services/agent/service.ts @@ -18,7 +18,7 @@ import { POSTHOG_NOTIFICATIONS, } from "@posthog/agent"; import { hydrateSessionJsonl } from "@posthog/agent/adapters/claude/session/jsonl-hydration"; -import { getEffortOptions } from "@posthog/agent/adapters/claude/session/models"; +import { getReasoningEffortOptions } from "@posthog/agent/adapters/reasoning-effort"; import { Agent } from "@posthog/agent/agent"; import { getAvailableCodexModes, @@ -1735,33 +1735,20 @@ For git operations while detached: }, ]; - if (adapter === "codex") { + const effortOpts = getReasoningEffortOptions(adapter, resolvedModelId); + if (effortOpts) { configOptions.push({ - id: "reasoning_effort", - name: "Reasoning Level", + id: adapter === "codex" ? "reasoning_effort" : "effort", + name: adapter === "codex" ? "Reasoning Level" : "Effort", type: "select", currentValue: "high", - options: [ - { value: "low", name: "Low" }, - { value: "medium", name: "Medium" }, - { value: "high", name: "High" }, - ], + options: effortOpts, category: "thought_level", - description: "Controls how much reasoning effort the model uses", + description: + adapter === "codex" + ? "Controls how much reasoning effort the model uses" + : "Controls how much effort Claude puts into its response", }); - } else { - const effortOpts = getEffortOptions(resolvedModelId); - if (effortOpts) { - configOptions.push({ - id: "effort", - name: "Effort", - type: "select", - currentValue: "high", - options: effortOpts, - category: "thought_level", - description: "Controls how much effort Claude puts into its response", - }); - } } return configOptions; diff --git a/apps/code/src/renderer/api/generated.ts b/apps/code/src/renderer/api/generated.ts index 8be8e0a15..b186ade2c 100644 --- a/apps/code/src/renderer/api/generated.ts +++ b/apps/code/src/renderer/api/generated.ts @@ -221,9 +221,9 @@ export namespace Schemas { | ((Array | string | number | boolean) | null) | undefined; }; - export type Key = "tag_name" | "text" | "href" | "selector"; + export type Key10 = "tag_name" | "text" | "href" | "selector"; export type ElementPropertyFilter = { - key: Key; + key: Key10; label?: (string | null) | undefined; operator: PropertyOperator; type?: "element" | undefined; @@ -374,6 +374,15 @@ export namespace Schemas { | ((Array | string | number | boolean) | null) | undefined; }; + export type WorkflowVariablePropertyFilter = { + key: string; + label?: (string | null) | undefined; + operator: PropertyOperator; + type?: "workflow_variable" | undefined; + value?: + | ((Array | string | number | boolean) | null) + | undefined; + }; export type BaseMathType = | "total" | "dau" @@ -597,6 +606,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; id: number; @@ -645,6 +655,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -884,6 +895,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter >; }; export type ActorsQueryResponse = { @@ -1008,6 +1020,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; kind: "EventsNode"; limit: number | null; @@ -1052,6 +1065,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; response: Record | null; version: number | null; @@ -1081,6 +1095,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; id: string; @@ -1130,6 +1145,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -1160,6 +1176,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; kind?: "GroupNode" | undefined; @@ -1211,6 +1228,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -1291,6 +1309,7 @@ export namespace Schemas { decimalPlaces: number | null; detailedResultsAggregationType: DetailedResultsAggregationType; display: ChartDisplayType; + excludeBoxPlotOutliers: boolean | null; formula: string | null; formulaNodes: Array | null; formulas: Array | null; @@ -1351,6 +1370,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -1393,6 +1413,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; funnelFromStep: number; @@ -1444,6 +1465,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -1472,6 +1494,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; funnelFromStep: number; @@ -1522,6 +1545,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -1597,6 +1621,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; id: string; @@ -1646,6 +1671,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -1686,6 +1712,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -1766,6 +1793,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; type: EntityType; uuid: string | null; @@ -1823,6 +1851,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -1915,6 +1944,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -1986,6 +2016,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -2044,6 +2075,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; id: string; @@ -2092,6 +2124,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -2132,6 +2165,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -2417,6 +2451,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; includeRecordings?: (boolean | null) | undefined; @@ -2427,22 +2462,9 @@ export namespace Schemas { tags?: QueryLogTags | undefined; version?: (number | null) | undefined; }; - export type StickinessActorsQuery = { - compare?: Compare | undefined; - day?: ((string | number) | null) | undefined; - includeRecordings?: (boolean | null) | undefined; - kind?: "StickinessActorsQuery" | undefined; - modifiers?: HogQLQueryModifiers | undefined; - operator?: StickinessOperator | undefined; - response?: ActorsQueryResponse | undefined; - series?: (number | null) | undefined; - source: StickinessQuery; - tags?: QueryLogTags | undefined; - version?: (number | null) | undefined; - }; - export type HogQLFilters = Partial<{ - dateRange: DateRange; - filterTestAccounts: boolean | null; + export type ExperimentEventExposureConfig = { + event: string; + kind?: "ExperimentEventExposureConfig" | undefined; properties: Array< | EventPropertyFilter | PersonPropertyFilter @@ -2463,129 +2485,483 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter - > | null; - }>; - export type HogQLNotice = { - end?: (number | null) | undefined; - fix?: (string | null) | undefined; - message: string; - start?: (number | null) | undefined; - }; - export type QueryIndexUsage = "undecisive" | "no" | "partial" | "yes"; - export type HogQLMetadataResponse = { - ch_table_names?: (Array | null) | undefined; - errors: Array; - isUsingIndices?: QueryIndexUsage | undefined; - isValid?: (boolean | null) | undefined; - notices: Array; - query?: (string | null) | undefined; - table_names?: (Array | null) | undefined; - warnings: Array; - }; - export type HogQLQueryResponse = { - clickhouse?: (string | null) | undefined; - columns?: (Array | null) | undefined; - error?: (string | null) | undefined; - explain?: (Array | null) | undefined; - hasMore?: (boolean | null) | undefined; - hogql?: (string | null) | undefined; - limit?: (number | null) | undefined; - metadata?: HogQLMetadataResponse | undefined; - modifiers?: HogQLQueryModifiers | undefined; - offset?: (number | null) | undefined; - query?: (string | null) | undefined; - query_status?: QueryStatus | undefined; - resolved_date_range?: ResolvedDateRangeResponse | undefined; - results: Array; - timings?: (Array | null) | undefined; - types?: (Array | null) | undefined; - }; - export type HogQLVariable = { - code_name: string; - isNull?: (boolean | null) | undefined; - value?: (unknown | null) | undefined; - variableId: string; - }; - export type HogQLQuery = { - connectionId?: (string | null) | undefined; - explain?: (boolean | null) | undefined; - filters?: HogQLFilters | undefined; - kind?: "HogQLQuery" | undefined; - modifiers?: HogQLQueryModifiers | undefined; - name?: (string | null) | undefined; - query: string; - response?: HogQLQueryResponse | undefined; - sendRawQuery?: (boolean | null) | undefined; - tags?: QueryLogTags | undefined; - values?: (Record | null) | undefined; - variables?: (Record | null) | undefined; + | WorkflowVariablePropertyFilter + >; + response?: (Record | null) | undefined; version?: (number | null) | undefined; }; - export type ActorsQuery = Partial<{ - fixedProperties: Array< - | PersonPropertyFilter - | CohortPropertyFilter - | HogQLPropertyFilter - | EmptyPropertyFilter - > | null; - kind: "ActorsQuery"; - limit: number | null; - modifiers: HogQLQueryModifiers; - offset: number | null; - orderBy: Array | null; - properties: - | ( - | Array< - | PersonPropertyFilter - | CohortPropertyFilter - | HogQLPropertyFilter - | EmptyPropertyFilter - > - | PropertyGroupFilterValue - ) - | null; - response: ActorsQueryResponse; - search: string | null; - select: Array | null; - source: + export type MultipleVariantHandling = "exclude" | "first_seen"; + export type ExperimentMetricGoal = "increase" | "decrease"; + export type ExperimentDataWarehouseNode = { + custom_name?: (string | null) | undefined; + data_warehouse_join_key: string; + events_join_key: string; + fixedProperties?: + | (Array< + | EventPropertyFilter + | PersonPropertyFilter + | ElementPropertyFilter + | EventMetadataPropertyFilter + | SessionPropertyFilter + | CohortPropertyFilter + | RecordingPropertyFilter + | LogEntryPropertyFilter + | GroupPropertyFilter + | FeaturePropertyFilter + | FlagPropertyFilter + | HogQLPropertyFilter + | EmptyPropertyFilter + | DataWarehousePropertyFilter + | DataWarehousePersonPropertyFilter + | ErrorTrackingIssueFilter + | LogPropertyFilter + | SpanPropertyFilter + | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter + > | null) + | undefined; + kind?: "ExperimentDataWarehouseNode" | undefined; + math?: | ( - | InsightActorsQuery - | FunnelsActorsQuery - | FunnelCorrelationActorsQuery - | StickinessActorsQuery - | HogQLQuery + | ( + | BaseMathType + | FunnelMathType + | PropertyMathType + | CountPerActorMathType + | ExperimentMetricMathType + | CalendarHeatmapMathType + | "unique_group" + | "hogql" + ) + | null ) - | null; - tags: QueryLogTags; - version: number | null; - }>; - export type SnapshotManifestItem = { - identifier: string; - content_hash: string; - width?: (number | null) | undefined; - height?: (number | null) | undefined; - metadata?: Record | undefined; - }; - export type AddSnapshotsInput = { - snapshots: Array; - baseline_hashes?: Record | undefined; + | undefined; + math_group_type_index?: MathGroupTypeIndex | undefined; + math_hogql?: (string | null) | undefined; + math_multiplier?: (number | null) | undefined; + math_property?: (string | null) | undefined; + math_property_revenue_currency?: RevenueCurrencyPropertyConfig | undefined; + math_property_type?: (string | null) | undefined; + name?: (string | null) | undefined; + optionalInFunnel?: (boolean | null) | undefined; + properties?: + | (Array< + | EventPropertyFilter + | PersonPropertyFilter + | ElementPropertyFilter + | EventMetadataPropertyFilter + | SessionPropertyFilter + | CohortPropertyFilter + | RecordingPropertyFilter + | LogEntryPropertyFilter + | GroupPropertyFilter + | FeaturePropertyFilter + | FlagPropertyFilter + | HogQLPropertyFilter + | EmptyPropertyFilter + | DataWarehousePropertyFilter + | DataWarehousePersonPropertyFilter + | ErrorTrackingIssueFilter + | LogPropertyFilter + | SpanPropertyFilter + | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter + > | null) + | undefined; + response?: (Record | null) | undefined; + table_name: string; + timestamp_field: string; + version?: (number | null) | undefined; }; - export type UploadTarget = { - content_hash: string; - url: string; - fields: Record; + export type ExperimentMeanMetric = { + breakdownFilter?: BreakdownFilter | undefined; + conversion_window?: (number | null) | undefined; + conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; + fingerprint?: (string | null) | undefined; + goal?: ExperimentMetricGoal | undefined; + ignore_zeros?: (boolean | null) | undefined; + isSharedMetric?: (boolean | null) | undefined; + kind?: "ExperimentMetric" | undefined; + lower_bound_percentile?: (number | null) | undefined; + metric_type?: "mean" | undefined; + name?: (string | null) | undefined; + response?: (Record | null) | undefined; + sharedMetricId?: (number | null) | undefined; + source: EventsNode | ActionsNode | ExperimentDataWarehouseNode; + upper_bound_percentile?: (number | null) | undefined; + uuid?: (string | null) | undefined; + version?: (number | null) | undefined; }; - export type AddSnapshotsResult = { - added: number; - uploads: Array; + export type ExperimentFunnelMetric = { + breakdownFilter?: BreakdownFilter | undefined; + conversion_window?: (number | null) | undefined; + conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; + fingerprint?: (string | null) | undefined; + funnel_order_type?: StepOrderValue | undefined; + goal?: ExperimentMetricGoal | undefined; + isSharedMetric?: (boolean | null) | undefined; + kind?: "ExperimentMetric" | undefined; + metric_type?: "funnel" | undefined; + name?: (string | null) | undefined; + response?: (Record | null) | undefined; + series: Array; + sharedMetricId?: (number | null) | undefined; + uuid?: (string | null) | undefined; + version?: (number | null) | undefined; }; - export type AgentModeEnum = - | "product_analytics" - | "sql" - | "session_replay" - | "error_tracking" - | "plan" - | "execution" + export type ExperimentRatioMetric = { + breakdownFilter?: BreakdownFilter | undefined; + conversion_window?: (number | null) | undefined; + conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; + denominator: EventsNode | ActionsNode | ExperimentDataWarehouseNode; + fingerprint?: (string | null) | undefined; + goal?: ExperimentMetricGoal | undefined; + isSharedMetric?: (boolean | null) | undefined; + kind?: "ExperimentMetric" | undefined; + metric_type?: "ratio" | undefined; + name?: (string | null) | undefined; + numerator: EventsNode | ActionsNode | ExperimentDataWarehouseNode; + response?: (Record | null) | undefined; + sharedMetricId?: (number | null) | undefined; + uuid?: (string | null) | undefined; + version?: (number | null) | undefined; + }; + export type StartHandling = "first_seen" | "last_seen"; + export type ExperimentRetentionMetric = { + breakdownFilter?: BreakdownFilter | undefined; + completion_event: EventsNode | ActionsNode | ExperimentDataWarehouseNode; + conversion_window?: (number | null) | undefined; + conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; + fingerprint?: (string | null) | undefined; + goal?: ExperimentMetricGoal | undefined; + isSharedMetric?: (boolean | null) | undefined; + kind?: "ExperimentMetric" | undefined; + metric_type?: "retention" | undefined; + name?: (string | null) | undefined; + response?: (Record | null) | undefined; + retention_window_end: number; + retention_window_start: number; + retention_window_unit: FunnelConversionWindowTimeUnit; + sharedMetricId?: (number | null) | undefined; + start_event: EventsNode | ActionsNode | ExperimentDataWarehouseNode; + start_handling: StartHandling; + uuid?: (string | null) | undefined; + version?: (number | null) | undefined; + }; + export type PrecomputationMode = "precomputed" | "direct"; + export type SessionData = { + event_uuid: string; + person_id: string; + session_id: string; + timestamp: string; + }; + export type ExperimentStatsValidationFailure = + | "not-enough-exposures" + | "baseline-mean-is-zero" + | "not-enough-metric-data"; + export type ExperimentStatsBaseValidated = { + denominator_sum?: (number | null) | undefined; + denominator_sum_squares?: (number | null) | undefined; + key: string; + number_of_samples: number; + numerator_denominator_sum_product?: (number | null) | undefined; + step_counts?: (Array | null) | undefined; + step_sessions?: (Array> | null) | undefined; + sum: number; + sum_squares: number; + validation_failures?: + | (Array | null) + | undefined; + }; + export type ExperimentVariantResultFrequentist = { + confidence_interval?: (Array | null) | undefined; + denominator_sum?: (number | null) | undefined; + denominator_sum_squares?: (number | null) | undefined; + key: string; + method?: "frequentist" | undefined; + number_of_samples: number; + numerator_denominator_sum_product?: (number | null) | undefined; + p_value?: (number | null) | undefined; + significant?: (boolean | null) | undefined; + step_counts?: (Array | null) | undefined; + step_sessions?: (Array> | null) | undefined; + sum: number; + sum_squares: number; + validation_failures?: + | (Array | null) + | undefined; + }; + export type ExperimentVariantResultBayesian = { + chance_to_win?: (number | null) | undefined; + credible_interval?: (Array | null) | undefined; + denominator_sum?: (number | null) | undefined; + denominator_sum_squares?: (number | null) | undefined; + key: string; + method?: "bayesian" | undefined; + number_of_samples: number; + numerator_denominator_sum_product?: (number | null) | undefined; + significant?: (boolean | null) | undefined; + step_counts?: (Array | null) | undefined; + step_sessions?: (Array> | null) | undefined; + sum: number; + sum_squares: number; + validation_failures?: + | (Array | null) + | undefined; + }; + export type ExperimentBreakdownResult = { + baseline: ExperimentStatsBaseValidated; + breakdown_value: Array; + variants: + | Array + | Array; + }; + export type ExperimentSignificanceCode = + | "significant" + | "not_enough_exposure" + | "low_win_probability" + | "high_loss" + | "high_p_value"; + export type ExperimentVariantTrendsBaseStats = { + absolute_exposure: number; + count: number; + exposure: number; + key: string; + }; + export type ExperimentVariantFunnelsBaseStats = { + failure_count: number; + key: string; + success_count: number; + }; + export type ExperimentQueryResponse = Partial<{ + baseline: ExperimentStatsBaseValidated; + breakdown_results: Array | null; + clickhouse_sql: string | null; + credible_intervals: Record> | null; + hogql: string | null; + insight: Array> | null; + is_precomputed: boolean | null; + kind: "ExperimentQuery"; + metric: + | ( + | ExperimentMeanMetric + | ExperimentFunnelMetric + | ExperimentRatioMetric + | ExperimentRetentionMetric + ) + | null; + p_value: number | null; + probability: Record | null; + significance_code: ExperimentSignificanceCode; + significant: boolean | null; + stats_version: number | null; + variant_results: + | ( + | Array + | Array + ) + | null; + variants: + | ( + | Array + | Array + ) + | null; + }>; + export type ExperimentQuery = { + experiment_id?: (number | null) | undefined; + kind?: "ExperimentQuery" | undefined; + metric: + | ExperimentMeanMetric + | ExperimentFunnelMetric + | ExperimentRatioMetric + | ExperimentRetentionMetric; + modifiers?: HogQLQueryModifiers | undefined; + name?: (string | null) | undefined; + precomputation_mode?: PrecomputationMode | undefined; + response?: ExperimentQueryResponse | undefined; + tags?: QueryLogTags | undefined; + version?: (number | null) | undefined; + }; + export type ExperimentActorsQuery = { + exposureConfig?: + | ((ExperimentEventExposureConfig | ActionsNode) | null) + | undefined; + featureFlagKey?: (string | null) | undefined; + funnelStep?: (number | null) | undefined; + funnelStepBreakdown?: + | ((number | string | number | Array) | null) + | undefined; + includeRecordings?: (boolean | null) | undefined; + kind?: "ExperimentActorsQuery" | undefined; + modifiers?: HogQLQueryModifiers | undefined; + multipleVariantHandling?: MultipleVariantHandling | undefined; + response?: ActorsQueryResponse | undefined; + source: ExperimentQuery; + tags?: QueryLogTags | undefined; + version?: (number | null) | undefined; + }; + export type StickinessActorsQuery = { + compare?: Compare | undefined; + day?: ((string | number) | null) | undefined; + includeRecordings?: (boolean | null) | undefined; + kind?: "StickinessActorsQuery" | undefined; + modifiers?: HogQLQueryModifiers | undefined; + operator?: StickinessOperator | undefined; + response?: ActorsQueryResponse | undefined; + series?: (number | null) | undefined; + source: StickinessQuery; + tags?: QueryLogTags | undefined; + version?: (number | null) | undefined; + }; + export type HogQLFilters = Partial<{ + dateRange: DateRange; + filterTestAccounts: boolean | null; + properties: Array< + | EventPropertyFilter + | PersonPropertyFilter + | ElementPropertyFilter + | EventMetadataPropertyFilter + | SessionPropertyFilter + | CohortPropertyFilter + | RecordingPropertyFilter + | LogEntryPropertyFilter + | GroupPropertyFilter + | FeaturePropertyFilter + | FlagPropertyFilter + | HogQLPropertyFilter + | EmptyPropertyFilter + | DataWarehousePropertyFilter + | DataWarehousePersonPropertyFilter + | ErrorTrackingIssueFilter + | LogPropertyFilter + | SpanPropertyFilter + | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter + > | null; + }>; + export type HogQLNotice = { + end?: (number | null) | undefined; + fix?: (string | null) | undefined; + message: string; + start?: (number | null) | undefined; + }; + export type QueryIndexUsage = "undecisive" | "no" | "partial" | "yes"; + export type HogQLMetadataResponse = { + ch_table_names?: (Array | null) | undefined; + errors: Array; + isUsingIndices?: QueryIndexUsage | undefined; + isValid?: (boolean | null) | undefined; + notices: Array; + query?: (string | null) | undefined; + table_names?: (Array | null) | undefined; + warnings: Array; + }; + export type HogQLQueryResponse = { + clickhouse?: (string | null) | undefined; + columns?: (Array | null) | undefined; + error?: (string | null) | undefined; + explain?: (Array | null) | undefined; + hasMore?: (boolean | null) | undefined; + hogql?: (string | null) | undefined; + limit?: (number | null) | undefined; + metadata?: HogQLMetadataResponse | undefined; + modifiers?: HogQLQueryModifiers | undefined; + offset?: (number | null) | undefined; + query?: (string | null) | undefined; + query_status?: QueryStatus | undefined; + resolved_date_range?: ResolvedDateRangeResponse | undefined; + results: Array; + timings?: (Array | null) | undefined; + types?: (Array | null) | undefined; + }; + export type HogQLVariable = { + code_name: string; + isNull?: (boolean | null) | undefined; + value?: (unknown | null) | undefined; + variableId: string; + }; + export type HogQLQuery = { + connectionId?: (string | null) | undefined; + explain?: (boolean | null) | undefined; + filters?: HogQLFilters | undefined; + kind?: "HogQLQuery" | undefined; + modifiers?: HogQLQueryModifiers | undefined; + name?: (string | null) | undefined; + query: string; + response?: HogQLQueryResponse | undefined; + sendRawQuery?: (boolean | null) | undefined; + tags?: QueryLogTags | undefined; + values?: (Record | null) | undefined; + variables?: (Record | null) | undefined; + version?: (number | null) | undefined; + }; + export type ActorsQuery = Partial<{ + fixedProperties: Array< + | PersonPropertyFilter + | CohortPropertyFilter + | HogQLPropertyFilter + | EmptyPropertyFilter + > | null; + kind: "ActorsQuery"; + limit: number | null; + modifiers: HogQLQueryModifiers; + offset: number | null; + orderBy: Array | null; + properties: + | ( + | Array< + | PersonPropertyFilter + | CohortPropertyFilter + | HogQLPropertyFilter + | EmptyPropertyFilter + > + | PropertyGroupFilterValue + ) + | null; + response: ActorsQueryResponse; + search: string | null; + select: Array | null; + source: + | ( + | InsightActorsQuery + | FunnelsActorsQuery + | FunnelCorrelationActorsQuery + | ExperimentActorsQuery + | StickinessActorsQuery + | HogQLQuery + ) + | null; + tags: QueryLogTags; + version: number | null; + }>; + export type SnapshotManifestItem = { + identifier: string; + content_hash: string; + width?: (number | null) | undefined; + height?: (number | null) | undefined; + metadata?: Record | undefined; + }; + export type AddSnapshotsInput = { + snapshots: Array; + baseline_hashes?: Record | undefined; + }; + export type UploadTarget = { + content_hash: string; + url: string; + fields: Record; + }; + export type AddSnapshotsResult = { + added: number; + uploads: Array; + }; + export type AgentModeEnum = + | "product_analytics" + | "sql" + | "session_replay" + | "error_tracking" + | "plan" + | "execution" | "survey" | "research" | "flags" @@ -2756,6 +3132,10 @@ export namespace Schemas { | "daily" | "weekly" | "monthly"; + export type AlertScheduleRestrictionWindow = { start: string; end: string }; + export type AlertScheduleRestriction = { + blocked_windows: Array; + }; export type Alert = { id: string; created_by: UserBasic & unknown; @@ -2776,6 +3156,9 @@ export namespace Schemas { calculation_interval?: CalculationIntervalEnum | undefined; snoozed_until?: (string | null) | undefined; skip_weekend?: (boolean | null) | undefined; + schedule_restriction?: + | ((AlertScheduleRestriction & null) | null) + | undefined; last_value: number | null; }; export type AlertSimulate = { @@ -2832,6 +3215,12 @@ export namespace Schemas { deleted?: boolean | undefined; scope?: AnnotationScopeEnum | undefined; }; + export type AppMetricSeries = { name: string; values: Array }; + export type AppMetricsResponse = { + labels: Array; + series: Array; + }; + export type AppMetricsTotalsResponse = { totals: Record }; export type TranscriptSegment = { timestamp?: (number | null) | undefined; speaker?: (string | null) | undefined; @@ -2840,6 +3229,20 @@ export namespace Schemas { is_final?: (boolean | null) | undefined; }; export type AppendSegments = { segments: Array }; + export type ApprovalPolicy = { + id: string; + action_key: string; + conditions?: unknown | undefined; + approver_config: unknown; + allow_self_approve?: boolean | undefined; + bypass_org_membership_levels?: unknown | undefined; + bypass_roles?: Array | undefined; + expires_after?: string | undefined; + enabled?: boolean | undefined; + created_by: UserBasic & unknown; + created_at: string; + updated_at: string | null; + }; export type ApproveSnapshotInput = { identifier: string; new_hash: string }; export type ApproveRunRequestInput = Partial<{ snapshots: Array; @@ -2853,7 +3256,12 @@ export namespace Schemas { height: number | null; download_url: string | null; }; - export type AttributionModeEnum = "first_touch" | "last_touch"; + export type AttributionModeEnum = + | "first_touch" + | "last_touch" + | "linear" + | "time_decay" + | "position_based"; export type RunSummary = { total: number; changed: number; @@ -2915,6 +3323,15 @@ export namespace Schemas { kind: AutocompleteCompletionItemKind; label: string; }; + export type StaticFilters = { + users: Array>; + scopes: Array>; + activities: Array>; + }; + export type AvailableFiltersResponse = { + static_filters: StaticFilters; + detail_fields: Record; + }; export type AvailableSetupTaskIdsEnum = | "ingest_first_event" | "set_up_reverse_proxy" @@ -3185,6 +3602,7 @@ export namespace Schemas { id: string; status: BatchExportRunStatusEnum; records_completed?: (number | null) | undefined; + records_failed?: (number | null) | undefined; latest_error?: (string | null) | undefined; data_interval_start?: (string | null) | undefined; data_interval_end: string; @@ -3877,6 +4295,11 @@ export namespace Schemas { event_filters?: (Array | null) | undefined; explicit_datetime?: (string | null) | undefined; }; + export type BlastRadius = { affected: number; total: number }; + export type BlastRadiusRequest = { + filters: Record; + group_type_index?: (number | null) | undefined; + }; export type BooleanScoreDefinitionConfig = Partial<{ true_label: string; false_label: string; @@ -3973,6 +4396,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | PropertyGroupFilter ) @@ -4006,6 +4430,41 @@ export namespace Schemas { min_selections?: (number | null) | undefined; max_selections?: (number | null) | undefined; }; + export type ValidationStatusEnum = "valid" | "invalid" | "expired" | "stale"; + export type ChangeRequestStateEnum = + | "pending" + | "approved" + | "applied" + | "rejected" + | "expired" + | "failed"; + export type ChangeRequest = { + id: string; + action_key: string; + action_version: number; + resource_type: string; + resource_id: string | null; + intent: unknown; + intent_display: unknown; + policy_snapshot: unknown; + validation_status: ValidationStatusEnum & unknown; + validation_errors: unknown | null; + validated_at: string | null; + state: ChangeRequestStateEnum & unknown; + created_by: UserBasic & unknown; + applied_by: UserBasic & unknown; + created_at: string; + updated_at: string | null; + expires_at: string; + applied_at: string | null; + apply_error: string; + result_data: unknown | null; + approvals: Array>; + can_approve: boolean; + can_cancel: boolean; + is_requester: boolean; + user_decision: string | null; + }; export type ChannelDetailEnum = | "slack_channel_message" | "slack_bot_mention" @@ -4036,12 +4495,15 @@ export namespace Schemas { export type ChartAxis = { column: string; settings?: Settings | undefined }; export type HeatmapGradientStop = { color: string; value: number }; export type GradientScaleMode = "absolute" | "relative"; + export type HeatmapSortOrder = "asc" | "desc"; export type HeatmapSettings = Partial<{ gradient: Array | null; gradientPreset: string | null; gradientScaleMode: GradientScaleMode; nullLabel: string | null; nullValue: string | null; + sortColumn: string | null; + sortOrder: HeatmapSortOrder; valueColumn: string | null; xAxisColumn: string | null; xAxisLabel: string | null; @@ -4161,8 +4623,23 @@ export namespace Schemas { _create_static_person_ids?: Array | undefined; }; export type ColorMode = "light" | "dark"; + export type Comment = { + id: string; + created_by: UserBasic & unknown; + deleted?: (boolean | null) | undefined; + mentions?: Array | undefined; + slug?: string | undefined; + content?: (string | null) | undefined; + rich_content?: null | undefined; + version: number; + created_at: string; + item_id?: (string | null) | undefined; + item_context?: null | undefined; + scope: string; + source_comment?: (string | null) | undefined; + }; export type CompareItem = { label: string; value: string }; - export type ConclusionF33Enum = + export type ConclusionEnum = | "won" | "lost" | "inconclusive" @@ -4178,20 +4655,20 @@ export namespace Schemas { templateId: string; }; export type ConnectionTokenResponse = { token: string }; - export type ConversationStatusEnum = "idle" | "in_progress" | "canceling"; - export type ConversationTypeEnum = + export type ConversationStatus = "idle" | "in_progress" | "canceling"; + export type ConversationType = | "assistant" | "tool_call" | "deep_research" | "slack"; export type Conversation = { id: string; - status: ConversationStatusEnum & unknown; + status: ConversationStatus & unknown; title: string | null; user: UserBasic & unknown; created_at: string | null; updated_at: string | null; - type: ConversationTypeEnum & unknown; + type: ConversationType & unknown; is_internal: boolean | null; slack_thread_key: string | null; slack_workspace_domain: string | null; @@ -4201,6 +4678,18 @@ export namespace Schemas { is_sandbox: boolean; pending_approvals: Array>; }; + export type ConversationMinimal = { + id: string; + status: ConversationStatus & unknown; + title: string | null; + user: UserBasic & unknown; + created_at: string | null; + updated_at: string | null; + type: ConversationType & unknown; + is_internal: boolean | null; + slack_thread_key: string | null; + slack_workspace_domain: string | null; + }; export type ConversionGoalFilter1 = { conversion_goal_id: string; conversion_goal_name: string; @@ -4227,6 +4716,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; kind?: "EventsNode" | undefined; @@ -4276,6 +4766,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -4307,6 +4798,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; id: number; @@ -4355,6 +4847,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -4388,6 +4881,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; id: string; @@ -4437,6 +4931,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: (Record | null) | undefined; @@ -4450,6 +4945,11 @@ export namespace Schemas { fromDashboardId: number; tileId: number; }; + export type CopyExperimentToProject = { + target_team_id: number; + feature_flag_key?: string | undefined; + name?: string | undefined; + }; export type CreateGroup = { group_type_index: number; group_key: string; @@ -4542,6 +5042,15 @@ export namespace Schemas { access_key: string; access_secret: string; }; + export type CustomerJourney = { + id: string; + insight: number; + name: string; + description?: (string | null) | undefined; + created_at: string; + created_by: number | null; + updated_at: string | null; + }; export type CustomerProfileConfigScopeEnum = | "person" | "group_0" @@ -4648,6 +5157,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; }>; export type DashboardGeneratedMetadata = { @@ -4665,7 +5175,7 @@ export namespace Schemas { variables?: null | undefined; deleted?: (boolean | null) | undefined; created_at: string | null; - created_by?: (number | null) | undefined; + created_by: UserBasic & unknown; image_url?: (string | null) | undefined; team_id: number | null; scope?: @@ -5113,17 +5623,6 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type ExperimentSignificanceCode = - | "significant" - | "not_enough_exposure" - | "low_win_probability" - | "high_loss" - | "high_p_value"; - export type ExperimentVariantFunnelsBaseStats = { - failure_count: number; - key: string; - success_count: number; - }; export type Response23 = { credible_intervals: Record>; expected_loss: number; @@ -5136,12 +5635,6 @@ export namespace Schemas { stats_version?: (number | null) | undefined; variants: Array; }; - export type ExperimentVariantTrendsBaseStats = { - absolute_exposure: number; - count: number; - exposure: number; - key: string; - }; export type Response24 = { count_query?: TrendsQuery | undefined; credible_intervals: Record>; @@ -5268,6 +5761,7 @@ export namespace Schemas { | "workflow_variables" | "suggested_filters" | "recent_filters" + | "pinned_filters" | "empty"; export type HrefMatching = "contains" | "exact" | "regex" | null; export type TextMatching = "contains" | "exact" | "regex" | null; @@ -5296,6 +5790,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; selector: string | null; tag_name: string | null; @@ -5350,6 +5845,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; kind?: "EventsQuery" | undefined; @@ -5379,6 +5875,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: EventsQueryResponse | undefined; @@ -5411,6 +5908,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; kind: "PersonsNode"; limit: number | null; @@ -5436,6 +5934,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; response: Record | null; search: string | null; @@ -5726,6 +6225,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; filterTestAccounts?: (boolean | null) | undefined; @@ -5752,6 +6252,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; kind?: "SessionsQuery" | undefined; @@ -5781,6 +6282,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: SessionsQueryResponse | undefined; @@ -6118,13 +6620,13 @@ export namespace Schemas { useSessionsTable?: (boolean | null) | undefined; version?: (number | null) | undefined; }; - export type OrderBy1 = + export type ErrorTrackingOrderBy = | "last_seen" | "first_seen" | "occurrences" | "users" | "sessions"; - export type OrderDirection1 = "ASC" | "DESC"; + export type OrderDirection2 = "ASC" | "DESC"; export type ErrorTrackingQueryResponse = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; @@ -6150,14 +6652,15 @@ export namespace Schemas { limit?: (number | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; offset?: (number | null) | undefined; - orderBy: OrderBy1; - orderDirection?: OrderDirection1 | undefined; + orderBy: ErrorTrackingOrderBy; + orderDirection?: OrderDirection2 | undefined; personId?: (string | null) | undefined; response?: ErrorTrackingQueryResponse | undefined; searchQuery?: (string | null) | undefined; status?: ((ErrorTrackingIssueStatus | string) | null) | undefined; tags?: QueryLogTags | undefined; useQueryV2?: (boolean | null) | undefined; + useQueryV3?: (boolean | null) | undefined; version?: (number | null) | undefined; volumeResolution: number; withAggregations?: (boolean | null) | undefined; @@ -6279,6 +6782,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; randomOrder: boolean | null; response: TracesQueryResponse; @@ -6324,6 +6828,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: TraceQueryResponse | undefined; @@ -6520,6 +7025,7 @@ export namespace Schemas { edited_history_id?: (string | null) | undefined; latest_history_id: number | null; soft_update?: (boolean | null) | undefined; + dag_id?: (string | null) | undefined; is_materialized: boolean | null; origin: (OriginEnum | NullEnum) | null; is_test?: boolean | undefined; @@ -6820,7 +7326,7 @@ export namespace Schemas { | "not_icontains"; export type DistanceFunc = "L1Distance" | "L2Distance" | "cosineDistance"; export type OrderBy = "distance" | "timestamp"; - export type OrderDirection = "asc" | "desc"; + export type OrderDirection1 = "asc" | "desc"; export type EmbeddedDocument = { document_id: string; document_type: string; @@ -6865,7 +7371,7 @@ export namespace Schemas { modifiers?: HogQLQueryModifiers | undefined; offset?: (number | null) | undefined; order_by: OrderBy; - order_direction: OrderDirection; + order_direction: OrderDirection1; origin: EmbeddedDocument; products: Array; renderings: Array; @@ -6937,12 +7443,13 @@ export namespace Schemas { text?: (string | null) | undefined; }; export type EndExperiment = Partial<{ - conclusion: (ConclusionF33Enum | NullEnum) | null; + conclusion: (ConclusionEnum | NullEnum) | null; conclusion_comment: string | null; }>; export type EndpointColumn = { name: string; type: string }; export type EndpointLastExecutionTimesRequest = { names: Array }; export type EndpointMaterialization = { + name: string; status?: string | undefined; can_materialize: boolean; reason?: (string | null) | undefined; @@ -6989,13 +7496,19 @@ export namespace Schemas { export type EndpointRunRequest = Partial<{ client_query_id: string | null; debug: boolean | null; - filters_override: DashboardFilter; limit: number | null; offset: number | null; refresh: EndpointRefreshMode; variables: Record | null; version: number | null; }>; + export type EndpointRunResponse = { + name: string; + results?: Array | undefined; + columns?: Array | undefined; + hasMore?: boolean | undefined; + endpoint_version?: number | undefined; + }; export type EndpointVersionResponse = { id: string; name: string; @@ -7021,6 +7534,7 @@ export namespace Schemas { version_id: string; endpoint_is_active: boolean; version_created_at: string; + version_updated_at: string | null; version_created_by: (UserBasic & (unknown | null)) | null; }; export type EndpointsUsageOverviewItemKey = @@ -7212,6 +7726,8 @@ export namespace Schemas { external_issues: Array; cohort: Partial<{ id: number; name: string }> | null; }; + export type ErrorTrackingIssueMergeRequest = { ids: Array }; + export type ErrorTrackingIssueMergeResponse = { success: boolean }; export type ErrorTrackingRelease = { id: string; hash_id: string; @@ -7268,6 +7784,16 @@ export namespace Schemas { computed_baseline: number; current_bucket_value: number; }; + export type ErrorTrackingStackFrame = { + id: string; + raw_id: string; + created_at: string; + contents: unknown; + resolved: boolean; + context?: null | undefined; + symbol_set_ref?: string | undefined; + release: ErrorTrackingRelease & unknown; + }; export type ErrorTrackingSuppressionRule = { id: string; filters: unknown; @@ -7289,14 +7815,14 @@ export namespace Schemas { }; export type EvaluationTypeEnum = "llm_judge" | "hog"; export type OutputTypeEnum = "boolean"; - export type ProviderEnum = + export type Provider519Enum = | "openai" | "anthropic" | "gemini" | "openrouter" | "fireworks"; export type ModelConfiguration = { - provider: ProviderEnum; + provider: Provider519Enum; model: string; provider_key_id?: (string | null) | undefined; provider_key_name: string | null; @@ -7345,6 +7871,15 @@ export namespace Schemas { statistics: EvaluationSummaryStatistics; }; export type EventDefinitionBasic = { id: string; name: string }; + export type EventFilterConfigModeEnum = "disabled" | "dry_run" | "live"; + export type EventFilterConfig = { + id: string; + mode?: EventFilterConfigModeEnum | undefined; + filter_tree?: (unknown | null) | undefined; + test_cases?: unknown | undefined; + created_at: string; + updated_at: string; + }; export type SchemaPropertyGroupPropertyPropertyTypeEnum = | "DateTime" | "String" @@ -7386,8 +7921,11 @@ export namespace Schemas { }; export type EventTaxonomyQueryResponse = { error?: (string | null) | undefined; + hasMore?: (boolean | null) | undefined; hogql?: (string | null) | undefined; + limit?: (number | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; + offset?: (number | null) | undefined; query_status?: QueryStatus | undefined; resolved_date_range?: ResolvedDateRangeResponse | undefined; results: Array; @@ -7397,8 +7935,10 @@ export namespace Schemas { actionId: number | null; event: string | null; kind: "EventTaxonomyQuery"; + limit: number | null; maxPropertyValues: number | null; modifiers: HogQLQueryModifiers; + offset: number | null; properties: Array | null; response: EventTaxonomyQueryResponse; tags: QueryLogTags; @@ -7445,6 +7985,15 @@ export namespace Schemas { created_at: string; updated_at: string; }; + export type ExperimentVariant = { + key: string; + name?: (string | null) | undefined; + rollout_percentage: number; + }; + export type ExperimentParameters = Partial<{ + feature_flag_variants: Array | null; + minimum_detectable_effect: number | null; + }>; export type ExperimentToSavedMetric = { id: number; experiment: number; @@ -7455,226 +8004,82 @@ export namespace Schemas { name: string; }; export type ExperimentTypeEnum = "web" | "product"; - export type ExperimentConclusionEnum = - | "won" - | "lost" - | "inconclusive" - | "stopped_early" - | "invalid"; - export type ExperimentStatusEnum = "draft" | "running" | "stopped"; - export type Experiment = { - id: number; - name: string; - description?: (string | null) | undefined; - start_date?: (string | null) | undefined; - end_date?: (string | null) | undefined; - feature_flag_key: string; - feature_flag: MinimalFeatureFlag & unknown; - holdout: ExperimentHoldout & unknown; - holdout_id?: (number | null) | undefined; - exposure_cohort: number | null; - parameters?: null | undefined; - secondary_metrics?: null | undefined; - saved_metrics: Array; - saved_metrics_ids?: (Array | null) | undefined; - filters?: unknown | undefined; - archived?: boolean | undefined; - deleted?: (boolean | null) | undefined; - created_by: UserBasic & unknown; - created_at: string; - updated_at: string; - type?: ((ExperimentTypeEnum | BlankEnum | NullEnum) | null) | undefined; - exposure_criteria?: null | undefined; - metrics?: null | undefined; - metrics_secondary?: null | undefined; - stats_config?: null | undefined; - scheduling_config?: null | undefined; - _create_in_folder?: string | undefined; - conclusion?: - | ((ExperimentConclusionEnum | BlankEnum | NullEnum) | null) - | undefined; - conclusion_comment?: (string | null) | undefined; - primary_metrics_ordered_uuids?: null | undefined; - secondary_metrics_ordered_uuids?: null | undefined; - exposure_preaggregation_enabled?: boolean | undefined; - only_count_matured_users?: boolean | undefined; - status: (ExperimentStatusEnum | NullEnum) | null; - user_access_level: string | null; - }; - export type SessionData = { - event_uuid: string; - person_id: string; - session_id: string; - timestamp: string; - }; - export type ExperimentStatsValidationFailure = - | "not-enough-exposures" - | "baseline-mean-is-zero" - | "not-enough-metric-data"; - export type ExperimentStatsBaseValidated = { - denominator_sum?: (number | null) | undefined; - denominator_sum_squares?: (number | null) | undefined; - key: string; - number_of_samples: number; - numerator_denominator_sum_product?: (number | null) | undefined; - step_counts?: (Array | null) | undefined; - step_sessions?: (Array> | null) | undefined; - sum: number; - sum_squares: number; - validation_failures?: - | (Array | null) - | undefined; - }; - export type ExperimentVariantResultFrequentist = { - confidence_interval?: (Array | null) | undefined; - denominator_sum?: (number | null) | undefined; - denominator_sum_squares?: (number | null) | undefined; - key: string; - method?: "frequentist" | undefined; - number_of_samples: number; - numerator_denominator_sum_product?: (number | null) | undefined; - p_value?: (number | null) | undefined; - significant?: (boolean | null) | undefined; - step_counts?: (Array | null) | undefined; - step_sessions?: (Array> | null) | undefined; - sum: number; - sum_squares: number; - validation_failures?: - | (Array | null) - | undefined; - }; - export type ExperimentVariantResultBayesian = { - chance_to_win?: (number | null) | undefined; - credible_interval?: (Array | null) | undefined; - denominator_sum?: (number | null) | undefined; - denominator_sum_squares?: (number | null) | undefined; - key: string; - method?: "bayesian" | undefined; - number_of_samples: number; - numerator_denominator_sum_product?: (number | null) | undefined; - significant?: (boolean | null) | undefined; - step_counts?: (Array | null) | undefined; - step_sessions?: (Array> | null) | undefined; - sum: number; - sum_squares: number; - validation_failures?: - | (Array | null) - | undefined; + export type ExperimentApiExposureConfig = { + event: string; + kind?: "ExperimentEventExposureConfig" | undefined; + properties: Array; }; - export type ExperimentBreakdownResult = { - baseline: ExperimentStatsBaseValidated; - breakdown_value: Array; - variants: - | Array - | Array; + export type ExperimentApiExposureCriteria = Partial<{ + exposure_config: ExperimentApiExposureConfig; + filterTestAccounts: boolean | null; + }>; + export type Kind = "EventsNode" | "ActionsNode"; + export type ExperimentApiEventSource = { + event?: (string | null) | undefined; + id?: (number | null) | undefined; + kind: Kind; + properties?: (Array | null) | undefined; }; - export type ExperimentDataWarehouseNode = { - custom_name?: (string | null) | undefined; - data_warehouse_join_key: string; - events_join_key: string; - fixedProperties?: - | (Array< - | EventPropertyFilter - | PersonPropertyFilter - | ElementPropertyFilter - | EventMetadataPropertyFilter - | SessionPropertyFilter - | CohortPropertyFilter - | RecordingPropertyFilter - | LogEntryPropertyFilter - | GroupPropertyFilter - | FeaturePropertyFilter - | FlagPropertyFilter - | HogQLPropertyFilter - | EmptyPropertyFilter - | DataWarehousePropertyFilter - | DataWarehousePersonPropertyFilter - | ErrorTrackingIssueFilter - | LogPropertyFilter - | SpanPropertyFilter - | RevenueAnalyticsPropertyFilter - > | null) - | undefined; - kind?: "ExperimentDataWarehouseNode" | undefined; - math?: - | ( - | ( - | BaseMathType - | FunnelMathType - | PropertyMathType - | CountPerActorMathType - | ExperimentMetricMathType - | CalendarHeatmapMathType - | "unique_group" - | "hogql" - ) - | null - ) - | undefined; - math_group_type_index?: MathGroupTypeIndex | undefined; - math_hogql?: (string | null) | undefined; - math_multiplier?: (number | null) | undefined; - math_property?: (string | null) | undefined; - math_property_revenue_currency?: RevenueCurrencyPropertyConfig | undefined; - math_property_type?: (string | null) | undefined; + export type ExperimentMetricType = "funnel" | "mean" | "ratio" | "retention"; + export type ExperimentApiMetric = { + completion_event?: ExperimentApiEventSource | undefined; + conversion_window?: (number | null) | undefined; + denominator?: ExperimentApiEventSource | undefined; + goal?: ExperimentMetricGoal | undefined; + kind?: "ExperimentMetric" | undefined; + metric_type: ExperimentMetricType; name?: (string | null) | undefined; - optionalInFunnel?: (boolean | null) | undefined; - properties?: - | (Array< - | EventPropertyFilter - | PersonPropertyFilter - | ElementPropertyFilter - | EventMetadataPropertyFilter - | SessionPropertyFilter - | CohortPropertyFilter - | RecordingPropertyFilter - | LogEntryPropertyFilter - | GroupPropertyFilter - | FeaturePropertyFilter - | FlagPropertyFilter - | HogQLPropertyFilter - | EmptyPropertyFilter - | DataWarehousePropertyFilter - | DataWarehousePersonPropertyFilter - | ErrorTrackingIssueFilter - | LogPropertyFilter - | SpanPropertyFilter - | RevenueAnalyticsPropertyFilter - > | null) - | undefined; - response?: (Record | null) | undefined; - table_name: string; - timestamp_field: string; - version?: (number | null) | undefined; + numerator?: ExperimentApiEventSource | undefined; + retention_window_end?: (number | null) | undefined; + retention_window_start?: (number | null) | undefined; + retention_window_unit?: FunnelConversionWindowTimeUnit | undefined; + series?: (Array | null) | undefined; + source?: ExperimentApiEventSource | undefined; + start_event?: ExperimentApiEventSource | undefined; + start_handling?: StartHandling | undefined; + uuid?: (string | null) | undefined; }; - export type ExperimentEventExposureConfig = { - event: string; - kind?: "ExperimentEventExposureConfig" | undefined; - properties: Array< - | EventPropertyFilter - | PersonPropertyFilter - | ElementPropertyFilter - | EventMetadataPropertyFilter - | SessionPropertyFilter - | CohortPropertyFilter - | RecordingPropertyFilter - | LogEntryPropertyFilter - | GroupPropertyFilter - | FeaturePropertyFilter - | FlagPropertyFilter - | HogQLPropertyFilter - | EmptyPropertyFilter - | DataWarehousePropertyFilter - | DataWarehousePersonPropertyFilter - | ErrorTrackingIssueFilter - | LogPropertyFilter - | SpanPropertyFilter - | RevenueAnalyticsPropertyFilter - >; - response?: (Record | null) | undefined; - version?: (number | null) | undefined; + export type _ExperimentApiMetricsList = Array; + export type ExperimentStatusEnum = "draft" | "running" | "stopped"; + export type Experiment = { + id: number; + name: string; + description?: (string | null) | undefined; + start_date?: (string | null) | undefined; + end_date?: (string | null) | undefined; + feature_flag_key: string; + feature_flag: MinimalFeatureFlag & unknown; + holdout: ExperimentHoldout & unknown; + holdout_id?: (number | null) | undefined; + exposure_cohort: number | null; + parameters?: ((ExperimentParameters & null) | null) | undefined; + secondary_metrics?: null | undefined; + saved_metrics: Array; + saved_metrics_ids?: (Array | null) | undefined; + filters?: unknown | undefined; + archived?: boolean | undefined; + deleted?: (boolean | null) | undefined; + created_by: UserBasic & unknown; + created_at: string; + updated_at: string; + type?: ((ExperimentTypeEnum | NullEnum) | null) | undefined; + exposure_criteria?: + | ((ExperimentApiExposureCriteria & null) | null) + | undefined; + metrics?: ((_ExperimentApiMetricsList & null) | null) | undefined; + metrics_secondary?: ((_ExperimentApiMetricsList & null) | null) | undefined; + stats_config?: null | undefined; + scheduling_config?: null | undefined; + allow_unknown_events?: boolean | undefined; + _create_in_folder?: string | undefined; + conclusion?: ((ConclusionEnum | NullEnum) | null) | undefined; + conclusion_comment?: (string | null) | undefined; + primary_metrics_ordered_uuids?: null | undefined; + secondary_metrics_ordered_uuids?: null | undefined; + only_count_matured_users?: boolean | undefined; + status: (ExperimentStatusEnum | NullEnum) | null; + user_access_level: string | null; }; - export type MultipleVariantHandling = "exclude" | "first_seen"; export type ExperimentExposureCriteria = Partial<{ exposure_config: (ExperimentEventExposureConfig | ActionsNode) | null; filterTestAccounts: boolean | null; @@ -7703,6 +8108,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; rollout_percentage: number | null; sort_key: string | null; @@ -7748,131 +8154,6 @@ export namespace Schemas { tags?: QueryLogTags | undefined; version?: (number | null) | undefined; }; - export type ExperimentMetricGoal = "increase" | "decrease"; - export type ExperimentFunnelMetric = { - breakdownFilter?: BreakdownFilter | undefined; - conversion_window?: (number | null) | undefined; - conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; - fingerprint?: (string | null) | undefined; - funnel_order_type?: StepOrderValue | undefined; - goal?: ExperimentMetricGoal | undefined; - isSharedMetric?: (boolean | null) | undefined; - kind?: "ExperimentMetric" | undefined; - metric_type?: "funnel" | undefined; - name?: (string | null) | undefined; - response?: (Record | null) | undefined; - series: Array; - sharedMetricId?: (number | null) | undefined; - uuid?: (string | null) | undefined; - version?: (number | null) | undefined; - }; - export type ExperimentMeanMetric = { - breakdownFilter?: BreakdownFilter | undefined; - conversion_window?: (number | null) | undefined; - conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; - fingerprint?: (string | null) | undefined; - goal?: ExperimentMetricGoal | undefined; - ignore_zeros?: (boolean | null) | undefined; - isSharedMetric?: (boolean | null) | undefined; - kind?: "ExperimentMetric" | undefined; - lower_bound_percentile?: (number | null) | undefined; - metric_type?: "mean" | undefined; - name?: (string | null) | undefined; - response?: (Record | null) | undefined; - sharedMetricId?: (number | null) | undefined; - source: EventsNode | ActionsNode | ExperimentDataWarehouseNode; - upper_bound_percentile?: (number | null) | undefined; - uuid?: (string | null) | undefined; - version?: (number | null) | undefined; - }; - export type ExperimentRatioMetric = { - breakdownFilter?: BreakdownFilter | undefined; - conversion_window?: (number | null) | undefined; - conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; - denominator: EventsNode | ActionsNode | ExperimentDataWarehouseNode; - fingerprint?: (string | null) | undefined; - goal?: ExperimentMetricGoal | undefined; - isSharedMetric?: (boolean | null) | undefined; - kind?: "ExperimentMetric" | undefined; - metric_type?: "ratio" | undefined; - name?: (string | null) | undefined; - numerator: EventsNode | ActionsNode | ExperimentDataWarehouseNode; - response?: (Record | null) | undefined; - sharedMetricId?: (number | null) | undefined; - uuid?: (string | null) | undefined; - version?: (number | null) | undefined; - }; - export type StartHandling = "first_seen" | "last_seen"; - export type ExperimentRetentionMetric = { - breakdownFilter?: BreakdownFilter | undefined; - completion_event: EventsNode | ActionsNode | ExperimentDataWarehouseNode; - conversion_window?: (number | null) | undefined; - conversion_window_unit?: FunnelConversionWindowTimeUnit | undefined; - fingerprint?: (string | null) | undefined; - goal?: ExperimentMetricGoal | undefined; - isSharedMetric?: (boolean | null) | undefined; - kind?: "ExperimentMetric" | undefined; - metric_type?: "retention" | undefined; - name?: (string | null) | undefined; - response?: (Record | null) | undefined; - retention_window_end: number; - retention_window_start: number; - retention_window_unit: FunnelConversionWindowTimeUnit; - sharedMetricId?: (number | null) | undefined; - start_event: EventsNode | ActionsNode | ExperimentDataWarehouseNode; - start_handling: StartHandling; - uuid?: (string | null) | undefined; - version?: (number | null) | undefined; - }; - export type ExperimentQueryResponse = Partial<{ - baseline: ExperimentStatsBaseValidated; - breakdown_results: Array | null; - clickhouse_sql: string | null; - credible_intervals: Record> | null; - hogql: string | null; - insight: Array> | null; - is_precomputed: boolean | null; - kind: "ExperimentQuery"; - metric: - | ( - | ExperimentMeanMetric - | ExperimentFunnelMetric - | ExperimentRatioMetric - | ExperimentRetentionMetric - ) - | null; - p_value: number | null; - probability: Record | null; - significance_code: ExperimentSignificanceCode; - significant: boolean | null; - stats_version: number | null; - variant_results: - | ( - | Array - | Array - ) - | null; - variants: - | ( - | Array - | Array - ) - | null; - }>; - export type ExperimentQuery = { - experiment_id?: (number | null) | undefined; - kind?: "ExperimentQuery" | undefined; - metric: - | ExperimentMeanMetric - | ExperimentFunnelMetric - | ExperimentRatioMetric - | ExperimentRetentionMetric; - modifiers?: HogQLQueryModifiers | undefined; - name?: (string | null) | undefined; - response?: ExperimentQueryResponse | undefined; - tags?: QueryLogTags | undefined; - version?: (number | null) | undefined; - }; export type ExperimentSavedMetric = { id: number; name: string; @@ -8309,9 +8590,13 @@ export namespace Schemas { export type GitHubBranchesResponse = { branches: Array; default_branch?: (string | null) | undefined; + has_more: boolean; }; export type GitHubRepo = { id: number; name: string; full_name: string }; - export type GitHubReposResponse = { repositories: Array }; + export type GitHubReposResponse = { + repositories: Array; + has_more: boolean; + }; export type Group = { group_type_index: number; group_key: string; @@ -8638,7 +8923,8 @@ export namespace Schemas { | InsightActorsQuery | FunnelsActorsQuery | FunnelCorrelationActorsQuery - | StickinessActorsQuery; + | StickinessActorsQuery + | ExperimentActorsQuery; version?: (number | null) | undefined; }; export type TimelineEntry = { @@ -8811,7 +9097,58 @@ export namespace Schemas { response?: WebAnalyticsExternalSummaryQueryResponse | undefined; version?: (number | null) | undefined; }; - export type OrderBy3 = "latest" | "earliest"; + export type WebNotableChangeItem = { + current_value: number; + dimension_type: string; + dimension_value: string; + impact_score: number; + metric: string; + percent_change: number; + previous_value: number; + }; + export type WebNotableChangesQueryResponse = { + error?: (string | null) | undefined; + hogql?: (string | null) | undefined; + modifiers?: HogQLQueryModifiers | undefined; + query_status?: QueryStatus | undefined; + resolved_date_range?: ResolvedDateRangeResponse | undefined; + results: Array; + samplingRate?: SamplingRate | undefined; + timings?: (Array | null) | undefined; + usedPreAggregatedTables?: (boolean | null) | undefined; + }; + export type WebNotableChangesQuery = { + aggregation_group_type_index?: (number | null) | undefined; + compareFilter?: CompareFilter | undefined; + conversionGoal?: + | ((ActionConversionGoal | CustomEventConversionGoal) | null) + | undefined; + dataColorTheme?: (number | null) | undefined; + dateRange?: DateRange | undefined; + doPathCleaning?: (boolean | null) | undefined; + filterTestAccounts?: (boolean | null) | undefined; + includeRevenue?: (boolean | null) | undefined; + interval?: IntervalType | undefined; + kind?: "WebNotableChangesQuery" | undefined; + limit?: (number | null) | undefined; + modifiers?: HogQLQueryModifiers | undefined; + orderBy?: + | (Array | null) + | undefined; + properties: Array< + | EventPropertyFilter + | PersonPropertyFilter + | SessionPropertyFilter + | CohortPropertyFilter + >; + response?: WebNotableChangesQueryResponse | undefined; + sampling?: WebAnalyticsSampling | undefined; + samplingFactor?: (number | null) | undefined; + tags?: QueryLogTags | undefined; + useSessionsTable?: (boolean | null) | undefined; + version?: (number | null) | undefined; + }; + export type LogsOrderBy = "latest" | "earliest"; export type LogsQueryResponse = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; @@ -8843,7 +9180,7 @@ export namespace Schemas { liveLogsCheckpoint?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; offset?: (number | null) | undefined; - orderBy?: OrderBy3 | undefined; + orderBy?: LogsOrderBy | undefined; resourceFingerprint?: (string | null) | undefined; response?: LogsQueryResponse | undefined; searchTerm?: (string | null) | undefined; @@ -8925,7 +9262,7 @@ export namespace Schemas { limit?: (number | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; offset?: (number | null) | undefined; - orderBy?: OrderBy3 | undefined; + orderBy?: LogsOrderBy | undefined; prefetchSpans?: (number | null) | undefined; response?: TraceSpansQueryResponse | undefined; rootSpans?: (boolean | null) | undefined; @@ -8976,7 +9313,8 @@ export namespace Schemas { | "azure-blob" | "firebase" | "jira" - | "pinterest-ads"; + | "pinterest-ads" + | "stripe"; export type Integration = { id: number; kind: IntegrationKindEnum; @@ -9010,6 +9348,10 @@ export namespace Schemas { uuid?: (string | null) | undefined; }; export type SnapshotSource = "web" | "mobile" | "unknown"; + export type SummaryOutcome = Partial<{ + description: string | null; + success: boolean | null; + }>; export type SessionRecordingType = { active_seconds?: (number | null) | undefined; activity_score?: (number | null) | undefined; @@ -9040,13 +9382,20 @@ export namespace Schemas { start_time: string; start_url?: (string | null) | undefined; summary?: (string | null) | undefined; + summary_outcome?: SummaryOutcome | undefined; viewed: boolean; viewers: Array; }; export type RecordingsQueryResponse = { + error?: (string | null) | undefined; has_next: boolean; + hogql?: (string | null) | undefined; + modifiers?: HogQLQueryModifiers | undefined; next_cursor?: (string | null) | undefined; + query_status?: QueryStatus | undefined; + resolved_date_range?: ResolvedDateRangeResponse | undefined; results: Array; + timings?: (Array | null) | undefined; }; export type RecordingsQuery = Partial<{ actions: Array> | null; @@ -9078,6 +9427,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; kind: "RecordingsQuery"; limit: number | null; @@ -9107,6 +9457,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null; response: RecordingsQueryResponse; session_ids: Array | null; @@ -9149,6 +9500,7 @@ export namespace Schemas { | LogPropertyFilter | SpanPropertyFilter | RevenueAnalyticsPropertyFilter + | WorkflowVariablePropertyFilter > | null) | undefined; response?: TraceNeighborsQueryResponse | undefined; @@ -9251,6 +9603,7 @@ export namespace Schemas { | WebPageURLSearchQuery | WebTrendsQuery | WebAnalyticsExternalSummaryQuery + | WebNotableChangesQuery | SessionAttributionExplorerQuery | RevenueExampleEventsQuery | RevenueExampleDataWarehouseTablesQuery @@ -9326,6 +9679,7 @@ export namespace Schemas { | WebPageURLSearchQuery | WebTrendsQuery | WebAnalyticsExternalSummaryQuery + | WebNotableChangesQuery | SessionAttributionExplorerQuery | RevenueExampleEventsQuery | RevenueExampleDataWarehouseTablesQuery @@ -9480,6 +9834,23 @@ export namespace Schemas { first_version_created_at: string; }; export type LLMPromptDuplicate = { new_name: string }; + export type LLMPromptEditOperation = { old: string; new: string }; + export type LLMPromptList = { + id: string; + name: string; + prompt: unknown; + version: number; + created_by: UserBasic & unknown; + created_at: string; + updated_at: string; + deleted: boolean; + is_latest: boolean; + latest_version: number; + version_count: number; + first_version_created_at: string; + prompt_preview: string; + prompt_size_bytes: number; + }; export type LLMPromptPublic = { id: string; name: string; @@ -9508,7 +9879,7 @@ export namespace Schemas { export type LLMProviderKeyStateEnum = "unknown" | "ok" | "invalid" | "error"; export type LLMProviderKey = { id: string; - provider: ProviderEnum; + provider: Provider519Enum; name: string; state: LLMProviderKeyStateEnum & unknown; error_message: string | null; @@ -9564,6 +9935,32 @@ export namespace Schemas { created_by: UserBasic & unknown; updated_at: string | null; }; + export type LogsAlertSimulateBucket = { + timestamp: string; + count: number; + threshold_breached: boolean; + state: string; + notification: string; + reason: string; + }; + export type LogsAlertSimulateRequest = { + filters: unknown; + threshold_count: number; + threshold_operator: ThresholdOperatorEnum; + window_minutes: number; + evaluation_periods?: number | undefined; + datapoints_to_alarm?: number | undefined; + cooldown_minutes?: number | undefined; + date_from: string; + }; + export type LogsAlertSimulateResponse = { + buckets: Array; + fire_count: number; + resolve_count: number; + total_buckets: number; + threshold_count: number; + threshold_operator: string; + }; export type LogsView = { id: string; short_id: string; @@ -9672,6 +10069,7 @@ export namespace Schemas { exported_asset_id?: (string | null) | undefined; event_definition_id?: (string | null) | undefined; }; + export type OrderByEnum = "latest" | "earliest"; export type PluginsAccessLevelEnum = 0 | 3 | 6 | 9; export type Organization = { id: string; @@ -9685,7 +10083,7 @@ export namespace Schemas { teams: Array>; projects: Array>; available_product_features: Array | null; - is_member_join_email_enabled?: boolean | undefined; + is_member_join_email_enabled: boolean; metadata: Record; customer_id: string | null; enforce_2fa?: (boolean | null) | undefined; @@ -9780,7 +10178,12 @@ export namespace Schemas { | "user_created" | "slack" | "support_queue" - | "session_summaries"; + | "session_summaries" + | "signal_report"; + export type Outcome = Partial<{ + description: string | null; + success: boolean | null; + }>; export type PaginatedActionList = { count: number; next?: (string | null) | undefined; @@ -9800,6 +10203,12 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; + export type PaginatedApprovalPolicyList = { + count: number; + next?: (string | null) | undefined; + previous?: (string | null) | undefined; + results: Array; + }; export type PaginatedBatchExportBackfillList = { next?: (string | null) | undefined; previous?: (string | null) | undefined; @@ -9816,6 +10225,12 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; + export type PaginatedChangeRequestList = { + count: number; + next?: (string | null) | undefined; + previous?: (string | null) | undefined; + results: Array; + }; export type PaginatedClickhouseEventList = Partial<{ next: string | null; results: Array; @@ -9832,11 +10247,22 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; - export type PaginatedConversationList = { + export type PaginatedCommentList = { + next?: (string | null) | undefined; + previous?: (string | null) | undefined; + results: Array; + }; + export type PaginatedConversationMinimalList = { + count: number; + next?: (string | null) | undefined; + previous?: (string | null) | undefined; + results: Array; + }; + export type PaginatedCustomerJourneyList = { count: number; next?: (string | null) | undefined; previous?: (string | null) | undefined; - results: Array; + results: Array; }; export type PaginatedCustomerProfileConfigList = { count: number; @@ -9958,6 +10384,12 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; + export type PaginatedErrorTrackingStackFrameList = { + count: number; + next?: (string | null) | undefined; + previous?: (string | null) | undefined; + results: Array; + }; export type PaginatedErrorTrackingSuppressionRuleList = { count: number; next?: (string | null) | undefined; @@ -10107,11 +10539,11 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; - export type PaginatedLLMPromptList = { + export type PaginatedLLMPromptListList = { count: number; next?: (string | null) | undefined; previous?: (string | null) | undefined; - results: Array; + results: Array; }; export type PaginatedLLMProviderKeyList = { count: number; @@ -10397,6 +10829,7 @@ export namespace Schemas { allowed_domains?: Array | undefined; repositories?: Array | undefined; private?: boolean | undefined; + internal?: boolean | undefined; created_by: UserBasic & unknown; created_at: string; updated_at: string; @@ -10475,6 +10908,7 @@ export namespace Schemas { ongoing: boolean; activity_score: number | null; has_summary: boolean; + summary_outcome: (Outcome & (unknown | null)) | null; external_references: Array>; }; export type PaginatedSessionRecordingList = { @@ -10501,7 +10935,7 @@ export namespace Schemas { string, Record >; - type: (SessionRecordingPlaylistTypeEnum | NullEnum) | null; + type?: ((SessionRecordingPlaylistTypeEnum | NullEnum) | null) | undefined; is_synthetic: boolean; _create_in_folder?: string | undefined; }; @@ -10580,6 +11014,8 @@ export namespace Schemas { id: number; dashboard?: (number | null) | undefined; insight?: (number | null) | undefined; + insight_short_id: string | null; + resource_name: string | null; dashboard_export_insights?: Array | undefined; target_type: TargetTypeEnum; target_value: string; @@ -10699,6 +11135,9 @@ export namespace Schemas { | "completed" | "failed" | "cancelled"; + export type RuntimeAdapterEnum = "claude" | "codex"; + export type ProviderD50Enum = "anthropic" | "openai"; + export type ReasoningEffortEnum = "low" | "medium" | "high" | "max"; export type TaskRunArtifactResponse = { name: string; type: string; @@ -10714,6 +11153,10 @@ export namespace Schemas { branch?: (string | null) | undefined; status?: TaskRunDetailStatusEnum | undefined; environment?: EnvironmentEnum | undefined; + runtime_adapter: (RuntimeAdapterEnum | NullEnum) | null; + provider: (ProviderD50Enum | NullEnum) | null; + model: string | null; + reasoning_effort: (ReasoningEffortEnum | NullEnum) | null; log_url: string | null; error_message?: (string | null) | undefined; output?: (unknown | null) | undefined; @@ -10820,6 +11263,20 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; + export type TicketView = { + id: string; + short_id: string; + name: string; + filters?: Record | undefined; + created_at: string; + created_by: UserBasic & unknown; + }; + export type PaginatedTicketViewList = { + count: number; + next?: (string | null) | undefined; + previous?: (string | null) | undefined; + results: Array; + }; export type TraceReviewScore = { id: string; definition_id: string; @@ -10867,64 +11324,6 @@ export namespace Schemas { previous?: (string | null) | undefined; results: Array; }; - export type ToolbarModeEnum = "disabled" | "toolbar"; - export type ScenePersonalisationBasic = { - scene: string; - dashboard?: (number | null) | undefined; - }; - export type ThemeModeEnum = "light" | "dark" | "system"; - export type ShortcutPositionEnum = "above" | "below" | "hidden"; - export type User = { - date_joined: string; - uuid: string; - distinct_id: string | null; - first_name?: string | undefined; - last_name?: string | undefined; - email: string; - pending_email: string | null; - is_email_verified: boolean | null; - notification_settings?: Record | undefined; - anonymize_data?: (boolean | null) | undefined; - allow_impersonation?: (boolean | null) | undefined; - toolbar_mode?: - | ((ToolbarModeEnum | BlankEnum | NullEnum) | null) - | undefined; - has_password: boolean; - id: number; - is_staff?: boolean | undefined; - is_impersonated: boolean | null; - is_impersonated_until: string | null; - is_impersonated_read_only: boolean | null; - sensitive_session_expires_at: string | null; - team: TeamBasic & unknown; - organization: Organization & unknown; - organizations: Array; - set_current_organization?: string | undefined; - set_current_team?: string | undefined; - password: string; - current_password?: string | undefined; - events_column_config?: unknown | undefined; - is_2fa_enabled: boolean; - has_social_auth: boolean; - github_login: string | null; - has_sso_enforcement: boolean; - has_seen_product_intro_for?: null | undefined; - scene_personalisation: Array; - theme_mode?: ((ThemeModeEnum | BlankEnum | NullEnum) | null) | undefined; - hedgehog_config?: null | undefined; - allow_sidebar_suggestions?: (boolean | null) | undefined; - shortcut_position?: - | ((ShortcutPositionEnum | BlankEnum | NullEnum) | null) - | undefined; - role_at_organization?: RoleAtOrganizationEnum | undefined; - passkeys_enabled_for_2fa?: (boolean | null) | undefined; - }; - export type PaginatedUserList = { - count: number; - next?: (string | null) | undefined; - previous?: (string | null) | undefined; - results: Array; - }; export type WebExperimentsAPI = { id: number; name: string; @@ -10982,6 +11381,7 @@ export namespace Schemas { calculation_interval: CalculationIntervalEnum; snoozed_until: string | null; skip_weekend: boolean | null; + schedule_restriction: (AlertScheduleRestriction & null) | null; last_value: number | null; }>; export type PatchedAnnotation = Partial<{ @@ -11001,6 +11401,20 @@ export namespace Schemas { deleted: boolean; scope: AnnotationScopeEnum; }>; + export type PatchedApprovalPolicy = Partial<{ + id: string; + action_key: string; + conditions: unknown; + approver_config: unknown; + allow_self_approve: boolean; + bypass_org_membership_levels: unknown; + bypass_roles: Array; + expires_after: string; + enabled: boolean; + created_by: UserBasic & unknown; + created_at: string; + updated_at: string | null; + }>; export type PatchedBatchExport = Partial<{ id: string; team_id: number; @@ -11055,14 +11469,29 @@ export namespace Schemas { _create_in_folder: string; _create_static_person_ids: Array; }>; + export type PatchedComment = Partial<{ + id: string; + created_by: UserBasic & unknown; + deleted: boolean | null; + mentions: Array; + slug: string; + content: string | null; + rich_content: null; + version: number; + created_at: string; + item_id: string | null; + item_context: null; + scope: string; + source_comment: string | null; + }>; export type PatchedConversation = Partial<{ id: string; - status: ConversationStatusEnum & unknown; + status: ConversationStatus & unknown; title: string | null; user: UserBasic & unknown; created_at: string | null; updated_at: string | null; - type: ConversationTypeEnum & unknown; + type: ConversationType & unknown; is_internal: boolean | null; slack_thread_key: string | null; slack_workspace_domain: string | null; @@ -11072,6 +11501,15 @@ export namespace Schemas { is_sandbox: boolean; pending_approvals: Array>; }>; + export type PatchedCustomerJourney = Partial<{ + id: string; + insight: number; + name: string; + description: string | null; + created_at: string; + created_by: number | null; + updated_at: string | null; + }>; export type PatchedCustomerProfileConfig = Partial<{ id: string; scope: CustomerProfileConfigScopeEnum; @@ -11123,7 +11561,7 @@ export namespace Schemas { variables: null; deleted: boolean | null; created_at: string | null; - created_by: number | null; + created_by: UserBasic & unknown; image_url: string | null; team_id: number | null; scope: (DashboardTemplateScopeEnum | BlankEnum | NullEnum) | null; @@ -11156,6 +11594,7 @@ export namespace Schemas { edited_history_id: string | null; latest_history_id: number | null; soft_update: boolean | null; + dag_id: string | null; is_materialized: boolean | null; origin: (OriginEnum | NullEnum) | null; is_test: boolean; @@ -11242,6 +11681,19 @@ export namespace Schemas { attributes: unknown; order: number | null; }>; + export type PatchedEndpointRequest = Partial<{ + name: string | null; + query: unknown | null; + description: string | null; + cache_age_seconds: number | null; + is_active: boolean | null; + is_materialized: boolean | null; + sync_frequency: string | null; + derived_from_insight: string | null; + version: number | null; + bucket_overrides: Record | null; + deleted: boolean | null; + }>; export type PatchedEnterpriseEventDefinition = Partial<{ id: string; name: string; @@ -11376,7 +11828,7 @@ export namespace Schemas { holdout: ExperimentHoldout & unknown; holdout_id: number | null; exposure_cohort: number | null; - parameters: null; + parameters: (ExperimentParameters & null) | null; secondary_metrics: null; saved_metrics: Array; saved_metrics_ids: Array | null; @@ -11386,18 +11838,18 @@ export namespace Schemas { created_by: UserBasic & unknown; created_at: string; updated_at: string; - type: (ExperimentTypeEnum | BlankEnum | NullEnum) | null; - exposure_criteria: null; - metrics: null; - metrics_secondary: null; + type: (ExperimentTypeEnum | NullEnum) | null; + exposure_criteria: (ExperimentApiExposureCriteria & null) | null; + metrics: (_ExperimentApiMetricsList & null) | null; + metrics_secondary: (_ExperimentApiMetricsList & null) | null; stats_config: null; scheduling_config: null; + allow_unknown_events: boolean; _create_in_folder: string; - conclusion: (ExperimentConclusionEnum | BlankEnum | NullEnum) | null; + conclusion: (ConclusionEnum | NullEnum) | null; conclusion_comment: string | null; primary_metrics_ordered_uuids: null; secondary_metrics_ordered_uuids: null; - exposure_preaggregation_enabled: boolean; only_count_matured_users: boolean; status: (ExperimentStatusEnum | NullEnum) | null; user_access_level: string | null; @@ -11623,11 +12075,12 @@ export namespace Schemas { }>; export type PatchedLLMPromptPublish = Partial<{ prompt: unknown; + edits: Array; base_version: number; }>; export type PatchedLLMProviderKey = Partial<{ id: string; - provider: ProviderEnum; + provider: Provider519Enum; name: string; state: LLMProviderKeyStateEnum & unknown; error_message: string | null; @@ -11947,6 +12400,7 @@ export namespace Schemas { environment_variables: unknown; has_environment_variables: boolean; private: boolean; + internal: boolean; effective_domains: Array; created_by: UserBasic & unknown; created_at: string; @@ -12004,6 +12458,7 @@ export namespace Schemas { ongoing: boolean; activity_score: number | null; has_summary: boolean; + summary_outcome: (Outcome & (unknown | null)) | null; external_references: Array>; }>; export type PatchedSessionRecordingPlaylist = Partial<{ @@ -12041,6 +12496,8 @@ export namespace Schemas { id: number; dashboard: number | null; insight: number | null; + insight_short_id: string | null; + resource_name: string | null; dashboard_export_insights: Array; target_type: TargetTypeEnum; target_value: string; @@ -12269,6 +12726,7 @@ export namespace Schemas { origin_product: OriginProductEnum; repository: string | null; github_integration: number | null; + signal_report: string | null; json_schema: unknown | null; internal: boolean; latest_run: Record | null; @@ -12390,11 +12848,6 @@ export namespace Schemas { onboarding_tasks: null; base_currency: BaseCurrencyEnum & unknown; web_analytics_pre_aggregated_tables_enabled: boolean | null; - experiment_recalculation_time: string | null; - default_experiment_confidence_level: string | null; - default_experiment_stats_method: - | (DefaultExperimentStatsMethodEnum | BlankEnum | NullEnum) - | null; receive_org_level_activity_logs: boolean | null; business_model: (BusinessModelEnum | BlankEnum | NullEnum) | null; conversations_enabled: boolean | null; @@ -12458,6 +12911,13 @@ export namespace Schemas { baseline_file_paths: Record | null; enable_pr_comments: boolean | null; }>; + export type ToolbarModeEnum = "disabled" | "toolbar"; + export type ScenePersonalisationBasic = { + scene: string; + dashboard?: (number | null) | undefined; + }; + export type ThemeModeEnum = "light" | "dark" | "system"; + export type ShortcutPositionEnum = "above" | "below" | "hidden"; export type PatchedUser = Partial<{ date_joined: string; uuid: string; @@ -12488,7 +12948,6 @@ export namespace Schemas { events_column_config: unknown; is_2fa_enabled: boolean; has_social_auth: boolean; - github_login: string | null; has_sso_enforcement: boolean; has_seen_product_intro_for: null; scene_personalisation: Array; @@ -12555,6 +13014,7 @@ export namespace Schemas { tabs: Array; homepage: (PinnedSceneTab & null) | null; }>; + export type PrAuthorshipModeEnum = "user" | "bot"; export type ProductTourSerializerCreateUpdateOnly = { id: string; name: string; @@ -12872,6 +13332,7 @@ export namespace Schemas { | WebVitalsPathBreakdownQuery | WebPageURLSearchQuery | WebAnalyticsExternalSummaryQuery + | WebNotableChangesQuery | RevenueAnalyticsGrossRevenueQuery | RevenueAnalyticsMetricsQuery | RevenueAnalyticsMRRQuery @@ -12892,6 +13353,7 @@ export namespace Schemas { | LifecycleQuery | FunnelCorrelationQuery | DatabaseSchemaQuery + | RecordingsQuery | LogsQuery | LogAttributesQuery | LogValuesQuery @@ -13241,6 +13703,17 @@ export namespace Schemas { status: ExternalQueryStatus; }; export type QueryResponseAlternative30 = { + error?: (string | null) | undefined; + hogql?: (string | null) | undefined; + modifiers?: HogQLQueryModifiers | undefined; + query_status?: QueryStatus | undefined; + resolved_date_range?: ResolvedDateRangeResponse | undefined; + results: Array; + samplingRate?: SamplingRate | undefined; + timings?: (Array | null) | undefined; + usedPreAggregatedTables?: (boolean | null) | undefined; + }; + export type QueryResponseAlternative31 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13250,7 +13723,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative31 = { + export type QueryResponseAlternative32 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13260,7 +13733,7 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative32 = { + export type QueryResponseAlternative33 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13270,7 +13743,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative33 = { + export type QueryResponseAlternative34 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13279,7 +13752,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative34 = { + export type QueryResponseAlternative35 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13289,7 +13762,7 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative35 = { + export type QueryResponseAlternative36 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13304,7 +13777,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative36 = { + export type QueryResponseAlternative37 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13314,7 +13787,7 @@ export namespace Schemas { samplingRate?: SamplingRate | undefined; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative37 = { + export type QueryResponseAlternative38 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13329,7 +13802,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative38 = { + export type QueryResponseAlternative39 = { columns: Array; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13344,7 +13817,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types: Array; }; - export type QueryResponseAlternative39 = { + export type QueryResponseAlternative40 = { columns: Array; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13359,7 +13832,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative40 = { + export type QueryResponseAlternative41 = { columns: Array; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13374,7 +13847,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types: Array; }; - export type QueryResponseAlternative41 = { + export type QueryResponseAlternative42 = { clickhouse?: (string | null) | undefined; columns?: (Array | null) | undefined; error?: (string | null) | undefined; @@ -13392,7 +13865,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative42 = { + export type QueryResponseAlternative43 = { dateFrom?: (string | null) | undefined; dateTo?: (string | null) | undefined; error?: (string | null) | undefined; @@ -13405,7 +13878,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; usedPreAggregatedTables?: (boolean | null) | undefined; }; - export type QueryResponseAlternative43 = { + export type QueryResponseAlternative44 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13421,7 +13894,7 @@ export namespace Schemas { types?: (Array | null) | undefined; usedPreAggregatedTables?: (boolean | null) | undefined; }; - export type QueryResponseAlternative44 = { + export type QueryResponseAlternative45 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13436,7 +13909,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative46 = { + export type QueryResponseAlternative47 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13445,7 +13918,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative47 = { + export type QueryResponseAlternative48 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13459,7 +13932,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative48 = { + export type QueryResponseAlternative49 = { columns: Array; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13473,7 +13946,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types: Array; }; - export type QueryResponseAlternative49 = { + export type QueryResponseAlternative50 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13483,7 +13956,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative50 = { + export type QueryResponseAlternative51 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13493,7 +13966,7 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative51 = { + export type QueryResponseAlternative52 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13503,7 +13976,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative52 = { + export type QueryResponseAlternative53 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13512,7 +13985,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative53 = { + export type QueryResponseAlternative54 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13522,7 +13995,7 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative54 = { + export type QueryResponseAlternative55 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13536,7 +14009,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative56 = { + export type QueryResponseAlternative57 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13551,7 +14024,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative57 = { + export type QueryResponseAlternative58 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13561,7 +14034,7 @@ export namespace Schemas { samplingRate?: SamplingRate | undefined; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative58 = { + export type QueryResponseAlternative59 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13576,7 +14049,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative59 = { + export type QueryResponseAlternative60 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13589,7 +14062,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative61 = { + export type QueryResponseAlternative62 = { credible_intervals: Record>; expected_loss: number; funnels_query?: FunnelsQuery | undefined; @@ -13601,7 +14074,7 @@ export namespace Schemas { stats_version?: (number | null) | undefined; variants: Array; }; - export type QueryResponseAlternative62 = { + export type QueryResponseAlternative63 = { count_query?: TrendsQuery | undefined; credible_intervals: Record>; exposure_query?: TrendsQuery | undefined; @@ -13614,7 +14087,7 @@ export namespace Schemas { stats_version?: (number | null) | undefined; variants: Array; }; - export type QueryResponseAlternative63 = { + export type QueryResponseAlternative64 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13627,7 +14100,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative64 = { + export type QueryResponseAlternative65 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13641,7 +14114,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative65 = { + export type QueryResponseAlternative66 = { boxplot_data?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13652,7 +14125,7 @@ export namespace Schemas { results: Array>; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative66 = { + export type QueryResponseAlternative67 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13661,7 +14134,7 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative67 = { + export type QueryResponseAlternative68 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13670,7 +14143,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative68 = { + export type QueryResponseAlternative69 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13679,7 +14152,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative69 = { + export type QueryResponseAlternative70 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13688,7 +14161,7 @@ export namespace Schemas { results: Array>; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative71 = { + export type QueryResponseAlternative72 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13702,7 +14175,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative72 = { + export type QueryResponseAlternative73 = { joins: Array; tables: Record< string, @@ -13716,7 +14189,18 @@ export namespace Schemas { | DatabaseSchemaEndpointTable >; }; - export type QueryResponseAlternative73 = { + export type QueryResponseAlternative74 = { + error?: (string | null) | undefined; + has_next: boolean; + hogql?: (string | null) | undefined; + modifiers?: HogQLQueryModifiers | undefined; + next_cursor?: (string | null) | undefined; + query_status?: QueryStatus | undefined; + resolved_date_range?: ResolvedDateRangeResponse | undefined; + results: Array; + timings?: (Array | null) | undefined; + }; + export type QueryResponseAlternative75 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13730,7 +14214,7 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative74 = { + export type QueryResponseAlternative76 = { count: number; error?: (string | null) | undefined; hogql?: (string | null) | undefined; @@ -13740,7 +14224,7 @@ export namespace Schemas { results: Array>; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative75 = { + export type QueryResponseAlternative77 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13749,7 +14233,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative76 = { + export type QueryResponseAlternative78 = { error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; hogql?: (string | null) | undefined; @@ -13762,8 +14246,8 @@ export namespace Schemas { results: unknown; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative77 = { questions: Array }; - export type QueryResponseAlternative78 = { + export type QueryResponseAlternative79 = { questions: Array }; + export type QueryResponseAlternative80 = { error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; hogql?: (string | null) | undefined; @@ -13775,16 +14259,19 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative79 = { + export type QueryResponseAlternative81 = { error?: (string | null) | undefined; + hasMore?: (boolean | null) | undefined; hogql?: (string | null) | undefined; + limit?: (number | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; + offset?: (number | null) | undefined; query_status?: QueryStatus | undefined; resolved_date_range?: ResolvedDateRangeResponse | undefined; results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative80 = { + export type QueryResponseAlternative82 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13795,7 +14282,7 @@ export namespace Schemas { | Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative81 = { + export type QueryResponseAlternative83 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13808,14 +14295,14 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative83 = Partial<{ + export type QueryResponseAlternative85 = Partial<{ newerTimestamp: string | null; newerTraceId: string | null; olderTimestamp: string | null; olderTraceId: string | null; timings: Array | null; }>; - export type QueryResponseAlternative84 = { + export type QueryResponseAlternative86 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13824,7 +14311,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative85 = { + export type QueryResponseAlternative87 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13833,7 +14320,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative86 = { + export type QueryResponseAlternative88 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13842,7 +14329,7 @@ export namespace Schemas { results: Array; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative87 = { + export type QueryResponseAlternative89 = { columns?: (Array | null) | undefined; error?: (string | null) | undefined; hasMore?: (boolean | null) | undefined; @@ -13856,7 +14343,7 @@ export namespace Schemas { timings?: (Array | null) | undefined; types?: (Array | null) | undefined; }; - export type QueryResponseAlternative88 = { + export type QueryResponseAlternative90 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13865,7 +14352,7 @@ export namespace Schemas { results: Array>; timings?: (Array | null) | undefined; }; - export type QueryResponseAlternative89 = { + export type QueryResponseAlternative91 = { error?: (string | null) | undefined; hogql?: (string | null) | undefined; modifiers?: HogQLQueryModifiers | undefined; @@ -13910,15 +14397,15 @@ export namespace Schemas { | QueryResponseAlternative35 | QueryResponseAlternative36 | QueryResponseAlternative37 - | unknown | QueryResponseAlternative38 + | unknown | QueryResponseAlternative39 | QueryResponseAlternative40 | QueryResponseAlternative41 | QueryResponseAlternative42 | QueryResponseAlternative43 | QueryResponseAlternative44 - | QueryResponseAlternative46 + | QueryResponseAlternative45 | QueryResponseAlternative47 | QueryResponseAlternative48 | QueryResponseAlternative49 @@ -13927,11 +14414,11 @@ export namespace Schemas { | QueryResponseAlternative52 | QueryResponseAlternative53 | QueryResponseAlternative54 - | QueryResponseAlternative56 + | QueryResponseAlternative55 | QueryResponseAlternative57 | QueryResponseAlternative58 | QueryResponseAlternative59 - | QueryResponseAlternative61 + | QueryResponseAlternative60 | QueryResponseAlternative62 | QueryResponseAlternative63 | QueryResponseAlternative64 @@ -13940,7 +14427,7 @@ export namespace Schemas { | QueryResponseAlternative67 | QueryResponseAlternative68 | QueryResponseAlternative69 - | QueryResponseAlternative71 + | QueryResponseAlternative70 | QueryResponseAlternative72 | QueryResponseAlternative73 | QueryResponseAlternative74 @@ -13951,13 +14438,15 @@ export namespace Schemas { | QueryResponseAlternative79 | QueryResponseAlternative80 | QueryResponseAlternative81 + | QueryResponseAlternative82 | QueryResponseAlternative83 - | QueryResponseAlternative84 | QueryResponseAlternative85 | QueryResponseAlternative86 | QueryResponseAlternative87 | QueryResponseAlternative88 - | QueryResponseAlternative89; + | QueryResponseAlternative89 + | QueryResponseAlternative90 + | QueryResponseAlternative91; export type QueryStatusResponse = { query_status: QueryStatus }; export type QueryUpgradeRequest = { query: @@ -13998,6 +14487,7 @@ export namespace Schemas { | WebVitalsPathBreakdownQuery | WebPageURLSearchQuery | WebAnalyticsExternalSummaryQuery + | WebNotableChangesQuery | RevenueAnalyticsGrossRevenueQuery | RevenueAnalyticsMetricsQuery | RevenueAnalyticsMRRQuery @@ -14018,6 +14508,7 @@ export namespace Schemas { | LifecycleQuery | FunnelCorrelationQuery | DatabaseSchemaQuery + | RecordingsQuery | LogsQuery | LogAttributesQuery | LogValuesQuery @@ -14075,6 +14566,7 @@ export namespace Schemas { | WebVitalsPathBreakdownQuery | WebPageURLSearchQuery | WebAnalyticsExternalSummaryQuery + | WebNotableChangesQuery | RevenueAnalyticsGrossRevenueQuery | RevenueAnalyticsMetricsQuery | RevenueAnalyticsMRRQuery @@ -14095,6 +14587,7 @@ export namespace Schemas { | LifecycleQuery | FunnelCorrelationQuery | DatabaseSchemaQuery + | RecordingsQuery | LogsQuery | LogAttributesQuery | LogValuesQuery @@ -14144,6 +14637,7 @@ export namespace Schemas { processing: number; stale: number; }; + export type RunSourceEnum = "manual" | "signal_report"; export type SandboxEnvironment = { id: string; name: string; @@ -14154,6 +14648,7 @@ export namespace Schemas { environment_variables?: unknown | undefined; has_environment_variables: boolean; private?: boolean | undefined; + internal: boolean; effective_domains: Array; created_by: UserBasic & unknown; created_at: string; @@ -14197,6 +14692,13 @@ export namespace Schemas { session_ids: Array; focus_area?: string | undefined; }; + export type SeverityLevelsEnum = + | "trace" + | "debug" + | "info" + | "warn" + | "error" + | "fatal"; export type SharePassword = { id: number; created_at: string; @@ -14213,7 +14715,7 @@ export namespace Schemas { share_passwords: Array; }; export type ShipVariant = { - conclusion?: ((ConclusionF33Enum | NullEnum) | null) | undefined; + conclusion?: ((ConclusionEnum | NullEnum) | null) | undefined; conclusion_comment?: (string | null) | undefined; variant_key: string; }; @@ -14387,6 +14889,14 @@ export namespace Schemas { resume_from_run_id: string; pending_user_message: string; sandbox_environment_id: string; + pr_authorship_mode: PrAuthorshipModeEnum; + run_source: RunSourceEnum; + signal_report_id: string; + runtime_adapter: RuntimeAdapterEnum; + provider: ProviderD50Enum; + model: string; + reasoning_effort: ReasoningEffortEnum; + github_user_token: string; }>; export type TaskRunRelayMessageRequest = { text: string }; export type TaskRunRelayMessageResponse = { @@ -14476,11 +14986,6 @@ export namespace Schemas { onboarding_tasks?: null | undefined; base_currency?: (BaseCurrencyEnum & unknown) | undefined; web_analytics_pre_aggregated_tables_enabled?: (boolean | null) | undefined; - experiment_recalculation_time?: (string | null) | undefined; - default_experiment_confidence_level?: (string | null) | undefined; - default_experiment_stats_method?: - | ((DefaultExperimentStatsMethodEnum | BlankEnum | NullEnum) | null) - | undefined; receive_org_level_activity_logs?: (boolean | null) | undefined; business_model?: | ((BusinessModelEnum | BlankEnum | NullEnum) | null) @@ -14531,14 +15036,94 @@ export namespace Schemas { scores?: Array | undefined; queue_id?: (string | null) | undefined; }; + export type User = { + date_joined: string; + uuid: string; + distinct_id: string | null; + first_name?: string | undefined; + last_name?: string | undefined; + email: string; + pending_email: string | null; + is_email_verified: boolean | null; + notification_settings?: Record | undefined; + anonymize_data?: (boolean | null) | undefined; + allow_impersonation?: (boolean | null) | undefined; + toolbar_mode?: + | ((ToolbarModeEnum | BlankEnum | NullEnum) | null) + | undefined; + has_password: boolean; + id: number; + is_staff?: boolean | undefined; + is_impersonated: boolean | null; + is_impersonated_until: string | null; + is_impersonated_read_only: boolean | null; + sensitive_session_expires_at: string | null; + team: TeamBasic & unknown; + organization: Organization & unknown; + organizations: Array; + set_current_organization?: string | undefined; + set_current_team?: string | undefined; + password: string; + current_password?: string | undefined; + events_column_config?: unknown | undefined; + is_2fa_enabled: boolean; + has_social_auth: boolean; + has_sso_enforcement: boolean; + has_seen_product_intro_for?: null | undefined; + scene_personalisation: Array; + theme_mode?: ((ThemeModeEnum | BlankEnum | NullEnum) | null) | undefined; + hedgehog_config?: null | undefined; + allow_sidebar_suggestions?: (boolean | null) | undefined; + shortcut_position?: + | ((ShortcutPositionEnum | BlankEnum | NullEnum) | null) + | undefined; + role_at_organization?: RoleAtOrganizationEnum | undefined; + passkeys_enabled_for_2fa?: (boolean | null) | undefined; + }; export type UserBlastRadiusRequest = { condition: Record; group_type_index?: (number | null) | undefined; }; - export type UserBlastRadiusResponse = { - users_affected: number; - total_users: number; + export type UserBlastRadiusResponse = { affected: number; total: number }; + export type _DateRange = Partial<{ + date_from: string | null; + date_to: string | null; + }>; + export type _LogPropertyFilterTypeEnum = + | "log" + | "log_attribute" + | "log_resource_attribute"; + export type _LogPropertyFilterOperatorEnum = + | "exact" + | "is_not" + | "icontains" + | "not_icontains" + | "regex" + | "not_regex" + | "gt" + | "lt" + | "is_date_exact" + | "is_date_before" + | "is_date_after" + | "is_set" + | "is_not_set"; + export type _LogPropertyFilter = { + key: string; + type: _LogPropertyFilterTypeEnum; + operator: _LogPropertyFilterOperatorEnum; + value?: (unknown | null) | undefined; }; + export type _LogsQueryBody = Partial<{ + dateRange: _DateRange; + severityLevels: Array; + serviceNames: Array; + orderBy: OrderByEnum; + searchTerm: string; + filterGroup: Array<_LogPropertyFilter>; + limit: number; + after: string; + }>; + export type _LogsQueryRequest = { query: _LogsQueryBody }; // } @@ -14546,6 +15131,127 @@ export namespace Schemas { export namespace Endpoints { // + export type get_Approval_policies_list = { + method: "GET"; + path: "/api/environments/{project_id}/approval_policies/"; + requestFormat: "json"; + parameters: { + query: Partial<{ limit: number; offset: number }>; + path: { project_id: string }; + }; + responses: { 200: Schemas.PaginatedApprovalPolicyList }; + }; + export type post_Approval_policies_create = { + method: "POST"; + path: "/api/environments/{project_id}/approval_policies/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas.ApprovalPolicy; + }; + responses: { 201: Schemas.ApprovalPolicy }; + }; + export type get_Approval_policies_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/approval_policies/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 200: Schemas.ApprovalPolicy }; + }; + export type put_Approval_policies_update = { + method: "PUT"; + path: "/api/environments/{project_id}/approval_policies/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.ApprovalPolicy; + }; + responses: { 200: Schemas.ApprovalPolicy }; + }; + export type patch_Approval_policies_partial_update = { + method: "PATCH"; + path: "/api/environments/{project_id}/approval_policies/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.PatchedApprovalPolicy; + }; + responses: { 200: Schemas.ApprovalPolicy }; + }; + export type delete_Approval_policies_destroy = { + method: "DELETE"; + path: "/api/environments/{project_id}/approval_policies/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 204: unknown }; + }; + export type get_Change_requests_list = { + method: "GET"; + path: "/api/environments/{project_id}/change_requests/"; + requestFormat: "json"; + parameters: { + query: Partial<{ + action_key: string; + limit: number; + offset: number; + requester: number; + resource_id: string; + resource_type: string; + state: Array; + }>; + path: { project_id: string }; + }; + responses: { 200: Schemas.PaginatedChangeRequestList }; + }; + export type get_Change_requests_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/change_requests/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 200: Schemas.ChangeRequest }; + }; + export type post_Change_requests_approve_create = { + method: "POST"; + path: "/api/environments/{project_id}/change_requests/{id}/approve/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.ChangeRequest; + }; + responses: { 200: Schemas.ChangeRequest }; + }; + export type post_Change_requests_cancel_create = { + method: "POST"; + path: "/api/environments/{project_id}/change_requests/{id}/cancel/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.ChangeRequest; + }; + responses: { 200: Schemas.ChangeRequest }; + }; + export type post_Change_requests_reject_create = { + method: "POST"; + path: "/api/environments/{project_id}/change_requests/{id}/reject/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.ChangeRequest; + }; + responses: { 200: Schemas.ChangeRequest }; + }; export type get_Conversations_list = { method: "GET"; path: "/api/environments/{project_id}/conversations/"; @@ -14554,7 +15260,7 @@ export namespace Endpoints { query: Partial<{ limit: number; offset: number }>; path: { project_id: string }; }; - responses: { 200: Schemas.PaginatedConversationList }; + responses: { 200: Schemas.PaginatedConversationMinimalList }; }; export type post_Conversations_create = { method: "POST"; @@ -14581,74 +15287,174 @@ export namespace Endpoints { path: "/api/environments/{project_id}/conversations/{conversation}/append_message/"; requestFormat: "json"; parameters: { - path: { conversation: string; project_id: string }; - - body: Schemas.MessageMinimal; + path: { conversation: string; project_id: string }; + + body: Schemas.MessageMinimal; + }; + responses: { 200: Schemas.MessageMinimal }; + }; + export type patch_Conversations_cancel_partial_update = { + method: "PATCH"; + path: "/api/environments/{project_id}/conversations/{conversation}/cancel/"; + requestFormat: "json"; + parameters: { + path: { conversation: string; project_id: string }; + + body: Schemas.PatchedConversation; + }; + responses: { 200: Schemas.Conversation }; + }; + export type get_Conversations_queue_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/conversations/{conversation}/queue/"; + requestFormat: "json"; + parameters: { + path: { conversation: string; project_id: string }; + }; + responses: { 200: Schemas.Conversation }; + }; + export type post_Conversations_queue_create = { + method: "POST"; + path: "/api/environments/{project_id}/conversations/{conversation}/queue/"; + requestFormat: "json"; + parameters: { + path: { conversation: string; project_id: string }; + + body: Schemas.Conversation; + }; + responses: { 200: Schemas.Conversation }; + }; + export type patch_Conversations_queue_partial_update = { + method: "PATCH"; + path: "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/"; + requestFormat: "json"; + parameters: { + path: { conversation: string; project_id: string; queue_id: string }; + + body: Schemas.PatchedConversation; + }; + responses: { 200: Schemas.Conversation }; + }; + export type delete_Conversations_queue_destroy = { + method: "DELETE"; + path: "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/"; + requestFormat: "json"; + parameters: { + path: { conversation: string; project_id: string; queue_id: string }; + }; + responses: { 204: unknown }; + }; + export type post_Conversations_queue_clear_create = { + method: "POST"; + path: "/api/environments/{project_id}/conversations/{conversation}/queue/clear/"; + requestFormat: "json"; + parameters: { + path: { conversation: string; project_id: string }; + + body: Schemas.Conversation; + }; + responses: { 200: Schemas.Conversation }; + }; + export type get_Conversations_views_list = { + method: "GET"; + path: "/api/environments/{project_id}/conversations/views/"; + requestFormat: "json"; + parameters: { + query: Partial<{ limit: number; offset: number }>; + path: { project_id: string }; + }; + responses: { 200: Schemas.PaginatedTicketViewList }; + }; + export type post_Conversations_views_create = { + method: "POST"; + path: "/api/environments/{project_id}/conversations/views/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas.TicketView; + }; + responses: { 201: Schemas.TicketView }; + }; + export type get_Conversations_views_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/conversations/views/{short_id}/"; + requestFormat: "json"; + parameters: { + path: { project_id: string; short_id: string }; + }; + responses: { 200: Schemas.TicketView }; + }; + export type delete_Conversations_views_destroy = { + method: "DELETE"; + path: "/api/environments/{project_id}/conversations/views/{short_id}/"; + requestFormat: "json"; + parameters: { + path: { project_id: string; short_id: string }; + }; + responses: { 204: unknown }; + }; + export type get_Customer_journeys_list = { + method: "GET"; + path: "/api/environments/{project_id}/customer_journeys/"; + requestFormat: "json"; + parameters: { + query: Partial<{ limit: number; offset: number }>; + path: { project_id: string }; }; - responses: { 200: Schemas.MessageMinimal }; + responses: { 200: Schemas.PaginatedCustomerJourneyList }; }; - export type patch_Conversations_cancel_partial_update = { - method: "PATCH"; - path: "/api/environments/{project_id}/conversations/{conversation}/cancel/"; + export type post_Customer_journeys_create = { + method: "POST"; + path: "/api/environments/{project_id}/customer_journeys/"; requestFormat: "json"; parameters: { - path: { conversation: string; project_id: string }; + path: { project_id: string }; - body: Schemas.PatchedConversation; + body: Schemas.CustomerJourney; }; - responses: { 200: Schemas.Conversation }; + responses: { 201: Schemas.CustomerJourney }; }; - export type get_Conversations_queue_retrieve = { + export type get_Customer_journeys_retrieve = { method: "GET"; - path: "/api/environments/{project_id}/conversations/{conversation}/queue/"; + path: "/api/environments/{project_id}/customer_journeys/{id}/"; requestFormat: "json"; parameters: { - path: { conversation: string; project_id: string }; + path: { id: string; project_id: string }; }; - responses: { 200: Schemas.Conversation }; + responses: { 200: Schemas.CustomerJourney }; }; - export type post_Conversations_queue_create = { - method: "POST"; - path: "/api/environments/{project_id}/conversations/{conversation}/queue/"; + export type put_Customer_journeys_update = { + method: "PUT"; + path: "/api/environments/{project_id}/customer_journeys/{id}/"; requestFormat: "json"; parameters: { - path: { conversation: string; project_id: string }; + path: { id: string; project_id: string }; - body: Schemas.Conversation; + body: Schemas.CustomerJourney; }; - responses: { 200: Schemas.Conversation }; + responses: { 200: Schemas.CustomerJourney }; }; - export type patch_Conversations_queue_partial_update = { + export type patch_Customer_journeys_partial_update = { method: "PATCH"; - path: "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/"; + path: "/api/environments/{project_id}/customer_journeys/{id}/"; requestFormat: "json"; parameters: { - path: { conversation: string; project_id: string; queue_id: string }; + path: { id: string; project_id: string }; - body: Schemas.PatchedConversation; + body: Schemas.PatchedCustomerJourney; }; - responses: { 200: Schemas.Conversation }; + responses: { 200: Schemas.CustomerJourney }; }; - export type delete_Conversations_queue_destroy = { + export type delete_Customer_journeys_destroy = { method: "DELETE"; - path: "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/"; + path: "/api/environments/{project_id}/customer_journeys/{id}/"; requestFormat: "json"; parameters: { - path: { conversation: string; project_id: string; queue_id: string }; + path: { id: string; project_id: string }; }; responses: { 204: unknown }; }; - export type post_Conversations_queue_clear_create = { - method: "POST"; - path: "/api/environments/{project_id}/conversations/{conversation}/queue/clear/"; - requestFormat: "json"; - parameters: { - path: { conversation: string; project_id: string }; - - body: Schemas.Conversation; - }; - responses: { 200: Schemas.Conversation }; - }; export type get_Customer_profile_configs_list = { method: "GET"; path: "/api/environments/{project_id}/customer_profile_configs/"; @@ -15102,9 +15908,9 @@ export namespace Endpoints { parameters: { path: { id: string; project_id: string }; - body: Schemas.ErrorTrackingIssueFull; + body: Schemas.ErrorTrackingIssueMergeRequest; }; - responses: { 200: unknown }; + responses: { 200: Schemas.ErrorTrackingIssueMergeResponse }; }; export type post_Error_tracking_issues_split_create = { method: "POST"; @@ -15137,6 +15943,15 @@ export namespace Endpoints { }; responses: { 200: unknown }; }; + export type get_Error_tracking_issues_exists_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/error_tracking/issues/exists/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + }; + responses: { 200: unknown }; + }; export type get_Error_tracking_issues_values_retrieve = { method: "GET"; path: "/api/environments/{project_id}/error_tracking/issues/values/"; @@ -15245,6 +16060,45 @@ export namespace Endpoints { }; responses: { 200: Schemas.PaginatedErrorTrackingSpikeEventList }; }; + export type get_Error_tracking_stack_frames_list = { + method: "GET"; + path: "/api/environments/{project_id}/error_tracking/stack_frames/"; + requestFormat: "json"; + parameters: { + query: Partial<{ limit: number; offset: number }>; + path: { project_id: string }; + }; + responses: { 200: Schemas.PaginatedErrorTrackingStackFrameList }; + }; + export type get_Error_tracking_stack_frames_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/error_tracking/stack_frames/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 200: Schemas.ErrorTrackingStackFrame }; + }; + export type delete_Error_tracking_stack_frames_destroy = { + method: "DELETE"; + path: "/api/environments/{project_id}/error_tracking/stack_frames/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 405: unknown }; + }; + export type post_Error_tracking_stack_frames_batch_get_create = { + method: "POST"; + path: "/api/environments/{project_id}/error_tracking/stack_frames/batch_get/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas.ErrorTrackingStackFrame; + }; + responses: { 200: unknown }; + }; export type get_Error_tracking_suppression_rules_list = { method: "GET"; path: "/api/environments/{project_id}/error_tracking/suppression_rules/"; @@ -15528,6 +16382,44 @@ export namespace Endpoints { }; responses: { 200: Schemas.Evaluation }; }; + export type get_Event_filter_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/event_filter/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + }; + responses: { 200: Schemas.EventFilterConfig }; + }; + export type post_Event_filter_create = { + method: "POST"; + path: "/api/environments/{project_id}/event_filter/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas.EventFilterConfig; + }; + responses: { 200: Schemas.EventFilterConfig }; + }; + export type get_Event_filter_metrics_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/event_filter/metrics/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + }; + responses: { 200: Schemas.AppMetricsResponse }; + }; + export type get_Event_filter_metrics_totals_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/event_filter/metrics/totals/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + }; + responses: { 200: Schemas.AppMetricsTotalsResponse }; + }; export type get_Health_issues_list = { method: "GET"; path: "/api/environments/{project_id}/health_issues/"; @@ -15771,6 +16663,17 @@ export namespace Endpoints { }; responses: { 204: unknown }; }; + export type post_Llm_analytics_provider_keys_assign_create = { + method: "POST"; + path: "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/assign/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.LLMProviderKey; + }; + responses: { 200: Schemas.LLMProviderKey }; + }; export type get_Llm_analytics_provider_keys_dependent_configs_retrieve = { method: "GET"; path: "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/dependent_configs/"; @@ -15791,6 +16694,15 @@ export namespace Endpoints { }; responses: { 200: Schemas.LLMProviderKey }; }; + export type get_Llm_analytics_provider_keys_trial_evaluations_retrieve = { + method: "GET"; + path: "/api/environments/{project_id}/llm_analytics/provider_keys/trial_evaluations/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + }; + responses: { 200: Schemas.LLMProviderKey }; + }; export type get_Llm_analytics_review_queue_items_list = { method: "GET"; path: "/api/environments/{project_id}/llm_analytics/review_queue_items/"; @@ -16099,10 +17011,15 @@ export namespace Endpoints { path: "/api/environments/{project_id}/llm_prompts/"; requestFormat: "json"; parameters: { - query: Partial<{ limit: number; offset: number; search: string }>; + query: Partial<{ + content: "full" | "preview" | "none"; + limit: number; + offset: number; + search: string; + }>; path: { project_id: string }; }; - responses: { 200: Schemas.PaginatedLLMPromptList }; + responses: { 200: Schemas.PaginatedLLMPromptListList }; }; export type post_Llm_prompts_create = { method: "POST"; @@ -16678,6 +17595,19 @@ export namespace Endpoints { path: "/api/projects/{project_id}/advanced_activity_logs/"; requestFormat: "json"; parameters: { + query: Partial<{ + activities: Array; + detail_filters: string; + end_date: string; + hogql_filter: string; + is_system: boolean | null; + item_ids: Array; + scopes: Array; + search_text: string; + start_date: string; + users: Array; + was_impersonated: boolean | null; + }>; path: { project_id: string }; }; responses: { 200: Schemas.PaginatedActivityLogList }; @@ -16689,7 +17619,7 @@ export namespace Endpoints { parameters: { path: { project_id: string }; }; - responses: { 200: Schemas.ActivityLog }; + responses: { 200: Schemas.AvailableFiltersResponse }; }; export type post_Advanced_activity_logs_export_create = { method: "POST"; @@ -17210,6 +18140,91 @@ export namespace Endpoints { }; responses: { 200: unknown }; }; + export type get_Comments_list = { + method: "GET"; + path: "/api/projects/{project_id}/comments/"; + requestFormat: "json"; + parameters: { + query: Partial<{ + cursor: string; + item_id: string; + scope: string; + search: string; + source_comment: string; + }>; + path: { project_id: string }; + }; + responses: { 200: Schemas.PaginatedCommentList }; + }; + export type post_Comments_create = { + method: "POST"; + path: "/api/projects/{project_id}/comments/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas.Comment; + }; + responses: { 201: Schemas.Comment }; + }; + export type get_Comments_retrieve = { + method: "GET"; + path: "/api/projects/{project_id}/comments/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 200: Schemas.Comment }; + }; + export type put_Comments_update = { + method: "PUT"; + path: "/api/projects/{project_id}/comments/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.Comment; + }; + responses: { 200: Schemas.Comment }; + }; + export type patch_Comments_partial_update = { + method: "PATCH"; + path: "/api/projects/{project_id}/comments/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + + body: Schemas.PatchedComment; + }; + responses: { 200: Schemas.Comment }; + }; + export type delete_Comments_destroy = { + method: "DELETE"; + path: "/api/projects/{project_id}/comments/{id}/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 405: unknown }; + }; + export type get_Comments_thread_retrieve = { + method: "GET"; + path: "/api/projects/{project_id}/comments/{id}/thread/"; + requestFormat: "json"; + parameters: { + path: { id: string; project_id: string }; + }; + responses: { 200: unknown }; + }; + export type get_Comments_count_retrieve = { + method: "GET"; + path: "/api/projects/{project_id}/comments/count/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + }; + responses: { 200: unknown }; + }; export type get_Conversations_tickets_list = { method: "GET"; path: "/api/projects/{project_id}/conversations/tickets/"; @@ -17303,7 +18318,12 @@ export namespace Endpoints { is_featured: boolean; limit: number; offset: number; - ordering: "-template_name" | "template_name"; + ordering: + | "-created_at" + | "-template_name" + | "created_at" + | "template_name"; + scope: "feature_flag" | "global" | "team"; }>; path: { project_id: string }; }; @@ -17991,8 +19011,10 @@ export namespace Endpoints { requestFormat: "json"; parameters: { path: { name: string; project_id: string }; + + body: Schemas.PatchedEndpointRequest; }; - responses: { 200: unknown }; + responses: { 200: Schemas.EndpointResponse }; }; export type delete_Endpoints_destroy = { method: "DELETE"; @@ -18028,6 +19050,7 @@ export namespace Endpoints { path: "/api/projects/{project_id}/endpoints/{name}/openapi.json/"; requestFormat: "json"; parameters: { + query: Partial<{ version: number }>; path: { name: string; project_id: string }; }; responses: { 200: unknown }; @@ -18039,7 +19062,7 @@ export namespace Endpoints { parameters: { path: { name: string; project_id: string }; }; - responses: { 200: unknown }; + responses: { 200: Schemas.EndpointRunResponse }; }; export type post_Endpoints_run_create = { method: "POST"; @@ -18050,7 +19073,7 @@ export namespace Endpoints { body: Schemas.EndpointRunRequest; }; - responses: { 200: unknown }; + responses: { 200: Schemas.EndpointRunResponse }; }; export type get_Endpoints_versions_list = { method: "GET"; @@ -18178,6 +19201,26 @@ export namespace Endpoints { }; responses: { 200: unknown }; }; + export type get_Experiments_config_retrieve = { + method: "GET"; + path: "/api/projects/{project_id}/environments/{id}/experiments_config/"; + requestFormat: "json"; + parameters: { + path: { id: number; project_id: string }; + }; + responses: { 200: unknown }; + }; + export type patch_Experiments_config_partial_update = { + method: "PATCH"; + path: "/api/projects/{project_id}/environments/{id}/experiments_config/"; + requestFormat: "json"; + parameters: { + path: { id: number; project_id: string }; + + body: Schemas.PatchedTeam; + }; + responses: { 200: unknown }; + }; export type post_Generate_conversations_public_token_create_2 = { method: "POST"; path: "/api/projects/{project_id}/environments/{id}/generate_conversations_public_token/"; @@ -18808,6 +19851,17 @@ export namespace Endpoints { }; responses: { 200: Schemas.Experiment }; }; + export type post_Experiments_copy_to_project_create = { + method: "POST"; + path: "/api/projects/{project_id}/experiments/{id}/copy_to_project/"; + requestFormat: "json"; + parameters: { + path: { id: number; project_id: string }; + + body: Schemas.CopyExperimentToProject; + }; + responses: { 200: Schemas.Experiment }; + }; export type post_Experiments_create_exposure_cohort_for_experiment_create = { method: "POST"; path: "/api/projects/{project_id}/experiments/{id}/create_exposure_cohort_for_experiment/"; @@ -20046,9 +21100,9 @@ export namespace Endpoints { parameters: { path: { project_id: string }; - body: Schemas.HogFlow; + body: Schemas.BlastRadiusRequest; }; - responses: { 200: Schemas.HogFlow }; + responses: { 200: Schemas.BlastRadius }; }; export type get_Hog_function_templates_list = { method: "GET"; @@ -20645,7 +21699,11 @@ export namespace Endpoints { path: "/api/projects/{project_id}/integrations/{id}/github_branches/"; requestFormat: "json"; parameters: { - query: { repo: string }; + query: { + limit?: number | undefined; + offset?: number | undefined; + repo: string; + }; path: { id: number; project_id: string }; }; responses: { 200: Schemas.GitHubBranchesResponse }; @@ -20655,6 +21713,7 @@ export namespace Endpoints { path: "/api/projects/{project_id}/integrations/{id}/github_repos/"; requestFormat: "json"; parameters: { + query: Partial<{ limit: number; offset: number }>; path: { id: number; project_id: string }; }; responses: { 200: Schemas.GitHubReposResponse }; @@ -20933,11 +21992,28 @@ export namespace Endpoints { }; responses: { 204: unknown }; }; + export type post_Logs_alerts_simulate_create = { + method: "POST"; + path: "/api/projects/{project_id}/logs/alerts/simulate/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas.LogsAlertSimulateRequest; + }; + responses: { 200: Schemas.LogsAlertSimulateResponse }; + }; export type get_Logs_attributes_retrieve = { method: "GET"; path: "/api/projects/{project_id}/logs/attributes/"; requestFormat: "json"; parameters: { + query: Partial<{ + attribute_type: "log" | "resource"; + limit: number; + offset: number; + search: string; + }>; path: { project_id: string }; }; responses: { 200: unknown }; @@ -20962,7 +22038,18 @@ export namespace Endpoints { }; export type post_Logs_query_create = { method: "POST"; - path: "/api/projects/{project_id}/logs/query/"; + path: "/api/projects/{project_id}/logs/query/"; + requestFormat: "json"; + parameters: { + path: { project_id: string }; + + body: Schemas._LogsQueryRequest; + }; + responses: { 200: unknown }; + }; + export type post_Logs_services_create = { + method: "POST"; + path: "/api/projects/{project_id}/logs/services/"; requestFormat: "json"; parameters: { path: { project_id: string }; @@ -20983,6 +22070,11 @@ export namespace Endpoints { path: "/api/projects/{project_id}/logs/values/"; requestFormat: "json"; parameters: { + query: { + attribute_type?: ("log" | "resource") | undefined; + key: string; + value?: string | undefined; + }; path: { project_id: string }; }; responses: { 200: unknown }; @@ -21561,16 +22653,6 @@ export namespace Endpoints { }; responses: { 200: unknown }; }; - export type get_Persons_stickiness_retrieve = { - method: "GET"; - path: "/api/projects/{project_id}/persons/stickiness/"; - requestFormat: "json"; - parameters: { - query: Partial<{ format: "csv" | "json" }>; - path: { project_id: string }; - }; - responses: { 200: unknown }; - }; export type get_Persons_trends_retrieve = { method: "GET"; path: "/api/projects/{project_id}/persons/trends/"; @@ -21899,6 +22981,15 @@ export namespace Endpoints { }; responses: { 200: Record }; }; + export type post_Query_create_2 = { + method: "POST"; + path: "/api/projects/{project_id}/query/{query_kind}/"; + requestFormat: "json"; + parameters: { + path: { project_id: string; query_kind: string }; + }; + responses: { 200: unknown }; + }; export type post_Query_check_auth_for_async_create = { method: "POST"; path: "/api/projects/{project_id}/query/check_auth_for_async/"; @@ -22438,7 +23529,15 @@ export namespace Endpoints { path: "/api/projects/{project_id}/subscriptions/"; requestFormat: "json"; parameters: { - query: Partial<{ limit: number; offset: number }>; + query: Partial<{ + created_by: string; + limit: number; + offset: number; + ordering: string; + resource_type: "dashboard" | "insight"; + search: string; + target_type: "email" | "slack" | "webhook"; + }>; path: { project_id: string }; }; responses: { 200: Schemas.PaginatedSubscriptionList }; @@ -22494,6 +23593,15 @@ export namespace Endpoints { }; responses: { 405: unknown }; }; + export type post_Subscriptions_test_delivery_create = { + method: "POST"; + path: "/api/projects/{project_id}/subscriptions/{id}/test-delivery/"; + requestFormat: "json"; + parameters: { + path: { id: number; project_id: string }; + }; + responses: { 202: unknown }; + }; export type get_Surveys_list = { method: "GET"; path: "/api/projects/{project_id}/surveys/"; @@ -22895,6 +24003,7 @@ export namespace Endpoints { event_types: string; exclude_types: string; limit: number; + offset: number; }>; path: { id: string; project_id: string; task_id: string }; }; @@ -22916,7 +24025,7 @@ export namespace Endpoints { parameters: { path: { id: string; project_id: string; task_id: string }; }; - responses: { 200: Schemas.TaskRunDetail }; + responses: { 200: unknown }; }; export type get_Tasks_repository_readiness_retrieve = { method: "GET"; @@ -23457,7 +24566,7 @@ export namespace Endpoints { offset: number; }>; }; - responses: { 200: Schemas.PaginatedUserList }; + responses: { 200: Schemas.User }; }; export type get_Users_retrieve = { method: "GET"; @@ -23635,9 +24744,17 @@ export namespace Endpoints { // export type EndpointByMethod = { get: { + "/api/environments/{project_id}/approval_policies/": Endpoints.get_Approval_policies_list; + "/api/environments/{project_id}/approval_policies/{id}/": Endpoints.get_Approval_policies_retrieve; + "/api/environments/{project_id}/change_requests/": Endpoints.get_Change_requests_list; + "/api/environments/{project_id}/change_requests/{id}/": Endpoints.get_Change_requests_retrieve; "/api/environments/{project_id}/conversations/": Endpoints.get_Conversations_list; "/api/environments/{project_id}/conversations/{conversation}/": Endpoints.get_Conversations_retrieve; "/api/environments/{project_id}/conversations/{conversation}/queue/": Endpoints.get_Conversations_queue_retrieve; + "/api/environments/{project_id}/conversations/views/": Endpoints.get_Conversations_views_list; + "/api/environments/{project_id}/conversations/views/{short_id}/": Endpoints.get_Conversations_views_retrieve; + "/api/environments/{project_id}/customer_journeys/": Endpoints.get_Customer_journeys_list; + "/api/environments/{project_id}/customer_journeys/{id}/": Endpoints.get_Customer_journeys_retrieve; "/api/environments/{project_id}/customer_profile_configs/": Endpoints.get_Customer_profile_configs_list; "/api/environments/{project_id}/customer_profile_configs/{id}/": Endpoints.get_Customer_profile_configs_retrieve; "/api/environments/{project_id}/dashboards/{dashboard_id}/collaborators/": Endpoints.get_Dashboards_collaborators_list; @@ -23655,18 +24772,24 @@ export type EndpointByMethod = { "/api/environments/{project_id}/error_tracking/issues/{id}/": Endpoints.get_Error_tracking_issues_retrieve; "/api/environments/{project_id}/error_tracking/issues/{id}/activity/": Endpoints.get_Error_tracking_issues_activity_retrieve_2; "/api/environments/{project_id}/error_tracking/issues/activity/": Endpoints.get_Error_tracking_issues_activity_retrieve; + "/api/environments/{project_id}/error_tracking/issues/exists/": Endpoints.get_Error_tracking_issues_exists_retrieve; "/api/environments/{project_id}/error_tracking/issues/values/": Endpoints.get_Error_tracking_issues_values_retrieve; "/api/environments/{project_id}/error_tracking/releases/": Endpoints.get_Error_tracking_releases_list; "/api/environments/{project_id}/error_tracking/releases/{id}/": Endpoints.get_Error_tracking_releases_retrieve; "/api/environments/{project_id}/error_tracking/releases/hash/{hash_id}/": Endpoints.get_Error_tracking_releases_hash_retrieve; "/api/environments/{project_id}/error_tracking/spike_detection_config/": Endpoints.get_Error_tracking_spike_detection_config_retrieve; "/api/environments/{project_id}/error_tracking/spike_events/": Endpoints.get_Error_tracking_spike_events_list; + "/api/environments/{project_id}/error_tracking/stack_frames/": Endpoints.get_Error_tracking_stack_frames_list; + "/api/environments/{project_id}/error_tracking/stack_frames/{id}/": Endpoints.get_Error_tracking_stack_frames_retrieve; "/api/environments/{project_id}/error_tracking/suppression_rules/": Endpoints.get_Error_tracking_suppression_rules_list; "/api/environments/{project_id}/error_tracking/suppression_rules/{id}/": Endpoints.get_Error_tracking_suppression_rules_retrieve; "/api/environments/{project_id}/error_tracking/symbol_sets/": Endpoints.get_Error_tracking_symbol_sets_list; "/api/environments/{project_id}/error_tracking/symbol_sets/{id}/": Endpoints.get_Error_tracking_symbol_sets_retrieve; "/api/environments/{project_id}/evaluations/": Endpoints.get_Evaluations_list; "/api/environments/{project_id}/evaluations/{id}/": Endpoints.get_Evaluations_retrieve; + "/api/environments/{project_id}/event_filter/": Endpoints.get_Event_filter_retrieve; + "/api/environments/{project_id}/event_filter/metrics/": Endpoints.get_Event_filter_metrics_retrieve; + "/api/environments/{project_id}/event_filter/metrics/totals/": Endpoints.get_Event_filter_metrics_totals_retrieve; "/api/environments/{project_id}/health_issues/": Endpoints.get_Health_issues_list; "/api/environments/{project_id}/health_issues/{id}/": Endpoints.get_Health_issues_retrieve; "/api/environments/{project_id}/health_issues/summary/": Endpoints.get_Health_issues_summary_retrieve; @@ -23678,6 +24801,7 @@ export type EndpointByMethod = { "/api/environments/{project_id}/llm_analytics/provider_keys/": Endpoints.get_Llm_analytics_provider_keys_list; "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/": Endpoints.get_Llm_analytics_provider_keys_retrieve; "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/dependent_configs/": Endpoints.get_Llm_analytics_provider_keys_dependent_configs_retrieve; + "/api/environments/{project_id}/llm_analytics/provider_keys/trial_evaluations/": Endpoints.get_Llm_analytics_provider_keys_trial_evaluations_retrieve; "/api/environments/{project_id}/llm_analytics/review_queue_items/": Endpoints.get_Llm_analytics_review_queue_items_list; "/api/environments/{project_id}/llm_analytics/review_queue_items/{id}/": Endpoints.get_Llm_analytics_review_queue_items_retrieve; "/api/environments/{project_id}/llm_analytics/review_queues/": Endpoints.get_Llm_analytics_review_queues_list; @@ -23727,6 +24851,10 @@ export type EndpointByMethod = { "/api/projects/{project_id}/cohorts/{id}/calculation_history/": Endpoints.get_Cohorts_calculation_history_retrieve; "/api/projects/{project_id}/cohorts/{id}/persons/": Endpoints.get_Cohorts_persons_retrieve; "/api/projects/{project_id}/cohorts/activity/": Endpoints.get_Cohorts_activity_retrieve; + "/api/projects/{project_id}/comments/": Endpoints.get_Comments_list; + "/api/projects/{project_id}/comments/{id}/": Endpoints.get_Comments_retrieve; + "/api/projects/{project_id}/comments/{id}/thread/": Endpoints.get_Comments_thread_retrieve; + "/api/projects/{project_id}/comments/count/": Endpoints.get_Comments_count_retrieve; "/api/projects/{project_id}/conversations/tickets/": Endpoints.get_Conversations_tickets_list; "/api/projects/{project_id}/conversations/tickets/{id}/": Endpoints.get_Conversations_tickets_retrieve; "/api/projects/{project_id}/conversations/tickets/unread_count/": Endpoints.get_Conversations_tickets_unread_count_retrieve; @@ -23760,6 +24888,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/environments/{id}/default_evaluation_contexts/": Endpoints.get_Default_evaluation_contexts_retrieve; "/api/projects/{project_id}/environments/{id}/default_release_conditions/": Endpoints.get_Default_release_conditions_retrieve; "/api/projects/{project_id}/environments/{id}/event_ingestion_restrictions/": Endpoints.get_Event_ingestion_restrictions_retrieve; + "/api/projects/{project_id}/environments/{id}/experiments_config/": Endpoints.get_Experiments_config_retrieve; "/api/projects/{project_id}/environments/{id}/is_generating_demo_data/": Endpoints.get_Is_generating_demo_data_retrieve_2; "/api/projects/{project_id}/environments/{id}/settings_as_of/": Endpoints.get_Settings_as_of_retrieve; "/api/projects/{project_id}/error_tracking/releases/": Endpoints.get_Error_tracking_releases_list_2; @@ -23906,7 +25035,6 @@ export type EndpointByMethod = { "/api/projects/{project_id}/persons/funnel/correlation/": Endpoints.get_Persons_funnel_correlation_retrieve; "/api/projects/{project_id}/persons/lifecycle/": Endpoints.get_Persons_lifecycle_retrieve; "/api/projects/{project_id}/persons/properties_at_time/": Endpoints.get_Persons_properties_at_time_retrieve; - "/api/projects/{project_id}/persons/stickiness/": Endpoints.get_Persons_stickiness_retrieve; "/api/projects/{project_id}/persons/trends/": Endpoints.get_Persons_trends_retrieve; "/api/projects/{project_id}/persons/values/": Endpoints.get_Persons_values_retrieve; "/api/projects/{project_id}/plugin_configs/{plugin_config_id}/logs/": Endpoints.get_Plugin_configs_logs_list; @@ -23984,10 +25112,16 @@ export type EndpointByMethod = { "/api/users/{uuid}/two_factor_status/": Endpoints.get_Users_two_factor_status_retrieve; }; post: { + "/api/environments/{project_id}/approval_policies/": Endpoints.post_Approval_policies_create; + "/api/environments/{project_id}/change_requests/{id}/approve/": Endpoints.post_Change_requests_approve_create; + "/api/environments/{project_id}/change_requests/{id}/cancel/": Endpoints.post_Change_requests_cancel_create; + "/api/environments/{project_id}/change_requests/{id}/reject/": Endpoints.post_Change_requests_reject_create; "/api/environments/{project_id}/conversations/": Endpoints.post_Conversations_create; "/api/environments/{project_id}/conversations/{conversation}/append_message/": Endpoints.post_Conversations_append_message_create; "/api/environments/{project_id}/conversations/{conversation}/queue/": Endpoints.post_Conversations_queue_create; "/api/environments/{project_id}/conversations/{conversation}/queue/clear/": Endpoints.post_Conversations_queue_clear_create; + "/api/environments/{project_id}/conversations/views/": Endpoints.post_Conversations_views_create; + "/api/environments/{project_id}/customer_journeys/": Endpoints.post_Customer_journeys_create; "/api/environments/{project_id}/customer_profile_configs/": Endpoints.post_Customer_profile_configs_create; "/api/environments/{project_id}/dashboards/{dashboard_id}/collaborators/": Endpoints.post_Dashboards_collaborators_create; "/api/environments/{project_id}/desktop_recordings/": Endpoints.post_Desktop_recordings_create; @@ -23999,6 +25133,7 @@ export type EndpointByMethod = { "/api/environments/{project_id}/error_tracking/issues/{id}/split/": Endpoints.post_Error_tracking_issues_split_create; "/api/environments/{project_id}/error_tracking/issues/bulk/": Endpoints.post_Error_tracking_issues_bulk_create; "/api/environments/{project_id}/error_tracking/releases/": Endpoints.post_Error_tracking_releases_create; + "/api/environments/{project_id}/error_tracking/stack_frames/batch_get/": Endpoints.post_Error_tracking_stack_frames_batch_get_create; "/api/environments/{project_id}/error_tracking/suppression_rules/": Endpoints.post_Error_tracking_suppression_rules_create; "/api/environments/{project_id}/error_tracking/symbol_sets/": Endpoints.post_Error_tracking_symbol_sets_create; "/api/environments/{project_id}/error_tracking/symbol_sets/bulk_delete/": Endpoints.post_Error_tracking_symbol_sets_bulk_delete_create; @@ -24008,6 +25143,7 @@ export type EndpointByMethod = { "/api/environments/{project_id}/evaluation_runs/": Endpoints.post_Evaluation_runs_create; "/api/environments/{project_id}/evaluations/": Endpoints.post_Evaluations_create; "/api/environments/{project_id}/evaluations/test_hog/": Endpoints.post_Evaluations_test_hog_create; + "/api/environments/{project_id}/event_filter/": Endpoints.post_Event_filter_create; "/api/environments/{project_id}/health_issues/{id}/resolve/": Endpoints.post_Health_issues_resolve_create; "/api/environments/{project_id}/llm_analytics/clustering_config/set_event_filters/": Endpoints.post_Llm_analytics_clustering_config_set_event_filters_create; "/api/environments/{project_id}/llm_analytics/clustering_jobs/": Endpoints.post_Llm_analytics_clustering_jobs_create; @@ -24015,6 +25151,7 @@ export type EndpointByMethod = { "/api/environments/{project_id}/llm_analytics/evaluation_summary/": Endpoints.post_Llm_analytics_evaluation_summary_create; "/api/environments/{project_id}/llm_analytics/provider_key_validations/": Endpoints.post_Llm_analytics_provider_key_validations_create; "/api/environments/{project_id}/llm_analytics/provider_keys/": Endpoints.post_Llm_analytics_provider_keys_create; + "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/assign/": Endpoints.post_Llm_analytics_provider_keys_assign_create; "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/validate/": Endpoints.post_Llm_analytics_provider_keys_validate_create; "/api/environments/{project_id}/llm_analytics/review_queue_items/": Endpoints.post_Llm_analytics_review_queue_items_create; "/api/environments/{project_id}/llm_analytics/review_queues/": Endpoints.post_Llm_analytics_review_queues_create; @@ -24054,6 +25191,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/batch_exports/{id}/unpause/": Endpoints.post_Batch_exports_unpause_create_2; "/api/projects/{project_id}/batch_exports/run_test_step_new/": Endpoints.post_Batch_exports_run_test_step_new_create_2; "/api/projects/{project_id}/cohorts/": Endpoints.post_Cohorts_create; + "/api/projects/{project_id}/comments/": Endpoints.post_Comments_create; "/api/projects/{project_id}/conversations/tickets/": Endpoints.post_Conversations_tickets_create; "/api/projects/{project_id}/conversations/tickets/{id}/suggest_reply/": Endpoints.post_Conversations_tickets_suggest_reply_create; "/api/projects/{project_id}/dashboard_templates/": Endpoints.post_Dashboard_templates_create; @@ -24091,6 +25229,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/experiment_saved_metrics/": Endpoints.post_Experiment_saved_metrics_create; "/api/projects/{project_id}/experiments/": Endpoints.post_Experiments_create; "/api/projects/{project_id}/experiments/{id}/archive/": Endpoints.post_Experiments_archive_create; + "/api/projects/{project_id}/experiments/{id}/copy_to_project/": Endpoints.post_Experiments_copy_to_project_create; "/api/projects/{project_id}/experiments/{id}/create_exposure_cohort_for_experiment/": Endpoints.post_Experiments_create_exposure_cohort_for_experiment_create; "/api/projects/{project_id}/experiments/{id}/duplicate/": Endpoints.post_Experiments_duplicate_create; "/api/projects/{project_id}/experiments/{id}/end/": Endpoints.post_Experiments_end_create; @@ -24150,8 +25289,10 @@ export type EndpointByMethod = { "/api/projects/{project_id}/integrations/domain-connect/apply-url/": Endpoints.post_Integrations_domain_connect_apply_url_create; "/api/projects/{project_id}/live_debugger_breakpoints/": Endpoints.post_Live_debugger_breakpoints_create; "/api/projects/{project_id}/logs/alerts/": Endpoints.post_Logs_alerts_create; + "/api/projects/{project_id}/logs/alerts/simulate/": Endpoints.post_Logs_alerts_simulate_create; "/api/projects/{project_id}/logs/export/": Endpoints.post_Logs_export_create; "/api/projects/{project_id}/logs/query/": Endpoints.post_Logs_query_create; + "/api/projects/{project_id}/logs/services/": Endpoints.post_Logs_services_create; "/api/projects/{project_id}/logs/sparkline/": Endpoints.post_Logs_sparkline_create; "/api/projects/{project_id}/notebooks/": Endpoints.post_Notebooks_create; "/api/projects/{project_id}/notebooks/{short_id}/hogql/execute/": Endpoints.post_Notebooks_hogql_execute_create; @@ -24178,6 +25319,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/project_secret_api_keys/": Endpoints.post_Project_secret_api_keys_create; "/api/projects/{project_id}/project_secret_api_keys/{id}/roll/": Endpoints.post_Project_secret_api_keys_roll_create; "/api/projects/{project_id}/query/": Endpoints.post_Query_create; + "/api/projects/{project_id}/query/{query_kind}/": Endpoints.post_Query_create_2; "/api/projects/{project_id}/query/check_auth_for_async/": Endpoints.post_Query_check_auth_for_async_create; "/api/projects/{project_id}/query/upgrade/": Endpoints.post_Query_upgrade_create; "/api/projects/{project_id}/sandbox_environments/": Endpoints.post_Sandbox_create; @@ -24191,6 +25333,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/session_recordings/{recording_id}/sharing/refresh/": Endpoints.post_Session_recordings_sharing_refresh_create; "/api/projects/{project_id}/signal_source_configs/": Endpoints.post_Signal_source_configs_create; "/api/projects/{project_id}/subscriptions/": Endpoints.post_Subscriptions_create; + "/api/projects/{project_id}/subscriptions/{id}/test-delivery/": Endpoints.post_Subscriptions_test_delivery_create; "/api/projects/{project_id}/surveys/": Endpoints.post_Surveys_create; "/api/projects/{project_id}/surveys/{id}/duplicate_to_projects/": Endpoints.post_Surveys_duplicate_to_projects_create; "/api/projects/{project_id}/surveys/{id}/responses/{response_uuid}/archive/": Endpoints.post_Surveys_responses_archive_create; @@ -24233,9 +25376,87 @@ export type EndpointByMethod = { "/api/users/request_email_verification/": Endpoints.post_Users_request_email_verification_create; "/api/users/verify_email/": Endpoints.post_Users_verify_email_create; }; + put: { + "/api/environments/{project_id}/approval_policies/{id}/": Endpoints.put_Approval_policies_update; + "/api/environments/{project_id}/customer_journeys/{id}/": Endpoints.put_Customer_journeys_update; + "/api/environments/{project_id}/customer_profile_configs/{id}/": Endpoints.put_Customer_profile_configs_update; + "/api/environments/{project_id}/desktop_recordings/{id}/": Endpoints.put_Desktop_recordings_update; + "/api/environments/{project_id}/error_tracking/assignment_rules/{id}/": Endpoints.put_Error_tracking_assignment_rules_update; + "/api/environments/{project_id}/error_tracking/grouping_rules/{id}/": Endpoints.put_Error_tracking_grouping_rules_update; + "/api/environments/{project_id}/error_tracking/issues/{id}/": Endpoints.put_Error_tracking_issues_update; + "/api/environments/{project_id}/error_tracking/issues/{id}/cohort/": Endpoints.put_Error_tracking_issues_cohort_update; + "/api/environments/{project_id}/error_tracking/releases/{id}/": Endpoints.put_Error_tracking_releases_update; + "/api/environments/{project_id}/error_tracking/suppression_rules/{id}/": Endpoints.put_Error_tracking_suppression_rules_update; + "/api/environments/{project_id}/error_tracking/symbol_sets/{id}/": Endpoints.put_Error_tracking_symbol_sets_update; + "/api/environments/{project_id}/error_tracking/symbol_sets/{id}/finish_upload/": Endpoints.put_Error_tracking_symbol_sets_finish_upload_update; + "/api/environments/{project_id}/evaluations/{id}/": Endpoints.put_Evaluations_update; + "/api/environments/{project_id}/llm_analytics/clustering_jobs/{id}/": Endpoints.put_Llm_analytics_clustering_jobs_update; + "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/": Endpoints.put_Llm_analytics_provider_keys_update; + "/api/environments/{project_id}/logs/views/{short_id}/": Endpoints.put_Logs_views_update; + "/api/environments/{project_id}/mcp_server_installations/{id}/": Endpoints.put_Mcp_server_installations_update; + "/api/environments/{project_id}/user_interviews/{id}/": Endpoints.put_User_interviews_update; + "/api/projects/{project_id}/actions/{id}/": Endpoints.put_Actions_update; + "/api/projects/{project_id}/alerts/{id}/": Endpoints.put_Alerts_update; + "/api/projects/{project_id}/annotations/{id}/": Endpoints.put_Annotations_update; + "/api/projects/{project_id}/batch_exports/{id}/": Endpoints.put_Batch_exports_update_2; + "/api/projects/{project_id}/cohorts/{id}/": Endpoints.put_Cohorts_update; + "/api/projects/{project_id}/comments/{id}/": Endpoints.put_Comments_update; + "/api/projects/{project_id}/conversations/tickets/{id}/": Endpoints.put_Conversations_tickets_update; + "/api/projects/{project_id}/dashboard_templates/{id}/": Endpoints.put_Dashboard_templates_update; + "/api/projects/{project_id}/dashboards/{id}/": Endpoints.put_Dashboards_update; + "/api/projects/{project_id}/data_color_themes/{id}/": Endpoints.put_Data_color_themes_update; + "/api/projects/{project_id}/dataset_items/{id}/": Endpoints.put_Dataset_items_update; + "/api/projects/{project_id}/datasets/{id}/": Endpoints.put_Datasets_update; + "/api/projects/{project_id}/early_access_feature/{id}/": Endpoints.put_Early_access_feature_update; + "/api/projects/{project_id}/elements/{id}/": Endpoints.put_Elements_update; + "/api/projects/{project_id}/endpoints/{name}/": Endpoints.put_Endpoints_update; + "/api/projects/{project_id}/environments/{id}/default_release_conditions/": Endpoints.put_Default_release_conditions_update; + "/api/projects/{project_id}/error_tracking/releases/{id}/": Endpoints.put_Error_tracking_releases_update_2; + "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/": Endpoints.put_Error_tracking_symbol_sets_update_2; + "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/finish_upload/": Endpoints.put_Error_tracking_symbol_sets_finish_upload_update_2; + "/api/projects/{project_id}/event_definitions/{id}/": Endpoints.put_Event_definitions_update; + "/api/projects/{project_id}/event_schemas/{id}/": Endpoints.put_Event_schemas_update; + "/api/projects/{project_id}/experiment_holdouts/{id}/": Endpoints.put_Experiment_holdouts_update; + "/api/projects/{project_id}/experiment_saved_metrics/{id}/": Endpoints.put_Experiment_saved_metrics_update; + "/api/projects/{project_id}/experiments/{id}/": Endpoints.put_Experiments_update; + "/api/projects/{project_id}/external_data_sources/{id}/": Endpoints.put_External_data_sources_update; + "/api/projects/{project_id}/feature_flags/{id}/": Endpoints.put_Feature_flags_update; + "/api/projects/{project_id}/file_system/{id}/": Endpoints.put_File_system_update; + "/api/projects/{project_id}/file_system_shortcut/{id}/": Endpoints.put_File_system_shortcut_update; + "/api/projects/{project_id}/groups_types/{group_type_index}/metrics/{id}/": Endpoints.put_Groups_types_metrics_update; + "/api/projects/{project_id}/groups_types/create_detail_dashboard/": Endpoints.put_Groups_types_create_detail_dashboard_update; + "/api/projects/{project_id}/groups_types/set_default_columns/": Endpoints.put_Groups_types_set_default_columns_update; + "/api/projects/{project_id}/hog_flows/{id}/": Endpoints.put_Hog_flows_update; + "/api/projects/{project_id}/hog_functions/{id}/": Endpoints.put_Hog_functions_update; + "/api/projects/{project_id}/insight_variables/{id}/": Endpoints.put_Insight_variables_update; + "/api/projects/{project_id}/insights/{id}/": Endpoints.put_Insights_update; + "/api/projects/{project_id}/live_debugger_breakpoints/{id}/": Endpoints.put_Live_debugger_breakpoints_update; + "/api/projects/{project_id}/logs/alerts/{id}/": Endpoints.put_Logs_alerts_update; + "/api/projects/{project_id}/notebooks/{short_id}/": Endpoints.put_Notebooks_update; + "/api/projects/{project_id}/object_media_previews/{id}/": Endpoints.put_Object_media_previews_update; + "/api/projects/{project_id}/persisted_folder/{id}/": Endpoints.put_Persisted_folder_update; + "/api/projects/{project_id}/persons/{id}/": Endpoints.put_Persons_update; + "/api/projects/{project_id}/product_tours/{id}/": Endpoints.put_Product_tours_update; + "/api/projects/{project_id}/project_secret_api_keys/{id}/": Endpoints.put_Project_secret_api_keys_update; + "/api/projects/{project_id}/property_definitions/{id}/": Endpoints.put_Property_definitions_update; + "/api/projects/{project_id}/schema_property_groups/{id}/": Endpoints.put_Schema_property_groups_update; + "/api/projects/{project_id}/session_group_summaries/{id}/": Endpoints.put_Session_group_summaries_update; + "/api/projects/{project_id}/session_recording_playlists/{short_id}/": Endpoints.put_Session_recording_playlists_update; + "/api/projects/{project_id}/session_recordings/{id}/": Endpoints.put_Session_recordings_update; + "/api/projects/{project_id}/signal_source_configs/{id}/": Endpoints.put_Signal_source_configs_update; + "/api/projects/{project_id}/subscriptions/{id}/": Endpoints.put_Subscriptions_update; + "/api/projects/{project_id}/surveys/{id}/": Endpoints.put_Surveys_update; + "/api/projects/{project_id}/tasks/{id}/": Endpoints.put_Tasks_update; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/": Endpoints.put_Warehouse_saved_queries_update; + "/api/projects/{project_id}/warehouse_tables/{id}/": Endpoints.put_Warehouse_tables_update; + "/api/projects/{project_id}/web_experiments/{id}/": Endpoints.put_Web_experiments_update; + "/api/users/{uuid}/": Endpoints.put_Users_update; + }; patch: { + "/api/environments/{project_id}/approval_policies/{id}/": Endpoints.patch_Approval_policies_partial_update; "/api/environments/{project_id}/conversations/{conversation}/cancel/": Endpoints.patch_Conversations_cancel_partial_update; "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/": Endpoints.patch_Conversations_queue_partial_update; + "/api/environments/{project_id}/customer_journeys/{id}/": Endpoints.patch_Customer_journeys_partial_update; "/api/environments/{project_id}/customer_profile_configs/{id}/": Endpoints.patch_Customer_profile_configs_partial_update; "/api/environments/{project_id}/desktop_recordings/{id}/": Endpoints.patch_Desktop_recordings_partial_update; "/api/environments/{project_id}/error_tracking/assignment_rules/{id}/": Endpoints.patch_Error_tracking_assignment_rules_partial_update; @@ -24268,6 +25489,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/cohorts/{id}/": Endpoints.patch_Cohorts_partial_update; "/api/projects/{project_id}/cohorts/{id}/add_persons_to_static_cohort/": Endpoints.patch_Cohorts_add_persons_to_static_cohort_partial_update; "/api/projects/{project_id}/cohorts/{id}/remove_person_from_static_cohort/": Endpoints.patch_Cohorts_remove_person_from_static_cohort_partial_update; + "/api/projects/{project_id}/comments/{id}/": Endpoints.patch_Comments_partial_update; "/api/projects/{project_id}/conversations/tickets/{id}/": Endpoints.patch_Conversations_tickets_partial_update; "/api/projects/{project_id}/dashboard_templates/{id}/": Endpoints.patch_Dashboard_templates_partial_update; "/api/projects/{project_id}/dashboards/{id}/": Endpoints.patch_Dashboards_partial_update; @@ -24281,6 +25503,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/environments/{id}/add_product_intent/": Endpoints.patch_Add_product_intent_partial_update_2; "/api/projects/{project_id}/environments/{id}/complete_product_onboarding/": Endpoints.patch_Complete_product_onboarding_partial_update_2; "/api/projects/{project_id}/environments/{id}/delete_secret_token_backup/": Endpoints.patch_Delete_secret_token_backup_partial_update_2; + "/api/projects/{project_id}/environments/{id}/experiments_config/": Endpoints.patch_Experiments_config_partial_update; "/api/projects/{project_id}/environments/{id}/reset_token/": Endpoints.patch_Reset_token_partial_update_2; "/api/projects/{project_id}/environments/{id}/rotate_secret_token/": Endpoints.patch_Rotate_secret_token_partial_update_2; "/api/projects/{project_id}/error_tracking/releases/{id}/": Endpoints.patch_Error_tracking_releases_partial_update_2; @@ -24337,7 +25560,10 @@ export type EndpointByMethod = { "/api/users/cancel_email_change_request/": Endpoints.patch_Users_cancel_email_change_request_partial_update; }; delete: { + "/api/environments/{project_id}/approval_policies/{id}/": Endpoints.delete_Approval_policies_destroy; "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/": Endpoints.delete_Conversations_queue_destroy; + "/api/environments/{project_id}/conversations/views/{short_id}/": Endpoints.delete_Conversations_views_destroy; + "/api/environments/{project_id}/customer_journeys/{id}/": Endpoints.delete_Customer_journeys_destroy; "/api/environments/{project_id}/customer_profile_configs/{id}/": Endpoints.delete_Customer_profile_configs_destroy; "/api/environments/{project_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/": Endpoints.delete_Dashboards_collaborators_destroy; "/api/environments/{project_id}/desktop_recordings/{id}/": Endpoints.delete_Desktop_recordings_destroy; @@ -24346,6 +25572,7 @@ export type EndpointByMethod = { "/api/environments/{project_id}/error_tracking/grouping_rules/{id}/": Endpoints.delete_Error_tracking_grouping_rules_destroy; "/api/environments/{project_id}/error_tracking/issues/{id}/": Endpoints.delete_Error_tracking_issues_destroy; "/api/environments/{project_id}/error_tracking/releases/{id}/": Endpoints.delete_Error_tracking_releases_destroy; + "/api/environments/{project_id}/error_tracking/stack_frames/{id}/": Endpoints.delete_Error_tracking_stack_frames_destroy; "/api/environments/{project_id}/error_tracking/suppression_rules/{id}/": Endpoints.delete_Error_tracking_suppression_rules_destroy; "/api/environments/{project_id}/error_tracking/symbol_sets/{id}/": Endpoints.delete_Error_tracking_symbol_sets_destroy; "/api/environments/{project_id}/evaluations/{id}/": Endpoints.delete_Evaluations_destroy; @@ -24362,6 +25589,7 @@ export type EndpointByMethod = { "/api/projects/{project_id}/annotations/{id}/": Endpoints.delete_Annotations_destroy; "/api/projects/{project_id}/batch_exports/{id}/": Endpoints.delete_Batch_exports_destroy_2; "/api/projects/{project_id}/cohorts/{id}/": Endpoints.delete_Cohorts_destroy; + "/api/projects/{project_id}/comments/{id}/": Endpoints.delete_Comments_destroy; "/api/projects/{project_id}/conversations/tickets/{id}/": Endpoints.delete_Conversations_tickets_destroy; "/api/projects/{project_id}/dashboard_templates/{id}/": Endpoints.delete_Dashboard_templates_destroy; "/api/projects/{project_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/": Endpoints.delete_Dashboards_collaborators_destroy_2; @@ -24422,79 +25650,6 @@ export type EndpointByMethod = { "/api/projects/{project_id}/web_experiments/{id}/": Endpoints.delete_Web_experiments_destroy; "/api/users/{uuid}/": Endpoints.delete_Users_destroy; }; - put: { - "/api/environments/{project_id}/customer_profile_configs/{id}/": Endpoints.put_Customer_profile_configs_update; - "/api/environments/{project_id}/desktop_recordings/{id}/": Endpoints.put_Desktop_recordings_update; - "/api/environments/{project_id}/error_tracking/assignment_rules/{id}/": Endpoints.put_Error_tracking_assignment_rules_update; - "/api/environments/{project_id}/error_tracking/grouping_rules/{id}/": Endpoints.put_Error_tracking_grouping_rules_update; - "/api/environments/{project_id}/error_tracking/issues/{id}/": Endpoints.put_Error_tracking_issues_update; - "/api/environments/{project_id}/error_tracking/issues/{id}/cohort/": Endpoints.put_Error_tracking_issues_cohort_update; - "/api/environments/{project_id}/error_tracking/releases/{id}/": Endpoints.put_Error_tracking_releases_update; - "/api/environments/{project_id}/error_tracking/suppression_rules/{id}/": Endpoints.put_Error_tracking_suppression_rules_update; - "/api/environments/{project_id}/error_tracking/symbol_sets/{id}/": Endpoints.put_Error_tracking_symbol_sets_update; - "/api/environments/{project_id}/error_tracking/symbol_sets/{id}/finish_upload/": Endpoints.put_Error_tracking_symbol_sets_finish_upload_update; - "/api/environments/{project_id}/evaluations/{id}/": Endpoints.put_Evaluations_update; - "/api/environments/{project_id}/llm_analytics/clustering_jobs/{id}/": Endpoints.put_Llm_analytics_clustering_jobs_update; - "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/": Endpoints.put_Llm_analytics_provider_keys_update; - "/api/environments/{project_id}/logs/views/{short_id}/": Endpoints.put_Logs_views_update; - "/api/environments/{project_id}/mcp_server_installations/{id}/": Endpoints.put_Mcp_server_installations_update; - "/api/environments/{project_id}/user_interviews/{id}/": Endpoints.put_User_interviews_update; - "/api/projects/{project_id}/actions/{id}/": Endpoints.put_Actions_update; - "/api/projects/{project_id}/alerts/{id}/": Endpoints.put_Alerts_update; - "/api/projects/{project_id}/annotations/{id}/": Endpoints.put_Annotations_update; - "/api/projects/{project_id}/batch_exports/{id}/": Endpoints.put_Batch_exports_update_2; - "/api/projects/{project_id}/cohorts/{id}/": Endpoints.put_Cohorts_update; - "/api/projects/{project_id}/conversations/tickets/{id}/": Endpoints.put_Conversations_tickets_update; - "/api/projects/{project_id}/dashboard_templates/{id}/": Endpoints.put_Dashboard_templates_update; - "/api/projects/{project_id}/dashboards/{id}/": Endpoints.put_Dashboards_update; - "/api/projects/{project_id}/data_color_themes/{id}/": Endpoints.put_Data_color_themes_update; - "/api/projects/{project_id}/dataset_items/{id}/": Endpoints.put_Dataset_items_update; - "/api/projects/{project_id}/datasets/{id}/": Endpoints.put_Datasets_update; - "/api/projects/{project_id}/early_access_feature/{id}/": Endpoints.put_Early_access_feature_update; - "/api/projects/{project_id}/elements/{id}/": Endpoints.put_Elements_update; - "/api/projects/{project_id}/endpoints/{name}/": Endpoints.put_Endpoints_update; - "/api/projects/{project_id}/environments/{id}/default_release_conditions/": Endpoints.put_Default_release_conditions_update; - "/api/projects/{project_id}/error_tracking/releases/{id}/": Endpoints.put_Error_tracking_releases_update_2; - "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/": Endpoints.put_Error_tracking_symbol_sets_update_2; - "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/finish_upload/": Endpoints.put_Error_tracking_symbol_sets_finish_upload_update_2; - "/api/projects/{project_id}/event_definitions/{id}/": Endpoints.put_Event_definitions_update; - "/api/projects/{project_id}/event_schemas/{id}/": Endpoints.put_Event_schemas_update; - "/api/projects/{project_id}/experiment_holdouts/{id}/": Endpoints.put_Experiment_holdouts_update; - "/api/projects/{project_id}/experiment_saved_metrics/{id}/": Endpoints.put_Experiment_saved_metrics_update; - "/api/projects/{project_id}/experiments/{id}/": Endpoints.put_Experiments_update; - "/api/projects/{project_id}/external_data_sources/{id}/": Endpoints.put_External_data_sources_update; - "/api/projects/{project_id}/feature_flags/{id}/": Endpoints.put_Feature_flags_update; - "/api/projects/{project_id}/file_system/{id}/": Endpoints.put_File_system_update; - "/api/projects/{project_id}/file_system_shortcut/{id}/": Endpoints.put_File_system_shortcut_update; - "/api/projects/{project_id}/groups_types/{group_type_index}/metrics/{id}/": Endpoints.put_Groups_types_metrics_update; - "/api/projects/{project_id}/groups_types/create_detail_dashboard/": Endpoints.put_Groups_types_create_detail_dashboard_update; - "/api/projects/{project_id}/groups_types/set_default_columns/": Endpoints.put_Groups_types_set_default_columns_update; - "/api/projects/{project_id}/hog_flows/{id}/": Endpoints.put_Hog_flows_update; - "/api/projects/{project_id}/hog_functions/{id}/": Endpoints.put_Hog_functions_update; - "/api/projects/{project_id}/insight_variables/{id}/": Endpoints.put_Insight_variables_update; - "/api/projects/{project_id}/insights/{id}/": Endpoints.put_Insights_update; - "/api/projects/{project_id}/live_debugger_breakpoints/{id}/": Endpoints.put_Live_debugger_breakpoints_update; - "/api/projects/{project_id}/logs/alerts/{id}/": Endpoints.put_Logs_alerts_update; - "/api/projects/{project_id}/notebooks/{short_id}/": Endpoints.put_Notebooks_update; - "/api/projects/{project_id}/object_media_previews/{id}/": Endpoints.put_Object_media_previews_update; - "/api/projects/{project_id}/persisted_folder/{id}/": Endpoints.put_Persisted_folder_update; - "/api/projects/{project_id}/persons/{id}/": Endpoints.put_Persons_update; - "/api/projects/{project_id}/product_tours/{id}/": Endpoints.put_Product_tours_update; - "/api/projects/{project_id}/project_secret_api_keys/{id}/": Endpoints.put_Project_secret_api_keys_update; - "/api/projects/{project_id}/property_definitions/{id}/": Endpoints.put_Property_definitions_update; - "/api/projects/{project_id}/schema_property_groups/{id}/": Endpoints.put_Schema_property_groups_update; - "/api/projects/{project_id}/session_group_summaries/{id}/": Endpoints.put_Session_group_summaries_update; - "/api/projects/{project_id}/session_recording_playlists/{short_id}/": Endpoints.put_Session_recording_playlists_update; - "/api/projects/{project_id}/session_recordings/{id}/": Endpoints.put_Session_recordings_update; - "/api/projects/{project_id}/signal_source_configs/{id}/": Endpoints.put_Signal_source_configs_update; - "/api/projects/{project_id}/subscriptions/{id}/": Endpoints.put_Subscriptions_update; - "/api/projects/{project_id}/surveys/{id}/": Endpoints.put_Surveys_update; - "/api/projects/{project_id}/tasks/{id}/": Endpoints.put_Tasks_update; - "/api/projects/{project_id}/warehouse_saved_queries/{id}/": Endpoints.put_Warehouse_saved_queries_update; - "/api/projects/{project_id}/warehouse_tables/{id}/": Endpoints.put_Warehouse_tables_update; - "/api/projects/{project_id}/web_experiments/{id}/": Endpoints.put_Web_experiments_update; - "/api/users/{uuid}/": Endpoints.put_Users_update; - }; }; // @@ -24502,9 +25657,9 @@ export type EndpointByMethod = { // export type GetEndpoints = EndpointByMethod["get"]; export type PostEndpoints = EndpointByMethod["post"]; +export type PutEndpoints = EndpointByMethod["put"]; export type PatchEndpoints = EndpointByMethod["patch"]; export type DeleteEndpoints = EndpointByMethod["delete"]; -export type PutEndpoints = EndpointByMethod["put"]; // // @@ -24920,11 +26075,8 @@ export class ApiClient { } // - // - patch< - Path extends keyof PatchEndpoints, - TEndpoint extends PatchEndpoints[Path], - >( + // + put( path: Path, ...params: MaybeOptionalArg< TEndpoint extends { parameters: infer UParams } @@ -24952,10 +26104,7 @@ export class ApiClient { >["data"] >; - patch< - Path extends keyof PatchEndpoints, - TEndpoint extends PatchEndpoints[Path], - >( + put( path: Path, ...params: MaybeOptionalArg< TEndpoint extends { parameters: infer UParams } @@ -24978,18 +26127,18 @@ export class ApiClient { > ): Promise>; - patch< - Path extends keyof PatchEndpoints, - _TEndpoint extends PatchEndpoints[Path], - >(path: Path, ...params: MaybeOptionalArg): Promise { - return this.request("patch", path, ...params); + put( + path: Path, + ...params: MaybeOptionalArg + ): Promise { + return this.request("put", path, ...params); } - // + // - // - delete< - Path extends keyof DeleteEndpoints, - TEndpoint extends DeleteEndpoints[Path], + // + patch< + Path extends keyof PatchEndpoints, + TEndpoint extends PatchEndpoints[Path], >( path: Path, ...params: MaybeOptionalArg< @@ -25018,9 +26167,9 @@ export class ApiClient { >["data"] >; - delete< - Path extends keyof DeleteEndpoints, - TEndpoint extends DeleteEndpoints[Path], + patch< + Path extends keyof PatchEndpoints, + TEndpoint extends PatchEndpoints[Path], >( path: Path, ...params: MaybeOptionalArg< @@ -25044,16 +26193,19 @@ export class ApiClient { > ): Promise>; - delete< - Path extends keyof DeleteEndpoints, - _TEndpoint extends DeleteEndpoints[Path], + patch< + Path extends keyof PatchEndpoints, + _TEndpoint extends PatchEndpoints[Path], >(path: Path, ...params: MaybeOptionalArg): Promise { - return this.request("delete", path, ...params); + return this.request("patch", path, ...params); } - // + // - // - put( + // + delete< + Path extends keyof DeleteEndpoints, + TEndpoint extends DeleteEndpoints[Path], + >( path: Path, ...params: MaybeOptionalArg< TEndpoint extends { parameters: infer UParams } @@ -25081,7 +26233,10 @@ export class ApiClient { >["data"] >; - put( + delete< + Path extends keyof DeleteEndpoints, + TEndpoint extends DeleteEndpoints[Path], + >( path: Path, ...params: MaybeOptionalArg< TEndpoint extends { parameters: infer UParams } @@ -25104,13 +26259,13 @@ export class ApiClient { > ): Promise>; - put( - path: Path, - ...params: MaybeOptionalArg - ): Promise { - return this.request("put", path, ...params); + delete< + Path extends keyof DeleteEndpoints, + _TEndpoint extends DeleteEndpoints[Path], + >(path: Path, ...params: MaybeOptionalArg): Promise { + return this.request("delete", path, ...params); } - // + // // /** diff --git a/apps/code/src/renderer/api/posthogClient.test.ts b/apps/code/src/renderer/api/posthogClient.test.ts new file mode 100644 index 000000000..c03a89ec2 --- /dev/null +++ b/apps/code/src/renderer/api/posthogClient.test.ts @@ -0,0 +1,93 @@ +import { describe, expect, it, vi } from "vitest"; +import { PostHogAPIClient } from "./posthogClient"; + +describe("PostHogAPIClient", () => { + it("sends supported reasoning effort for cloud Codex runs", async () => { + const client = new PostHogAPIClient( + "http://localhost:8000", + async () => "token", + async () => "token", + 123, + ); + + const post = vi.fn().mockResolvedValue({ + id: "task-123", + title: "Task", + description: "Task", + created_at: "2026-04-14T00:00:00Z", + updated_at: "2026-04-14T00:00:00Z", + origin_product: "user_created", + }); + + (client as unknown as { api: { post: typeof post } }).api = { post }; + + await client.runTaskInCloud("task-123", "feature/max-effort", { + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "high", + }); + + expect(post).toHaveBeenCalledWith( + "/api/projects/{project_id}/tasks/{id}/run/", + expect.objectContaining({ + path: { project_id: "123", id: "task-123" }, + body: expect.objectContaining({ + mode: "interactive", + branch: "feature/max-effort", + runtime_adapter: "codex", + provider: "openai", + model: "gpt-5.4", + reasoning_effort: "high", + }), + }), + ); + }); + + it("rejects unsupported reasoning effort for cloud Codex runs", async () => { + const client = new PostHogAPIClient( + "http://localhost:8000", + async () => "token", + async () => "token", + 123, + ); + + const post = vi.fn(); + (client as unknown as { api: { post: typeof post } }).api = { post }; + + await expect( + client.runTaskInCloud("task-123", "feature/max-effort", { + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "max", + }), + ).rejects.toThrow( + "Reasoning effort 'max' is not supported for codex model 'gpt-5.4'.", + ); + + expect(post).not.toHaveBeenCalled(); + }); + + it("rejects unsupported minimal reasoning effort for cloud runs", async () => { + const client = new PostHogAPIClient( + "http://localhost:8000", + async () => "token", + async () => "token", + 123, + ); + + const post = vi.fn(); + (client as unknown as { api: { post: typeof post } }).api = { post }; + + await expect( + client.runTaskInCloud("task-123", "feature/legacy-effort", { + adapter: "claude", + model: "claude-opus-4-6", + reasoningLevel: "minimal", + }), + ).rejects.toThrow( + "Reasoning effort 'minimal' is not supported for claude model 'claude-opus-4-6'.", + ); + + expect(post).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/code/src/renderer/api/posthogClient.ts b/apps/code/src/renderer/api/posthogClient.ts index cde296d3c..fc076a233 100644 --- a/apps/code/src/renderer/api/posthogClient.ts +++ b/apps/code/src/renderer/api/posthogClient.ts @@ -1,3 +1,4 @@ +import { isSupportedReasoningEffort } from "@posthog/agent/adapters/reasoning-effort"; import type { ActionabilityJudgmentArtefact, AvailableSuggestedReviewer, @@ -72,6 +73,15 @@ export interface ExternalDataSource { schemas?: ExternalDataSourceSchema[] | string; } +type CloudRuntimeAdapter = "claude" | "codex"; +type CloudRuntimeProvider = "anthropic" | "openai"; + +function getCloudRuntimeProvider( + adapter: CloudRuntimeAdapter, +): CloudRuntimeProvider { + return adapter === "codex" ? "openai" : "anthropic"; +} + function isObjectRecord(value: unknown): value is Record { return typeof value === "object" && value !== null; } @@ -738,6 +748,9 @@ export class PostHogAPIClient { taskId: string, branch?: string | null, options?: { + adapter?: CloudRuntimeAdapter; + model?: string; + reasoningLevel?: string; resumeFromRunId?: string; pendingUserMessage?: string; sandboxEnvironmentId?: string; @@ -752,6 +765,32 @@ export class PostHogAPIClient { if (branch) { body.branch = branch; } + if (options?.adapter) { + body.runtime_adapter = options.adapter; + body.provider = getCloudRuntimeProvider(options.adapter); + if (options.model) { + body.model = options.model; + } + if (options.reasoningLevel) { + if (!options.model) { + throw new Error( + "A cloud reasoning level requires a model to be selected.", + ); + } + if ( + !isSupportedReasoningEffort( + options.adapter, + options.model, + options.reasoningLevel, + ) + ) { + throw new Error( + `Reasoning effort '${options.reasoningLevel}' is not supported for ${options.adapter} model '${options.model}'.`, + ); + } + body.reasoning_effort = options.reasoningLevel; + } + } if (options?.resumeFromRunId) { body.resume_from_run_id = options.resumeFromRunId; } @@ -1086,10 +1125,10 @@ export class PostHogAPIClient { } async getUsers() { - const data = await this.api.get("/api/users/", { + const data = (await this.api.get("/api/users/", { query: { limit: 1000 }, - }); - return data.results ?? []; + })) as unknown as { results: Schemas.User[] } | Schemas.User[]; + return Array.isArray(data) ? data : (data.results ?? []); } async updateTeam(updates: { diff --git a/apps/code/src/renderer/features/sessions/service/service.test.ts b/apps/code/src/renderer/features/sessions/service/service.test.ts index ae5f2ee99..9d31c679a 100644 --- a/apps/code/src/renderer/features/sessions/service/service.test.ts +++ b/apps/code/src/renderer/features/sessions/service/service.test.ts @@ -65,22 +65,33 @@ const mockSessionStoreSetters = vi.hoisted(() => ({ replaceOptimisticWithEvent: vi.fn(), })); +const mockGetConfigOptionByCategory = vi.hoisted(() => + vi.fn( + ( + _configOptions?: Array<{ category?: string }>, + _category?: string, + ): { category?: string } | undefined => undefined, + ), +); + vi.mock("@features/sessions/stores/sessionStore", () => ({ sessionStoreSetters: mockSessionStoreSetters, - getConfigOptionByCategory: vi.fn(() => undefined), + getConfigOptionByCategory: mockGetConfigOptionByCategory, mergeConfigOptions: vi.fn((live: unknown[], _persisted: unknown[]) => live), })); +const mockAuthenticatedClient = vi.hoisted(() => ({ + createTaskRun: vi.fn(), + appendTaskRunLog: vi.fn(), + getTaskRun: vi.fn(), + getTask: vi.fn(), + runTaskInCloud: vi.fn(), +})); + +type MockAuthenticatedClient = typeof mockAuthenticatedClient; + const mockBuildAuthenticatedClient = vi.hoisted(() => - vi.fn< - () => { - createTaskRun: ReturnType; - appendTaskRunLog: ReturnType; - } | null - >(() => ({ - createTaskRun: vi.fn(), - appendTaskRunLog: vi.fn(), - })), + vi.fn<() => MockAuthenticatedClient | null>(() => mockAuthenticatedClient), ); const mockAuth = vi.hoisted(() => ({ @@ -195,6 +206,12 @@ vi.mock("@utils/notifications", () => ({ vi.mock("@renderer/utils/toast", () => ({ toast: { error: vi.fn() }, })); +vi.mock("@utils/queryClient", () => ({ + queryClient: { + invalidateQueries: vi.fn(), + setQueriesData: vi.fn(), + }, +})); vi.mock("@shared/constants/oauth", () => ({ getCloudUrlFromRegion: () => "https://api.anthropic.com", })); @@ -203,6 +220,11 @@ vi.mock("@utils/session", async () => { await vi.importActual("@utils/session"); return { convertStoredEntriesToEvents: vi.fn(() => []), + createUserMessageEvent: vi.fn((message, ts) => ({ + type: "user", + ts, + message, + })), createUserShellExecuteEvent: vi.fn(() => ({ type: "acp_message", ts: Date.now(), @@ -261,6 +283,7 @@ describe("SessionService", () => { vi.clearAllMocks(); resetSessionService(); mockGetIsOnline.mockReturnValue(true); + mockGetConfigOptionByCategory.mockReturnValue(undefined); mockSessionStoreSetters.getSessionByTaskId.mockReturnValue(undefined); mockSessionStoreSetters.getSessions.mockReturnValue({}); mockAuth.fetchAuthState.mockResolvedValue({ @@ -372,6 +395,7 @@ describe("SessionService", () => { needsScopeReauth: false, }); mockBuildAuthenticatedClient.mockReturnValue({ + ...mockAuthenticatedClient, createTaskRun: createTaskRunMock, appendTaskRunLog: vi.fn(), }); @@ -691,6 +715,7 @@ describe("SessionService", () => { needsScopeReauth: false, }); mockBuildAuthenticatedClient.mockReturnValue({ + ...mockAuthenticatedClient, createTaskRun: createTaskRunMock, appendTaskRunLog: vi.fn(), }); @@ -852,6 +877,102 @@ describe("SessionService", () => { ); }); + it("preserves codex runtime selection when resuming a terminal cloud run", async () => { + const service = getSessionService(); + mockSessionStoreSetters.getSessionByTaskId.mockReturnValue( + createMockSession({ + isCloud: true, + cloudStatus: "completed", + cloudBranch: "feature/codex-run", + adapter: "codex", + configOptions: [ + { + id: "model", + name: "Model", + type: "select", + category: "model", + currentValue: "gpt-5.4", + options: [], + }, + { + id: "effort", + name: "Effort", + type: "select", + category: "thought_level", + currentValue: "high", + options: [], + }, + ], + }), + ); + mockGetConfigOptionByCategory.mockImplementation( + ( + configOptions: Array<{ category?: string }> | undefined, + category?: string, + ) => configOptions?.find((opt) => opt.category === category), + ); + mockAuthenticatedClient.getTaskRun.mockResolvedValue({ + id: "run-123", + task: "task-123", + team: 123, + branch: "feature/codex-run", + runtime_adapter: "codex", + provider: "openai", + model: "gpt-5.4", + reasoning_effort: "high", + environment: "cloud", + status: "completed", + log_url: "https://example.com/logs/run-123", + error_message: null, + output: {}, + state: {}, + created_at: "2026-04-14T00:00:00Z", + updated_at: "2026-04-14T00:00:00Z", + completed_at: "2026-04-14T00:05:00Z", + }); + mockAuthenticatedClient.getTask.mockResolvedValue(createMockTask()); + mockAuthenticatedClient.runTaskInCloud.mockResolvedValue( + createMockTask({ + latest_run: { + id: "run-456", + task: "task-123", + team: 123, + branch: "feature/codex-run", + runtime_adapter: "codex", + provider: "openai", + model: "gpt-5.4", + reasoning_effort: "high", + environment: "cloud", + status: "queued", + log_url: "https://example.com/logs/run-456", + error_message: null, + output: {}, + state: {}, + created_at: "2026-04-14T00:06:00Z", + updated_at: "2026-04-14T00:06:00Z", + completed_at: null, + }, + }), + ); + + const result = await service.sendPrompt( + "task-123", + "Continue with Codex", + ); + + expect(result.stopReason).toBe("queued"); + expect(mockAuthenticatedClient.runTaskInCloud).toHaveBeenCalledWith( + "task-123", + "feature/codex-run", + expect.objectContaining({ + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "high", + resumeFromRunId: "run-123", + }), + ); + }); + it("sets session to error state on fatal error", async () => { const service = getSessionService(); const mockSession = createMockSession(); @@ -1168,6 +1289,7 @@ describe("SessionService", () => { }); mockTrpcAgent.prompt.mutate.mockResolvedValue({ stopReason: "end_turn" }); mockBuildAuthenticatedClient.mockReturnValue({ + ...mockAuthenticatedClient, createTaskRun: vi.fn().mockResolvedValue({ id: "new-run" }), appendTaskRunLog: vi.fn(), }); diff --git a/apps/code/src/renderer/features/sessions/service/service.ts b/apps/code/src/renderer/features/sessions/service/service.ts index c0bb1a8b9..c0d2b0f32 100644 --- a/apps/code/src/renderer/features/sessions/service/service.ts +++ b/apps/code/src/renderer/features/sessions/service/service.ts @@ -45,6 +45,7 @@ import { effortLevelSchema, isTerminalStatus, type Task, + type TaskRun, } from "@shared/types"; import { ANALYTICS_EVENTS } from "@shared/types/analytics"; import type { CloudRunSource, PrAuthorshipMode } from "@shared/types/cloud"; @@ -1403,6 +1404,8 @@ export class SessionService { previousStatus: session.cloudStatus, }); + const runtimeOptions = this.getCloudRuntimeOptions(session, previousRun); + // Create a new run WITH resume context — backend validates the previous run, // derives snapshot_external_id server-side, and passes everything as extra_state. // The agent will load conversation history and restore the sandbox snapshot. @@ -1410,6 +1413,9 @@ export class SessionService { session.taskId, previousBaseBranch, { + adapter: runtimeOptions.adapter, + model: runtimeOptions.model, + reasoningLevel: runtimeOptions.reasoningLevel, resumeFromRunId: session.taskRunId, pendingUserMessage: serializeCloudPrompt(blocks), prAuthorshipMode, @@ -2274,6 +2280,36 @@ export class SessionService { return { apiHost, projectId, client }; } + private getCloudRuntimeOptions( + session: AgentSession, + previousRun?: TaskRun, + ): { + adapter?: Adapter; + model?: string; + reasoningLevel?: string; + } { + const modelOption = getConfigOptionByCategory( + session.configOptions, + "model", + ); + const thoughtLevelOption = getConfigOptionByCategory( + session.configOptions, + "thought_level", + ); + + return { + adapter: session.adapter ?? previousRun?.runtime_adapter ?? undefined, + model: + typeof modelOption?.currentValue === "string" + ? modelOption.currentValue + : (previousRun?.model ?? undefined), + reasoningLevel: + typeof thoughtLevelOption?.currentValue === "string" + ? thoughtLevelOption.currentValue + : (previousRun?.reasoning_effort ?? undefined), + }; + } + private parseLogContent(content: string): { rawEntries: StoredLogEntry[]; sessionId?: string; diff --git a/apps/code/src/renderer/features/task-detail/hooks/usePreviewConfig.ts b/apps/code/src/renderer/features/task-detail/hooks/usePreviewConfig.ts index 8e206e314..3ffc25362 100644 --- a/apps/code/src/renderer/features/task-detail/hooks/usePreviewConfig.ts +++ b/apps/code/src/renderer/features/task-detail/hooks/usePreviewConfig.ts @@ -1,7 +1,7 @@ import type { SessionConfigOption } from "@agentclientprotocol/sdk"; import { useAuthStateValue } from "@features/auth/hooks/authQueries"; import { useSettingsStore } from "@features/settings/stores/settingsStore"; -import { getEffortOptions } from "@posthog/agent/adapters/claude/session/models"; +import { getReasoningEffortOptions } from "@posthog/agent/adapters/reasoning-effort"; import { trpcClient } from "@renderer/trpc/client"; import { getCloudUrlFromRegion } from "@shared/constants/oauth"; import { logger } from "@utils/logger"; @@ -116,50 +116,65 @@ export function usePreviewConfig( }; }, [adapter, apiHost]); - const setConfigOption = useCallback((configId: string, value: string) => { - setConfigOptions((prev) => { - let updated = prev.map((opt) => - opt.id === configId - ? ({ ...opt, currentValue: value } as SessionConfigOption) - : opt, - ); - - if (configId === "model") { - const effortOpts = getEffortOptions(value); - const existingIdx = updated.findIndex((o) => o.id === "effort"); - - if (effortOpts && existingIdx >= 0) { - const currentEffort = updated[existingIdx].currentValue; - const validEffort = effortOpts.some((e) => e.value === currentEffort) - ? currentEffort - : "high"; - updated[existingIdx] = { - ...updated[existingIdx], - currentValue: validEffort, - options: effortOpts, - } as SessionConfigOption; - } else if (effortOpts && existingIdx === -1) { - updated = [ - ...updated, - { - id: "effort", - name: "Effort", - type: "select", - currentValue: "high", + const setConfigOption = useCallback( + (configId: string, value: string) => { + setConfigOptions((prev) => { + let updated = prev.map((opt) => + opt.id === configId + ? ({ ...opt, currentValue: value } as SessionConfigOption) + : opt, + ); + + if (configId === "model") { + const effortOpts = getReasoningEffortOptions(adapter, value); + const existingIdx = updated.findIndex( + (o) => o.category === "thought_level", + ); + const effortOptionId = + existingIdx >= 0 + ? updated[existingIdx].id + : adapter === "codex" + ? "reasoning_effort" + : "effort"; + + if (effortOpts && existingIdx >= 0) { + const currentEffort = updated[existingIdx].currentValue; + const validEffort = effortOpts.some( + (e) => e.value === currentEffort, + ) + ? currentEffort + : "high"; + updated[existingIdx] = { + ...updated[existingIdx], + currentValue: validEffort, options: effortOpts, - category: "thought_level", - description: - "Controls how much effort Claude puts into its response", - } as SessionConfigOption, - ]; - } else if (!effortOpts && existingIdx >= 0) { - updated = updated.filter((o) => o.id !== "effort"); + } as SessionConfigOption; + } else if (effortOpts && existingIdx === -1) { + updated = [ + ...updated, + { + id: effortOptionId, + name: adapter === "codex" ? "Reasoning Level" : "Effort", + type: "select", + currentValue: "high", + options: effortOpts, + category: "thought_level", + description: + adapter === "codex" + ? "Controls how much reasoning effort the model uses" + : "Controls how much effort Claude puts into its response", + } as SessionConfigOption, + ]; + } else if (!effortOpts && existingIdx >= 0) { + updated = updated.filter((o) => o.category !== "thought_level"); + } } - } - return updated; - }); - }, []); + return updated; + }); + }, + [adapter], + ); const modeOption = getOptionByCategory(configOptions, "mode"); const modelOption = getOptionByCategory(configOptions, "model"); diff --git a/apps/code/src/renderer/sagas/task/task-creation.test.ts b/apps/code/src/renderer/sagas/task/task-creation.test.ts index 6fe85fc75..14526604f 100644 --- a/apps/code/src/renderer/sagas/task/task-creation.test.ts +++ b/apps/code/src/renderer/sagas/task/task-creation.test.ts @@ -140,6 +140,9 @@ describe("TaskCreationSaga", () => { repository: "posthog/posthog", workspaceMode: "cloud", branch: "release/remembered-branch", + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "high", }); expect(result.success).toBe(true); @@ -151,6 +154,9 @@ describe("TaskCreationSaga", () => { "task-123", "release/remembered-branch", { + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "high", pendingUserMessage: "Ship the fix", sandboxEnvironmentId: undefined, prAuthorshipMode: "bot", @@ -201,6 +207,9 @@ describe("TaskCreationSaga", () => { repository: "posthog/posthog", workspaceMode: "cloud", branch: "release/remembered-branch", + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "medium", }); expect(result.success).toBe(true); @@ -217,6 +226,9 @@ describe("TaskCreationSaga", () => { "task-123", "release/remembered-branch", expect.objectContaining({ + adapter: "codex", + model: "gpt-5.4", + reasoningLevel: "medium", pendingUserMessage: expect.stringContaining( "__twig_cloud_prompt_v1__:", ), diff --git a/apps/code/src/renderer/sagas/task/task-creation.ts b/apps/code/src/renderer/sagas/task/task-creation.ts index e12f14b08..ab3900f22 100644 --- a/apps/code/src/renderer/sagas/task/task-creation.ts +++ b/apps/code/src/renderer/sagas/task/task-creation.ts @@ -292,6 +292,9 @@ export class TaskCreationSaga extends Saga< } return this.deps.posthogClient.runTaskInCloud(task.id, branch, { + adapter: input.adapter, + model: input.model, + reasoningLevel: input.reasoningLevel, pendingUserMessage: initialCloudPrompt ? serializeCloudPrompt(initialCloudPrompt) : undefined, diff --git a/apps/code/src/shared/types.ts b/apps/code/src/shared/types.ts index ef98e20e9..726329f6d 100644 --- a/apps/code/src/shared/types.ts +++ b/apps/code/src/shared/types.ts @@ -70,6 +70,10 @@ export interface TaskRun { task: string; // Task ID team: number; branch: string | null; + runtime_adapter?: "claude" | "codex" | null; + provider?: "anthropic" | "openai" | null; + model?: string | null; + reasoning_effort?: "low" | "medium" | "high" | "max" | null; stage?: string | null; // Current stage (e.g., 'research', 'plan', 'build') environment?: "local" | "cloud"; status: TaskRunStatus; diff --git a/packages/agent/package.json b/packages/agent/package.json index 07ef18fbf..1512ee90a 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -48,6 +48,10 @@ "types": "./dist/adapters/claude/session/models.d.ts", "import": "./dist/adapters/claude/session/models.js" }, + "./adapters/reasoning-effort": { + "types": "./dist/adapters/reasoning-effort.d.ts", + "import": "./dist/adapters/reasoning-effort.js" + }, "./execution-mode": { "types": "./dist/execution-mode.d.ts", "import": "./dist/execution-mode.js" diff --git a/packages/agent/src/adapters/codex/models.ts b/packages/agent/src/adapters/codex/models.ts new file mode 100644 index 000000000..ee5fab47d --- /dev/null +++ b/packages/agent/src/adapters/codex/models.ts @@ -0,0 +1,16 @@ +interface ReasoningEffortOption { + value: string; + name: string; +} + +const CODEX_REASONING_EFFORT_OPTIONS: ReasoningEffortOption[] = [ + { value: "low", name: "Low" }, + { value: "medium", name: "Medium" }, + { value: "high", name: "High" }, +]; + +export function getReasoningEffortOptions( + _modelId: string, +): ReasoningEffortOption[] { + return CODEX_REASONING_EFFORT_OPTIONS; +} diff --git a/packages/agent/src/adapters/codex/spawn.ts b/packages/agent/src/adapters/codex/spawn.ts index fd4777572..6f3fbd695 100644 --- a/packages/agent/src/adapters/codex/spawn.ts +++ b/packages/agent/src/adapters/codex/spawn.ts @@ -11,6 +11,7 @@ export interface CodexProcessOptions { apiBaseUrl?: string; apiKey?: string; model?: string; + reasoningEffort?: string; instructions?: string; binaryPath?: string; logger?: Logger; @@ -52,6 +53,10 @@ function buildConfigArgs(options: CodexProcessOptions): string[] { args.push("-c", `model="${options.model}"`); } + if (options.reasoningEffort) { + args.push("-c", `model_reasoning_effort="${options.reasoningEffort}"`); + } + if (options.instructions) { const escaped = options.instructions .replace(/\\/g, "\\\\") diff --git a/packages/agent/src/adapters/reasoning-effort.ts b/packages/agent/src/adapters/reasoning-effort.ts new file mode 100644 index 000000000..29f0798ad --- /dev/null +++ b/packages/agent/src/adapters/reasoning-effort.ts @@ -0,0 +1,35 @@ +import { getEffortOptions as getClaudeEffortOptions } from "./claude/session/models"; +import { getReasoningEffortOptions as getCodexReasoningEffortOptions } from "./codex/models"; + +export type RuntimeAdapter = "claude" | "codex"; + +export type SupportedReasoningEffort = "low" | "medium" | "high" | "max"; + +export interface ReasoningEffortOption { + value: SupportedReasoningEffort; + name: string; +} + +export function getReasoningEffortOptions( + adapter: RuntimeAdapter, + modelId: string, +): ReasoningEffortOption[] | null { + const options = + adapter === "codex" + ? getCodexReasoningEffortOptions(modelId) + : getClaudeEffortOptions(modelId); + + return options as ReasoningEffortOption[] | null; +} + +export function isSupportedReasoningEffort( + adapter: RuntimeAdapter, + modelId: string, + value: string, +): value is SupportedReasoningEffort { + return ( + getReasoningEffortOptions(adapter, modelId)?.some( + (option) => option.value === value, + ) ?? false + ); +} diff --git a/packages/agent/src/server/agent-server.test.ts b/packages/agent/src/server/agent-server.test.ts index 3ba8943d7..d18bbd1d9 100644 --- a/packages/agent/src/server/agent-server.test.ts +++ b/packages/agent/src/server/agent-server.test.ts @@ -20,6 +20,9 @@ interface TestableServer { detectAndAttachPrUrl(payload: unknown, update: unknown): void; detectedPrUrl: string | null; buildCloudSystemPrompt(prUrl?: string | null): string; + buildSessionSystemPrompt(prUrl?: string | null): string | { append: string }; + buildCodexInstructions(systemPrompt: string | { append: string }): string; + getRuntimeAdapter(): "claude" | "codex"; } // The Claude Agent SDK has an internal readMessages() loop that rejects with @@ -111,14 +114,16 @@ JwIDAQAB describe("AgentServer HTTP Mode", () => { let repo: TestRepo; - let server: AgentServer; + let server: AgentServer | undefined; let mswServer: SetupServerApi; let appendLogCalls: unknown[][]; - const port = 3099; + let port: number; beforeEach(async () => { repo = await createTestRepo("agent-server-http"); appendLogCalls = []; + // Use a unique port per test to avoid reuse when a previous server stops late. + port = 3099 + Math.floor(Math.random() * 1000); mswServer = setupServer( ...createPostHogHandlers({ baseUrl: "http://localhost:8000", @@ -131,12 +136,15 @@ describe("AgentServer HTTP Mode", () => { afterEach(async () => { if (server) { await server.stop(); + server = undefined; } mswServer.close(); await repo.cleanup(); }); - const createServer = () => { + const createServer = ( + overrides: Partial[0]> = {}, + ) => { server = new AgentServer({ port, jwtPublicKey: TEST_PUBLIC_KEY, @@ -147,6 +155,7 @@ describe("AgentServer HTTP Mode", () => { mode: "interactive", taskId: "test-task-id", runId: "test-run-id", + ...overrides, }); return server; }; @@ -175,7 +184,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(200); expect(body).toEqual({ status: "ok", hasSession: true }); - }); + }, 30000); }); describe("GET /events", () => { @@ -187,7 +196,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(401); expect(body.error).toBe("Missing authorization header"); - }); + }, 20000); it("returns 401 with invalid token", async () => { await createServer().start(); @@ -199,7 +208,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(401); expect(body.code).toBe("invalid_signature"); - }); + }, 20000); it("accepts valid JWT and returns SSE stream", async () => { await createServer().start(); @@ -211,7 +220,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(200); expect(response.headers.get("content-type")).toBe("text/event-stream"); - }); + }, 20000); }); describe("POST /command", () => { @@ -229,7 +238,7 @@ describe("AgentServer HTTP Mode", () => { }); expect(response.status).toBe(401); - }); + }, 20000); it("returns 400 when run_id does not match active session", async () => { await createServer().start(); @@ -251,7 +260,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(400); const body = await response.json(); expect(body.error).toBe("No active session for this run"); - }); + }, 20000); it("accepts structured user_message content", async () => { await createServer().start(); @@ -275,7 +284,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(400); const body = await response.json(); expect(body.error).toBe("No active session for this run"); - }); + }, 20000); }); describe("404 handling", () => { @@ -287,7 +296,7 @@ describe("AgentServer HTTP Mode", () => { expect(response.status).toBe(404); expect(body.error).toBe("Not found"); - }); + }, 20000); }); describe("getInitialPromptOverride", () => { @@ -334,6 +343,48 @@ describe("AgentServer HTTP Mode", () => { }); }); + describe("runtime adapter selection", () => { + it("defaults to claude when no runtime adapter is configured", () => { + const s = createServer(); + + expect((s as unknown as TestableServer).getRuntimeAdapter()).toBe( + "claude", + ); + }); + + it("uses codex when the runtime adapter is configured", () => { + const s = createServer({ runtimeAdapter: "codex" }); + + expect((s as unknown as TestableServer).getRuntimeAdapter()).toBe( + "codex", + ); + }); + + it("flattens append-style prompts into plain codex instructions", () => { + const s = createServer({ + claudeCode: { + systemPrompt: { + type: "preset", + preset: "claude_code", + append: "User codex instructions", + }, + }, + }); + + const sessionPrompt = ( + s as unknown as TestableServer + ).buildSessionSystemPrompt("https://github.com/PostHog/code/pull/1"); + + expect(typeof sessionPrompt).toBe("object"); + expect( + (s as unknown as TestableServer).buildCodexInstructions(sessionPrompt), + ).toContain("User codex instructions"); + expect( + (s as unknown as TestableServer).buildCodexInstructions(sessionPrompt), + ).toContain("Cloud Task Execution"); + }); + }); + describe("detectedPrUrl tracking", () => { it("stores PR URL when detectAndAttachPrUrl finds a match", () => { const s = createServer(); diff --git a/packages/agent/src/server/agent-server.ts b/packages/agent/src/server/agent-server.ts index cb6f1ed29..036d99da8 100644 --- a/packages/agent/src/server/agent-server.ts +++ b/packages/agent/src/server/agent-server.ts @@ -14,6 +14,7 @@ import { type InProcessAcpConnection, } from "../adapters/acp-connection"; import { selectRecentTurns } from "../adapters/claude/session/jsonl-hydration"; +import { DEFAULT_CODEX_MODEL } from "../gateway-models"; import { PostHogAPIClient } from "../posthog-api"; import { type ConversationTurn, @@ -224,6 +225,10 @@ export class AgentServer { this.app = this.createApp(); } + private getRuntimeAdapter(): "claude" | "codex" { + return this.config.runtimeAdapter ?? "claude"; + } + private getEffectiveMode(payload: JwtPayload): AgentMode { return payload.mode ?? this.config.mode; } @@ -638,6 +643,37 @@ export class AgentServer { this.configureEnvironment(); + let preTaskRun: TaskRun | null = null; + try { + preTaskRun = await this.posthogAPI.getTaskRun( + payload.task_id, + payload.run_id, + ); + } catch { + this.logger.warn("Failed to fetch task run for session context", { + taskId: payload.task_id, + runId: payload.run_id, + }); + } + + const prUrl = + typeof (preTaskRun?.state as Record) + ?.slack_notified_pr_url === "string" + ? ((preTaskRun?.state as Record) + .slack_notified_pr_url as string) + : null; + + if (prUrl) { + this.detectedPrUrl = prUrl; + } + + const runtimeAdapter = this.getRuntimeAdapter(); + const sessionSystemPrompt = this.buildSessionSystemPrompt(prUrl); + const codexInstructions = + runtimeAdapter === "codex" + ? this.buildCodexInstructions(sessionSystemPrompt) + : undefined; + const posthogAPI = new PostHogAPIClient({ apiUrl: this.config.apiUrl, projectId: this.config.projectId, @@ -661,10 +697,23 @@ export class AgentServer { }); const acpConnection = createAcpConnection({ + adapter: runtimeAdapter, taskRunId: payload.run_id, taskId: payload.task_id, deviceType: deviceInfo.type, logWriter, + logger: this.logger, + codexOptions: + runtimeAdapter === "codex" + ? { + cwd: this.config.repositoryPath ?? "/tmp/workspace", + apiBaseUrl: process.env.OPENAI_BASE_URL, + apiKey: this.config.apiKey, + model: this.config.model ?? DEFAULT_CODEX_MODEL, + reasoningEffort: this.config.reasoningEffort, + instructions: codexInstructions, + } + : undefined, }); // Tap both streams to broadcast all ACP messages via SSE (mimics local transport) @@ -700,42 +749,26 @@ export class AgentServer { clientCapabilities: {}, }); - let preTaskRun: TaskRun | null = null; - try { - preTaskRun = await this.posthogAPI.getTaskRun( - payload.task_id, - payload.run_id, - ); - } catch { - this.logger.warn("Failed to fetch task run for session context", { - taskId: payload.task_id, - runId: payload.run_id, - }); - } - - const prUrl = - typeof (preTaskRun?.state as Record) - ?.slack_notified_pr_url === "string" - ? ((preTaskRun?.state as Record) - .slack_notified_pr_url as string) - : null; - - if (prUrl) { - this.detectedPrUrl = prUrl; - } - const sessionResponse = await clientConnection.newSession({ cwd: this.config.repositoryPath ?? "/tmp/workspace", mcpServers: this.config.mcpServers ?? [], _meta: { sessionId: payload.run_id, taskRunId: payload.run_id, - systemPrompt: this.buildSessionSystemPrompt(prUrl), + systemPrompt: sessionSystemPrompt, + ...(this.config.model && { model: this.config.model }), allowedDomains: this.config.allowedDomains, - ...(this.config.claudeCode?.plugins?.length && { + ...((this.config.claudeCode?.plugins?.length || + (runtimeAdapter === "claude" && this.config.reasoningEffort)) && { claudeCode: { options: { - plugins: this.config.claudeCode.plugins, + ...(this.config.claudeCode?.plugins?.length && { + plugins: this.config.claudeCode.plugins, + }), + ...(runtimeAdapter === "claude" && + this.config.reasoningEffort && { + effort: this.config.reasoningEffort, + }), }, }, }), @@ -1104,6 +1137,14 @@ export class AgentServer { return { append: cloudAppend }; } + private buildCodexInstructions( + systemPrompt: string | { append: string }, + ): string { + return typeof systemPrompt === "string" + ? systemPrompt + : systemPrompt.append; + } + private buildCloudSystemPrompt(prUrl?: string | null): string { const taskId = this.config.taskId; const attributionInstructions = ` diff --git a/packages/agent/src/server/bin.ts b/packages/agent/src/server/bin.ts index 28f1a840a..c13bda259 100644 --- a/packages/agent/src/server/bin.ts +++ b/packages/agent/src/server/bin.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import { Command } from "commander"; import { z } from "zod/v4"; +import { isSupportedReasoningEffort } from "../adapters/reasoning-effort"; import { AgentServer } from "./agent-server"; import { claudeCodeConfigSchema, mcpServersSchema } from "./schemas"; @@ -26,6 +27,12 @@ const envSchema = z.object({ }) .regex(/^\d+$/, "POSTHOG_PROJECT_ID must be a numeric string") .transform((val) => parseInt(val, 10)), + POSTHOG_CODE_RUNTIME_ADAPTER: z.enum(["claude", "codex"]).optional(), + POSTHOG_CODE_PROVIDER: z.enum(["anthropic", "openai"]).optional(), + POSTHOG_CODE_MODEL: z.string().optional(), + POSTHOG_CODE_REASONING_EFFORT: z + .enum(["low", "medium", "high", "max"]) + .optional(), }); const program = new Command(); @@ -112,6 +119,21 @@ program .filter(Boolean) : undefined; + if ( + env.POSTHOG_CODE_RUNTIME_ADAPTER && + env.POSTHOG_CODE_MODEL && + env.POSTHOG_CODE_REASONING_EFFORT && + !isSupportedReasoningEffort( + env.POSTHOG_CODE_RUNTIME_ADAPTER, + env.POSTHOG_CODE_MODEL, + env.POSTHOG_CODE_REASONING_EFFORT, + ) + ) { + program.error( + `POSTHOG_CODE_REASONING_EFFORT '${env.POSTHOG_CODE_REASONING_EFFORT}' is not supported for ${env.POSTHOG_CODE_RUNTIME_ADAPTER} model '${env.POSTHOG_CODE_MODEL}'.`, + ); + } + const server = new AgentServer({ port: parseInt(options.port, 10), jwtPublicKey: env.JWT_PUBLIC_KEY, @@ -126,6 +148,10 @@ program baseBranch: options.baseBranch, claudeCode, allowedDomains, + runtimeAdapter: env.POSTHOG_CODE_RUNTIME_ADAPTER, + provider: env.POSTHOG_CODE_PROVIDER, + model: env.POSTHOG_CODE_MODEL, + reasoningEffort: env.POSTHOG_CODE_REASONING_EFFORT, }); process.on("SIGINT", async () => { diff --git a/packages/agent/src/server/types.ts b/packages/agent/src/server/types.ts index 587d5cb6f..3019aa5f7 100644 --- a/packages/agent/src/server/types.ts +++ b/packages/agent/src/server/types.ts @@ -23,4 +23,8 @@ export interface AgentServerConfig { baseBranch?: string; claudeCode?: ClaudeCodeConfig; allowedDomains?: string[]; + runtimeAdapter?: "claude" | "codex"; + provider?: "anthropic" | "openai"; + model?: string; + reasoningEffort?: "low" | "medium" | "high" | "max"; } diff --git a/packages/agent/src/test/mocks/msw-handlers.ts b/packages/agent/src/test/mocks/msw-handlers.ts index 076f339f2..725a2f430 100644 --- a/packages/agent/src/test/mocks/msw-handlers.ts +++ b/packages/agent/src/test/mocks/msw-handlers.ts @@ -20,6 +20,30 @@ export function createPostHogHandlers(options: PostHogHandlersOptions = {}) { } = options; return [ + // GET local LLM gateway models - session initialization fetches these in the + // background for command/model metadata. + http.get("http://localhost:3308/:product/v1/models", () => { + return HttpResponse.json({ + object: "list", + data: [ + { + id: "claude-opus-4-6", + owned_by: "anthropic", + context_window: 200000, + supports_streaming: true, + supports_vision: true, + }, + { + id: "gpt-5.4", + owned_by: "openai", + context_window: 200000, + supports_streaming: true, + supports_vision: true, + }, + ], + }); + }), + // POST /append_log/ - Agent log entries http.post( `${baseUrl}/api/projects/:projectId/tasks/:taskId/runs/:runId/append_log/`, diff --git a/packages/agent/tsup.config.ts b/packages/agent/tsup.config.ts index 9af0bc8ff..b11d7453d 100644 --- a/packages/agent/tsup.config.ts +++ b/packages/agent/tsup.config.ts @@ -82,6 +82,8 @@ export default defineConfig([ "src/adapters/claude/conversion/tool-use-to-acp.ts", "src/adapters/claude/session/jsonl-hydration.ts", "src/adapters/claude/session/models.ts", + "src/adapters/codex/models.ts", + "src/adapters/reasoning-effort.ts", "src/execution-mode.ts", "src/server/agent-server.ts", ],