@oqtopus-team/qdash-client 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { g as getQDashAPI, Q as QDashConfig, T as TransportOptions } from './api-C-gdTkKg.js';
2
- export { A as AddProjectMemberAdminResult, a as AdminDeleteProjectResult, b as AnalyzeCopilotResult, c as ApplyAgentCandidateCommitResult, d as ApproveIssueKnowledgeResult, e as AssignChipToCooldownResult, B as BulkImportUsersResult, C as CancelExecutionResult, f as ChangePasswordResult, h as CloseForumPostResult, i as CloseIssueResult, j as CommitAgentActionCandidateResult, k as CommitAgentCampaignCandidatesResult, l as CompareExecutionsResult, m as CompareSeedValuesResult, n as CreateAgentSessionResult, o as CreateChipResult, p as CreateCooldownResult, q as CreateCooldownWiringCheckpointResult, r as CreateCopilotChatSessionResult, s as CreateCouplingNoteCommentResult, t as CreateCryostatResult, u as CreateForumCategoryResult, v as CreateForumPostResult, w as CreateIssueResult, x as CreateProjectForUserResult, y as CreateProjectResult, z as CreateQubitNoteCommentResult, D as DeleteChipNoteResult, E as DeleteChipResult, F as DeleteCooldownResult, G as DeleteCopilotChatSessionResult, H as DeleteCouplingMetricNoteResult, I as DeleteCouplingNoteCommentResult, J as DeleteCouplingNoteResult, K as DeleteCryostatResult, L as DeleteFlowResult, M as DeleteFlowScheduleResult, N as DeleteForumCategoryResult, O as DeleteForumPostResult, P as DeleteIssueKnowledgeResult, R as DeleteIssueResult, S as DeleteProjectResult, U as DeleteQubitMetricNoteResult, V as DeleteQubitNoteCommentResult, W as DeleteQubitNoteResult, X as DeleteTaskNoteResult, Y as DeleteUserResult, Z as DownloadFiguresAsZipResult, _ as DownloadFileResult, $ as DownloadMetricsPdfResult, a0 as DownloadZipFileResult, a1 as EvaluateAgentCandidateGateResult, a2 as ExecuteAgentActionResult, a3 as ExecuteFlowResult, a4 as ExtractIssueKnowledgeResult, a5 as GetAgentActionResult, a6 as GetAgentCampaignCommitResult, a7 as GetAgentCandidateCommitResult, a8 as GetAgentSessionResult, a9 as GetAvailableSeedParametersResult, aa as GetBackendConfigResult, ab as GetCalibrationNoteResult, ac as GetChipCouplingResult, ad as GetChipDatesResult, ae as GetChipDeletionImpactResult, af as GetChipMetricHeatmapResult, ag as GetChipMetricsResult, ah as GetChipMetricsSummaryResult, ai as GetChipMuxResult, aj as GetChipNoteResult, ak as GetChipNotesSummaryResult, al as GetChipQubitResult, am as GetChipResult, an as GetConfigAllResult, ao as GetCooldownResult, ap as GetCopilotChatSessionResult, aq as GetCopilotConfigResult, ar as GetCouplingMetricHistoryResult, as as GetCouplingTaskHistoryResult, at as GetCryostatResult, au as GetCurrentUserResult, av as GetDashboardAiInsightsResult, aw as GetDegradationTrendsResult, ax as GetDeviceTopologyPlotResult, ay as GetDeviceTopologyResult, az as GetExecutionLockStatusResult, aA as GetExecutionResult, aB as GetFigureByPathResult, aC as GetFileContentResult, aD as GetFileTreeResult, aE as GetFlowHelperFileResult, aF as GetFlowResult, aG as GetFlowTemplateResult, aH as GetForumPostRepliesResult, aI as GetForumPostResult, aJ as GetGitStatusResult, aK as GetHistoricalCouplingTaskResultsResult, aL as GetHistoricalQubitTaskResultsResult, aM as GetIssueKnowledgeResult, aN as GetIssueRepliesResult, aO as GetIssueResult, aP as GetLatestCouplingTaskResultsResult, aQ as GetLatestQubitTaskResultsResult, aR as GetManualEditsResult, aS as GetMetricsConfigResult, aT as GetParameterHistoryResult, aU as GetProjectResult, aV as GetProvenanceEntityResult, aW as GetProvenanceImpactResult, aX as GetProvenanceLineageResult, aY as GetProvenanceStatsResult, aZ as GetQubitMetricHistoryResult, a_ as GetQubitTaskHistoryResult, a$ as GetRecalibrationRecommendationsResult, b0 as GetRecentChangesResult, b1 as GetRecentExecutionsResult, b2 as GetSettingsResult, b3 as GetTaskFileContentResult, b4 as GetTaskFileSettingsResult, b5 as GetTaskFileTreeResult, b6 as GetTaskKnowledgeMarkdownResult, b7 as GetTaskKnowledgeResult, b8 as GetTaskNoteResult, b9 as GetTaskResultAiReviewRunResult, ba as GetTaskResultIssuesResult, bb as GetTaskResultResult, bc as GetTimeseriesTaskResultsResult, bd as GetTopologyByIdResult, be as GetUnreadNotificationCountResult, bf as GetUserDetailsResult, bg as GitPullConfigResult, bh as GitPushConfigResult, bi as ImportSeedParametersResult, bj as InviteProjectMemberResult, bk as ListAgentActionCandidatesResult, bl as ListAgentActionsResult, bm as ListAllFlowSchedulesResult, bn as ListAllProjectsResult, bo as ListAllUsersResult, bp as ListBackendsResult, bq as ListChipCouplingsResult, br as ListChipMuxesResult, bs as ListChipNoteEventsResult, bt as ListChipQubitsResult, bu as ListChipsResult, bv as ListCooldownWiringEventsResult, bw as ListCooldownsResult, bx as ListCopilotChatSessionsResult, by as ListCryostatsResult, bz as ListExecutionsResult, bA as ListFlowHelperFilesResult, bB as ListFlowSchedulesResult, bC as ListFlowTemplatesResult, bD as ListFlowsResult, bE as ListForumCategoriesResult, bF as ListForumPostsResult, bG as ListIssueKnowledgeResult, bH as ListIssuesResult, bI as ListNotificationsResult, bJ as ListProjectMembersAdminResult, bK as ListProjectMembersResult, bL as ListProjectsResult, bM as ListTagsResult, bN as ListTargetNoteEventsResult, bO as ListTaskFileBackendsResult, bP as ListTaskInfoResult, bQ as ListTaskKnowledgeResult, bR as ListTaskResultAiReviewRunsResult, bS as ListTaskResultAiReviewsResult, bT as ListTaskResultsResult, bU as ListTasksResult, bV as ListTopologiesResult, bW as LoginResult, bX as LogoutResult, bY as MarkAllNotificationsReadResult, bZ as MarkNotificationReadResult, b_ as QDashConfigOptions, b$ as QDashRetryConfig, c0 as ReExecuteFromSnapshotResult, c1 as ReExecuteTaskResultResult, c2 as ReanalyzeQubitSpectroscopyResult, c3 as ReanalyzeResonatorSpectroscopyResult, c4 as RegisterUserResult, c5 as RejectIssueKnowledgeResult, c6 as ReloadConfigCachesResult, c7 as RemoveProjectMemberAdminResult, c8 as RemoveProjectMemberResult, c9 as ReopenForumPostResult, ca as ReopenIssueResult, cb as RequestBulkAiReviewResult, cc as ResetPasswordResult, cd as RunCodexFlowAgentResult, ce as SaveFileContentResult, cf as SaveFlowResult, cg as SaveTaskFileContentResult, ch as ScheduleFlowResult, ci as SearchNoteEventsResult, cj as SetTaskResultExcludedResult, ck as SubmitAgentActionResult, cl as TransferProjectOwnershipResult, cm as UnassignChipFromCooldownResult, cn as UpdateCalibrationParametersResult, co as UpdateChipResult, cp as UpdateCooldownResult, cq as UpdateCopilotChatSessionResult, cr as UpdateCouplingNoteCommentResult, cs as UpdateCryostatResult, ct as UpdateCurrentUserProfileResult, cu as UpdateFlowScheduleResult, cv as UpdateForumCategoryResult, cw as UpdateForumPostResult, cx as UpdateIssueKnowledgeResult, cy as UpdateIssueResult, cz as UpdateProjectMemberResult, cA as UpdateProjectResult, cB as UpdateQubitNoteCommentResult, cC as UpdateUserSettingsResult, cD as UpsertChipNoteResult, cE as UpsertCouplingMetricNoteResult, cF as UpsertCouplingNoteResult, cG as UpsertQubitMetricNoteResult, cH as UpsertQubitNoteResult, cI as UpsertTaskNoteResult, cJ as ValidateFileContentResult, cK as defaultConfigPath } from './api-C-gdTkKg.js';
3
- import { A as AgentSessionPolicy, L as ListChipsResponse, C as ChipResponse, a as ChipMetricsResponse, b as ListQubitsResponse, Q as QubitResponse, c as ListCouplingsResponse, d as CouplingResponse, T as TimeSeriesData, e as TaskResultListResponse, f as TaskResultResponse, g as ListTaskResponse, h as ListTaskKnowledgeResponse, i as TaskKnowledgeResponse, j as QdashApiSchemasProjectProjectListResponse, P as ProjectResponse, F as FileTreeNode, k as ListFlowsResponse, G as GetFlowResponse, l as FlowTemplate, m as FlowTemplateWithCode, S as SaveFlowRequest, n as SaveFlowResponse, E as ExecuteFlowResponse, o as ListExecutionsResponse, p as ExecutionResponseDetail, q as AgentSessionResponse, r as CandidateGateResponse, s as AgentActionType, t as AgentActionResponse, u as AgentCandidateResponse, v as AgentCandidateCommitResponse, w as AgentCampaignCandidateReference, x as AgentCampaignCommitResponse, y as ListForumPostsResponse, z as ForumPostCreate, B as ForumPostResponse, D as ForumPostUpdate, H as LineageResponse, I as ImpactResponse, J as ProvenanceStatsResponse } from './validateFileRequest-Chit-Qfu.js';
4
- export { K as ActivityResponse, M as ActivityResponseEndedAt, N as ActivityResponseStartedAt, O as AddMemberRequest, R as AdminDeleteProject200, U as AgentActionDecision, V as AgentActionResponseExecutionId, W as AgentActionResponseOperationId, X as AgentActionResponseParameterOverrides, Y as AgentActionResponseTaskName, Z as AgentCampaignCommitResponseAfterSnapshot, _ as AgentCampaignCommitResponseBeforeSnapshot, $ as AgentCampaignCommitResponseCommittedAt, a0 as AgentCandidateCommitResponseAfterSnapshot, a1 as AgentCandidateCommitResponseAfterSnapshotAnyOf, a2 as AgentCandidateCommitResponseBackendAppliedAt, a3 as AgentCandidateCommitResponseBackendBaseGitCommit, a4 as AgentCandidateCommitResponseBackendGitCommit, a5 as AgentCandidateCommitResponseBackendOperationId, a6 as AgentCandidateCommitResponseBackendRequestedAt, a7 as AgentCandidateCommitResponseBeforeSnapshot, a8 as AgentCandidateCommitResponseBeforeSnapshotAnyOf, a9 as AgentCandidateCommitResponseCommittedAt, aa as AgentCandidateResponseMaximum, ab as AgentCandidateResponseMinimum, ac as AgentCandidateResponseQualityMetrics, ad as AgentSessionPolicyAllowedOverrides, ae as AgentSessionPolicyQualityGates, af as AgentSessionStatus, ag as AiReviewListItem, ah as AiReviewListItemCompletedAt, ai as AiReviewListItemNoteUpdatedAt, aj as AiReviewListItemRequestedAt, ak as AiReviewListItemStartAt, al as AiReviewListResponse, am as AiReviewListResponseDecisionCounts, an as AiReviewListResponseStatusCounts, ao as AiReviewModel, ap as AiReviewModelCompletedAt, aq as AiReviewModelRequestedAt, ar as AiReviewRunDetailResponse, as as AiReviewRunListResponse, at as AiReviewRunSummary, au as AiReviewRunSummaryCompletedAt, av as AiReviewRunSummaryDecisionCounts, aw as AiReviewRunSummaryRequestedAt, ax as AiReviewRunSummaryStatusCounts, ay as AllConfigResponse, az as AllConfigResponseCopilot, aA as AllConfigResponseMetrics, aB as AnalysisResponse, aC as AnalyzeRequest, aD as AnalyzeRequestConversationHistoryItem, aE as AnalyzeRequestImageBase64, aF as AnalyzeRequestModelOverride, aG as ApplyAgentCandidateRequest, aH as BackendConfigResponse, aI as BackendConfigResponseBackends, aJ as BackendConfigResponseCategories, aK as BackendDefinitionResponse, aL as BackendResponseModel, aM as BodyBulkImportUsers, aN as BodyLogin, aO as BodyReExecuteTaskResult, aP as BodyReExecuteTaskResultParameterOverrides, aQ as BodyReExecuteTaskResultParameterOverridesAnyOf, aR as BulkAiReviewRequest, aS as BulkAiReviewRequestDate, aT as BulkAiReviewRequestModelOverride, aU as BulkAiReviewRequestTaskIds, aV as BulkAiReviewResponse, aW as BulkAiReviewResponseDate, aX as BulkAiReviewResponseSkippedReason, aY as BulkUserImportResponse, aZ as BulkUserImportResult, a_ as BulkUserImportResultDisplayName, a$ as BulkUserImportResultInitialPassword, b0 as BulkUserImportResultMessage, b1 as BulkUserImportResultOrganization, b2 as CalibrationNoteResponse, b3 as CalibrationNoteResponseNote, b4 as CalibrationNoteResponseTimestamp, b5 as CancelExecutionResponse, b6 as CandidateGateResponseMaximum, b7 as CandidateGateResponseMinimum, b8 as ChangePassword200, b9 as ChipDatesResponse, ba as ChipDeletionImpactResponse, bb as ChipMetricsResponseCouplingMetrics, bc as ChipMetricsResponseEndAt, bd as ChipMetricsResponseQubitMetrics, be as ChipMetricsResponseStartAt, bf as ChipMetricsResponseWithinHours, bg as ChipNotesSummaryResponse, bh as ChipResponseActivityStatus, bi as ChipResponseCurrentCooldownId, bj as ChipResponseInstalledAt, bk as ChipResponseTopologyId, bl as CommitAgentCampaignRequest, bm as CommitAgentCandidateRequest, bn as CompareExecutionsParams, bo as CompareSeedValues200, bp as CompareSeedValuesParams, bq as Condition, br as ConditionCrDirection, bs as ConfigReloadResponse, bt as CooldownCreateRequest, bu as CooldownCreateRequestEndedAt, bv as CooldownResponse, bw as CooldownResponseEndedAt, bx as CooldownResponseWiringBlocksItem, by as CooldownUpdateRequest, bz as CooldownUpdateRequestDescription, bA as CooldownUpdateRequestEndedAt, bB as CooldownUpdateRequestStartedAt, bC as CooldownUpdateRequestWiringBlocks, bD as CooldownUpdateRequestWiringBlocksAnyOfItem, bE as CooldownUpdateRequestWiringInfo, bF as CooldownWiringCheckpointRequest, bG as CooldownWiringEventResponse, bH as CooldownWiringEventResponseActorUserId, bI as CopilotChatMessageSchema, bJ as CopilotChatMessageSchemaAttachedImage, bK as CopilotChatMessageSchemaCreatedAt, bL as CopilotChatSessionResponse, bM as CopilotChatSessionResponseContext, bN as CopilotChatSessionResponseContextAnyOf, bO as CopilotChatSessionSummary, bP as CopilotChatSessionSummaryContext, bQ as CopilotChatSessionSummaryContextAnyOf, bR as Coupling, bS as CouplingGateDuration, bT as CouplingResponseData, bU as CouplingResponseMetricNotes, bV as CreateAgentSessionRequest, bW as CreateChipRequest, bX as CreateChipRequestTopologyId, bY as CreateCopilotChatSessionRequest, bZ as CreateCopilotChatSessionRequestContext, b_ as CreateCopilotChatSessionRequestContextAnyOf, b$ as CreateCouplingNoteCommentParams, c0 as CreateQubitNoteCommentParams, c1 as CryostatCreateRequest, c2 as CryostatCreateRequestCommissionedAt, c3 as CryostatResponse, c4 as CryostatResponseCommissionedAt, c5 as CryostatResponseDecommissionedAt, c6 as CryostatUpdateRequest, c7 as CryostatUpdateRequestCommissionedAt, c8 as CryostatUpdateRequestDecommissionedAt, c9 as CryostatUpdateRequestLocation, ca as CryostatUpdateRequestManufacturer, cb as CryostatUpdateRequestModel, cc as CryostatUpdateRequestName, cd as CryostatUpdateRequestStatus, ce as DashboardAiInsightsResponse, cf as DashboardInsight, cg as DashboardInsightCategory, ch as DashboardInsightConfidence, ci as DashboardInsightSeverity, cj as DashboardInsightSuppressed, ck as DegradationTrendResponse, cl as DegradationTrendResponseCurrentValue, cm as DegradationTrendResponseValidFrom, cn as DegradationTrendsResponse, co as DeleteChipNoteParams, cp as DeleteChipParams, cq as DeleteCopilotChatSession200, cr as DeleteCouplingMetricNoteParams, cs as DeleteCouplingNoteCommentParams, ct as DeleteCouplingNoteParams, cu as DeleteFlow200, cv as DeleteQubitMetricNoteParams, cw as DeleteQubitNoteCommentParams, cx as DeleteQubitNoteParams, cy as DeleteScheduleResponse, cz as DeleteUser200, cA as Device, cB as DeviceCalibratedAt, cC as DeviceTopologyRequest, cD as DownloadFiguresAsZipRequest, cE as DownloadFileParams, cF as DownloadMetricsPdfParams, cG as DownloadMetricsPdfSelectionMode, cH as DownloadZipFileParams, cI as EvaluateCandidateGateRequest, cJ as ExecuteAgentActionRequest, cK as ExecuteFlowRequest, cL as ExecuteFlowRequestParameters, cM as ExecutionComparisonResponse, cN as ExecutionIdResponse, cO as ExecutionIdResponseValidFrom, cP as ExecutionLockStatusResponse, cQ as ExecutionResponseDetailElapsedTime, cR as ExecutionResponseDetailEndAt, cS as ExecutionResponseDetailNote, cT as ExecutionResponseDetailStartAt, cU as ExecutionResponseDetailUserId, cV as ExecutionResponseSummary, cW as ExecutionResponseSummaryElapsedTime, cX as ExecutionResponseSummaryEndAt, cY as ExecutionResponseSummaryNote, cZ as ExecutionResponseSummaryStartAt, c_ as ExecutionResponseSummaryUserId, c$ as ExpectedResultResponse, d0 as FailureModeResponse, d1 as FidelityCondition, d2 as FidelityConditionMetric, d3 as FileNodeType, d4 as FileTreeNodeChildren, d5 as FlowScheduleSummary, d6 as FlowScheduleSummaryCron, d7 as FlowScheduleSummaryNextRun, d8 as FlowSummary, d9 as ForumCategoryCreate, da as ForumCategoryCreateKey, db as ForumCategoryCreateSortOrder, dc as ForumCategoryResponse, dd as ForumCategoryUpdate, de as ForumCategoryUpdateColor, df as ForumCategoryUpdateDescription, dg as ForumCategoryUpdateIcon, dh as ForumCategoryUpdateIsArchived, di as ForumCategoryUpdateName, dj as ForumCategoryUpdateSortOrder, dk as ForumPostCreateAssigneeUsername, dl as ForumPostCreateChipId, dm as ForumPostCreateContentBlocksItem, dn as ForumPostCreateCooldownId, dp as ForumPostCreateParentId, dq as ForumPostCreateStatus, dr as ForumPostCreateTargetId, ds as ForumPostCreateTargetType, dt as ForumPostCreateTitle, du as ForumPostResponseAssigneeUsername, dv as ForumPostResponseAvatarKey, dw as ForumPostResponseChipId, dx as ForumPostResponseContentBlocksItem, dy as ForumPostResponseCooldownId, dz as ForumPostResponseNumber, dA as ForumPostResponseParentId, dB as ForumPostResponseStatus, dC as ForumPostResponseTargetId, dD as ForumPostResponseTargetType, dE as ForumPostResponseTitle, dF as ForumPostResponseUserId, dG as ForumPostUpdateAssigneeUsername, dH as ForumPostUpdateCategory, dI as ForumPostUpdateChipId, dJ as ForumPostUpdateContentBlocksItem, dK as ForumPostUpdateCooldownId, dL as ForumPostUpdateLabels, dM as ForumPostUpdateStatus, dN as ForumPostUpdateTargetId, dO as ForumPostUpdateTargetType, dP as ForumPostUpdateTitle, dQ as GetChipMetricsParams, dR as GetChipMetricsSelectionMode, dS as GetChipNoteParams, dT as GetChipNotesSummaryParams, dU as GetCopilotConfig200, dV as GetCouplingMetricHistoryParams, dW as GetCouplingTaskHistoryParams, dX as GetDashboardAiInsightsParams, dY as GetDegradationTrendsParams, dZ as GetFigureByPathParams, d_ as GetFileContent200, d$ as GetFileContentParams, e0 as GetFlowResponseDefaultParameters, e1 as GetFlowResponseDefaultRunParameters, e2 as GetForumPostRepliesParams, e3 as GetGitStatus200, e4 as GetHistoricalCouplingTaskResultsParams, e5 as GetHistoricalQubitTaskResultsParams, e6 as GetLatestCouplingTaskResultsParams, e7 as GetLatestQubitTaskResultsParams, e8 as GetMetricsConfig200, e9 as GetParameterHistoryParams, ea as GetProvenanceImpactParams, eb as GetProvenanceLineageParams, ec as GetQubitMetricHistoryParams, ed as GetQubitTaskHistoryParams, ee as GetRecalibrationRecommendationsParams, ef as GetRecentChangesParams, eg as GetRecentExecutionsParams, eh as GetTaskFileContent200, ei as GetTaskFileContentParams, ej as GetTaskFileTreeParams, ek as GetTaskKnowledgeParams, el as GetTimeseriesTaskResultsParams, em as GetTopologyById200, en as GitPullConfig200, eo as GitPushConfig200, ep as GitPushRequest, eq as InputParameterModel, er as InputParameterModelValue, es as InputParameterModelValueAnyOfItem, et as IssueCreate, eu as IssueCreateParentId, ev as IssueCreateTitle, ew as IssueKnowledgeResponse, ex as IssueKnowledgeResponsePrUrl, ey as IssueKnowledgeResponseReviewedBy, ez as IssueKnowledgeResponseReviewedByUserId, eA as IssueKnowledgeUpdate, eB as IssueKnowledgeUpdateApplicability, eC as IssueKnowledgeUpdateBoundaryCriteria, eD as IssueKnowledgeUpdateCaseType, eE as IssueKnowledgeUpdateCounterexample, eF as IssueKnowledgeUpdateFailureModeLabels, eG as IssueKnowledgeUpdateHumanLabel, eH as IssueKnowledgeUpdateHumanReviewDecision, eI as IssueKnowledgeUpdateLessonLearned, eJ as IssueKnowledgeUpdateModelErrorType, eK as IssueKnowledgeUpdateModelPrediction, eL as IssueKnowledgeUpdatePromptGuidance, eM as IssueKnowledgeUpdateResolution, eN as IssueKnowledgeUpdateResolutionLabel, eO as IssueKnowledgeUpdateRootCause, eP as IssueKnowledgeUpdateSeverity, eQ as IssueKnowledgeUpdateSymptom, eR as IssueKnowledgeUpdateTitle, eS as IssueResponse, eT as IssueResponseAvatarKey, eU as IssueResponseParentId, eV as IssueResponseTitle, eW as IssueResponseUserId, eX as IssueUpdate, eY as IssueUpdateTitle, eZ as KnowledgeCaseResponse, e_ as KnowledgeImageResponse, e$ as LatestTaskResultResponse, f0 as LatestTaskResultResponseResult, f1 as LineageEdgeResponse, f2 as LineageNodeResponse, f3 as LineageNodeResponseActivity, f4 as LineageNodeResponseEntity, f5 as LineageNodeResponseLatestVersion, f6 as ListAgentActionsResponse, f7 as ListAgentCandidatesResponse, f8 as ListAllFlowSchedulesParams, f9 as ListAllProjectsParams, fa as ListAllUsersParams, fb as ListBackendsResponse, fc as ListChipCouplingsParams, fd as ListChipNoteEventsParams, fe as ListChipQubitsParams, ff as ListCooldownWiringEventsParams, fg as ListCooldownWiringEventsResponse, fh as ListCooldownsParams, fi as ListCooldownsResponse, fj as ListCopilotChatSessionsResponse, fk as ListCryostatsResponse, fl as ListExecutionsParams, fm as ListExecutionsResponseLimit, fn as ListExecutionsResponseSkip, fo as ListExecutionsResponseTotal, fp as ListFlowSchedulesParams, fq as ListFlowSchedulesResponse, fr as ListForumCategoriesParams, fs as ListForumCategoriesResponse, ft as ListForumPostsParams, fu as ListIssueKnowledgeParams, fv as ListIssueKnowledgeResponse, fw as ListIssuesParams, fx as ListIssuesResponse, fy as ListMuxResponse, fz as ListMuxResponseMuxes, fA as ListNoteEventsResponse, fB as ListNotificationsParams, fC as ListNotificationsResponse, fD as ListTagResponse, fE as ListTargetNoteEventsParams, fF as ListTaskFileBackendsResponse, fG as ListTaskInfoParams, fH as ListTaskInfoResponse, fI as ListTaskKnowledgeResponseCategories, fJ as ListTaskResultAiReviewRunsParams, fK as ListTaskResultAiReviewsParams, fL as ListTaskResultsParams, fM as ListTasksParams, fN as ListTopologies200, fO as ListTopologiesParams, fP as Logout200, fQ as ManualEditItem, fR as ManualEditItemValue, fS as ManualEditsResponse, fT as ManualParameterUpdateRequest, fU as ManualParameterUpdateRequestParameters, fV as ManualParameterUpdateResponse, fW as ManualParameterUpdateResponseProvenanceActivityId, fX as MarkAllNotificationsRead200, fY as MeasError, fZ as MemberInvite, f_ as MemberItem, f$ as MemberItemAvatarKey, g0 as MemberItemDisplayName, g1 as MemberItemOrganization, g2 as MemberResponse, g3 as MemberResponseAvatarKey, g4 as MemberResponseDisplayName, g5 as MemberResponseInvitedBy, g6 as MemberResponseInvitedByUserId, g7 as MemberResponseLastAccessedAt, g8 as MemberResponseOrganization, g9 as MemberUpdate, ga as MetricHeatmapResponse, gb as MetricHeatmapResponseUnit, gc as MetricHeatmapResponseValues, gd as MetricHistoryItem, ge as MetricHistoryItemCalibratedAt, gf as MetricHistoryItemExcludedAt, gg as MetricHistoryItemExcludedBy, gh as MetricHistoryItemExcludedByUserId, gi as MetricHistoryItemInputParameters, gj as MetricHistoryItemInputParametersAnyOf, gk as MetricHistoryItemName, gl as MetricHistoryItemOutputParameters, gm as MetricHistoryItemOutputParametersAnyOf, gn as MetricHistoryItemTaskId, go as MetricHistoryItemValue, gp as MetricValue, gq as MetricValueExecutionId, gr as MetricValueStddev, gs as MetricValueTaskId, gt as MetricValueValue, gu as MetricsSummaryResponse, gv as MetricsSummaryResponseAverages, gw as ModelConfig, gx as ModelConfigApiKeyEnv, gy as ModelConfigBaseUrl, gz as ModelConfigKeepAlive, gA as ModelConfigNumCtx, gB as ModelConfigReasoningEffort, gC as ModelConfigTemperature, gD as ModelConfigTopK, gE as ModelConfigTopP, gF as MuxDetailResponse, gG as MuxDetailResponseDetail, gH as MuxTask, gI as MuxTaskElapsedTime, gJ as MuxTaskEndAt, gK as MuxTaskFigurePath, gL as MuxTaskInputParameters, gM as MuxTaskInputParametersAnyOf, gN as MuxTaskJsonFigurePath, gO as MuxTaskMessage, gP as MuxTaskNote, gQ as MuxTaskNoteAnyOf, gR as MuxTaskOutputParameterNames, gS as MuxTaskOutputParameters, gT as MuxTaskOutputParametersAnyOf, gU as MuxTaskQid, gV as MuxTaskRawDataPath, gW as MuxTaskStartAt, gX as MuxTaskTaskId, gY as MuxTaskTaskType, gZ as MuxTaskUpstreamId, g_ as NoteCommentModel, g$ as NoteCommentModelUpdatedAt, h0 as NoteCommentRequest, h1 as NoteEventResponse, h2 as NoteEventResponseActorUserId, h3 as NoteEventResponseExtra, h4 as NoteModel, h5 as NoteModelUpdatedAt, h6 as NoteUpsertRequest, h7 as NotificationResponse, h8 as NotificationResponseActorUserId, h9 as NotificationResponseReadAt, ha as NotificationResponseRecipientUserId, hb as NumericBounds, hc as NumericBoundsMaximum, hd as NumericBoundsMinimum, he as OutputParameterInfoResponse, hf as ParameterChangeResponse, hg as ParameterChangeResponseDelta, hh as ParameterChangeResponseDeltaPercent, hi as ParameterChangeResponsePreviousError, hj as ParameterChangeResponsePreviousValue, hk as ParameterChangeResponseValidFrom, hl as ParameterChangeResponseValue, hm as ParameterDiffResponse, hn as ParameterDiffResponseDelta, ho as ParameterDiffResponseDeltaPercent, hp as ParameterDiffResponseValueAfter, hq as ParameterDiffResponseValueBefore, hr as ParameterHistoryResponse, hs as ParameterModel, ht as ParameterModelValue, hu as ParameterVersionResponse, hv as ParameterVersionResponseValidFrom, hw as ParameterVersionResponseValidUntil, hx as ParameterVersionResponseValue, hy as PasswordChange, hz as PasswordReset, hA as Position, hB as ProjectCreate, hC as ProjectCreateDescription, hD as ProjectListItem, hE as ProjectListItemCreatedAt, hF as ProjectListItemDescription, hG as ProjectResponseDescription, hH as ProjectRole, hI as ProjectUpdate, hJ as ProjectUpdateDefaultRole, hK as ProjectUpdateDescription, hL as ProjectUpdateName, hM as ProjectUpdateTags, hN as ProvenanceStatsResponseRelationCounts, hO as QdashApiSchemasAdminMemberListResponse, hP as QdashApiSchemasAdminProjectListResponse, hQ as QdashApiSchemasProjectMemberListResponse, hR as Qubit, hS as QubitGateDuration, hT as QubitLifetime, hU as QubitMetricHistoryResponse, hV as QubitResponseData, hW as QubitResponseMetricNotes, hX as ReExecuteRequest, hY as ReExecuteRequestParameterOverrides, hZ as ReExecutionEntry, h_ as ReExecutionEntryStartAt, h$ as ReanalyzeOutputParameter, i0 as ReanalyzeQubitSpectroscopyParams, i1 as ReanalyzeQubitSpectroscopyParamsBinarizeThresholdSigmaMinus, i2 as ReanalyzeQubitSpectroscopyParamsBinarizeThresholdSigmaPlus, i3 as ReanalyzeQubitSpectroscopyParamsF01HeightMin, i4 as ReanalyzeQubitSpectroscopyParamsF12DistanceMax, i5 as ReanalyzeQubitSpectroscopyParamsF12DistanceMin, i6 as ReanalyzeQubitSpectroscopyParamsF12HeightMin, i7 as ReanalyzeQubitSpectroscopyParamsRetryWithTrim, i8 as ReanalyzeQubitSpectroscopyParamsTopPower, i9 as ReanalyzeQubitSpectroscopyRequest, ia as ReanalyzeQubitSpectroscopyRequestSourceTaskId, ib as ReanalyzeResonatorSpectroscopyParams, ic as ReanalyzeResonatorSpectroscopyParamsBareShiftEstimatorType, id as ReanalyzeResonatorSpectroscopyParamsBareShiftStrengthLimit, ie as ReanalyzeResonatorSpectroscopyParamsHighPowerMax, ig as ReanalyzeResonatorSpectroscopyParamsHighPowerMin, ih as ReanalyzeResonatorSpectroscopyParamsLowPower, ii as ReanalyzeResonatorSpectroscopyParamsNumResonators, ij as ReanalyzeResonatorSpectroscopyParamsResonatorAssignmentPattern, ik as ReanalyzeResonatorSpectroscopyRequest, il as ReanalyzeResonatorSpectroscopyRequestSourceTaskId, im as ReanalyzeResponse, io as ReanalyzeResponseFigure, ip as RecalibrationRecommendationResponse, iq as RecentChangesResponse, ir as RecentExecutionsResponse, is as RecommendedTaskResponse, it as RemoveProjectMemberAdmin200, iu as ResetPassword200, iv as RunCodexAgentRequest, iw as RunCodexAgentRequestFlowFunctionName, ix as RunCodexAgentResponse, iy as SaveFileContent200, iz as SaveFileRequest, iA as SaveFlowRequestDefaultParameters, iB as SaveFlowRequestDefaultRunParameters, iC as SaveFlowRequestFlowFunctionName, iD as SaveTaskFileContent200, iE as SaveTaskFileRequest, iF as ScheduleFlowRequest, iG as ScheduleFlowRequestCron, iH as ScheduleFlowRequestParameters, iI as ScheduleFlowRequestScheduledTime, iJ as ScheduleFlowResponse, iK as ScheduleFlowResponseCron, iL as ScheduleFlowResponseNextRun, iM as SearchNoteEventsParams, iN as SeedImportRequest, iO as SeedImportRequestManualData, iP as SeedImportRequestManualDataAnyOf, iQ as SeedImportRequestParameters, iR as SeedImportRequestQids, iS as SeedImportResponse, iT as SeedImportResponseProvenanceActivityId, iU as SeedImportResultItem, iV as SeedImportResultItemMessage, iW as SeedImportResultItemValue, iX as SeedImportSource, iY as Settings, iZ as SubmitAgentActionRequest, i_ as SubmitAgentActionRequestParameterOverrides, i$ as SubmitAgentActionRequestTaskName, j0 as SuccessResponse, j1 as SystemRole, j2 as Tag, j3 as TargetNoteEntry, j4 as TargetNoteEntryMetricNotes, j5 as Task, j6 as TaskElapsedTime, j7 as TaskEndAt, j8 as TaskFigurePath, j9 as TaskFileBackend, ja as TaskFileSettings, jb as TaskFileSettingsDefaultBackend, jc as TaskFileSettingsDefaultViewMode, jd as TaskFileSettingsSortOrder, je as TaskFileTreeNode, jf as TaskFileTreeNodeChildren, jg as TaskHistoryResponse, jh as TaskHistoryResponseData, ji as TaskInfo, jj as TaskInfoCategory, jk as TaskInfoDescription, jl as TaskInfoTaskType, jm as TaskInputParameters, jn as TaskInputParametersAnyOf, jo as TaskJsonFigurePath, jp as TaskKnowledgeSummaryResponse, jq as TaskMessage, jr as TaskNote, js as TaskNoteAnyOf, jt as TaskNoteEntry, ju as TaskOutputParameterNames, jv as TaskOutputParameters, jw as TaskOutputParametersAnyOf, jx as TaskQid, jy as TaskRawDataPath, jz as TaskResponse, jA as TaskResponseBackend, jB as TaskResponseInputParameters, jC as TaskResponseOutputParameters, jD as TaskResult, jE as TaskResultAiReview, jF as TaskResultElapsedTime, jG as TaskResultEndAt, jH as TaskResultExcludeRequest, jI as TaskResultExcludeResponse, jJ as TaskResultExcludeResponseExcludedAt, jK as TaskResultExcludeResponseExcludedBy, jL as TaskResultExcludeResponseExcludedByUserId, jM as TaskResultExecutionId, jN as TaskResultFigurePath, jO as TaskResultInputParameters, jP as TaskResultInputParametersAnyOf, jQ as TaskResultJsonFigurePath, jR as TaskResultListItem, jS as TaskResultListItemElapsedTime, jT as TaskResultListItemEndAt, jU as TaskResultListItemSourceTaskId, jV as TaskResultListItemStartAt, jW as TaskResultListItemUserId, jX as TaskResultListResponseStatusCounts, jY as TaskResultMessage, jZ as TaskResultNote, j_ as TaskResultNoteAnyOf, j$ as TaskResultOutputParameterNames, k0 as TaskResultOutputParameters, k1 as TaskResultOutputParametersAnyOf, k2 as TaskResultQid, k3 as TaskResultRawDataPath, k4 as TaskResultResponseElapsedTime, k5 as TaskResultResponseEndAt, k6 as TaskResultResponseInputParameters, k7 as TaskResultResponseOutputParameters, k8 as TaskResultResponseRunParameters, k9 as TaskResultResponseSourceTaskId, ka as TaskResultResponseStartAt, kb as TaskResultResponseUserId, kc as TaskResultRunParameters, kd as TaskResultRunParametersAnyOf, ke as TaskResultStartAt, kf as TaskResultTaskId, kg as TaskResultTaskType, kh as TaskResultUpstreamId, ki as TaskRunParameters, kj as TaskRunParametersAnyOf, kk as TaskStartAt, kl as TaskTaskId, km as TaskTaskType, kn as TaskUpstreamId, ko as TaskUserId, kp as TimeSeriesDataData, kq as TokenResponse, kr as TokenResponseDefaultProjectId, ks as UISettings, kt as UITaskFilesSettings, ku as UITaskFilesSettingsDefaultBackend, kv as UITaskFilesSettingsDefaultViewMode, kw as UITaskFilesSettingsSortOrder, kx as UnreadNotificationCountResponse, ky as UpdateChipRequest, kz as UpdateChipRequestActivityStatus, kA as UpdateChipRequestNote, kB as UpdateChipRequestTopologyId, kC as UpdateCopilotChatSessionRequest, kD as UpdateCopilotChatSessionRequestContext, kE as UpdateCopilotChatSessionRequestContextAnyOf, kF as UpdateCopilotChatSessionRequestMessages, kG as UpdateCopilotChatSessionRequestTitle, kH as UpdateCouplingNoteCommentParams, kI as UpdateQubitNoteCommentParams, kJ as UpdateScheduleRequest, kK as UpdateScheduleRequestCron, kL as UpdateScheduleRequestParameters, kM as UpdateScheduleRequestParametersAnyOf, kN as UpdateScheduleResponse, kO as UpdateUserRequest, kP as UpdateUserRequestAvatarKey, kQ as UpdateUserRequestDisabled, kR as UpdateUserRequestDisplayName, kS as UpdateUserRequestOrganization, kT as UpdateUserRequestSystemRole, kU as UpsertChipNoteParams, kV as UpsertCouplingMetricNoteParams, kW as UpsertCouplingNoteParams, kX as UpsertQubitMetricNoteParams, kY as UpsertQubitNoteParams, kZ as User, k_ as UserAvatarKey, k$ as UserCreate, l0 as UserCreateAvatarKey, l1 as UserCreateDisplayName, l2 as UserCreateOrganization, l3 as UserCreatePassword, l4 as UserDefaultProjectId, l5 as UserDetailResponse, l6 as UserDetailResponseAvatarKey, l7 as UserDetailResponseCreatedAt, l8 as UserDetailResponseDefaultProjectId, l9 as UserDetailResponseDisplayName, la as UserDetailResponseOrganization, lb as UserDetailResponseUpdatedAt, lc as UserDisabled, ld as UserDisplayName, le as UserListItem, lf as UserListItemAvatarKey, lg as UserListItemDefaultProjectId, lh as UserListItemDisplayName, li as UserListItemOrganization, lj as UserListResponse, lk as UserOrganization, ll as UserProfileUpdate, lm as UserProfileUpdateAvatarKey, ln as UserProfileUpdateDisplayName, lo as UserWithToken, lp as UserWithTokenAvatarKey, lq as UserWithTokenDefaultProjectId, lr as UserWithTokenDisabled, ls as UserWithTokenDisplayName, lt as UserWithTokenInitialPassword, lu as UserWithTokenOrganization, lv as ValidateFileContent200, lw as ValidateFileRequest } from './validateFileRequest-Chit-Qfu.js';
1
+ import { g as getQDashAPI, Q as QDashConfig, T as TransportOptions } from './api-CTz9k_9X.js';
2
+ export { A as AddProjectMemberAdminResult, a as AdminDeleteProjectResult, b as AnalyzeCopilotResult, c as ApplyAgentCandidateCommitResult, d as ApproveIssueKnowledgeResult, e as AssignChipToCooldownResult, B as BulkImportUsersResult, C as CancelExecutionResult, f as ChangePasswordResult, h as CloseForumPostResult, i as CloseIssueResult, j as CommitAgentActionCandidateResult, k as CommitAgentCampaignCandidatesResult, l as CompareExecutionsResult, m as CompareSeedValuesResult, n as CreateAgentSessionResult, o as CreateChipResult, p as CreateCooldownResult, q as CreateCooldownWiringCheckpointResult, r as CreateCopilotChatSessionResult, s as CreateCouplingNoteCommentResult, t as CreateCryostatResult, u as CreateForumCategoryResult, v as CreateForumPostResult, w as CreateIssueResult, x as CreateProjectForUserResult, y as CreateProjectResult, z as CreateQubitNoteCommentResult, D as DeleteChipNoteResult, E as DeleteChipResult, F as DeleteCooldownResult, G as DeleteCopilotChatSessionResult, H as DeleteCouplingMetricNoteResult, I as DeleteCouplingNoteCommentResult, J as DeleteCouplingNoteResult, K as DeleteCryostatResult, L as DeleteFlowResult, M as DeleteFlowScheduleResult, N as DeleteForumCategoryResult, O as DeleteForumPostResult, P as DeleteIssueKnowledgeResult, R as DeleteIssueResult, S as DeleteProjectResult, U as DeleteQubitMetricNoteResult, V as DeleteQubitNoteCommentResult, W as DeleteQubitNoteResult, X as DeleteTaskNoteResult, Y as DeleteUserResult, Z as DownloadFiguresAsZipResult, _ as DownloadFileResult, $ as DownloadMetricsPdfResult, a0 as DownloadZipFileResult, a1 as EvaluateAgentCandidateGateResult, a2 as ExecuteAgentActionResult, a3 as ExecuteFlowResult, a4 as ExtractIssueKnowledgeResult, a5 as GetAgentActionResult, a6 as GetAgentCampaignCommitResult, a7 as GetAgentCandidateCommitResult, a8 as GetAgentSessionResult, a9 as GetAvailableSeedParametersResult, aa as GetBackendConfigResult, ab as GetCalibrationNoteResult, ac as GetChipCouplingResult, ad as GetChipDatesResult, ae as GetChipDeletionImpactResult, af as GetChipMetricHeatmapResult, ag as GetChipMetricsResult, ah as GetChipMetricsSummaryResult, ai as GetChipMuxResult, aj as GetChipNoteResult, ak as GetChipNotesSummaryResult, al as GetChipQubitResult, am as GetChipResult, an as GetConfigAllResult, ao as GetCooldownResult, ap as GetCopilotChatSessionResult, aq as GetCopilotConfigResult, ar as GetCouplingMetricHistoryResult, as as GetCouplingTaskHistoryResult, at as GetCryostatResult, au as GetCurrentUserResult, av as GetDashboardAiInsightsResult, aw as GetDegradationTrendsResult, ax as GetDeviceTopologyPlotResult, ay as GetDeviceTopologyResult, az as GetExecutionLockStatusResult, aA as GetExecutionResult, aB as GetFigureByPathResult, aC as GetFileContentResult, aD as GetFileTreeResult, aE as GetFlowHelperFileResult, aF as GetFlowResult, aG as GetFlowTemplateResult, aH as GetForumPostRepliesResult, aI as GetForumPostResult, aJ as GetGitStatusResult, aK as GetHistoricalCouplingTaskResultsResult, aL as GetHistoricalQubitTaskResultsResult, aM as GetIssueKnowledgeResult, aN as GetIssueRepliesResult, aO as GetIssueResult, aP as GetLatestCouplingTaskResultsResult, aQ as GetLatestQubitTaskResultsResult, aR as GetManualEditsResult, aS as GetMetricsConfigResult, aT as GetParameterHistoryResult, aU as GetProjectResult, aV as GetProvenanceEntityResult, aW as GetProvenanceImpactResult, aX as GetProvenanceLineageResult, aY as GetProvenanceStatsResult, aZ as GetQubitMetricHistoryResult, a_ as GetQubitTaskHistoryResult, a$ as GetRecalibrationRecommendationsResult, b0 as GetRecentChangesResult, b1 as GetRecentExecutionsResult, b2 as GetSettingsResult, b3 as GetTaskFileContentResult, b4 as GetTaskFileSettingsResult, b5 as GetTaskFileTreeResult, b6 as GetTaskKnowledgeMarkdownResult, b7 as GetTaskKnowledgeResult, b8 as GetTaskNoteResult, b9 as GetTaskResultAiReviewRunResult, ba as GetTaskResultIssuesResult, bb as GetTaskResultResult, bc as GetTimeseriesTaskResultsResult, bd as GetTopologyByIdResult, be as GetUnreadNotificationCountResult, bf as GetUserDetailsResult, bg as GitPullConfigResult, bh as GitPushConfigResult, bi as ImportSeedParametersResult, bj as InviteProjectMemberResult, bk as ListAgentActionCandidatesResult, bl as ListAgentActionsResult, bm as ListAllFlowSchedulesResult, bn as ListAllProjectsResult, bo as ListAllUsersResult, bp as ListBackendsResult, bq as ListChipCouplingsResult, br as ListChipMuxesResult, bs as ListChipNoteEventsResult, bt as ListChipQubitsResult, bu as ListChipsResult, bv as ListCooldownWiringEventsResult, bw as ListCooldownsResult, bx as ListCopilotChatSessionsResult, by as ListCryostatsResult, bz as ListExecutionsResult, bA as ListFlowHelperFilesResult, bB as ListFlowSchedulesResult, bC as ListFlowTemplatesResult, bD as ListFlowsResult, bE as ListForumCategoriesResult, bF as ListForumPostsResult, bG as ListIssueKnowledgeResult, bH as ListIssuesResult, bI as ListNotificationsResult, bJ as ListProjectMembersAdminResult, bK as ListProjectMembersResult, bL as ListProjectsResult, bM as ListTagsResult, bN as ListTargetNoteEventsResult, bO as ListTaskFileBackendsResult, bP as ListTaskInfoResult, bQ as ListTaskKnowledgeResult, bR as ListTaskResultAiReviewRunsResult, bS as ListTaskResultAiReviewsResult, bT as ListTaskResultsResult, bU as ListTasksResult, bV as ListTopologiesResult, bW as LoginResult, bX as LogoutResult, bY as MarkAllNotificationsReadResult, bZ as MarkNotificationReadResult, b_ as QDashConfigOptions, b$ as QDashRetryConfig, c0 as ReExecuteFromSnapshotResult, c1 as ReExecuteTaskResultResult, c2 as ReanalyzeQubitSpectroscopyResult, c3 as ReanalyzeResonatorSpectroscopyResult, c4 as RegisterUserResult, c5 as RejectIssueKnowledgeResult, c6 as ReloadConfigCachesResult, c7 as RemoveProjectMemberAdminResult, c8 as RemoveProjectMemberResult, c9 as ReopenForumPostResult, ca as ReopenIssueResult, cb as RequestBulkAiReviewResult, cc as ResetPasswordResult, cd as RunCodexFlowAgentResult, ce as SaveFileContentResult, cf as SaveFlowResult, cg as SaveTaskFileContentResult, ch as ScheduleFlowResult, ci as SearchNoteEventsResult, cj as SetTaskResultExcludedResult, ck as SubmitAgentActionResult, cl as TransferProjectOwnershipResult, cm as UnassignChipFromCooldownResult, cn as UpdateCalibrationParametersResult, co as UpdateChipResult, cp as UpdateCooldownResult, cq as UpdateCopilotChatSessionResult, cr as UpdateCouplingNoteCommentResult, cs as UpdateCryostatResult, ct as UpdateCurrentUserProfileResult, cu as UpdateFlowScheduleResult, cv as UpdateForumCategoryResult, cw as UpdateForumPostResult, cx as UpdateIssueKnowledgeResult, cy as UpdateIssueResult, cz as UpdateProjectMemberResult, cA as UpdateProjectResult, cB as UpdateQubitNoteCommentResult, cC as UpdateUserSettingsResult, cD as UploadForumImageResult, cE as UpsertChipNoteResult, cF as UpsertCouplingMetricNoteResult, cG as UpsertCouplingNoteResult, cH as UpsertQubitMetricNoteResult, cI as UpsertQubitNoteResult, cJ as UpsertTaskNoteResult, cK as ValidateFileContentResult, cL as defaultConfigPath } from './api-CTz9k_9X.js';
3
+ import { A as AgentSessionPolicy, L as ListChipsResponse, C as ChipResponse, a as ChipMetricsResponse, b as ListQubitsResponse, Q as QubitResponse, c as ListCouplingsResponse, d as CouplingResponse, T as TimeSeriesData, e as TaskResultListResponse, f as TaskResultResponse, g as ListTaskResponse, h as ListTaskKnowledgeResponse, i as TaskKnowledgeResponse, j as QdashApiSchemasProjectProjectListResponse, P as ProjectResponse, F as FileTreeNode, k as ListFlowsResponse, G as GetFlowResponse, l as FlowTemplate, m as FlowTemplateWithCode, S as SaveFlowRequest, n as SaveFlowResponse, E as ExecuteFlowResponse, o as ListExecutionsResponse, p as ExecutionResponseDetail, q as AgentSessionResponse, r as CandidateGateResponse, s as AgentActionType, t as AgentActionResponse, u as AgentCandidateResponse, v as AgentCandidateCommitResponse, w as AgentCampaignCandidateReference, x as AgentCampaignCommitResponse, y as ListForumPostsResponse, z as ForumPostCreate, B as ForumPostResponse, D as ForumPostUpdate, H as ForumImageUploadResponse, I as LineageResponse, J as ImpactResponse, K as ProvenanceStatsResponse, M as ExecutionLockStatusResponse, N as ExecutionComparisonResponse, R as RecentChangesResponse, O as DegradationTrendsResponse, U as RecalibrationRecommendationResponse } from './validateFileRequest-CIe5ktwo.js';
4
+ export { V as ActivityResponse, W as ActivityResponseEndedAt, X as ActivityResponseStartedAt, Y as AddMemberRequest, Z as AdminDeleteProject200, _ as AgentActionDecision, $ as AgentActionResponseExecutionId, a0 as AgentActionResponseOperationId, a1 as AgentActionResponseParameterOverrides, a2 as AgentActionResponseTaskName, a3 as AgentCampaignCommitResponseAfterSnapshot, a4 as AgentCampaignCommitResponseBeforeSnapshot, a5 as AgentCampaignCommitResponseCommittedAt, a6 as AgentCandidateCommitResponseAfterSnapshot, a7 as AgentCandidateCommitResponseAfterSnapshotAnyOf, a8 as AgentCandidateCommitResponseBackendAppliedAt, a9 as AgentCandidateCommitResponseBackendBaseGitCommit, aa as AgentCandidateCommitResponseBackendGitCommit, ab as AgentCandidateCommitResponseBackendOperationId, ac as AgentCandidateCommitResponseBackendRequestedAt, ad as AgentCandidateCommitResponseBeforeSnapshot, ae as AgentCandidateCommitResponseBeforeSnapshotAnyOf, af as AgentCandidateCommitResponseCommittedAt, ag as AgentCandidateResponseMaximum, ah as AgentCandidateResponseMinimum, ai as AgentCandidateResponseQualityMetrics, aj as AgentSessionPolicyAllowedOverrides, ak as AgentSessionPolicyQualityGates, al as AgentSessionStatus, am as AiReviewListItem, an as AiReviewListItemCompletedAt, ao as AiReviewListItemNoteUpdatedAt, ap as AiReviewListItemRequestedAt, aq as AiReviewListItemStartAt, ar as AiReviewListResponse, as as AiReviewListResponseDecisionCounts, at as AiReviewListResponseStatusCounts, au as AiReviewModel, av as AiReviewModelCompletedAt, aw as AiReviewModelRequestedAt, ax as AiReviewRunDetailResponse, ay as AiReviewRunListResponse, az as AiReviewRunSummary, aA as AiReviewRunSummaryCompletedAt, aB as AiReviewRunSummaryDecisionCounts, aC as AiReviewRunSummaryRequestedAt, aD as AiReviewRunSummaryStatusCounts, aE as AllConfigResponse, aF as AllConfigResponseCopilot, aG as AllConfigResponseMetrics, aH as AnalysisResponse, aI as AnalyzeRequest, aJ as AnalyzeRequestConversationHistoryItem, aK as AnalyzeRequestImageBase64, aL as AnalyzeRequestModelOverride, aM as ApplyAgentCandidateRequest, aN as BackendConfigResponse, aO as BackendConfigResponseBackends, aP as BackendConfigResponseCategories, aQ as BackendDefinitionResponse, aR as BackendResponseModel, aS as BodyBulkImportUsers, aT as BodyLogin, aU as BodyReExecuteTaskResult, aV as BodyReExecuteTaskResultParameterOverrides, aW as BodyReExecuteTaskResultParameterOverridesAnyOf, aX as BodyUploadForumImage, aY as BulkAiReviewRequest, aZ as BulkAiReviewRequestDate, a_ as BulkAiReviewRequestModelOverride, a$ as BulkAiReviewRequestTaskIds, b0 as BulkAiReviewResponse, b1 as BulkAiReviewResponseDate, b2 as BulkAiReviewResponseSkippedReason, b3 as BulkUserImportResponse, b4 as BulkUserImportResult, b5 as BulkUserImportResultDisplayName, b6 as BulkUserImportResultInitialPassword, b7 as BulkUserImportResultMessage, b8 as BulkUserImportResultOrganization, b9 as CalibrationNoteResponse, ba as CalibrationNoteResponseNote, bb as CalibrationNoteResponseTimestamp, bc as CancelExecutionResponse, bd as CandidateGateResponseMaximum, be as CandidateGateResponseMinimum, bf as ChangePassword200, bg as ChipDatesResponse, bh as ChipDeletionImpactResponse, bi as ChipMetricsResponseCouplingMetrics, bj as ChipMetricsResponseEndAt, bk as ChipMetricsResponseQubitMetrics, bl as ChipMetricsResponseStartAt, bm as ChipMetricsResponseWithinHours, bn as ChipNotesSummaryResponse, bo as ChipResponseActivityStatus, bp as ChipResponseCurrentCooldownId, bq as ChipResponseInstalledAt, br as ChipResponseTopologyId, bs as CommitAgentCampaignRequest, bt as CommitAgentCandidateRequest, bu as CompareExecutionsParams, bv as CompareSeedValues200, bw as CompareSeedValuesParams, bx as Condition, by as ConditionCrDirection, bz as ConfigReloadResponse, bA as CooldownCreateRequest, bB as CooldownCreateRequestEndedAt, bC as CooldownResponse, bD as CooldownResponseEndedAt, bE as CooldownResponseWiringBlocksItem, bF as CooldownUpdateRequest, bG as CooldownUpdateRequestDescription, bH as CooldownUpdateRequestEndedAt, bI as CooldownUpdateRequestStartedAt, bJ as CooldownUpdateRequestWiringBlocks, bK as CooldownUpdateRequestWiringBlocksAnyOfItem, bL as CooldownUpdateRequestWiringInfo, bM as CooldownWiringCheckpointRequest, bN as CooldownWiringEventResponse, bO as CooldownWiringEventResponseActorUserId, bP as CopilotChatMessageSchema, bQ as CopilotChatMessageSchemaAttachedImage, bR as CopilotChatMessageSchemaCreatedAt, bS as CopilotChatSessionResponse, bT as CopilotChatSessionResponseContext, bU as CopilotChatSessionResponseContextAnyOf, bV as CopilotChatSessionSummary, bW as CopilotChatSessionSummaryContext, bX as CopilotChatSessionSummaryContextAnyOf, bY as Coupling, bZ as CouplingGateDuration, b_ as CouplingResponseData, b$ as CouplingResponseMetricNotes, c0 as CreateAgentSessionRequest, c1 as CreateChipRequest, c2 as CreateChipRequestTopologyId, c3 as CreateCopilotChatSessionRequest, c4 as CreateCopilotChatSessionRequestContext, c5 as CreateCopilotChatSessionRequestContextAnyOf, c6 as CreateCouplingNoteCommentParams, c7 as CreateQubitNoteCommentParams, c8 as CryostatCreateRequest, c9 as CryostatCreateRequestCommissionedAt, ca as CryostatResponse, cb as CryostatResponseCommissionedAt, cc as CryostatResponseDecommissionedAt, cd as CryostatUpdateRequest, ce as CryostatUpdateRequestCommissionedAt, cf as CryostatUpdateRequestDecommissionedAt, cg as CryostatUpdateRequestLocation, ch as CryostatUpdateRequestManufacturer, ci as CryostatUpdateRequestModel, cj as CryostatUpdateRequestName, ck as CryostatUpdateRequestStatus, cl as DashboardAiInsightsResponse, cm as DashboardInsight, cn as DashboardInsightCategory, co as DashboardInsightConfidence, cp as DashboardInsightSeverity, cq as DashboardInsightSuppressed, cr as DegradationTrendResponse, cs as DegradationTrendResponseCurrentValue, ct as DegradationTrendResponseValidFrom, cu as DeleteChipNoteParams, cv as DeleteChipParams, cw as DeleteCopilotChatSession200, cx as DeleteCouplingMetricNoteParams, cy as DeleteCouplingNoteCommentParams, cz as DeleteCouplingNoteParams, cA as DeleteFlow200, cB as DeleteQubitMetricNoteParams, cC as DeleteQubitNoteCommentParams, cD as DeleteQubitNoteParams, cE as DeleteScheduleResponse, cF as DeleteUser200, cG as Device, cH as DeviceCalibratedAt, cI as DeviceTopologyRequest, cJ as DownloadFiguresAsZipRequest, cK as DownloadFileParams, cL as DownloadMetricsPdfParams, cM as DownloadMetricsPdfSelectionMode, cN as DownloadZipFileParams, cO as EvaluateCandidateGateRequest, cP as ExecuteAgentActionRequest, cQ as ExecuteFlowRequest, cR as ExecuteFlowRequestParameters, cS as ExecutionIdResponse, cT as ExecutionIdResponseValidFrom, cU as ExecutionResponseDetailElapsedTime, cV as ExecutionResponseDetailEndAt, cW as ExecutionResponseDetailNote, cX as ExecutionResponseDetailStartAt, cY as ExecutionResponseDetailUserId, cZ as ExecutionResponseSummary, c_ as ExecutionResponseSummaryElapsedTime, c$ as ExecutionResponseSummaryEndAt, d0 as ExecutionResponseSummaryNote, d1 as ExecutionResponseSummaryStartAt, d2 as ExecutionResponseSummaryUserId, d3 as ExpectedResultResponse, d4 as FailureModeResponse, d5 as FidelityCondition, d6 as FidelityConditionMetric, d7 as FileNodeType, d8 as FileTreeNodeChildren, d9 as FlowScheduleSummary, da as FlowScheduleSummaryCron, db as FlowScheduleSummaryNextRun, dc as FlowSummary, dd as ForumCategoryCreate, de as ForumCategoryCreateKey, df as ForumCategoryCreateSortOrder, dg as ForumCategoryResponse, dh as ForumCategoryUpdate, di as ForumCategoryUpdateColor, dj as ForumCategoryUpdateDescription, dk as ForumCategoryUpdateIcon, dl as ForumCategoryUpdateIsArchived, dm as ForumCategoryUpdateName, dn as ForumCategoryUpdateSortOrder, dp as ForumPostCreateAssigneeUsername, dq as ForumPostCreateChipId, dr as ForumPostCreateContentBlocksItem, ds as ForumPostCreateCooldownId, dt as ForumPostCreateParentId, du as ForumPostCreateStatus, dv as ForumPostCreateTargetId, dw as ForumPostCreateTargetType, dx as ForumPostCreateTitle, dy as ForumPostResponseAssigneeUsername, dz as ForumPostResponseAvatarKey, dA as ForumPostResponseChipId, dB as ForumPostResponseContentBlocksItem, dC as ForumPostResponseCooldownId, dD as ForumPostResponseNumber, dE as ForumPostResponseParentId, dF as ForumPostResponseStatus, dG as ForumPostResponseTargetId, dH as ForumPostResponseTargetType, dI as ForumPostResponseTitle, dJ as ForumPostResponseUserId, dK as ForumPostUpdateAssigneeUsername, dL as ForumPostUpdateCategory, dM as ForumPostUpdateChipId, dN as ForumPostUpdateContentBlocksItem, dO as ForumPostUpdateCooldownId, dP as ForumPostUpdateLabels, dQ as ForumPostUpdateStatus, dR as ForumPostUpdateTargetId, dS as ForumPostUpdateTargetType, dT as ForumPostUpdateTitle, dU as GetChipMetricsParams, dV as GetChipMetricsSelectionMode, dW as GetChipNoteParams, dX as GetChipNotesSummaryParams, dY as GetCopilotConfig200, dZ as GetCouplingMetricHistoryParams, d_ as GetCouplingTaskHistoryParams, d$ as GetDashboardAiInsightsParams, e0 as GetDegradationTrendsParams, e1 as GetFigureByPathParams, e2 as GetFileContent200, e3 as GetFileContentParams, e4 as GetFlowResponseDefaultParameters, e5 as GetFlowResponseDefaultRunParameters, e6 as GetForumPostRepliesParams, e7 as GetGitStatus200, e8 as GetHistoricalCouplingTaskResultsParams, e9 as GetHistoricalQubitTaskResultsParams, ea as GetLatestCouplingTaskResultsParams, eb as GetLatestQubitTaskResultsParams, ec as GetMetricsConfig200, ed as GetParameterHistoryParams, ee as GetProvenanceImpactParams, ef as GetProvenanceLineageParams, eg as GetQubitMetricHistoryParams, eh as GetQubitTaskHistoryParams, ei as GetRecalibrationRecommendationsParams, ej as GetRecentChangesParams, ek as GetRecentExecutionsParams, el as GetTaskFileContent200, em as GetTaskFileContentParams, en as GetTaskFileTreeParams, eo as GetTaskKnowledgeParams, ep as GetTimeseriesTaskResultsParams, eq as GetTopologyById200, er as GitPullConfig200, es as GitPushConfig200, et as GitPushRequest, eu as InputParameterModel, ev as InputParameterModelValue, ew as InputParameterModelValueAnyOfItem, ex as IssueCreate, ey as IssueCreateParentId, ez as IssueCreateTitle, eA as IssueKnowledgeResponse, eB as IssueKnowledgeResponsePrUrl, eC as IssueKnowledgeResponseReviewedBy, eD as IssueKnowledgeResponseReviewedByUserId, eE as IssueKnowledgeUpdate, eF as IssueKnowledgeUpdateApplicability, eG as IssueKnowledgeUpdateBoundaryCriteria, eH as IssueKnowledgeUpdateCaseType, eI as IssueKnowledgeUpdateCounterexample, eJ as IssueKnowledgeUpdateFailureModeLabels, eK as IssueKnowledgeUpdateHumanLabel, eL as IssueKnowledgeUpdateHumanReviewDecision, eM as IssueKnowledgeUpdateLessonLearned, eN as IssueKnowledgeUpdateModelErrorType, eO as IssueKnowledgeUpdateModelPrediction, eP as IssueKnowledgeUpdatePromptGuidance, eQ as IssueKnowledgeUpdateResolution, eR as IssueKnowledgeUpdateResolutionLabel, eS as IssueKnowledgeUpdateRootCause, eT as IssueKnowledgeUpdateSeverity, eU as IssueKnowledgeUpdateSymptom, eV as IssueKnowledgeUpdateTitle, eW as IssueResponse, eX as IssueResponseAvatarKey, eY as IssueResponseParentId, eZ as IssueResponseTitle, e_ as IssueResponseUserId, e$ as IssueUpdate, f0 as IssueUpdateTitle, f1 as KnowledgeCaseResponse, f2 as KnowledgeImageResponse, f3 as LatestTaskResultResponse, f4 as LatestTaskResultResponseResult, f5 as LineageEdgeResponse, f6 as LineageNodeResponse, f7 as LineageNodeResponseActivity, f8 as LineageNodeResponseEntity, f9 as LineageNodeResponseLatestVersion, fa as ListAgentActionsResponse, fb as ListAgentCandidatesResponse, fc as ListAllFlowSchedulesParams, fd as ListAllProjectsParams, fe as ListAllUsersParams, ff as ListBackendsResponse, fg as ListChipCouplingsParams, fh as ListChipNoteEventsParams, fi as ListChipQubitsParams, fj as ListCooldownWiringEventsParams, fk as ListCooldownWiringEventsResponse, fl as ListCooldownsParams, fm as ListCooldownsResponse, fn as ListCopilotChatSessionsResponse, fo as ListCryostatsResponse, fp as ListExecutionsParams, fq as ListExecutionsResponseLimit, fr as ListExecutionsResponseSkip, fs as ListExecutionsResponseTotal, ft as ListFlowSchedulesParams, fu as ListFlowSchedulesResponse, fv as ListForumCategoriesParams, fw as ListForumCategoriesResponse, fx as ListForumPostsParams, fy as ListIssueKnowledgeParams, fz as ListIssueKnowledgeResponse, fA as ListIssuesParams, fB as ListIssuesResponse, fC as ListMuxResponse, fD as ListMuxResponseMuxes, fE as ListNoteEventsResponse, fF as ListNotificationsParams, fG as ListNotificationsResponse, fH as ListTagResponse, fI as ListTargetNoteEventsParams, fJ as ListTaskFileBackendsResponse, fK as ListTaskInfoParams, fL as ListTaskInfoResponse, fM as ListTaskKnowledgeResponseCategories, fN as ListTaskResultAiReviewRunsParams, fO as ListTaskResultAiReviewsParams, fP as ListTaskResultsParams, fQ as ListTasksParams, fR as ListTopologies200, fS as ListTopologiesParams, fT as Logout200, fU as ManualEditItem, fV as ManualEditItemValue, fW as ManualEditsResponse, fX as ManualParameterUpdateRequest, fY as ManualParameterUpdateRequestParameters, fZ as ManualParameterUpdateResponse, f_ as ManualParameterUpdateResponseProvenanceActivityId, f$ as MarkAllNotificationsRead200, g0 as MeasError, g1 as MemberInvite, g2 as MemberItem, g3 as MemberItemAvatarKey, g4 as MemberItemDisplayName, g5 as MemberItemOrganization, g6 as MemberResponse, g7 as MemberResponseAvatarKey, g8 as MemberResponseDisplayName, g9 as MemberResponseInvitedBy, ga as MemberResponseInvitedByUserId, gb as MemberResponseLastAccessedAt, gc as MemberResponseOrganization, gd as MemberUpdate, ge as MetricHeatmapResponse, gf as MetricHeatmapResponseUnit, gg as MetricHeatmapResponseValues, gh as MetricHistoryItem, gi as MetricHistoryItemCalibratedAt, gj as MetricHistoryItemExcludedAt, gk as MetricHistoryItemExcludedBy, gl as MetricHistoryItemExcludedByUserId, gm as MetricHistoryItemInputParameters, gn as MetricHistoryItemInputParametersAnyOf, go as MetricHistoryItemName, gp as MetricHistoryItemOutputParameters, gq as MetricHistoryItemOutputParametersAnyOf, gr as MetricHistoryItemTaskId, gs as MetricHistoryItemValue, gt as MetricValue, gu as MetricValueExecutionId, gv as MetricValueStddev, gw as MetricValueTaskId, gx as MetricValueValue, gy as MetricsSummaryResponse, gz as MetricsSummaryResponseAverages, gA as ModelConfig, gB as ModelConfigApiKeyEnv, gC as ModelConfigBaseUrl, gD as ModelConfigKeepAlive, gE as ModelConfigNumCtx, gF as ModelConfigReasoningEffort, gG as ModelConfigTemperature, gH as ModelConfigTopK, gI as ModelConfigTopP, gJ as MuxDetailResponse, gK as MuxDetailResponseDetail, gL as MuxTask, gM as MuxTaskElapsedTime, gN as MuxTaskEndAt, gO as MuxTaskFigurePath, gP as MuxTaskInputParameters, gQ as MuxTaskInputParametersAnyOf, gR as MuxTaskJsonFigurePath, gS as MuxTaskMessage, gT as MuxTaskNote, gU as MuxTaskNoteAnyOf, gV as MuxTaskOutputParameterNames, gW as MuxTaskOutputParameters, gX as MuxTaskOutputParametersAnyOf, gY as MuxTaskQid, gZ as MuxTaskRawDataPath, g_ as MuxTaskStartAt, g$ as MuxTaskTaskId, h0 as MuxTaskTaskType, h1 as MuxTaskUpstreamId, h2 as NoteCommentModel, h3 as NoteCommentModelUpdatedAt, h4 as NoteCommentRequest, h5 as NoteEventResponse, h6 as NoteEventResponseActorUserId, h7 as NoteEventResponseExtra, h8 as NoteModel, h9 as NoteModelUpdatedAt, ha as NoteUpsertRequest, hb as NotificationResponse, hc as NotificationResponseActorUserId, hd as NotificationResponseReadAt, he as NotificationResponseRecipientUserId, hf as NumericBounds, hg as NumericBoundsMaximum, hh as NumericBoundsMinimum, hi as OutputParameterInfoResponse, hj as ParameterChangeResponse, hk as ParameterChangeResponseDelta, hl as ParameterChangeResponseDeltaPercent, hm as ParameterChangeResponsePreviousError, hn as ParameterChangeResponsePreviousValue, ho as ParameterChangeResponseValidFrom, hp as ParameterChangeResponseValue, hq as ParameterDiffResponse, hr as ParameterDiffResponseDelta, hs as ParameterDiffResponseDeltaPercent, ht as ParameterDiffResponseValueAfter, hu as ParameterDiffResponseValueBefore, hv as ParameterHistoryResponse, hw as ParameterModel, hx as ParameterModelValue, hy as ParameterVersionResponse, hz as ParameterVersionResponseValidFrom, hA as ParameterVersionResponseValidUntil, hB as ParameterVersionResponseValue, hC as PasswordChange, hD as PasswordReset, hE as Position, hF as ProjectCreate, hG as ProjectCreateDescription, hH as ProjectListItem, hI as ProjectListItemCreatedAt, hJ as ProjectListItemDescription, hK as ProjectResponseDescription, hL as ProjectRole, hM as ProjectUpdate, hN as ProjectUpdateDefaultRole, hO as ProjectUpdateDescription, hP as ProjectUpdateName, hQ as ProjectUpdateTags, hR as ProvenanceStatsResponseRelationCounts, hS as QdashApiSchemasAdminMemberListResponse, hT as QdashApiSchemasAdminProjectListResponse, hU as QdashApiSchemasProjectMemberListResponse, hV as Qubit, hW as QubitGateDuration, hX as QubitLifetime, hY as QubitMetricHistoryResponse, hZ as QubitResponseData, h_ as QubitResponseMetricNotes, h$ as ReExecuteRequest, i0 as ReExecuteRequestParameterOverrides, i1 as ReExecutionEntry, i2 as ReExecutionEntryStartAt, i3 as ReanalyzeOutputParameter, i4 as ReanalyzeQubitSpectroscopyParams, i5 as ReanalyzeQubitSpectroscopyParamsBinarizeThresholdSigmaMinus, i6 as ReanalyzeQubitSpectroscopyParamsBinarizeThresholdSigmaPlus, i7 as ReanalyzeQubitSpectroscopyParamsF01HeightMin, i8 as ReanalyzeQubitSpectroscopyParamsF12DistanceMax, i9 as ReanalyzeQubitSpectroscopyParamsF12DistanceMin, ia as ReanalyzeQubitSpectroscopyParamsF12HeightMin, ib as ReanalyzeQubitSpectroscopyParamsRetryWithTrim, ic as ReanalyzeQubitSpectroscopyParamsTopPower, id as ReanalyzeQubitSpectroscopyRequest, ie as ReanalyzeQubitSpectroscopyRequestSourceTaskId, ig as ReanalyzeResonatorSpectroscopyParams, ih as ReanalyzeResonatorSpectroscopyParamsBareShiftEstimatorType, ii as ReanalyzeResonatorSpectroscopyParamsBareShiftStrengthLimit, ij as ReanalyzeResonatorSpectroscopyParamsHighPowerMax, ik as ReanalyzeResonatorSpectroscopyParamsHighPowerMin, il as ReanalyzeResonatorSpectroscopyParamsLowPower, im as ReanalyzeResonatorSpectroscopyParamsNumResonators, io as ReanalyzeResonatorSpectroscopyParamsResonatorAssignmentPattern, ip as ReanalyzeResonatorSpectroscopyRequest, iq as ReanalyzeResonatorSpectroscopyRequestSourceTaskId, ir as ReanalyzeResponse, is as ReanalyzeResponseFigure, it as RecentExecutionsResponse, iu as RecommendedTaskResponse, iv as RemoveProjectMemberAdmin200, iw as ResetPassword200, ix as RunCodexAgentRequest, iy as RunCodexAgentRequestFlowFunctionName, iz as RunCodexAgentResponse, iA as SaveFileContent200, iB as SaveFileRequest, iC as SaveFlowRequestDefaultParameters, iD as SaveFlowRequestDefaultRunParameters, iE as SaveFlowRequestFlowFunctionName, iF as SaveTaskFileContent200, iG as SaveTaskFileRequest, iH as ScheduleFlowRequest, iI as ScheduleFlowRequestCron, iJ as ScheduleFlowRequestParameters, iK as ScheduleFlowRequestScheduledTime, iL as ScheduleFlowResponse, iM as ScheduleFlowResponseCron, iN as ScheduleFlowResponseNextRun, iO as SearchNoteEventsParams, iP as SeedImportRequest, iQ as SeedImportRequestManualData, iR as SeedImportRequestManualDataAnyOf, iS as SeedImportRequestParameters, iT as SeedImportRequestQids, iU as SeedImportResponse, iV as SeedImportResponseProvenanceActivityId, iW as SeedImportResultItem, iX as SeedImportResultItemMessage, iY as SeedImportResultItemValue, iZ as SeedImportSource, i_ as SettingsResponse, i$ as SubmitAgentActionRequest, j0 as SubmitAgentActionRequestParameterOverrides, j1 as SubmitAgentActionRequestTaskName, j2 as SuccessResponse, j3 as SystemRole, j4 as Tag, j5 as TargetNoteEntry, j6 as TargetNoteEntryMetricNotes, j7 as Task, j8 as TaskElapsedTime, j9 as TaskEndAt, ja as TaskFigurePath, jb as TaskFileBackend, jc as TaskFileSettings, jd as TaskFileSettingsDefaultBackend, je as TaskFileSettingsDefaultViewMode, jf as TaskFileSettingsSortOrder, jg as TaskFileTreeNode, jh as TaskFileTreeNodeChildren, ji as TaskHistoryResponse, jj as TaskHistoryResponseData, jk as TaskInfo, jl as TaskInfoCategory, jm as TaskInfoDescription, jn as TaskInfoTaskType, jo as TaskInputParameters, jp as TaskInputParametersAnyOf, jq as TaskJsonFigurePath, jr as TaskKnowledgeSummaryResponse, js as TaskMessage, jt as TaskNote, ju as TaskNoteAnyOf, jv as TaskNoteEntry, jw as TaskOutputParameterNames, jx as TaskOutputParameters, jy as TaskOutputParametersAnyOf, jz as TaskQid, jA as TaskRawDataPath, jB as TaskResponse, jC as TaskResponseBackend, jD as TaskResponseInputParameters, jE as TaskResponseOutputParameters, jF as TaskResult, jG as TaskResultAiReview, jH as TaskResultElapsedTime, jI as TaskResultEndAt, jJ as TaskResultExcludeRequest, jK as TaskResultExcludeResponse, jL as TaskResultExcludeResponseExcludedAt, jM as TaskResultExcludeResponseExcludedBy, jN as TaskResultExcludeResponseExcludedByUserId, jO as TaskResultExecutionId, jP as TaskResultFigurePath, jQ as TaskResultInputParameters, jR as TaskResultInputParametersAnyOf, jS as TaskResultJsonFigurePath, jT as TaskResultListItem, jU as TaskResultListItemElapsedTime, jV as TaskResultListItemEndAt, jW as TaskResultListItemSourceTaskId, jX as TaskResultListItemStartAt, jY as TaskResultListItemUserId, jZ as TaskResultListResponseStatusCounts, j_ as TaskResultMessage, j$ as TaskResultNote, k0 as TaskResultNoteAnyOf, k1 as TaskResultOutputParameterNames, k2 as TaskResultOutputParameters, k3 as TaskResultOutputParametersAnyOf, k4 as TaskResultQid, k5 as TaskResultRawDataPath, k6 as TaskResultResponseElapsedTime, k7 as TaskResultResponseEndAt, k8 as TaskResultResponseInputParameters, k9 as TaskResultResponseOutputParameters, ka as TaskResultResponseRunParameters, kb as TaskResultResponseSourceTaskId, kc as TaskResultResponseStartAt, kd as TaskResultResponseUserId, ke as TaskResultRunParameters, kf as TaskResultRunParametersAnyOf, kg as TaskResultStartAt, kh as TaskResultTaskId, ki as TaskResultTaskType, kj as TaskResultUpstreamId, kk as TaskRunParameters, kl as TaskRunParametersAnyOf, km as TaskStartAt, kn as TaskTaskId, ko as TaskTaskType, kp as TaskUpstreamId, kq as TaskUserId, kr as TimeSeriesDataData, ks as TokenResponse, kt as TokenResponseDefaultProjectId, ku as UISettings, kv as UITaskFilesSettings, kw as UITaskFilesSettingsDefaultBackend, kx as UITaskFilesSettingsDefaultViewMode, ky as UITaskFilesSettingsSortOrder, kz as UnreadNotificationCountResponse, kA as UpdateChipRequest, kB as UpdateChipRequestActivityStatus, kC as UpdateChipRequestNote, kD as UpdateChipRequestTopologyId, kE as UpdateCopilotChatSessionRequest, kF as UpdateCopilotChatSessionRequestContext, kG as UpdateCopilotChatSessionRequestContextAnyOf, kH as UpdateCopilotChatSessionRequestMessages, kI as UpdateCopilotChatSessionRequestTitle, kJ as UpdateCouplingNoteCommentParams, kK as UpdateQubitNoteCommentParams, kL as UpdateScheduleRequest, kM as UpdateScheduleRequestCron, kN as UpdateScheduleRequestParameters, kO as UpdateScheduleRequestParametersAnyOf, kP as UpdateScheduleResponse, kQ as UpdateUserRequest, kR as UpdateUserRequestAvatarKey, kS as UpdateUserRequestDisabled, kT as UpdateUserRequestDisplayName, kU as UpdateUserRequestOrganization, kV as UpdateUserRequestSystemRole, kW as UpsertChipNoteParams, kX as UpsertCouplingMetricNoteParams, kY as UpsertCouplingNoteParams, kZ as UpsertQubitMetricNoteParams, k_ as UpsertQubitNoteParams, k$ as User, l0 as UserAvatarKey, l1 as UserCreate, l2 as UserCreateAvatarKey, l3 as UserCreateDisplayName, l4 as UserCreateOrganization, l5 as UserCreatePassword, l6 as UserDefaultProjectId, l7 as UserDetailResponse, l8 as UserDetailResponseAvatarKey, l9 as UserDetailResponseCreatedAt, la as UserDetailResponseDefaultProjectId, lb as UserDetailResponseDisplayName, lc as UserDetailResponseOrganization, ld as UserDetailResponseUpdatedAt, le as UserDisabled, lf as UserDisplayName, lg as UserListItem, lh as UserListItemAvatarKey, li as UserListItemDefaultProjectId, lj as UserListItemDisplayName, lk as UserListItemOrganization, ll as UserListResponse, lm as UserOrganization, ln as UserProfileUpdate, lo as UserProfileUpdateAvatarKey, lp as UserProfileUpdateDisplayName, lq as UserWithToken, lr as UserWithTokenAvatarKey, ls as UserWithTokenDefaultProjectId, lt as UserWithTokenDisabled, lu as UserWithTokenDisplayName, lv as UserWithTokenInitialPassword, lw as UserWithTokenOrganization, lx as ValidateFileContent200, ly as ValidateFileRequest } from './validateFileRequest-CIe5ktwo.js';
5
5
  export { Detail, HTTPValidationError, ValidationError, ValidationErrorCtx, ValidationErrorLocItem } from './models.js';
6
6
  import 'axios';
7
7
 
@@ -62,6 +62,19 @@ interface TaskResultFigureOptions {
62
62
  }
63
63
  interface QDashClientOptions extends TransportOptions {
64
64
  }
65
+ interface RecentChangesOptions {
66
+ parameterNames?: string[];
67
+ withinHours?: number;
68
+ limit?: number;
69
+ }
70
+ interface DegradationTrendsOptions {
71
+ minStreak?: number;
72
+ limit?: number;
73
+ parameterNames?: string[];
74
+ }
75
+ interface RecalibrationRecommendationsOptions {
76
+ maxDepth?: number;
77
+ }
65
78
  declare class QDashClient {
66
79
  readonly api: ReturnType<typeof getQDashAPI>;
67
80
  readonly config: QDashConfig;
@@ -156,9 +169,15 @@ declare class QDashClient {
156
169
  getForumPost(postId: string): Promise<ForumPostResponse>;
157
170
  updateForumPost(postId: string, request: ForumPostUpdate): Promise<ForumPostResponse>;
158
171
  getForumPostReplies(postId: string): Promise<ListForumPostsResponse>;
172
+ uploadForumImage(image: Blob, filename: string): Promise<ForumImageUploadResponse>;
159
173
  getProvenanceLineage(entityId: string): Promise<LineageResponse>;
160
174
  getProvenanceImpact(entityId: string): Promise<ImpactResponse>;
161
175
  getProvenanceStats(): Promise<ProvenanceStatsResponse>;
176
+ getExecutionLockStatus(): Promise<ExecutionLockStatusResponse>;
177
+ compareExecutions(executionIdBefore: string, executionIdAfter: string): Promise<ExecutionComparisonResponse>;
178
+ getRecentChanges(options?: RecentChangesOptions): Promise<RecentChangesResponse>;
179
+ getDegradationTrends(options?: DegradationTrendsOptions): Promise<DegradationTrendsResponse>;
180
+ getRecalibrationRecommendations(entityId: string, options?: RecalibrationRecommendationsOptions): Promise<RecalibrationRecommendationResponse>;
162
181
  private bindGeneratedApi;
163
182
  private get;
164
183
  private post;
@@ -193,4 +212,4 @@ declare class QDashTransportError extends QDashApiError {
193
212
  }
194
213
  declare const QDashClientError: typeof QDashApiError;
195
214
 
196
- export { AgentActionResponse, AgentActionType, AgentCampaignCandidateReference, AgentCampaignCommitResponse, AgentCandidateCommitResponse, AgentCandidateResponse, AgentSessionPolicy, AgentSessionResponse, CandidateGateResponse, ChipMetricsResponse, ChipResponse, CouplingResponse, type CreateAgentSessionOptions, type DownloadedFile, ExecuteFlowResponse, ExecutionResponseDetail, FileTreeNode, FlowTemplate, FlowTemplateWithCode, ForumPostCreate, ForumPostResponse, ForumPostUpdate, GetFlowResponse, ImpactResponse, LineageResponse, ListChipsResponse, ListCouplingsResponse, ListExecutionsResponse, ListFlowsResponse, ListForumPostsResponse, ListQubitsResponse, ListTaskKnowledgeResponse, ListTaskResponse, type ListTaskResultsOptions, type PaginationOptions, type PollOptions, ProjectResponse, ProvenanceStatsResponse, QDashApiError, QDashAuthError, QDashClient, QDashClientError, type QDashClientOptions, QDashConfig, QDashConfigError, QDashNotFoundError, QDashTransportError, QDashValidationError, QdashApiSchemasProjectProjectListResponse, QubitResponse, SaveFlowRequest, SaveFlowResponse, type SubmitAgentActionOptions, TaskKnowledgeResponse, type TaskResultFigureOptions, TaskResultListResponse, TaskResultResponse, type TaskResultsTimeseriesOptions, TimeSeriesData, getQDashAPI };
215
+ export { AgentActionResponse, AgentActionType, AgentCampaignCandidateReference, AgentCampaignCommitResponse, AgentCandidateCommitResponse, AgentCandidateResponse, AgentSessionPolicy, AgentSessionResponse, CandidateGateResponse, ChipMetricsResponse, ChipResponse, CouplingResponse, type CreateAgentSessionOptions, type DegradationTrendsOptions, DegradationTrendsResponse, type DownloadedFile, ExecuteFlowResponse, ExecutionComparisonResponse, ExecutionLockStatusResponse, ExecutionResponseDetail, FileTreeNode, FlowTemplate, FlowTemplateWithCode, ForumImageUploadResponse, ForumPostCreate, ForumPostResponse, ForumPostUpdate, GetFlowResponse, ImpactResponse, LineageResponse, ListChipsResponse, ListCouplingsResponse, ListExecutionsResponse, ListFlowsResponse, ListForumPostsResponse, ListQubitsResponse, ListTaskKnowledgeResponse, ListTaskResponse, type ListTaskResultsOptions, type PaginationOptions, type PollOptions, ProjectResponse, ProvenanceStatsResponse, QDashApiError, QDashAuthError, QDashClient, QDashClientError, type QDashClientOptions, QDashConfig, QDashConfigError, QDashNotFoundError, QDashTransportError, QDashValidationError, QdashApiSchemasProjectProjectListResponse, QubitResponse, RecalibrationRecommendationResponse, type RecalibrationRecommendationsOptions, type RecentChangesOptions, RecentChangesResponse, SaveFlowRequest, SaveFlowResponse, type SubmitAgentActionOptions, TaskKnowledgeResponse, type TaskResultFigureOptions, TaskResultListResponse, TaskResultResponse, type TaskResultsTimeseriesOptions, TimeSeriesData, getQDashAPI };
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  QDashTransportError,
8
8
  QDashValidationError,
9
9
  getQDashAPI
10
- } from "./chunk-F75WR2JX.js";
10
+ } from "./chunk-RQJVO65O.js";
11
11
 
12
12
  // src/client.ts
13
13
  import { setTimeout as sleep2 } from "timers/promises";
@@ -287,6 +287,7 @@ var QDashTransport = class {
287
287
  if (config.data !== void 0) {
288
288
  if (typeof config.data === "string" || config.data instanceof URLSearchParams || config.data instanceof FormData || config.data instanceof Blob || config.data instanceof ArrayBuffer) {
289
289
  body = config.data;
290
+ if (config.data instanceof FormData) headers.delete("Content-Type");
290
291
  } else {
291
292
  if (!headers.has("Content-Type")) headers.set("Content-Type", "application/json");
292
293
  body = JSON.stringify(config.data);
@@ -779,6 +780,11 @@ var QDashClient = class _QDashClient {
779
780
  async getForumPostReplies(postId) {
780
781
  return this.get(`/forum/posts/${pathPart(postId)}/replies`);
781
782
  }
783
+ async uploadForumImage(image, filename) {
784
+ const form = new FormData();
785
+ form.append("file", image, filename);
786
+ return this.post("/forum/upload-image", form);
787
+ }
782
788
  async getProvenanceLineage(entityId) {
783
789
  return this.get(`/provenance/lineage/${pathPart(entityId)}`);
784
790
  }
@@ -788,6 +794,44 @@ var QDashClient = class _QDashClient {
788
794
  async getProvenanceStats() {
789
795
  return this.get("/provenance/stats");
790
796
  }
797
+ async getExecutionLockStatus() {
798
+ return this.get("/executions/lock-status");
799
+ }
800
+ async compareExecutions(executionIdBefore, executionIdAfter) {
801
+ return this.get(
802
+ "/provenance/compare",
803
+ query({
804
+ execution_id_before: executionIdBefore,
805
+ execution_id_after: executionIdAfter
806
+ })
807
+ );
808
+ }
809
+ async getRecentChanges(options = {}) {
810
+ return this.get(
811
+ "/provenance/changes",
812
+ query({
813
+ parameter_names: options.parameterNames,
814
+ within_hours: options.withinHours,
815
+ limit: options.limit
816
+ })
817
+ );
818
+ }
819
+ async getDegradationTrends(options = {}) {
820
+ return this.get(
821
+ "/provenance/degradation-trends",
822
+ query({
823
+ min_streak: options.minStreak,
824
+ limit: options.limit,
825
+ parameter_names: options.parameterNames
826
+ })
827
+ );
828
+ }
829
+ async getRecalibrationRecommendations(entityId, options = {}) {
830
+ return this.get(
831
+ `/provenance/recommendations/${pathPart(entityId)}`,
832
+ query({ max_depth: options.maxDepth })
833
+ );
834
+ }
791
835
  bindGeneratedApi(api) {
792
836
  const entries = Object.entries(api).map(([name, method]) => {
793
837
  const generated = method;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts","../src/config.ts","../src/transport.ts"],"sourcesContent":["import { setTimeout as sleep } from \"node:timers/promises\";\n\nimport { getQDashAPI } from \"./generated/api.js\";\n\nimport { QDashConfig } from \"./config.js\";\nimport { QDashNotFoundError } from \"./errors.js\";\nimport type {\n AgentActionResponse,\n AgentCampaignCommitResponse,\n AgentCandidateCommitResponse,\n AgentCandidateResponse,\n AgentSessionPolicy,\n AgentActionType,\n AgentCampaignCandidateReference,\n FileTreeNode,\n ForumPostCreate,\n ForumPostResponse,\n ForumPostUpdate,\n ImpactResponse,\n LineageResponse,\n ListAgentActionsResponse,\n ListAgentCandidatesResponse,\n ListCouplingsResponse,\n ListFlowsResponse,\n ListForumPostsResponse,\n ListQubitsResponse,\n ProvenanceStatsResponse,\n QdashApiSchemasProjectProjectListResponse,\n SaveFlowRequest,\n SaveFlowResponse,\n AgentSessionResponse,\n CandidateGateResponse,\n ChipMetricsResponse,\n ChipResponse,\n CouplingResponse,\n ExecuteFlowResponse,\n ExecutionResponseDetail,\n FlowTemplate,\n FlowTemplateWithCode,\n GetFlowResponse,\n ListChipsResponse,\n ListExecutionsResponse,\n ListTaskKnowledgeResponse,\n ListTaskResponse,\n ProjectResponse,\n QubitResponse,\n TaskKnowledgeResponse,\n TaskResultListResponse,\n TaskResultResponse,\n TimeSeriesData,\n} from \"./models.js\";\nimport { QDashTransport, type QueryValue, type TransportOptions } from \"./transport.js\";\n\ntype JsonObject = Record<string, unknown>;\ntype Query = Record<string, QueryValue>;\n\nexport interface PaginationOptions {\n limit?: number;\n offset?: number;\n}\n\nexport interface TaskResultsTimeseriesOptions {\n chipId: string;\n parameter: string;\n startAt: string;\n endAt: string;\n tag?: string;\n qid?: string;\n}\n\nexport interface ListTaskResultsOptions {\n chipId?: string;\n taskName?: string;\n qid?: string;\n couplingId?: string;\n status?: string;\n startAt?: string;\n endAt?: string;\n limit?: number;\n skip?: number;\n}\n\nexport interface CreateAgentSessionOptions {\n chipId: string;\n policy: AgentSessionPolicy;\n expiresInSeconds?: number;\n skillName?: string;\n skillVersion?: string;\n skillHash?: string;\n modelName?: string;\n}\n\nexport interface SubmitAgentActionOptions {\n idempotencyKey: string;\n expectedStateVersion: number;\n actionType: AgentActionType;\n taskName?: string | null;\n qids?: string[];\n parameterOverrides?: Record<string, number>;\n diagnosis?: string;\n}\n\nexport interface PollOptions {\n timeoutSeconds?: number;\n pollIntervalSeconds?: number;\n}\n\nexport interface DownloadedFile {\n data: ArrayBuffer;\n mediaType: string;\n filename?: string;\n}\n\nexport interface TaskResultFigureOptions {\n index?: number;\n preferJson?: boolean;\n}\n\nexport interface QDashClientOptions extends TransportOptions {}\n\nfunction pathPart(value: string): string {\n return encodeURIComponent(value);\n}\n\nfunction query(values: Record<string, QueryValue>): Query {\n return Object.fromEntries(Object.entries(values).filter(([, value]) => value != null));\n}\n\nfunction filenameFromPath(path: string): string | undefined {\n return path.split(\"/\").filter(Boolean).at(-1);\n}\n\nfunction mediaTypeForPath(path: string): string {\n const lower = path.toLowerCase();\n if (lower.endsWith(\".png\")) return \"image/png\";\n if (lower.endsWith(\".jpg\") || lower.endsWith(\".jpeg\")) return \"image/jpeg\";\n if (lower.endsWith(\".gif\")) return \"image/gif\";\n if (lower.endsWith(\".webp\")) return \"image/webp\";\n if (lower.endsWith(\".json\")) return \"application/json\";\n return \"application/octet-stream\";\n}\n\nexport class QDashClient {\n readonly api: ReturnType<typeof getQDashAPI>;\n readonly config: QDashConfig;\n\n private readonly transport: QDashTransport;\n\n constructor(config: QDashConfig, options: QDashClientOptions = {}) {\n this.config = config;\n this.transport = new QDashTransport(config, options);\n this.api = this.bindGeneratedApi(getQDashAPI());\n }\n\n static fromEnv(\n env: Record<string, string | undefined> = process.env,\n options: QDashClientOptions = {},\n ): QDashClient {\n return new QDashClient(QDashConfig.fromEnv(env), { ...options, env });\n }\n\n static async fromProfile(\n profile = \"default\",\n path?: string,\n options: QDashClientOptions = {},\n ): Promise<QDashClient> {\n const config = path\n ? await QDashConfig.fromFile(profile, path)\n : await QDashConfig.fromFile(profile);\n return new QDashClient(config, options);\n }\n\n async listChips(): Promise<ListChipsResponse> {\n return this.get(\"/chips\");\n }\n\n async getDefaultChip(): Promise<ChipResponse> {\n const { chips } = await this.listChips();\n if (chips.length === 0) throw new QDashNotFoundError(\"No chips are available\");\n const active = chips.filter((chip) => chip.activity_status === \"active\");\n const candidates = active.length > 0 ? active : chips;\n return candidates.reduce((latest, chip) => {\n const latestTime = latest.installed_at ? Date.parse(latest.installed_at) : 0;\n const chipTime = chip.installed_at ? Date.parse(chip.installed_at) : 0;\n return chipTime > latestTime ? chip : latest;\n });\n }\n\n async getDefaultChipId(): Promise<string> {\n return (await this.getDefaultChip()).chip_id;\n }\n\n async getChipMetrics(chipId: string): Promise<ChipMetricsResponse> {\n return this.get(`/metrics/chips/${pathPart(chipId)}/metrics`);\n }\n\n async getMetricsConfig(): Promise<JsonObject> {\n return this.get(\"/metrics/config\");\n }\n\n async listChipQubits(\n chipId: string,\n options: PaginationOptions = {},\n ): Promise<ListQubitsResponse> {\n return this.get(`/chips/${pathPart(chipId)}/qubits`, query({ limit: options.limit, offset: options.offset }));\n }\n\n async getChipQubit(chipId: string, qid: string): Promise<QubitResponse> {\n return this.get(`/chips/${pathPart(chipId)}/qubits/${pathPart(qid)}`);\n }\n\n async listChipCouplings(\n chipId: string,\n options: PaginationOptions = {},\n ): Promise<ListCouplingsResponse> {\n return this.get(`/chips/${pathPart(chipId)}/couplings`, query({ limit: options.limit, offset: options.offset }));\n }\n\n async getChipCoupling(chipId: string, couplingId: string): Promise<CouplingResponse> {\n return this.get(`/chips/${pathPart(chipId)}/couplings/${pathPart(couplingId)}`);\n }\n\n async getTaskResultsTimeseries(\n options: TaskResultsTimeseriesOptions,\n ): Promise<TimeSeriesData> {\n return this.get(\n \"/task-results/timeseries\",\n query({\n chip_id: options.chipId,\n parameter: options.parameter,\n start_at: options.startAt,\n end_at: options.endAt,\n tag: options.tag,\n qid: options.qid,\n }),\n );\n }\n\n async listTaskResults(options: ListTaskResultsOptions = {}): Promise<TaskResultListResponse> {\n return this.get(\n \"/task-results\",\n query({\n chip_id: options.chipId,\n task_name: options.taskName,\n qid: options.qid,\n coupling_id: options.couplingId,\n status: options.status,\n start_at: options.startAt,\n end_at: options.endAt,\n limit: options.limit,\n skip: options.skip,\n }),\n );\n }\n\n async getTaskResult(taskId: string): Promise<TaskResultResponse> {\n return this.get(`/tasks/${pathPart(taskId)}/result`);\n }\n\n async listTasks(backend?: string): Promise<ListTaskResponse> {\n return this.get(\"/tasks\", query({ backend }));\n }\n\n async listTaskKnowledge(): Promise<ListTaskKnowledgeResponse> {\n return this.get(\"/task-knowledge\");\n }\n\n async getTaskKnowledge(taskName: string): Promise<TaskKnowledgeResponse> {\n return this.get(`/tasks/${pathPart(taskName)}/knowledge`);\n }\n\n async getTaskKnowledgeMarkdown(taskName: string): Promise<string> {\n return this.get(`/tasks/${pathPart(taskName)}/knowledge/markdown`);\n }\n\n async listProjects(): Promise<QdashApiSchemasProjectProjectListResponse> {\n return this.get(\"/projects\");\n }\n\n async getProject(projectId: string): Promise<ProjectResponse> {\n return this.get(`/projects/${pathPart(projectId)}`);\n }\n\n async getFilesTree(): Promise<FileTreeNode[]> {\n const payload = await this.get<{ tree?: FileTreeNode[] } | FileTreeNode[]>(\n \"/files/tree\",\n );\n return Array.isArray(payload) ? payload : (payload.tree ?? []);\n }\n\n async getFileContent(path: string): Promise<JsonObject> {\n return this.get(\"/files/content\", { path });\n }\n\n async saveFileContent(path: string, content: string): Promise<JsonObject> {\n return this.put(\"/files/content\", { path, content });\n }\n\n async getGitStatus(): Promise<JsonObject> {\n return this.get(\"/files/git/status\");\n }\n\n async listFlows(): Promise<ListFlowsResponse> {\n return this.get(\"/flows\");\n }\n\n async getFlow(name: string): Promise<GetFlowResponse> {\n return this.get(`/flows/${pathPart(name)}`);\n }\n\n async listFlowTemplates(): Promise<FlowTemplate[]> {\n return this.get(\"/flows/templates\");\n }\n\n async getFlowTemplate(templateId: string): Promise<FlowTemplateWithCode> {\n return this.get(`/flows/templates/${pathPart(templateId)}`);\n }\n\n async saveFlow(request: SaveFlowRequest): Promise<SaveFlowResponse> {\n return this.post(\"/flows\", request);\n }\n\n async executeFlow(name: string, parameters: JsonObject = {}): Promise<ExecuteFlowResponse> {\n return this.post(`/flows/${pathPart(name)}/execute`, { parameters });\n }\n\n async listExecutions(options: {\n flowName?: string;\n status?: string;\n skip?: number;\n limit?: number;\n } = {}): Promise<ListExecutionsResponse> {\n return this.get(\n \"/executions\",\n query({\n flow_name: options.flowName,\n status: options.status,\n skip: options.skip,\n limit: options.limit,\n }),\n );\n }\n\n async getExecution(executionId: string): Promise<ExecutionResponseDetail> {\n return this.get(`/executions/${pathPart(executionId)}`);\n }\n\n async getExecutionFigure(path: string): Promise<DownloadedFile> {\n const data = await this.transport.request<ArrayBuffer>({\n method: \"GET\",\n url: \"/executions/figure\",\n params: { path },\n responseType: \"arraybuffer\",\n });\n return {\n data,\n mediaType: mediaTypeForPath(path),\n filename: filenameFromPath(path),\n };\n }\n\n async downloadRawDataFile(path: string): Promise<DownloadedFile> {\n const data = await this.transport.request<ArrayBuffer>({\n method: \"GET\",\n url: \"/files/raw-data\",\n params: { path },\n responseType: \"arraybuffer\",\n });\n return {\n data,\n mediaType: mediaTypeForPath(path),\n filename: filenameFromPath(path),\n };\n }\n\n async getTaskResultFigure(\n taskId: string,\n options: TaskResultFigureOptions = {},\n ): Promise<DownloadedFile & { path: string; figurePaths: string[]; jsonFigurePaths: string[] }> {\n const task = await this.getTaskResult(taskId);\n const figurePaths = task.figure_path ?? [];\n const jsonFigurePaths = task.json_figure_path ?? [];\n const paths = options.preferJson && jsonFigurePaths.length > 0 ? jsonFigurePaths : figurePaths;\n const index = options.index ?? 0;\n const path = paths[index];\n if (!path) {\n throw new QDashNotFoundError(`No figure at index ${index} for task result '${taskId}'`);\n }\n const file = await this.getExecutionFigure(path);\n return { ...file, path, figurePaths, jsonFigurePaths };\n }\n\n async waitForExecution(\n executionId: string,\n options: PollOptions = {},\n ): Promise<ExecutionResponseDetail> {\n const timeoutSeconds = options.timeoutSeconds ?? 600;\n const pollIntervalSeconds = options.pollIntervalSeconds ?? 0.5;\n this.validatePollOptions(timeoutSeconds, pollIntervalSeconds);\n const deadline = Date.now() + timeoutSeconds * 1_000;\n const terminal = new Set([\"completed\", \"failed\", \"cancelled\", \"canceled\", \"crashed\"]);\n while (true) {\n const execution = await this.getExecution(executionId);\n if (terminal.has(execution.status.toLowerCase())) return execution;\n if (Date.now() >= deadline) {\n throw new Error(\n `Execution '${executionId}' did not reach a terminal state within ${timeoutSeconds} seconds`,\n );\n }\n await sleep(pollIntervalSeconds * 1_000);\n }\n }\n\n async createAgentSession(options: CreateAgentSessionOptions): Promise<AgentSessionResponse> {\n return this.post(\"/agent-sessions\", {\n chip_id: options.chipId,\n policy: options.policy,\n expires_in_seconds: options.expiresInSeconds ?? 21_600,\n skill_name: options.skillName ?? \"\",\n skill_version: options.skillVersion ?? \"\",\n skill_hash: options.skillHash ?? \"\",\n model_name: options.modelName ?? \"\",\n });\n }\n\n async getAgentSession(sessionId: string): Promise<AgentSessionResponse> {\n return this.get(`/agent-sessions/${pathPart(sessionId)}`);\n }\n\n async evaluateAgentCandidateGate(\n sessionId: string,\n parameterName: string,\n value: number,\n ): Promise<CandidateGateResponse> {\n return this.post(`/agent-sessions/${pathPart(sessionId)}/candidate-gate`, {\n parameter_name: parameterName,\n value,\n });\n }\n\n async submitAgentAction(\n sessionId: string,\n options: SubmitAgentActionOptions,\n ): Promise<AgentActionResponse> {\n return this.post(`/agent-sessions/${pathPart(sessionId)}/actions`, {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n action_type: options.actionType,\n task_name: options.taskName ?? null,\n qids: options.qids ?? [],\n parameter_overrides: options.parameterOverrides ?? {},\n diagnosis: options.diagnosis ?? \"\",\n });\n }\n\n async executeAgentAction(\n sessionId: string,\n actionId: string,\n options: { sourceExecutionId: string; updateParams?: boolean; reconfigure?: boolean },\n ): Promise<AgentActionResponse> {\n return this.post(\n `/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}/execute`,\n {\n source_execution_id: options.sourceExecutionId,\n update_params: options.updateParams ?? false,\n reconfigure: options.reconfigure ?? false,\n },\n );\n }\n\n async getAgentAction(sessionId: string, actionId: string): Promise<AgentActionResponse> {\n return this.get(`/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}`);\n }\n\n async listAgentActions(sessionId: string): Promise<AgentActionResponse[]> {\n const payload = await this.get<ListAgentActionsResponse>(\n `/agent-sessions/${pathPart(sessionId)}/actions`,\n );\n return payload.items;\n }\n\n async waitForAgentAction(\n sessionId: string,\n actionId: string,\n options: PollOptions = {},\n ): Promise<AgentActionResponse> {\n return this.pollAgentAction(sessionId, actionId, \"operation_id\", options);\n }\n\n async waitForAgentActionExecution(\n sessionId: string,\n actionId: string,\n options: PollOptions = {},\n ): Promise<AgentActionResponse> {\n return this.pollAgentAction(\n sessionId,\n actionId,\n \"execution_id\",\n { timeoutSeconds: 600, ...options },\n );\n }\n\n async listAgentActionCandidates(\n sessionId: string,\n actionId: string,\n ): Promise<AgentCandidateResponse[]> {\n const payload = await this.get<ListAgentCandidatesResponse>(\n `/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}/candidates`,\n );\n return payload.items;\n }\n\n async commitAgentActionCandidate(\n sessionId: string,\n actionId: string,\n parameterName: string,\n options: { idempotencyKey: string; expectedStateVersion: number; taskId: string },\n ): Promise<AgentCandidateCommitResponse> {\n return this.post(\n `/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}/candidates/${pathPart(parameterName)}/commit`,\n {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n task_id: options.taskId,\n },\n );\n }\n\n async commitAgentCampaignCandidates(\n sessionId: string,\n candidates: AgentCampaignCandidateReference[],\n options: { idempotencyKey: string; expectedStateVersion: number },\n ): Promise<AgentCampaignCommitResponse> {\n return this.post(`/agent-sessions/${pathPart(sessionId)}/campaign-commits`, {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n candidates,\n });\n }\n\n async getAgentCampaignCommit(\n sessionId: string,\n commitId: string,\n ): Promise<AgentCampaignCommitResponse> {\n return this.get(\n `/agent-sessions/${pathPart(sessionId)}/campaign-commits/${pathPart(commitId)}`,\n );\n }\n\n async getAgentCandidateCommit(\n sessionId: string,\n commitId: string,\n ): Promise<AgentCandidateCommitResponse> {\n return this.get(`/agent-sessions/${pathPart(sessionId)}/commits/${pathPart(commitId)}`);\n }\n\n async applyAgentCandidateCommit(\n sessionId: string,\n commitId: string,\n options: {\n idempotencyKey: string;\n expectedStateVersion: number;\n pushToGithub?: boolean;\n },\n ): Promise<AgentCandidateCommitResponse> {\n return this.post(\n `/agent-sessions/${pathPart(sessionId)}/commits/${pathPart(commitId)}/apply`,\n {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n push_to_github: options.pushToGithub ?? false,\n },\n );\n }\n\n async waitForAgentCandidateApply(\n sessionId: string,\n commitId: string,\n options: PollOptions = {},\n ): Promise<AgentCandidateCommitResponse> {\n const timeoutSeconds = options.timeoutSeconds ?? 300;\n const pollIntervalSeconds = options.pollIntervalSeconds ?? 0.5;\n this.validatePollOptions(timeoutSeconds, pollIntervalSeconds);\n const deadline = Date.now() + timeoutSeconds * 1_000;\n while (true) {\n const commit = await this.getAgentCandidateCommit(sessionId, commitId);\n if (commit.backend_status === \"applied\" || commit.backend_status === \"failed\") return commit;\n if (Date.now() >= deadline) {\n throw new Error(\n `Agent candidate commit '${commitId}' was not applied within ${timeoutSeconds} seconds`,\n );\n }\n await sleep(pollIntervalSeconds * 1_000);\n }\n }\n\n async listForumPosts(options: {\n category?: string;\n status?: string;\n chipId?: string;\n targetType?: string;\n targetId?: string;\n skip?: number;\n limit?: number;\n } = {}): Promise<ListForumPostsResponse> {\n return this.get(\n \"/forum/posts\",\n query({\n category: options.category,\n status: options.status,\n chip_id: options.chipId,\n target_type: options.targetType,\n target_id: options.targetId,\n skip: options.skip,\n limit: options.limit,\n }),\n );\n }\n\n async createForumPost(request: ForumPostCreate): Promise<ForumPostResponse> {\n return this.post(\"/forum/posts\", request);\n }\n\n async getForumPost(postId: string): Promise<ForumPostResponse> {\n return this.get(`/forum/posts/${pathPart(postId)}`);\n }\n\n async updateForumPost(\n postId: string,\n request: ForumPostUpdate,\n ): Promise<ForumPostResponse> {\n return this.patch(`/forum/posts/${pathPart(postId)}`, request);\n }\n\n async getForumPostReplies(postId: string): Promise<ListForumPostsResponse> {\n return this.get(`/forum/posts/${pathPart(postId)}/replies`);\n }\n\n async getProvenanceLineage(entityId: string): Promise<LineageResponse> {\n return this.get(`/provenance/lineage/${pathPart(entityId)}`);\n }\n\n async getProvenanceImpact(entityId: string): Promise<ImpactResponse> {\n return this.get(`/provenance/impact/${pathPart(entityId)}`);\n }\n\n async getProvenanceStats(): Promise<ProvenanceStatsResponse> {\n return this.get(\"/provenance/stats\");\n }\n\n private bindGeneratedApi(\n api: ReturnType<typeof getQDashAPI>,\n ): ReturnType<typeof getQDashAPI> {\n const entries = Object.entries(api).map(([name, method]) => {\n const generated = method as (...args: unknown[]) => unknown;\n const bound = (...args: unknown[]) => {\n const optionIndex = Math.max(0, generated.length - 1);\n const callArgs = [...args];\n while (callArgs.length < optionIndex) callArgs.push(undefined);\n const supplied = callArgs[optionIndex];\n const options =\n typeof supplied === \"object\" && supplied !== null\n ? (supplied as Record<string, unknown>)\n : {};\n callArgs[optionIndex] = { ...options, qdashTransport: this.transport };\n return generated(...callArgs);\n };\n return [name, bound];\n });\n return Object.fromEntries(entries) as ReturnType<typeof getQDashAPI>;\n }\n\n private get<T>(path: string, requestQuery?: Query): Promise<T> {\n return this.transport.requestJson<T>(\"GET\", path, { query: requestQuery });\n }\n\n private post<T>(path: string, body?: unknown): Promise<T> {\n return this.transport.requestJson<T>(\"POST\", path, { body });\n }\n\n private put<T>(path: string, body?: unknown): Promise<T> {\n return this.transport.requestJson<T>(\"PUT\", path, { body });\n }\n\n private patch<T>(path: string, body?: unknown): Promise<T> {\n return this.transport.requestJson<T>(\"PATCH\", path, { body });\n }\n\n private async pollAgentAction(\n sessionId: string,\n actionId: string,\n field: \"operation_id\" | \"execution_id\",\n options: PollOptions,\n ): Promise<AgentActionResponse> {\n const timeoutSeconds = options.timeoutSeconds ?? 120;\n const pollIntervalSeconds = options.pollIntervalSeconds ?? 0.5;\n this.validatePollOptions(timeoutSeconds, pollIntervalSeconds);\n const deadline = Date.now() + timeoutSeconds * 1_000;\n while (true) {\n const action = await this.getAgentAction(sessionId, actionId);\n if (action.execution_status === \"failed\" || action[field] != null) return action;\n if (Date.now() >= deadline) {\n throw new Error(\n `Agent action '${actionId}' did not produce ${field} within ${timeoutSeconds} seconds`,\n );\n }\n await sleep(pollIntervalSeconds * 1_000);\n }\n }\n\n private validatePollOptions(timeoutSeconds: number, pollIntervalSeconds: number): void {\n if (timeoutSeconds < 0 || pollIntervalSeconds < 0) {\n throw new RangeError(\"Polling timeout and interval must be non-negative\");\n }\n }\n}\n","import { chmod, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nimport ini from \"ini\";\n\nimport { QDashConfigError } from \"./errors.js\";\n\nexport interface QDashRetryConfig {\n maxAttempts: number;\n baseDelaySeconds: number;\n maxDelaySeconds: number;\n}\n\nexport interface QDashConfigOptions {\n baseUrl: string;\n username?: string;\n passwordEnv?: string;\n apiToken?: string;\n projectId?: string;\n cfAccessClientId?: string;\n cfAccessClientSecret?: string;\n timeoutSeconds?: number;\n verifyTls?: boolean;\n proxy?: string;\n userAgent?: string;\n retry?: Partial<QDashRetryConfig>;\n}\n\ntype Environment = Record<string, string | undefined>;\n\nconst DEFAULT_RETRY: QDashRetryConfig = {\n maxAttempts: 3,\n baseDelaySeconds: 0.2,\n maxDelaySeconds: 5,\n};\n\nfunction optional(value: unknown): string | undefined {\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction positiveNumber(value: unknown, name: string, fallback: number): number {\n if (value === undefined || value === null || value === \"\") return fallback;\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n throw new QDashConfigError(`${name} must be a positive number`);\n }\n return parsed;\n}\n\nfunction nonNegativeNumber(value: unknown, name: string, fallback: number): number {\n if (value === undefined || value === null || value === \"\") return fallback;\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0) {\n throw new QDashConfigError(`${name} must be a non-negative number`);\n }\n return parsed;\n}\n\nfunction booleanValue(value: unknown, name: string, fallback: boolean): boolean {\n if (value === undefined || value === null || value === \"\") return fallback;\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"string\") {\n if ([\"1\", \"true\", \"yes\", \"on\"].includes(value.toLowerCase())) return true;\n if ([\"0\", \"false\", \"no\", \"off\"].includes(value.toLowerCase())) return false;\n }\n throw new QDashConfigError(`${name} must be a boolean`);\n}\n\nexport function defaultConfigPath(env: Environment = process.env): string {\n return env.XDG_CONFIG_HOME\n ? join(env.XDG_CONFIG_HOME, \"qdash\", \"config.ini\")\n : join(homedir(), \".config\", \"qdash\", \"config.ini\");\n}\n\nexport class QDashConfig {\n readonly baseUrl: string;\n readonly username?: string;\n readonly passwordEnv?: string;\n readonly apiToken?: string;\n readonly projectId?: string;\n readonly cfAccessClientId?: string;\n readonly cfAccessClientSecret?: string;\n readonly timeoutSeconds: number;\n readonly verifyTls: boolean;\n readonly proxy?: string;\n readonly userAgent: string;\n readonly retry: QDashRetryConfig;\n\n constructor(options: QDashConfigOptions) {\n const baseUrl = options.baseUrl?.replace(/\\/+$/, \"\");\n if (!baseUrl) throw new QDashConfigError(\"baseUrl is required\");\n try {\n new URL(baseUrl);\n } catch (cause) {\n throw new QDashConfigError(\"baseUrl must be a valid URL\", { cause });\n }\n\n this.baseUrl = baseUrl;\n this.username = optional(options.username);\n this.passwordEnv = optional(options.passwordEnv);\n this.apiToken = optional(options.apiToken);\n this.projectId = optional(options.projectId);\n this.cfAccessClientId = optional(options.cfAccessClientId);\n this.cfAccessClientSecret = optional(options.cfAccessClientSecret);\n this.timeoutSeconds = positiveNumber(options.timeoutSeconds, \"timeoutSeconds\", 30);\n this.verifyTls = options.verifyTls ?? true;\n this.proxy = optional(options.proxy);\n this.userAgent = optional(options.userAgent) ?? \"qdash-client-ts/dev\";\n this.retry = {\n maxAttempts: positiveNumber(\n options.retry?.maxAttempts,\n \"retry.maxAttempts\",\n DEFAULT_RETRY.maxAttempts,\n ),\n baseDelaySeconds: nonNegativeNumber(\n options.retry?.baseDelaySeconds,\n \"retry.baseDelaySeconds\",\n DEFAULT_RETRY.baseDelaySeconds,\n ),\n maxDelaySeconds: nonNegativeNumber(\n options.retry?.maxDelaySeconds,\n \"retry.maxDelaySeconds\",\n DEFAULT_RETRY.maxDelaySeconds,\n ),\n };\n }\n\n static fromEnv(env: Environment = process.env): QDashConfig {\n const baseUrl = env.QDASH_BASE_URL;\n if (!baseUrl) {\n throw new QDashConfigError(\"Environment variable QDASH_BASE_URL is required\");\n }\n return new QDashConfig({\n baseUrl,\n ...(optional(env.QDASH_USERNAME) ? { username: env.QDASH_USERNAME } : {}),\n passwordEnv: env.QDASH_PASSWORD_ENV ?? \"QDASH_PASSWORD\",\n ...(optional(env.QDASH_API_TOKEN) ? { apiToken: env.QDASH_API_TOKEN } : {}),\n ...(optional(env.QDASH_PROJECT_ID) ? { projectId: env.QDASH_PROJECT_ID } : {}),\n ...(optional(env.QDASH_CF_ACCESS_CLIENT_ID)\n ? { cfAccessClientId: env.QDASH_CF_ACCESS_CLIENT_ID }\n : {}),\n ...(optional(env.QDASH_CF_ACCESS_CLIENT_SECRET)\n ? { cfAccessClientSecret: env.QDASH_CF_ACCESS_CLIENT_SECRET }\n : {}),\n timeoutSeconds: positiveNumber(env.QDASH_TIMEOUT_SECONDS, \"QDASH_TIMEOUT_SECONDS\", 30),\n verifyTls: booleanValue(env.QDASH_VERIFY_TLS, \"QDASH_VERIFY_TLS\", true),\n ...(optional(env.QDASH_PROXY) ? { proxy: env.QDASH_PROXY } : {}),\n userAgent: env.QDASH_USER_AGENT ?? \"qdash-client-ts/dev\",\n retry: {\n maxAttempts: positiveNumber(\n env.QDASH_RETRY_MAX_ATTEMPTS,\n \"QDASH_RETRY_MAX_ATTEMPTS\",\n 3,\n ),\n baseDelaySeconds: nonNegativeNumber(\n env.QDASH_RETRY_BACKOFF_SECONDS,\n \"QDASH_RETRY_BACKOFF_SECONDS\",\n 0.2,\n ),\n maxDelaySeconds: nonNegativeNumber(\n env.QDASH_RETRY_MAX_BACKOFF_SECONDS,\n \"QDASH_RETRY_MAX_BACKOFF_SECONDS\",\n 5,\n ),\n },\n });\n }\n\n static async fromFile(profile = \"default\", path = defaultConfigPath()): Promise<QDashConfig> {\n let contents: string;\n try {\n contents = await readFile(path, \"utf8\");\n } catch (cause) {\n throw new QDashConfigError(`Config file not found: ${path}`, { cause });\n }\n const section = ini.parse(contents)[profile] as Record<string, unknown> | undefined;\n if (!section) throw new QDashConfigError(`Config profile not found: ${profile}`);\n\n const baseUrl = optional(section.base_url);\n if (!baseUrl) throw new QDashConfigError(`base_url is required in profile '${profile}'`);\n return new QDashConfig({\n baseUrl,\n ...(optional(section.username) ? { username: String(section.username) } : {}),\n ...(optional(section.password_env) ? { passwordEnv: String(section.password_env) } : {}),\n ...(optional(section.api_token) ? { apiToken: String(section.api_token) } : {}),\n ...(optional(section.project_id) ? { projectId: String(section.project_id) } : {}),\n ...(optional(section.cf_access_client_id)\n ? { cfAccessClientId: String(section.cf_access_client_id) }\n : {}),\n ...(optional(section.cf_access_client_secret)\n ? { cfAccessClientSecret: String(section.cf_access_client_secret) }\n : {}),\n timeoutSeconds: positiveNumber(\n section.timeout_seconds ?? section.timeout_sec,\n \"timeout_seconds\",\n 30,\n ),\n verifyTls: booleanValue(section.verify_tls, \"verify_tls\", true),\n ...(optional(section.proxy) ? { proxy: String(section.proxy) } : {}),\n userAgent: optional(section.user_agent) ?? \"qdash-client-ts/dev\",\n retry: {\n maxAttempts: positiveNumber(section.retry_max_attempts, \"retry_max_attempts\", 3),\n baseDelaySeconds: nonNegativeNumber(\n section.retry_backoff_seconds ?? section.retry_base_delay_sec,\n \"retry_backoff_seconds\",\n 0.2,\n ),\n maxDelaySeconds: nonNegativeNumber(\n section.retry_max_backoff_seconds ?? section.retry_max_delay_sec,\n \"retry_max_backoff_seconds\",\n 5,\n ),\n },\n });\n }\n\n async save(profile = \"default\", path = defaultConfigPath()): Promise<string> {\n let parsed: Record<string, unknown> = {};\n try {\n parsed = ini.parse(await readFile(path, \"utf8\")) as Record<string, unknown>;\n } catch (cause) {\n if ((cause as NodeJS.ErrnoException).code !== \"ENOENT\") throw cause;\n }\n parsed[profile] = {\n base_url: this.baseUrl,\n ...(this.username ? { username: this.username } : {}),\n ...(this.passwordEnv ? { password_env: this.passwordEnv } : {}),\n ...(this.apiToken ? { api_token: this.apiToken } : {}),\n ...(this.projectId ? { project_id: this.projectId } : {}),\n ...(this.cfAccessClientId ? { cf_access_client_id: this.cfAccessClientId } : {}),\n ...(this.cfAccessClientSecret\n ? { cf_access_client_secret: this.cfAccessClientSecret }\n : {}),\n timeout_seconds: this.timeoutSeconds,\n verify_tls: this.verifyTls,\n ...(this.proxy ? { proxy: this.proxy } : {}),\n user_agent: this.userAgent,\n retry_max_attempts: this.retry.maxAttempts,\n retry_backoff_seconds: this.retry.baseDelaySeconds,\n retry_max_backoff_seconds: this.retry.maxDelaySeconds,\n };\n await mkdir(dirname(path), { recursive: true });\n await writeFile(path, ini.stringify(parsed), { encoding: \"utf8\", mode: 0o600 });\n await chmod(path, 0o600);\n return path;\n }\n}\n","import { setTimeout as sleep } from \"node:timers/promises\";\n\nimport type { AxiosRequestConfig } from \"axios\";\n\nimport { QDashConfig } from \"./config.js\";\nimport {\n QDashApiError,\n QDashAuthError,\n QDashNotFoundError,\n QDashTransportError,\n QDashValidationError,\n} from \"./errors.js\";\n\nexport type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\nexport type QueryValue = string | number | boolean | null | undefined | readonly string[];\n\nexport interface RequestOptions {\n query?: Record<string, QueryValue>;\n body?: unknown;\n headers?: HeadersInit;\n}\n\nexport interface TransportOptions {\n fetch?: Fetch;\n defaultHeaders?: HeadersInit;\n sleep?: (milliseconds: number) => Promise<void>;\n random?: () => number;\n env?: Record<string, string | undefined>;\n}\n\nconst RETRYABLE_STATUSES = new Set([408, 429, 500, 502, 503, 504]);\n\nasync function responsePayload(response: Response): Promise<unknown> {\n if (response.status === 204) return undefined;\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return text;\n }\n}\n\nfunction errorMessage(response: Response, payload: unknown): string {\n let detail: unknown;\n if (typeof payload === \"object\" && payload !== null && \"detail\" in payload) {\n detail = (payload as { detail?: unknown }).detail;\n } else if (typeof payload === \"string\") {\n detail = payload;\n }\n const endpoint = response.url ? new URL(response.url).pathname : \"<unknown>\";\n return `${response.status} ${endpoint}${detail ? `: ${String(detail)}` : \"\"}`;\n}\n\nexport class QDashTransport {\n readonly fetch: Fetch;\n\n private token?: string;\n private readonly baseFetch: Fetch;\n private readonly defaultHeaders: Headers;\n private readonly sleep: (milliseconds: number) => Promise<void>;\n private readonly random: () => number;\n private readonly env: Record<string, string | undefined>;\n\n constructor(\n readonly config: QDashConfig,\n options: TransportOptions = {},\n ) {\n if ((config.proxy || !config.verifyTls) && !options.fetch) {\n throw new QDashTransportError(\n \"proxy and verifyTls overrides require a custom fetch implementation\",\n );\n }\n this.baseFetch = options.fetch ?? globalThis.fetch.bind(globalThis);\n this.defaultHeaders = new Headers(options.defaultHeaders);\n this.sleep = options.sleep ?? ((milliseconds) => sleep(milliseconds));\n this.random = options.random ?? Math.random;\n this.env = options.env ?? process.env;\n this.token = config.apiToken;\n this.fetch = this.authorizedFetch.bind(this);\n }\n\n async requestJson<T>(method: string, path: string, options: RequestOptions = {}): Promise<T> {\n return this.request<T>({\n method,\n url: path,\n params: options.query,\n data: options.body,\n ...(options.headers\n ? { headers: Object.fromEntries(new Headers(options.headers).entries()) }\n : {}),\n });\n }\n\n async request<T>(config: AxiosRequestConfig): Promise<T> {\n const requestUrl = config.url ?? \"\";\n const url = new URL(\n requestUrl.startsWith(\"http://\") || requestUrl.startsWith(\"https://\")\n ? requestUrl\n : this.config.baseUrl + (requestUrl.startsWith(\"/\") ? \"\" : \"/\") + requestUrl,\n );\n for (const [key, value] of Object.entries(\n (config.params ?? {}) as Record<string, QueryValue>,\n )) {\n if (value === undefined || value === null) continue;\n if (Array.isArray(value)) {\n for (const item of value) url.searchParams.append(key, item);\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n const headers = new Headers(config.headers as HeadersInit | undefined);\n let body: BodyInit | undefined;\n if (config.data !== undefined) {\n if (\n typeof config.data === \"string\" ||\n config.data instanceof URLSearchParams ||\n config.data instanceof FormData ||\n config.data instanceof Blob ||\n config.data instanceof ArrayBuffer\n ) {\n body = config.data as BodyInit;\n } else {\n if (!headers.has(\"Content-Type\")) headers.set(\"Content-Type\", \"application/json\");\n body = JSON.stringify(config.data);\n }\n }\n const response = await this.fetch(url, {\n method: config.method ?? \"GET\",\n headers,\n ...(body === undefined ? {} : { body }),\n });\n let payload: unknown;\n if (config.responseType === \"arraybuffer\") payload = await response.arrayBuffer();\n else if (config.responseType === \"blob\") payload = await response.blob();\n else if (config.responseType === \"text\") payload = await response.text();\n else payload = await responsePayload(response);\n if (!response.ok) throw this.apiError(response, payload);\n return payload as T;\n }\n\n private async authorizedFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n const request = new Request(input, init);\n const headers = new Headers(this.defaultHeaders);\n request.headers.forEach((value, key) => headers.set(key, value));\n headers.set(\"Accept\", \"application/json\");\n headers.set(\"User-Agent\", this.config.userAgent);\n headers.set(\"Authorization\", `Bearer ${await this.getToken()}`);\n this.setGatewayHeaders(headers);\n\n const authenticated = new Request(request, { headers });\n const retryableMethod = authenticated.method === \"GET\" || authenticated.method === \"HEAD\";\n const attempts = retryableMethod ? this.config.retry.maxAttempts : 1;\n\n for (let attempt = 1; attempt <= attempts; attempt += 1) {\n try {\n const response = await this.fetchWithTimeout(authenticated.clone());\n if (response.status === 401 && !this.config.apiToken && this.config.username) {\n this.token = undefined;\n }\n if (!RETRYABLE_STATUSES.has(response.status) || attempt === attempts) return response;\n await this.sleep(this.retryDelayMilliseconds(attempt, response));\n } catch (cause) {\n if (cause instanceof QDashApiError) throw cause;\n if (attempt === attempts) {\n throw new QDashTransportError(\"QDash request failed\", { cause });\n }\n await this.sleep(this.retryDelayMilliseconds(attempt));\n }\n }\n throw new QDashTransportError(\"QDash request exhausted all retries\");\n }\n\n private async fetchWithTimeout(request: Request): Promise<Response> {\n const timeout = AbortSignal.timeout(this.config.timeoutSeconds * 1_000);\n const signal = request.signal.aborted\n ? request.signal\n : AbortSignal.any([request.signal, timeout]);\n return this.baseFetch(new Request(request, { signal }));\n }\n\n private async getToken(): Promise<string> {\n if (this.token) return this.token;\n if (!this.config.username) {\n throw new QDashAuthError(\"No authentication method configured\", { statusCode: 401 });\n }\n const passwordEnv = this.config.passwordEnv;\n if (!passwordEnv) {\n throw new QDashAuthError(\"passwordEnv is required for username/password authentication\", {\n statusCode: 401,\n });\n }\n const password = this.env[passwordEnv];\n if (!password) {\n throw new QDashAuthError(`Missing password in environment variable ${passwordEnv}`, {\n statusCode: 401,\n });\n }\n\n const headers = new Headers({\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"User-Agent\": this.config.userAgent,\n });\n this.setGatewayHeaders(headers);\n const response = await this.baseFetch(`${this.config.baseUrl}/auth/login`, {\n method: \"POST\",\n headers,\n body: new URLSearchParams({ username: this.config.username, password }),\n signal: AbortSignal.timeout(this.config.timeoutSeconds * 1_000),\n });\n const payload = await responsePayload(response);\n if (!response.ok) throw this.apiError(response, payload);\n const token =\n typeof payload === \"object\" && payload !== null && \"access_token\" in payload\n ? (payload as { access_token?: unknown }).access_token\n : undefined;\n if (typeof token !== \"string\" || !token) {\n throw new QDashAuthError(\"Login response did not include access_token\", {\n statusCode: 401,\n payload,\n });\n }\n this.token = token;\n return token;\n }\n\n private setGatewayHeaders(headers: Headers): void {\n if (this.config.projectId) headers.set(\"X-Project-Id\", this.config.projectId);\n if (this.config.cfAccessClientId) {\n headers.set(\"CF-Access-Client-Id\", this.config.cfAccessClientId);\n }\n if (this.config.cfAccessClientSecret) {\n headers.set(\"CF-Access-Client-Secret\", this.config.cfAccessClientSecret);\n }\n }\n\n private retryDelayMilliseconds(attempt: number, response?: Response): number {\n const retryAfter = response?.headers.get(\"Retry-After\");\n if (retryAfter) {\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1_000);\n }\n const base = this.config.retry.baseDelaySeconds;\n const cap = this.config.retry.maxDelaySeconds;\n const delay = Math.min(cap, base * 2 ** (attempt - 1));\n return (delay + this.random() * delay * 0.1) * 1_000;\n }\n\n private apiError(response: Response, payload: unknown): QDashApiError {\n const options = { statusCode: response.status, payload };\n const message = errorMessage(response, payload);\n if (response.status === 401 || response.status === 403) {\n return new QDashAuthError(message, options);\n }\n if (response.status === 404) return new QDashNotFoundError(message, options);\n if (response.status === 422) return new QDashValidationError(message, options);\n return new QDashTransportError(message, options);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,cAAcA,cAAa;;;ACApC,SAAS,OAAO,OAAO,UAAU,iBAAiB;AAClD,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY;AAE9B,OAAO,SAAS;AA2BhB,IAAM,gBAAkC;AAAA,EACtC,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AACnB;AAEA,SAAS,SAAS,OAAoC;AACpD,SAAO,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ;AACjE;AAEA,SAAS,eAAe,OAAgB,MAAc,UAA0B;AAC9E,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,QAAM,SAAS,OAAO,KAAK;AAC3B,MAAI,CAAC,OAAO,SAAS,MAAM,KAAK,UAAU,GAAG;AAC3C,UAAM,IAAI,iBAAiB,GAAG,IAAI,4BAA4B;AAAA,EAChE;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,OAAgB,MAAc,UAA0B;AACjF,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,QAAM,SAAS,OAAO,KAAK;AAC3B,MAAI,CAAC,OAAO,SAAS,MAAM,KAAK,SAAS,GAAG;AAC1C,UAAM,IAAI,iBAAiB,GAAG,IAAI,gCAAgC;AAAA,EACpE;AACA,SAAO;AACT;AAEA,SAAS,aAAa,OAAgB,MAAc,UAA4B;AAC9E,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,MAAI,OAAO,UAAU,UAAW,QAAO;AACvC,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,EAAE,SAAS,MAAM,YAAY,CAAC,EAAG,QAAO;AACrE,QAAI,CAAC,KAAK,SAAS,MAAM,KAAK,EAAE,SAAS,MAAM,YAAY,CAAC,EAAG,QAAO;AAAA,EACxE;AACA,QAAM,IAAI,iBAAiB,GAAG,IAAI,oBAAoB;AACxD;AAEO,SAAS,kBAAkB,MAAmB,QAAQ,KAAa;AACxE,SAAO,IAAI,kBACP,KAAK,IAAI,iBAAiB,SAAS,YAAY,IAC/C,KAAK,QAAQ,GAAG,WAAW,SAAS,YAAY;AACtD;AAEO,IAAM,cAAN,MAAM,aAAY;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,SAA6B;AACvC,UAAM,UAAU,QAAQ,SAAS,QAAQ,QAAQ,EAAE;AACnD,QAAI,CAAC,QAAS,OAAM,IAAI,iBAAiB,qBAAqB;AAC9D,QAAI;AACF,UAAI,IAAI,OAAO;AAAA,IACjB,SAAS,OAAO;AACd,YAAM,IAAI,iBAAiB,+BAA+B,EAAE,MAAM,CAAC;AAAA,IACrE;AAEA,SAAK,UAAU;AACf,SAAK,WAAW,SAAS,QAAQ,QAAQ;AACzC,SAAK,cAAc,SAAS,QAAQ,WAAW;AAC/C,SAAK,WAAW,SAAS,QAAQ,QAAQ;AACzC,SAAK,YAAY,SAAS,QAAQ,SAAS;AAC3C,SAAK,mBAAmB,SAAS,QAAQ,gBAAgB;AACzD,SAAK,uBAAuB,SAAS,QAAQ,oBAAoB;AACjE,SAAK,iBAAiB,eAAe,QAAQ,gBAAgB,kBAAkB,EAAE;AACjF,SAAK,YAAY,QAAQ,aAAa;AACtC,SAAK,QAAQ,SAAS,QAAQ,KAAK;AACnC,SAAK,YAAY,SAAS,QAAQ,SAAS,KAAK;AAChD,SAAK,QAAQ;AAAA,MACX,aAAa;AAAA,QACX,QAAQ,OAAO;AAAA,QACf;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAQ,OAAO;AAAA,QACf;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAQ,OAAO;AAAA,QACf;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,QAAQ,MAAmB,QAAQ,KAAkB;AAC1D,UAAM,UAAU,IAAI;AACpB,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,iBAAiB,iDAAiD;AAAA,IAC9E;AACA,WAAO,IAAI,aAAY;AAAA,MACrB;AAAA,MACA,GAAI,SAAS,IAAI,cAAc,IAAI,EAAE,UAAU,IAAI,eAAe,IAAI,CAAC;AAAA,MACvE,aAAa,IAAI,sBAAsB;AAAA,MACvC,GAAI,SAAS,IAAI,eAAe,IAAI,EAAE,UAAU,IAAI,gBAAgB,IAAI,CAAC;AAAA,MACzE,GAAI,SAAS,IAAI,gBAAgB,IAAI,EAAE,WAAW,IAAI,iBAAiB,IAAI,CAAC;AAAA,MAC5E,GAAI,SAAS,IAAI,yBAAyB,IACtC,EAAE,kBAAkB,IAAI,0BAA0B,IAClD,CAAC;AAAA,MACL,GAAI,SAAS,IAAI,6BAA6B,IAC1C,EAAE,sBAAsB,IAAI,8BAA8B,IAC1D,CAAC;AAAA,MACL,gBAAgB,eAAe,IAAI,uBAAuB,yBAAyB,EAAE;AAAA,MACrF,WAAW,aAAa,IAAI,kBAAkB,oBAAoB,IAAI;AAAA,MACtE,GAAI,SAAS,IAAI,WAAW,IAAI,EAAE,OAAO,IAAI,YAAY,IAAI,CAAC;AAAA,MAC9D,WAAW,IAAI,oBAAoB;AAAA,MACnC,OAAO;AAAA,QACL,aAAa;AAAA,UACX,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,QACA,kBAAkB;AAAA,UAChB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,QACA,iBAAiB;AAAA,UACf,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,aAAa,SAAS,UAAU,WAAW,OAAO,kBAAkB,GAAyB;AAC3F,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,SAAS,MAAM,MAAM;AAAA,IACxC,SAAS,OAAO;AACd,YAAM,IAAI,iBAAiB,0BAA0B,IAAI,IAAI,EAAE,MAAM,CAAC;AAAA,IACxE;AACA,UAAM,UAAU,IAAI,MAAM,QAAQ,EAAE,OAAO;AAC3C,QAAI,CAAC,QAAS,OAAM,IAAI,iBAAiB,6BAA6B,OAAO,EAAE;AAE/E,UAAM,UAAU,SAAS,QAAQ,QAAQ;AACzC,QAAI,CAAC,QAAS,OAAM,IAAI,iBAAiB,oCAAoC,OAAO,GAAG;AACvF,WAAO,IAAI,aAAY;AAAA,MACrB;AAAA,MACA,GAAI,SAAS,QAAQ,QAAQ,IAAI,EAAE,UAAU,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC;AAAA,MAC3E,GAAI,SAAS,QAAQ,YAAY,IAAI,EAAE,aAAa,OAAO,QAAQ,YAAY,EAAE,IAAI,CAAC;AAAA,MACtF,GAAI,SAAS,QAAQ,SAAS,IAAI,EAAE,UAAU,OAAO,QAAQ,SAAS,EAAE,IAAI,CAAC;AAAA,MAC7E,GAAI,SAAS,QAAQ,UAAU,IAAI,EAAE,WAAW,OAAO,QAAQ,UAAU,EAAE,IAAI,CAAC;AAAA,MAChF,GAAI,SAAS,QAAQ,mBAAmB,IACpC,EAAE,kBAAkB,OAAO,QAAQ,mBAAmB,EAAE,IACxD,CAAC;AAAA,MACL,GAAI,SAAS,QAAQ,uBAAuB,IACxC,EAAE,sBAAsB,OAAO,QAAQ,uBAAuB,EAAE,IAChE,CAAC;AAAA,MACL,gBAAgB;AAAA,QACd,QAAQ,mBAAmB,QAAQ;AAAA,QACnC;AAAA,QACA;AAAA,MACF;AAAA,MACA,WAAW,aAAa,QAAQ,YAAY,cAAc,IAAI;AAAA,MAC9D,GAAI,SAAS,QAAQ,KAAK,IAAI,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAClE,WAAW,SAAS,QAAQ,UAAU,KAAK;AAAA,MAC3C,OAAO;AAAA,QACL,aAAa,eAAe,QAAQ,oBAAoB,sBAAsB,CAAC;AAAA,QAC/E,kBAAkB;AAAA,UAChB,QAAQ,yBAAyB,QAAQ;AAAA,UACzC;AAAA,UACA;AAAA,QACF;AAAA,QACA,iBAAiB;AAAA,UACf,QAAQ,6BAA6B,QAAQ;AAAA,UAC7C;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,KAAK,UAAU,WAAW,OAAO,kBAAkB,GAAoB;AAC3E,QAAI,SAAkC,CAAC;AACvC,QAAI;AACF,eAAS,IAAI,MAAM,MAAM,SAAS,MAAM,MAAM,CAAC;AAAA,IACjD,SAAS,OAAO;AACd,UAAK,MAAgC,SAAS,SAAU,OAAM;AAAA,IAChE;AACA,WAAO,OAAO,IAAI;AAAA,MAChB,UAAU,KAAK;AAAA,MACf,GAAI,KAAK,WAAW,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC;AAAA,MACnD,GAAI,KAAK,cAAc,EAAE,cAAc,KAAK,YAAY,IAAI,CAAC;AAAA,MAC7D,GAAI,KAAK,WAAW,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC;AAAA,MACpD,GAAI,KAAK,YAAY,EAAE,YAAY,KAAK,UAAU,IAAI,CAAC;AAAA,MACvD,GAAI,KAAK,mBAAmB,EAAE,qBAAqB,KAAK,iBAAiB,IAAI,CAAC;AAAA,MAC9E,GAAI,KAAK,uBACL,EAAE,yBAAyB,KAAK,qBAAqB,IACrD,CAAC;AAAA,MACL,iBAAiB,KAAK;AAAA,MACtB,YAAY,KAAK;AAAA,MACjB,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,MAC1C,YAAY,KAAK;AAAA,MACjB,oBAAoB,KAAK,MAAM;AAAA,MAC/B,uBAAuB,KAAK,MAAM;AAAA,MAClC,2BAA2B,KAAK,MAAM;AAAA,IACxC;AACA,UAAM,MAAM,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAC9C,UAAM,UAAU,MAAM,IAAI,UAAU,MAAM,GAAG,EAAE,UAAU,QAAQ,MAAM,IAAM,CAAC;AAC9E,UAAM,MAAM,MAAM,GAAK;AACvB,WAAO;AAAA,EACT;AACF;;;ACvPA,SAAS,cAAc,aAAa;AA8BpC,IAAM,qBAAqB,oBAAI,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,CAAC;AAEjE,eAAe,gBAAgB,UAAsC;AACnE,MAAI,SAAS,WAAW,IAAK,QAAO;AACpC,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,aAAa,UAAoB,SAA0B;AAClE,MAAI;AACJ,MAAI,OAAO,YAAY,YAAY,YAAY,QAAQ,YAAY,SAAS;AAC1E,aAAU,QAAiC;AAAA,EAC7C,WAAW,OAAO,YAAY,UAAU;AACtC,aAAS;AAAA,EACX;AACA,QAAM,WAAW,SAAS,MAAM,IAAI,IAAI,SAAS,GAAG,EAAE,WAAW;AACjE,SAAO,GAAG,SAAS,MAAM,IAAI,QAAQ,GAAG,SAAS,KAAK,OAAO,MAAM,CAAC,KAAK,EAAE;AAC7E;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAU1B,YACW,QACT,UAA4B,CAAC,GAC7B;AAFS;AAGT,SAAK,OAAO,SAAS,CAAC,OAAO,cAAc,CAAC,QAAQ,OAAO;AACzD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,SAAK,YAAY,QAAQ,SAAS,WAAW,MAAM,KAAK,UAAU;AAClE,SAAK,iBAAiB,IAAI,QAAQ,QAAQ,cAAc;AACxD,SAAK,QAAQ,QAAQ,UAAU,CAAC,iBAAiB,MAAM,YAAY;AACnE,SAAK,SAAS,QAAQ,UAAU,KAAK;AACrC,SAAK,MAAM,QAAQ,OAAO,QAAQ;AAClC,SAAK,QAAQ,OAAO;AACpB,SAAK,QAAQ,KAAK,gBAAgB,KAAK,IAAI;AAAA,EAC7C;AAAA,EAfW;AAAA,EAVF;AAAA,EAED;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAoBjB,MAAM,YAAe,QAAgB,MAAc,UAA0B,CAAC,GAAe;AAC3F,WAAO,KAAK,QAAW;AAAA,MACrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,QAAQ;AAAA,MAChB,MAAM,QAAQ;AAAA,MACd,GAAI,QAAQ,UACR,EAAE,SAAS,OAAO,YAAY,IAAI,QAAQ,QAAQ,OAAO,EAAE,QAAQ,CAAC,EAAE,IACtE,CAAC;AAAA,IACP,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAW,QAAwC;AACvD,UAAM,aAAa,OAAO,OAAO;AACjC,UAAM,MAAM,IAAI;AAAA,MACd,WAAW,WAAW,SAAS,KAAK,WAAW,WAAW,UAAU,IAChE,aACA,KAAK,OAAO,WAAW,WAAW,WAAW,GAAG,IAAI,KAAK,OAAO;AAAA,IACtE;AACA,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO;AAAA,MAC/B,OAAO,UAAU,CAAC;AAAA,IACrB,GAAG;AACD,UAAI,UAAU,UAAa,UAAU,KAAM;AAC3C,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAW,QAAQ,MAAO,KAAI,aAAa,OAAO,KAAK,IAAI;AAAA,MAC7D,OAAO;AACL,YAAI,aAAa,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,MACzC;AAAA,IACF;AACA,UAAM,UAAU,IAAI,QAAQ,OAAO,OAAkC;AACrE,QAAI;AACJ,QAAI,OAAO,SAAS,QAAW;AAC7B,UACE,OAAO,OAAO,SAAS,YACvB,OAAO,gBAAgB,mBACvB,OAAO,gBAAgB,YACvB,OAAO,gBAAgB,QACvB,OAAO,gBAAgB,aACvB;AACA,eAAO,OAAO;AAAA,MAChB,OAAO;AACL,YAAI,CAAC,QAAQ,IAAI,cAAc,EAAG,SAAQ,IAAI,gBAAgB,kBAAkB;AAChF,eAAO,KAAK,UAAU,OAAO,IAAI;AAAA,MACnC;AAAA,IACF;AACA,UAAM,WAAW,MAAM,KAAK,MAAM,KAAK;AAAA,MACrC,QAAQ,OAAO,UAAU;AAAA,MACzB;AAAA,MACA,GAAI,SAAS,SAAY,CAAC,IAAI,EAAE,KAAK;AAAA,IACvC,CAAC;AACD,QAAI;AACJ,QAAI,OAAO,iBAAiB,cAAe,WAAU,MAAM,SAAS,YAAY;AAAA,aACvE,OAAO,iBAAiB,OAAQ,WAAU,MAAM,SAAS,KAAK;AAAA,aAC9D,OAAO,iBAAiB,OAAQ,WAAU,MAAM,SAAS,KAAK;AAAA,QAClE,WAAU,MAAM,gBAAgB,QAAQ;AAC7C,QAAI,CAAC,SAAS,GAAI,OAAM,KAAK,SAAS,UAAU,OAAO;AACvD,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,gBAAgB,OAA0B,MAAuC;AAC7F,UAAM,UAAU,IAAI,QAAQ,OAAO,IAAI;AACvC,UAAM,UAAU,IAAI,QAAQ,KAAK,cAAc;AAC/C,YAAQ,QAAQ,QAAQ,CAAC,OAAO,QAAQ,QAAQ,IAAI,KAAK,KAAK,CAAC;AAC/D,YAAQ,IAAI,UAAU,kBAAkB;AACxC,YAAQ,IAAI,cAAc,KAAK,OAAO,SAAS;AAC/C,YAAQ,IAAI,iBAAiB,UAAU,MAAM,KAAK,SAAS,CAAC,EAAE;AAC9D,SAAK,kBAAkB,OAAO;AAE9B,UAAM,gBAAgB,IAAI,QAAQ,SAAS,EAAE,QAAQ,CAAC;AACtD,UAAM,kBAAkB,cAAc,WAAW,SAAS,cAAc,WAAW;AACnF,UAAM,WAAW,kBAAkB,KAAK,OAAO,MAAM,cAAc;AAEnE,aAAS,UAAU,GAAG,WAAW,UAAU,WAAW,GAAG;AACvD,UAAI;AACF,cAAM,WAAW,MAAM,KAAK,iBAAiB,cAAc,MAAM,CAAC;AAClE,YAAI,SAAS,WAAW,OAAO,CAAC,KAAK,OAAO,YAAY,KAAK,OAAO,UAAU;AAC5E,eAAK,QAAQ;AAAA,QACf;AACA,YAAI,CAAC,mBAAmB,IAAI,SAAS,MAAM,KAAK,YAAY,SAAU,QAAO;AAC7E,cAAM,KAAK,MAAM,KAAK,uBAAuB,SAAS,QAAQ,CAAC;AAAA,MACjE,SAAS,OAAO;AACd,YAAI,iBAAiB,cAAe,OAAM;AAC1C,YAAI,YAAY,UAAU;AACxB,gBAAM,IAAI,oBAAoB,wBAAwB,EAAE,MAAM,CAAC;AAAA,QACjE;AACA,cAAM,KAAK,MAAM,KAAK,uBAAuB,OAAO,CAAC;AAAA,MACvD;AAAA,IACF;AACA,UAAM,IAAI,oBAAoB,qCAAqC;AAAA,EACrE;AAAA,EAEA,MAAc,iBAAiB,SAAqC;AAClE,UAAM,UAAU,YAAY,QAAQ,KAAK,OAAO,iBAAiB,GAAK;AACtE,UAAM,SAAS,QAAQ,OAAO,UAC1B,QAAQ,SACR,YAAY,IAAI,CAAC,QAAQ,QAAQ,OAAO,CAAC;AAC7C,WAAO,KAAK,UAAU,IAAI,QAAQ,SAAS,EAAE,OAAO,CAAC,CAAC;AAAA,EACxD;AAAA,EAEA,MAAc,WAA4B;AACxC,QAAI,KAAK,MAAO,QAAO,KAAK;AAC5B,QAAI,CAAC,KAAK,OAAO,UAAU;AACzB,YAAM,IAAI,eAAe,uCAAuC,EAAE,YAAY,IAAI,CAAC;AAAA,IACrF;AACA,UAAM,cAAc,KAAK,OAAO;AAChC,QAAI,CAAC,aAAa;AAChB,YAAM,IAAI,eAAe,gEAAgE;AAAA,QACvF,YAAY;AAAA,MACd,CAAC;AAAA,IACH;AACA,UAAM,WAAW,KAAK,IAAI,WAAW;AACrC,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,eAAe,4CAA4C,WAAW,IAAI;AAAA,QAClF,YAAY;AAAA,MACd,CAAC;AAAA,IACH;AAEA,UAAM,UAAU,IAAI,QAAQ;AAAA,MAC1B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,cAAc,KAAK,OAAO;AAAA,IAC5B,CAAC;AACD,SAAK,kBAAkB,OAAO;AAC9B,UAAM,WAAW,MAAM,KAAK,UAAU,GAAG,KAAK,OAAO,OAAO,eAAe;AAAA,MACzE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,IAAI,gBAAgB,EAAE,UAAU,KAAK,OAAO,UAAU,SAAS,CAAC;AAAA,MACtE,QAAQ,YAAY,QAAQ,KAAK,OAAO,iBAAiB,GAAK;AAAA,IAChE,CAAC;AACD,UAAM,UAAU,MAAM,gBAAgB,QAAQ;AAC9C,QAAI,CAAC,SAAS,GAAI,OAAM,KAAK,SAAS,UAAU,OAAO;AACvD,UAAM,QACJ,OAAO,YAAY,YAAY,YAAY,QAAQ,kBAAkB,UAChE,QAAuC,eACxC;AACN,QAAI,OAAO,UAAU,YAAY,CAAC,OAAO;AACvC,YAAM,IAAI,eAAe,+CAA+C;AAAA,QACtE,YAAY;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AACA,SAAK,QAAQ;AACb,WAAO;AAAA,EACT;AAAA,EAEQ,kBAAkB,SAAwB;AAChD,QAAI,KAAK,OAAO,UAAW,SAAQ,IAAI,gBAAgB,KAAK,OAAO,SAAS;AAC5E,QAAI,KAAK,OAAO,kBAAkB;AAChC,cAAQ,IAAI,uBAAuB,KAAK,OAAO,gBAAgB;AAAA,IACjE;AACA,QAAI,KAAK,OAAO,sBAAsB;AACpC,cAAQ,IAAI,2BAA2B,KAAK,OAAO,oBAAoB;AAAA,IACzE;AAAA,EACF;AAAA,EAEQ,uBAAuB,SAAiB,UAA6B;AAC3E,UAAM,aAAa,UAAU,QAAQ,IAAI,aAAa;AACtD,QAAI,YAAY;AACd,YAAM,UAAU,OAAO,UAAU;AACjC,UAAI,OAAO,SAAS,OAAO,EAAG,QAAO,KAAK,IAAI,GAAG,UAAU,GAAK;AAAA,IAClE;AACA,UAAM,OAAO,KAAK,OAAO,MAAM;AAC/B,UAAM,MAAM,KAAK,OAAO,MAAM;AAC9B,UAAM,QAAQ,KAAK,IAAI,KAAK,OAAO,MAAM,UAAU,EAAE;AACrD,YAAQ,QAAQ,KAAK,OAAO,IAAI,QAAQ,OAAO;AAAA,EACjD;AAAA,EAEQ,SAAS,UAAoB,SAAiC;AACpE,UAAM,UAAU,EAAE,YAAY,SAAS,QAAQ,QAAQ;AACvD,UAAM,UAAU,aAAa,UAAU,OAAO;AAC9C,QAAI,SAAS,WAAW,OAAO,SAAS,WAAW,KAAK;AACtD,aAAO,IAAI,eAAe,SAAS,OAAO;AAAA,IAC5C;AACA,QAAI,SAAS,WAAW,IAAK,QAAO,IAAI,mBAAmB,SAAS,OAAO;AAC3E,QAAI,SAAS,WAAW,IAAK,QAAO,IAAI,qBAAqB,SAAS,OAAO;AAC7E,WAAO,IAAI,oBAAoB,SAAS,OAAO;AAAA,EACjD;AACF;;;AF3IA,SAAS,SAAS,OAAuB;AACvC,SAAO,mBAAmB,KAAK;AACjC;AAEA,SAAS,MAAM,QAA2C;AACxD,SAAO,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,SAAS,IAAI,CAAC;AACvF;AAEA,SAAS,iBAAiB,MAAkC;AAC1D,SAAO,KAAK,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,GAAG,EAAE;AAC9C;AAEA,SAAS,iBAAiB,MAAsB;AAC9C,QAAM,QAAQ,KAAK,YAAY;AAC/B,MAAI,MAAM,SAAS,MAAM,EAAG,QAAO;AACnC,MAAI,MAAM,SAAS,MAAM,KAAK,MAAM,SAAS,OAAO,EAAG,QAAO;AAC9D,MAAI,MAAM,SAAS,MAAM,EAAG,QAAO;AACnC,MAAI,MAAM,SAAS,OAAO,EAAG,QAAO;AACpC,MAAI,MAAM,SAAS,OAAO,EAAG,QAAO;AACpC,SAAO;AACT;AAEO,IAAM,cAAN,MAAM,aAAY;AAAA,EACd;AAAA,EACA;AAAA,EAEQ;AAAA,EAEjB,YAAY,QAAqB,UAA8B,CAAC,GAAG;AACjE,SAAK,SAAS;AACd,SAAK,YAAY,IAAI,eAAe,QAAQ,OAAO;AACnD,SAAK,MAAM,KAAK,iBAAiB,YAAY,CAAC;AAAA,EAChD;AAAA,EAEA,OAAO,QACL,MAA0C,QAAQ,KAClD,UAA8B,CAAC,GAClB;AACb,WAAO,IAAI,aAAY,YAAY,QAAQ,GAAG,GAAG,EAAE,GAAG,SAAS,IAAI,CAAC;AAAA,EACtE;AAAA,EAEA,aAAa,YACX,UAAU,WACV,MACA,UAA8B,CAAC,GACT;AACtB,UAAM,SAAS,OACX,MAAM,YAAY,SAAS,SAAS,IAAI,IACxC,MAAM,YAAY,SAAS,OAAO;AACtC,WAAO,IAAI,aAAY,QAAQ,OAAO;AAAA,EACxC;AAAA,EAEA,MAAM,YAAwC;AAC5C,WAAO,KAAK,IAAI,QAAQ;AAAA,EAC1B;AAAA,EAEA,MAAM,iBAAwC;AAC5C,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,UAAU;AACvC,QAAI,MAAM,WAAW,EAAG,OAAM,IAAI,mBAAmB,wBAAwB;AAC7E,UAAM,SAAS,MAAM,OAAO,CAAC,SAAS,KAAK,oBAAoB,QAAQ;AACvE,UAAM,aAAa,OAAO,SAAS,IAAI,SAAS;AAChD,WAAO,WAAW,OAAO,CAAC,QAAQ,SAAS;AACzC,YAAM,aAAa,OAAO,eAAe,KAAK,MAAM,OAAO,YAAY,IAAI;AAC3E,YAAM,WAAW,KAAK,eAAe,KAAK,MAAM,KAAK,YAAY,IAAI;AACrE,aAAO,WAAW,aAAa,OAAO;AAAA,IACxC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,mBAAoC;AACxC,YAAQ,MAAM,KAAK,eAAe,GAAG;AAAA,EACvC;AAAA,EAEA,MAAM,eAAe,QAA8C;AACjE,WAAO,KAAK,IAAI,kBAAkB,SAAS,MAAM,CAAC,UAAU;AAAA,EAC9D;AAAA,EAEA,MAAM,mBAAwC;AAC5C,WAAO,KAAK,IAAI,iBAAiB;AAAA,EACnC;AAAA,EAEA,MAAM,eACJ,QACA,UAA6B,CAAC,GACD;AAC7B,WAAO,KAAK,IAAI,UAAU,SAAS,MAAM,CAAC,WAAW,MAAM,EAAE,OAAO,QAAQ,OAAO,QAAQ,QAAQ,OAAO,CAAC,CAAC;AAAA,EAC9G;AAAA,EAEA,MAAM,aAAa,QAAgB,KAAqC;AACtE,WAAO,KAAK,IAAI,UAAU,SAAS,MAAM,CAAC,WAAW,SAAS,GAAG,CAAC,EAAE;AAAA,EACtE;AAAA,EAEA,MAAM,kBACJ,QACA,UAA6B,CAAC,GACE;AAChC,WAAO,KAAK,IAAI,UAAU,SAAS,MAAM,CAAC,cAAc,MAAM,EAAE,OAAO,QAAQ,OAAO,QAAQ,QAAQ,OAAO,CAAC,CAAC;AAAA,EACjH;AAAA,EAEA,MAAM,gBAAgB,QAAgB,YAA+C;AACnF,WAAO,KAAK,IAAI,UAAU,SAAS,MAAM,CAAC,cAAc,SAAS,UAAU,CAAC,EAAE;AAAA,EAChF;AAAA,EAEA,MAAM,yBACJ,SACyB;AACzB,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM;AAAA,QACJ,SAAS,QAAQ;AAAA,QACjB,WAAW,QAAQ;AAAA,QACnB,UAAU,QAAQ;AAAA,QAClB,QAAQ,QAAQ;AAAA,QAChB,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,MACf,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,gBAAgB,UAAkC,CAAC,GAAoC;AAC3F,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM;AAAA,QACJ,SAAS,QAAQ;AAAA,QACjB,WAAW,QAAQ;AAAA,QACnB,KAAK,QAAQ;AAAA,QACb,aAAa,QAAQ;AAAA,QACrB,QAAQ,QAAQ;AAAA,QAChB,UAAU,QAAQ;AAAA,QAClB,QAAQ,QAAQ;AAAA,QAChB,OAAO,QAAQ;AAAA,QACf,MAAM,QAAQ;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,QAA6C;AAC/D,WAAO,KAAK,IAAI,UAAU,SAAS,MAAM,CAAC,SAAS;AAAA,EACrD;AAAA,EAEA,MAAM,UAAU,SAA6C;AAC3D,WAAO,KAAK,IAAI,UAAU,MAAM,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC9C;AAAA,EAEA,MAAM,oBAAwD;AAC5D,WAAO,KAAK,IAAI,iBAAiB;AAAA,EACnC;AAAA,EAEA,MAAM,iBAAiB,UAAkD;AACvE,WAAO,KAAK,IAAI,UAAU,SAAS,QAAQ,CAAC,YAAY;AAAA,EAC1D;AAAA,EAEA,MAAM,yBAAyB,UAAmC;AAChE,WAAO,KAAK,IAAI,UAAU,SAAS,QAAQ,CAAC,qBAAqB;AAAA,EACnE;AAAA,EAEA,MAAM,eAAmE;AACvE,WAAO,KAAK,IAAI,WAAW;AAAA,EAC7B;AAAA,EAEA,MAAM,WAAW,WAA6C;AAC5D,WAAO,KAAK,IAAI,aAAa,SAAS,SAAS,CAAC,EAAE;AAAA,EACpD;AAAA,EAEA,MAAM,eAAwC;AAC5C,UAAM,UAAU,MAAM,KAAK;AAAA,MACzB;AAAA,IACF;AACA,WAAO,MAAM,QAAQ,OAAO,IAAI,UAAW,QAAQ,QAAQ,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,eAAe,MAAmC;AACtD,WAAO,KAAK,IAAI,kBAAkB,EAAE,KAAK,CAAC;AAAA,EAC5C;AAAA,EAEA,MAAM,gBAAgB,MAAc,SAAsC;AACxE,WAAO,KAAK,IAAI,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAAA,EACrD;AAAA,EAEA,MAAM,eAAoC;AACxC,WAAO,KAAK,IAAI,mBAAmB;AAAA,EACrC;AAAA,EAEA,MAAM,YAAwC;AAC5C,WAAO,KAAK,IAAI,QAAQ;AAAA,EAC1B;AAAA,EAEA,MAAM,QAAQ,MAAwC;AACpD,WAAO,KAAK,IAAI,UAAU,SAAS,IAAI,CAAC,EAAE;AAAA,EAC5C;AAAA,EAEA,MAAM,oBAA6C;AACjD,WAAO,KAAK,IAAI,kBAAkB;AAAA,EACpC;AAAA,EAEA,MAAM,gBAAgB,YAAmD;AACvE,WAAO,KAAK,IAAI,oBAAoB,SAAS,UAAU,CAAC,EAAE;AAAA,EAC5D;AAAA,EAEA,MAAM,SAAS,SAAqD;AAClE,WAAO,KAAK,KAAK,UAAU,OAAO;AAAA,EACpC;AAAA,EAEA,MAAM,YAAY,MAAc,aAAyB,CAAC,GAAiC;AACzF,WAAO,KAAK,KAAK,UAAU,SAAS,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,eAAe,UAKjB,CAAC,GAAoC;AACvC,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM;AAAA,QACJ,WAAW,QAAQ;AAAA,QACnB,QAAQ,QAAQ;AAAA,QAChB,MAAM,QAAQ;AAAA,QACd,OAAO,QAAQ;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,aAAuD;AACxE,WAAO,KAAK,IAAI,eAAe,SAAS,WAAW,CAAC,EAAE;AAAA,EACxD;AAAA,EAEA,MAAM,mBAAmB,MAAuC;AAC9D,UAAM,OAAO,MAAM,KAAK,UAAU,QAAqB;AAAA,MACrD,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ,EAAE,KAAK;AAAA,MACf,cAAc;AAAA,IAChB,CAAC;AACD,WAAO;AAAA,MACL;AAAA,MACA,WAAW,iBAAiB,IAAI;AAAA,MAChC,UAAU,iBAAiB,IAAI;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB,MAAuC;AAC/D,UAAM,OAAO,MAAM,KAAK,UAAU,QAAqB;AAAA,MACrD,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ,EAAE,KAAK;AAAA,MACf,cAAc;AAAA,IAChB,CAAC;AACD,WAAO;AAAA,MACL;AAAA,MACA,WAAW,iBAAiB,IAAI;AAAA,MAChC,UAAU,iBAAiB,IAAI;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAM,oBACJ,QACA,UAAmC,CAAC,GAC0D;AAC9F,UAAM,OAAO,MAAM,KAAK,cAAc,MAAM;AAC5C,UAAM,cAAc,KAAK,eAAe,CAAC;AACzC,UAAM,kBAAkB,KAAK,oBAAoB,CAAC;AAClD,UAAM,QAAQ,QAAQ,cAAc,gBAAgB,SAAS,IAAI,kBAAkB;AACnF,UAAM,QAAQ,QAAQ,SAAS;AAC/B,UAAM,OAAO,MAAM,KAAK;AACxB,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,mBAAmB,sBAAsB,KAAK,qBAAqB,MAAM,GAAG;AAAA,IACxF;AACA,UAAM,OAAO,MAAM,KAAK,mBAAmB,IAAI;AAC/C,WAAO,EAAE,GAAG,MAAM,MAAM,aAAa,gBAAgB;AAAA,EACvD;AAAA,EAEA,MAAM,iBACJ,aACA,UAAuB,CAAC,GACU;AAClC,UAAM,iBAAiB,QAAQ,kBAAkB;AACjD,UAAM,sBAAsB,QAAQ,uBAAuB;AAC3D,SAAK,oBAAoB,gBAAgB,mBAAmB;AAC5D,UAAM,WAAW,KAAK,IAAI,IAAI,iBAAiB;AAC/C,UAAM,WAAW,oBAAI,IAAI,CAAC,aAAa,UAAU,aAAa,YAAY,SAAS,CAAC;AACpF,WAAO,MAAM;AACX,YAAM,YAAY,MAAM,KAAK,aAAa,WAAW;AACrD,UAAI,SAAS,IAAI,UAAU,OAAO,YAAY,CAAC,EAAG,QAAO;AACzD,UAAI,KAAK,IAAI,KAAK,UAAU;AAC1B,cAAM,IAAI;AAAA,UACR,cAAc,WAAW,2CAA2C,cAAc;AAAA,QACpF;AAAA,MACF;AACA,YAAMC,OAAM,sBAAsB,GAAK;AAAA,IACzC;AAAA,EACF;AAAA,EAEA,MAAM,mBAAmB,SAAmE;AAC1F,WAAO,KAAK,KAAK,mBAAmB;AAAA,MAClC,SAAS,QAAQ;AAAA,MACjB,QAAQ,QAAQ;AAAA,MAChB,oBAAoB,QAAQ,oBAAoB;AAAA,MAChD,YAAY,QAAQ,aAAa;AAAA,MACjC,eAAe,QAAQ,gBAAgB;AAAA,MACvC,YAAY,QAAQ,aAAa;AAAA,MACjC,YAAY,QAAQ,aAAa;AAAA,IACnC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,gBAAgB,WAAkD;AACtE,WAAO,KAAK,IAAI,mBAAmB,SAAS,SAAS,CAAC,EAAE;AAAA,EAC1D;AAAA,EAEA,MAAM,2BACJ,WACA,eACA,OACgC;AAChC,WAAO,KAAK,KAAK,mBAAmB,SAAS,SAAS,CAAC,mBAAmB;AAAA,MACxE,gBAAgB;AAAA,MAChB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,kBACJ,WACA,SAC8B;AAC9B,WAAO,KAAK,KAAK,mBAAmB,SAAS,SAAS,CAAC,YAAY;AAAA,MACjE,iBAAiB,QAAQ;AAAA,MACzB,wBAAwB,QAAQ;AAAA,MAChC,aAAa,QAAQ;AAAA,MACrB,WAAW,QAAQ,YAAY;AAAA,MAC/B,MAAM,QAAQ,QAAQ,CAAC;AAAA,MACvB,qBAAqB,QAAQ,sBAAsB,CAAC;AAAA,MACpD,WAAW,QAAQ,aAAa;AAAA,IAClC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,mBACJ,WACA,UACA,SAC8B;AAC9B,WAAO,KAAK;AAAA,MACV,mBAAmB,SAAS,SAAS,CAAC,YAAY,SAAS,QAAQ,CAAC;AAAA,MACpE;AAAA,QACE,qBAAqB,QAAQ;AAAA,QAC7B,eAAe,QAAQ,gBAAgB;AAAA,QACvC,aAAa,QAAQ,eAAe;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAe,WAAmB,UAAgD;AACtF,WAAO,KAAK,IAAI,mBAAmB,SAAS,SAAS,CAAC,YAAY,SAAS,QAAQ,CAAC,EAAE;AAAA,EACxF;AAAA,EAEA,MAAM,iBAAiB,WAAmD;AACxE,UAAM,UAAU,MAAM,KAAK;AAAA,MACzB,mBAAmB,SAAS,SAAS,CAAC;AAAA,IACxC;AACA,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,MAAM,mBACJ,WACA,UACA,UAAuB,CAAC,GACM;AAC9B,WAAO,KAAK,gBAAgB,WAAW,UAAU,gBAAgB,OAAO;AAAA,EAC1E;AAAA,EAEA,MAAM,4BACJ,WACA,UACA,UAAuB,CAAC,GACM;AAC9B,WAAO,KAAK;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE,gBAAgB,KAAK,GAAG,QAAQ;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,MAAM,0BACJ,WACA,UACmC;AACnC,UAAM,UAAU,MAAM,KAAK;AAAA,MACzB,mBAAmB,SAAS,SAAS,CAAC,YAAY,SAAS,QAAQ,CAAC;AAAA,IACtE;AACA,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,MAAM,2BACJ,WACA,UACA,eACA,SACuC;AACvC,WAAO,KAAK;AAAA,MACV,mBAAmB,SAAS,SAAS,CAAC,YAAY,SAAS,QAAQ,CAAC,eAAe,SAAS,aAAa,CAAC;AAAA,MAC1G;AAAA,QACE,iBAAiB,QAAQ;AAAA,QACzB,wBAAwB,QAAQ;AAAA,QAChC,SAAS,QAAQ;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,8BACJ,WACA,YACA,SACsC;AACtC,WAAO,KAAK,KAAK,mBAAmB,SAAS,SAAS,CAAC,qBAAqB;AAAA,MAC1E,iBAAiB,QAAQ;AAAA,MACzB,wBAAwB,QAAQ;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,uBACJ,WACA,UACsC;AACtC,WAAO,KAAK;AAAA,MACV,mBAAmB,SAAS,SAAS,CAAC,qBAAqB,SAAS,QAAQ,CAAC;AAAA,IAC/E;AAAA,EACF;AAAA,EAEA,MAAM,wBACJ,WACA,UACuC;AACvC,WAAO,KAAK,IAAI,mBAAmB,SAAS,SAAS,CAAC,YAAY,SAAS,QAAQ,CAAC,EAAE;AAAA,EACxF;AAAA,EAEA,MAAM,0BACJ,WACA,UACA,SAKuC;AACvC,WAAO,KAAK;AAAA,MACV,mBAAmB,SAAS,SAAS,CAAC,YAAY,SAAS,QAAQ,CAAC;AAAA,MACpE;AAAA,QACE,iBAAiB,QAAQ;AAAA,QACzB,wBAAwB,QAAQ;AAAA,QAChC,gBAAgB,QAAQ,gBAAgB;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,2BACJ,WACA,UACA,UAAuB,CAAC,GACe;AACvC,UAAM,iBAAiB,QAAQ,kBAAkB;AACjD,UAAM,sBAAsB,QAAQ,uBAAuB;AAC3D,SAAK,oBAAoB,gBAAgB,mBAAmB;AAC5D,UAAM,WAAW,KAAK,IAAI,IAAI,iBAAiB;AAC/C,WAAO,MAAM;AACX,YAAM,SAAS,MAAM,KAAK,wBAAwB,WAAW,QAAQ;AACrE,UAAI,OAAO,mBAAmB,aAAa,OAAO,mBAAmB,SAAU,QAAO;AACtF,UAAI,KAAK,IAAI,KAAK,UAAU;AAC1B,cAAM,IAAI;AAAA,UACR,2BAA2B,QAAQ,4BAA4B,cAAc;AAAA,QAC/E;AAAA,MACF;AACA,YAAMA,OAAM,sBAAsB,GAAK;AAAA,IACzC;AAAA,EACF;AAAA,EAEA,MAAM,eAAe,UAQjB,CAAC,GAAoC;AACvC,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM;AAAA,QACJ,UAAU,QAAQ;AAAA,QAClB,QAAQ,QAAQ;AAAA,QAChB,SAAS,QAAQ;AAAA,QACjB,aAAa,QAAQ;AAAA,QACrB,WAAW,QAAQ;AAAA,QACnB,MAAM,QAAQ;AAAA,QACd,OAAO,QAAQ;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,gBAAgB,SAAsD;AAC1E,WAAO,KAAK,KAAK,gBAAgB,OAAO;AAAA,EAC1C;AAAA,EAEA,MAAM,aAAa,QAA4C;AAC7D,WAAO,KAAK,IAAI,gBAAgB,SAAS,MAAM,CAAC,EAAE;AAAA,EACpD;AAAA,EAEA,MAAM,gBACJ,QACA,SAC4B;AAC5B,WAAO,KAAK,MAAM,gBAAgB,SAAS,MAAM,CAAC,IAAI,OAAO;AAAA,EAC/D;AAAA,EAEA,MAAM,oBAAoB,QAAiD;AACzE,WAAO,KAAK,IAAI,gBAAgB,SAAS,MAAM,CAAC,UAAU;AAAA,EAC5D;AAAA,EAEA,MAAM,qBAAqB,UAA4C;AACrE,WAAO,KAAK,IAAI,uBAAuB,SAAS,QAAQ,CAAC,EAAE;AAAA,EAC7D;AAAA,EAEA,MAAM,oBAAoB,UAA2C;AACnE,WAAO,KAAK,IAAI,sBAAsB,SAAS,QAAQ,CAAC,EAAE;AAAA,EAC5D;AAAA,EAEA,MAAM,qBAAuD;AAC3D,WAAO,KAAK,IAAI,mBAAmB;AAAA,EACrC;AAAA,EAEQ,iBACN,KACgC;AAChC,UAAM,UAAU,OAAO,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM;AAC1D,YAAM,YAAY;AAClB,YAAM,QAAQ,IAAI,SAAoB;AACpC,cAAM,cAAc,KAAK,IAAI,GAAG,UAAU,SAAS,CAAC;AACpD,cAAM,WAAW,CAAC,GAAG,IAAI;AACzB,eAAO,SAAS,SAAS,YAAa,UAAS,KAAK,MAAS;AAC7D,cAAM,WAAW,SAAS,WAAW;AACrC,cAAM,UACJ,OAAO,aAAa,YAAY,aAAa,OACxC,WACD,CAAC;AACP,iBAAS,WAAW,IAAI,EAAE,GAAG,SAAS,gBAAgB,KAAK,UAAU;AACrE,eAAO,UAAU,GAAG,QAAQ;AAAA,MAC9B;AACA,aAAO,CAAC,MAAM,KAAK;AAAA,IACrB,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAAA,EAEQ,IAAO,MAAc,cAAkC;AAC7D,WAAO,KAAK,UAAU,YAAe,OAAO,MAAM,EAAE,OAAO,aAAa,CAAC;AAAA,EAC3E;AAAA,EAEQ,KAAQ,MAAc,MAA4B;AACxD,WAAO,KAAK,UAAU,YAAe,QAAQ,MAAM,EAAE,KAAK,CAAC;AAAA,EAC7D;AAAA,EAEQ,IAAO,MAAc,MAA4B;AACvD,WAAO,KAAK,UAAU,YAAe,OAAO,MAAM,EAAE,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEQ,MAAS,MAAc,MAA4B;AACzD,WAAO,KAAK,UAAU,YAAe,SAAS,MAAM,EAAE,KAAK,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAc,gBACZ,WACA,UACA,OACA,SAC8B;AAC9B,UAAM,iBAAiB,QAAQ,kBAAkB;AACjD,UAAM,sBAAsB,QAAQ,uBAAuB;AAC3D,SAAK,oBAAoB,gBAAgB,mBAAmB;AAC5D,UAAM,WAAW,KAAK,IAAI,IAAI,iBAAiB;AAC/C,WAAO,MAAM;AACX,YAAM,SAAS,MAAM,KAAK,eAAe,WAAW,QAAQ;AAC5D,UAAI,OAAO,qBAAqB,YAAY,OAAO,KAAK,KAAK,KAAM,QAAO;AAC1E,UAAI,KAAK,IAAI,KAAK,UAAU;AAC1B,cAAM,IAAI;AAAA,UACR,iBAAiB,QAAQ,qBAAqB,KAAK,WAAW,cAAc;AAAA,QAC9E;AAAA,MACF;AACA,YAAMA,OAAM,sBAAsB,GAAK;AAAA,IACzC;AAAA,EACF;AAAA,EAEQ,oBAAoB,gBAAwB,qBAAmC;AACrF,QAAI,iBAAiB,KAAK,sBAAsB,GAAG;AACjD,YAAM,IAAI,WAAW,mDAAmD;AAAA,IAC1E;AAAA,EACF;AACF;","names":["sleep","sleep"]}
1
+ {"version":3,"sources":["../src/client.ts","../src/config.ts","../src/transport.ts"],"sourcesContent":["import { setTimeout as sleep } from \"node:timers/promises\";\n\nimport { getQDashAPI } from \"./generated/api.js\";\n\nimport { QDashConfig } from \"./config.js\";\nimport { QDashNotFoundError } from \"./errors.js\";\nimport type {\n AgentActionResponse,\n AgentCampaignCommitResponse,\n AgentCandidateCommitResponse,\n AgentCandidateResponse,\n AgentSessionPolicy,\n AgentActionType,\n AgentCampaignCandidateReference,\n FileTreeNode,\n ForumImageUploadResponse,\n ForumPostCreate,\n ForumPostResponse,\n ForumPostUpdate,\n ImpactResponse,\n LineageResponse,\n ListAgentActionsResponse,\n ListAgentCandidatesResponse,\n ListCouplingsResponse,\n ListFlowsResponse,\n ListForumPostsResponse,\n ListQubitsResponse,\n ProvenanceStatsResponse,\n QdashApiSchemasProjectProjectListResponse,\n SaveFlowRequest,\n SaveFlowResponse,\n AgentSessionResponse,\n CandidateGateResponse,\n ChipMetricsResponse,\n ChipResponse,\n DegradationTrendsResponse,\n ExecutionComparisonResponse,\n ExecutionLockStatusResponse,\n RecalibrationRecommendationResponse,\n RecentChangesResponse,\n CouplingResponse,\n ExecuteFlowResponse,\n ExecutionResponseDetail,\n FlowTemplate,\n FlowTemplateWithCode,\n GetFlowResponse,\n ListChipsResponse,\n ListExecutionsResponse,\n ListTaskKnowledgeResponse,\n ListTaskResponse,\n ProjectResponse,\n QubitResponse,\n TaskKnowledgeResponse,\n TaskResultListResponse,\n TaskResultResponse,\n TimeSeriesData,\n} from \"./models.js\";\nimport { QDashTransport, type QueryValue, type TransportOptions } from \"./transport.js\";\n\ntype JsonObject = Record<string, unknown>;\ntype Query = Record<string, QueryValue>;\n\nexport interface PaginationOptions {\n limit?: number;\n offset?: number;\n}\n\nexport interface TaskResultsTimeseriesOptions {\n chipId: string;\n parameter: string;\n startAt: string;\n endAt: string;\n tag?: string;\n qid?: string;\n}\n\nexport interface ListTaskResultsOptions {\n chipId?: string;\n taskName?: string;\n qid?: string;\n couplingId?: string;\n status?: string;\n startAt?: string;\n endAt?: string;\n limit?: number;\n skip?: number;\n}\n\nexport interface CreateAgentSessionOptions {\n chipId: string;\n policy: AgentSessionPolicy;\n expiresInSeconds?: number;\n skillName?: string;\n skillVersion?: string;\n skillHash?: string;\n modelName?: string;\n}\n\nexport interface SubmitAgentActionOptions {\n idempotencyKey: string;\n expectedStateVersion: number;\n actionType: AgentActionType;\n taskName?: string | null;\n qids?: string[];\n parameterOverrides?: Record<string, number>;\n diagnosis?: string;\n}\n\nexport interface PollOptions {\n timeoutSeconds?: number;\n pollIntervalSeconds?: number;\n}\n\nexport interface DownloadedFile {\n data: ArrayBuffer;\n mediaType: string;\n filename?: string;\n}\n\nexport interface TaskResultFigureOptions {\n index?: number;\n preferJson?: boolean;\n}\n\nexport interface QDashClientOptions extends TransportOptions {}\n\nexport interface RecentChangesOptions {\n parameterNames?: string[];\n withinHours?: number;\n limit?: number;\n}\n\nexport interface DegradationTrendsOptions {\n minStreak?: number;\n limit?: number;\n parameterNames?: string[];\n}\n\nexport interface RecalibrationRecommendationsOptions {\n maxDepth?: number;\n}\n\nfunction pathPart(value: string): string {\n return encodeURIComponent(value);\n}\n\nfunction query(values: Record<string, QueryValue>): Query {\n return Object.fromEntries(Object.entries(values).filter(([, value]) => value != null));\n}\n\nfunction filenameFromPath(path: string): string | undefined {\n return path.split(\"/\").filter(Boolean).at(-1);\n}\n\nfunction mediaTypeForPath(path: string): string {\n const lower = path.toLowerCase();\n if (lower.endsWith(\".png\")) return \"image/png\";\n if (lower.endsWith(\".jpg\") || lower.endsWith(\".jpeg\")) return \"image/jpeg\";\n if (lower.endsWith(\".gif\")) return \"image/gif\";\n if (lower.endsWith(\".webp\")) return \"image/webp\";\n if (lower.endsWith(\".json\")) return \"application/json\";\n return \"application/octet-stream\";\n}\n\nexport class QDashClient {\n readonly api: ReturnType<typeof getQDashAPI>;\n readonly config: QDashConfig;\n\n private readonly transport: QDashTransport;\n\n constructor(config: QDashConfig, options: QDashClientOptions = {}) {\n this.config = config;\n this.transport = new QDashTransport(config, options);\n this.api = this.bindGeneratedApi(getQDashAPI());\n }\n\n static fromEnv(\n env: Record<string, string | undefined> = process.env,\n options: QDashClientOptions = {},\n ): QDashClient {\n return new QDashClient(QDashConfig.fromEnv(env), { ...options, env });\n }\n\n static async fromProfile(\n profile = \"default\",\n path?: string,\n options: QDashClientOptions = {},\n ): Promise<QDashClient> {\n const config = path\n ? await QDashConfig.fromFile(profile, path)\n : await QDashConfig.fromFile(profile);\n return new QDashClient(config, options);\n }\n\n async listChips(): Promise<ListChipsResponse> {\n return this.get(\"/chips\");\n }\n\n async getDefaultChip(): Promise<ChipResponse> {\n const { chips } = await this.listChips();\n if (chips.length === 0) throw new QDashNotFoundError(\"No chips are available\");\n const active = chips.filter((chip) => chip.activity_status === \"active\");\n const candidates = active.length > 0 ? active : chips;\n return candidates.reduce((latest, chip) => {\n const latestTime = latest.installed_at ? Date.parse(latest.installed_at) : 0;\n const chipTime = chip.installed_at ? Date.parse(chip.installed_at) : 0;\n return chipTime > latestTime ? chip : latest;\n });\n }\n\n async getDefaultChipId(): Promise<string> {\n return (await this.getDefaultChip()).chip_id;\n }\n\n async getChipMetrics(chipId: string): Promise<ChipMetricsResponse> {\n return this.get(`/metrics/chips/${pathPart(chipId)}/metrics`);\n }\n\n async getMetricsConfig(): Promise<JsonObject> {\n return this.get(\"/metrics/config\");\n }\n\n async listChipQubits(\n chipId: string,\n options: PaginationOptions = {},\n ): Promise<ListQubitsResponse> {\n return this.get(`/chips/${pathPart(chipId)}/qubits`, query({ limit: options.limit, offset: options.offset }));\n }\n\n async getChipQubit(chipId: string, qid: string): Promise<QubitResponse> {\n return this.get(`/chips/${pathPart(chipId)}/qubits/${pathPart(qid)}`);\n }\n\n async listChipCouplings(\n chipId: string,\n options: PaginationOptions = {},\n ): Promise<ListCouplingsResponse> {\n return this.get(`/chips/${pathPart(chipId)}/couplings`, query({ limit: options.limit, offset: options.offset }));\n }\n\n async getChipCoupling(chipId: string, couplingId: string): Promise<CouplingResponse> {\n return this.get(`/chips/${pathPart(chipId)}/couplings/${pathPart(couplingId)}`);\n }\n\n async getTaskResultsTimeseries(\n options: TaskResultsTimeseriesOptions,\n ): Promise<TimeSeriesData> {\n return this.get(\n \"/task-results/timeseries\",\n query({\n chip_id: options.chipId,\n parameter: options.parameter,\n start_at: options.startAt,\n end_at: options.endAt,\n tag: options.tag,\n qid: options.qid,\n }),\n );\n }\n\n async listTaskResults(options: ListTaskResultsOptions = {}): Promise<TaskResultListResponse> {\n return this.get(\n \"/task-results\",\n query({\n chip_id: options.chipId,\n task_name: options.taskName,\n qid: options.qid,\n coupling_id: options.couplingId,\n status: options.status,\n start_at: options.startAt,\n end_at: options.endAt,\n limit: options.limit,\n skip: options.skip,\n }),\n );\n }\n\n async getTaskResult(taskId: string): Promise<TaskResultResponse> {\n return this.get(`/tasks/${pathPart(taskId)}/result`);\n }\n\n async listTasks(backend?: string): Promise<ListTaskResponse> {\n return this.get(\"/tasks\", query({ backend }));\n }\n\n async listTaskKnowledge(): Promise<ListTaskKnowledgeResponse> {\n return this.get(\"/task-knowledge\");\n }\n\n async getTaskKnowledge(taskName: string): Promise<TaskKnowledgeResponse> {\n return this.get(`/tasks/${pathPart(taskName)}/knowledge`);\n }\n\n async getTaskKnowledgeMarkdown(taskName: string): Promise<string> {\n return this.get(`/tasks/${pathPart(taskName)}/knowledge/markdown`);\n }\n\n async listProjects(): Promise<QdashApiSchemasProjectProjectListResponse> {\n return this.get(\"/projects\");\n }\n\n async getProject(projectId: string): Promise<ProjectResponse> {\n return this.get(`/projects/${pathPart(projectId)}`);\n }\n\n async getFilesTree(): Promise<FileTreeNode[]> {\n const payload = await this.get<{ tree?: FileTreeNode[] } | FileTreeNode[]>(\n \"/files/tree\",\n );\n return Array.isArray(payload) ? payload : (payload.tree ?? []);\n }\n\n async getFileContent(path: string): Promise<JsonObject> {\n return this.get(\"/files/content\", { path });\n }\n\n async saveFileContent(path: string, content: string): Promise<JsonObject> {\n return this.put(\"/files/content\", { path, content });\n }\n\n async getGitStatus(): Promise<JsonObject> {\n return this.get(\"/files/git/status\");\n }\n\n async listFlows(): Promise<ListFlowsResponse> {\n return this.get(\"/flows\");\n }\n\n async getFlow(name: string): Promise<GetFlowResponse> {\n return this.get(`/flows/${pathPart(name)}`);\n }\n\n async listFlowTemplates(): Promise<FlowTemplate[]> {\n return this.get(\"/flows/templates\");\n }\n\n async getFlowTemplate(templateId: string): Promise<FlowTemplateWithCode> {\n return this.get(`/flows/templates/${pathPart(templateId)}`);\n }\n\n async saveFlow(request: SaveFlowRequest): Promise<SaveFlowResponse> {\n return this.post(\"/flows\", request);\n }\n\n async executeFlow(name: string, parameters: JsonObject = {}): Promise<ExecuteFlowResponse> {\n return this.post(`/flows/${pathPart(name)}/execute`, { parameters });\n }\n\n async listExecutions(options: {\n flowName?: string;\n status?: string;\n skip?: number;\n limit?: number;\n } = {}): Promise<ListExecutionsResponse> {\n return this.get(\n \"/executions\",\n query({\n flow_name: options.flowName,\n status: options.status,\n skip: options.skip,\n limit: options.limit,\n }),\n );\n }\n\n async getExecution(executionId: string): Promise<ExecutionResponseDetail> {\n return this.get(`/executions/${pathPart(executionId)}`);\n }\n\n async getExecutionFigure(path: string): Promise<DownloadedFile> {\n const data = await this.transport.request<ArrayBuffer>({\n method: \"GET\",\n url: \"/executions/figure\",\n params: { path },\n responseType: \"arraybuffer\",\n });\n return {\n data,\n mediaType: mediaTypeForPath(path),\n filename: filenameFromPath(path),\n };\n }\n\n async downloadRawDataFile(path: string): Promise<DownloadedFile> {\n const data = await this.transport.request<ArrayBuffer>({\n method: \"GET\",\n url: \"/files/raw-data\",\n params: { path },\n responseType: \"arraybuffer\",\n });\n return {\n data,\n mediaType: mediaTypeForPath(path),\n filename: filenameFromPath(path),\n };\n }\n\n async getTaskResultFigure(\n taskId: string,\n options: TaskResultFigureOptions = {},\n ): Promise<DownloadedFile & { path: string; figurePaths: string[]; jsonFigurePaths: string[] }> {\n const task = await this.getTaskResult(taskId);\n const figurePaths = task.figure_path ?? [];\n const jsonFigurePaths = task.json_figure_path ?? [];\n const paths = options.preferJson && jsonFigurePaths.length > 0 ? jsonFigurePaths : figurePaths;\n const index = options.index ?? 0;\n const path = paths[index];\n if (!path) {\n throw new QDashNotFoundError(`No figure at index ${index} for task result '${taskId}'`);\n }\n const file = await this.getExecutionFigure(path);\n return { ...file, path, figurePaths, jsonFigurePaths };\n }\n\n async waitForExecution(\n executionId: string,\n options: PollOptions = {},\n ): Promise<ExecutionResponseDetail> {\n const timeoutSeconds = options.timeoutSeconds ?? 600;\n const pollIntervalSeconds = options.pollIntervalSeconds ?? 0.5;\n this.validatePollOptions(timeoutSeconds, pollIntervalSeconds);\n const deadline = Date.now() + timeoutSeconds * 1_000;\n const terminal = new Set([\"completed\", \"failed\", \"cancelled\", \"canceled\", \"crashed\"]);\n while (true) {\n const execution = await this.getExecution(executionId);\n if (terminal.has(execution.status.toLowerCase())) return execution;\n if (Date.now() >= deadline) {\n throw new Error(\n `Execution '${executionId}' did not reach a terminal state within ${timeoutSeconds} seconds`,\n );\n }\n await sleep(pollIntervalSeconds * 1_000);\n }\n }\n\n async createAgentSession(options: CreateAgentSessionOptions): Promise<AgentSessionResponse> {\n return this.post(\"/agent-sessions\", {\n chip_id: options.chipId,\n policy: options.policy,\n expires_in_seconds: options.expiresInSeconds ?? 21_600,\n skill_name: options.skillName ?? \"\",\n skill_version: options.skillVersion ?? \"\",\n skill_hash: options.skillHash ?? \"\",\n model_name: options.modelName ?? \"\",\n });\n }\n\n async getAgentSession(sessionId: string): Promise<AgentSessionResponse> {\n return this.get(`/agent-sessions/${pathPart(sessionId)}`);\n }\n\n async evaluateAgentCandidateGate(\n sessionId: string,\n parameterName: string,\n value: number,\n ): Promise<CandidateGateResponse> {\n return this.post(`/agent-sessions/${pathPart(sessionId)}/candidate-gate`, {\n parameter_name: parameterName,\n value,\n });\n }\n\n async submitAgentAction(\n sessionId: string,\n options: SubmitAgentActionOptions,\n ): Promise<AgentActionResponse> {\n return this.post(`/agent-sessions/${pathPart(sessionId)}/actions`, {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n action_type: options.actionType,\n task_name: options.taskName ?? null,\n qids: options.qids ?? [],\n parameter_overrides: options.parameterOverrides ?? {},\n diagnosis: options.diagnosis ?? \"\",\n });\n }\n\n async executeAgentAction(\n sessionId: string,\n actionId: string,\n options: { sourceExecutionId: string; updateParams?: boolean; reconfigure?: boolean },\n ): Promise<AgentActionResponse> {\n return this.post(\n `/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}/execute`,\n {\n source_execution_id: options.sourceExecutionId,\n update_params: options.updateParams ?? false,\n reconfigure: options.reconfigure ?? false,\n },\n );\n }\n\n async getAgentAction(sessionId: string, actionId: string): Promise<AgentActionResponse> {\n return this.get(`/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}`);\n }\n\n async listAgentActions(sessionId: string): Promise<AgentActionResponse[]> {\n const payload = await this.get<ListAgentActionsResponse>(\n `/agent-sessions/${pathPart(sessionId)}/actions`,\n );\n return payload.items;\n }\n\n async waitForAgentAction(\n sessionId: string,\n actionId: string,\n options: PollOptions = {},\n ): Promise<AgentActionResponse> {\n return this.pollAgentAction(sessionId, actionId, \"operation_id\", options);\n }\n\n async waitForAgentActionExecution(\n sessionId: string,\n actionId: string,\n options: PollOptions = {},\n ): Promise<AgentActionResponse> {\n return this.pollAgentAction(\n sessionId,\n actionId,\n \"execution_id\",\n { timeoutSeconds: 600, ...options },\n );\n }\n\n async listAgentActionCandidates(\n sessionId: string,\n actionId: string,\n ): Promise<AgentCandidateResponse[]> {\n const payload = await this.get<ListAgentCandidatesResponse>(\n `/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}/candidates`,\n );\n return payload.items;\n }\n\n async commitAgentActionCandidate(\n sessionId: string,\n actionId: string,\n parameterName: string,\n options: { idempotencyKey: string; expectedStateVersion: number; taskId: string },\n ): Promise<AgentCandidateCommitResponse> {\n return this.post(\n `/agent-sessions/${pathPart(sessionId)}/actions/${pathPart(actionId)}/candidates/${pathPart(parameterName)}/commit`,\n {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n task_id: options.taskId,\n },\n );\n }\n\n async commitAgentCampaignCandidates(\n sessionId: string,\n candidates: AgentCampaignCandidateReference[],\n options: { idempotencyKey: string; expectedStateVersion: number },\n ): Promise<AgentCampaignCommitResponse> {\n return this.post(`/agent-sessions/${pathPart(sessionId)}/campaign-commits`, {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n candidates,\n });\n }\n\n async getAgentCampaignCommit(\n sessionId: string,\n commitId: string,\n ): Promise<AgentCampaignCommitResponse> {\n return this.get(\n `/agent-sessions/${pathPart(sessionId)}/campaign-commits/${pathPart(commitId)}`,\n );\n }\n\n async getAgentCandidateCommit(\n sessionId: string,\n commitId: string,\n ): Promise<AgentCandidateCommitResponse> {\n return this.get(`/agent-sessions/${pathPart(sessionId)}/commits/${pathPart(commitId)}`);\n }\n\n async applyAgentCandidateCommit(\n sessionId: string,\n commitId: string,\n options: {\n idempotencyKey: string;\n expectedStateVersion: number;\n pushToGithub?: boolean;\n },\n ): Promise<AgentCandidateCommitResponse> {\n return this.post(\n `/agent-sessions/${pathPart(sessionId)}/commits/${pathPart(commitId)}/apply`,\n {\n idempotency_key: options.idempotencyKey,\n expected_state_version: options.expectedStateVersion,\n push_to_github: options.pushToGithub ?? false,\n },\n );\n }\n\n async waitForAgentCandidateApply(\n sessionId: string,\n commitId: string,\n options: PollOptions = {},\n ): Promise<AgentCandidateCommitResponse> {\n const timeoutSeconds = options.timeoutSeconds ?? 300;\n const pollIntervalSeconds = options.pollIntervalSeconds ?? 0.5;\n this.validatePollOptions(timeoutSeconds, pollIntervalSeconds);\n const deadline = Date.now() + timeoutSeconds * 1_000;\n while (true) {\n const commit = await this.getAgentCandidateCommit(sessionId, commitId);\n if (commit.backend_status === \"applied\" || commit.backend_status === \"failed\") return commit;\n if (Date.now() >= deadline) {\n throw new Error(\n `Agent candidate commit '${commitId}' was not applied within ${timeoutSeconds} seconds`,\n );\n }\n await sleep(pollIntervalSeconds * 1_000);\n }\n }\n\n async listForumPosts(options: {\n category?: string;\n status?: string;\n chipId?: string;\n targetType?: string;\n targetId?: string;\n skip?: number;\n limit?: number;\n } = {}): Promise<ListForumPostsResponse> {\n return this.get(\n \"/forum/posts\",\n query({\n category: options.category,\n status: options.status,\n chip_id: options.chipId,\n target_type: options.targetType,\n target_id: options.targetId,\n skip: options.skip,\n limit: options.limit,\n }),\n );\n }\n\n async createForumPost(request: ForumPostCreate): Promise<ForumPostResponse> {\n return this.post(\"/forum/posts\", request);\n }\n\n async getForumPost(postId: string): Promise<ForumPostResponse> {\n return this.get(`/forum/posts/${pathPart(postId)}`);\n }\n\n async updateForumPost(\n postId: string,\n request: ForumPostUpdate,\n ): Promise<ForumPostResponse> {\n return this.patch(`/forum/posts/${pathPart(postId)}`, request);\n }\n\n async getForumPostReplies(postId: string): Promise<ListForumPostsResponse> {\n return this.get(`/forum/posts/${pathPart(postId)}/replies`);\n }\n\n async uploadForumImage(image: Blob, filename: string): Promise<ForumImageUploadResponse> {\n const form = new FormData();\n form.append(\"file\", image, filename);\n return this.post(\"/forum/upload-image\", form);\n }\n\n async getProvenanceLineage(entityId: string): Promise<LineageResponse> {\n return this.get(`/provenance/lineage/${pathPart(entityId)}`);\n }\n\n async getProvenanceImpact(entityId: string): Promise<ImpactResponse> {\n return this.get(`/provenance/impact/${pathPart(entityId)}`);\n }\n\n async getProvenanceStats(): Promise<ProvenanceStatsResponse> {\n return this.get(\"/provenance/stats\");\n }\n\n async getExecutionLockStatus(): Promise<ExecutionLockStatusResponse> {\n return this.get(\"/executions/lock-status\");\n }\n\n async compareExecutions(\n executionIdBefore: string,\n executionIdAfter: string,\n ): Promise<ExecutionComparisonResponse> {\n return this.get(\n \"/provenance/compare\",\n query({\n execution_id_before: executionIdBefore,\n execution_id_after: executionIdAfter,\n }),\n );\n }\n\n async getRecentChanges(\n options: RecentChangesOptions = {},\n ): Promise<RecentChangesResponse> {\n return this.get(\n \"/provenance/changes\",\n query({\n parameter_names: options.parameterNames,\n within_hours: options.withinHours,\n limit: options.limit,\n }),\n );\n }\n\n async getDegradationTrends(\n options: DegradationTrendsOptions = {},\n ): Promise<DegradationTrendsResponse> {\n return this.get(\n \"/provenance/degradation-trends\",\n query({\n min_streak: options.minStreak,\n limit: options.limit,\n parameter_names: options.parameterNames,\n }),\n );\n }\n\n async getRecalibrationRecommendations(\n entityId: string,\n options: RecalibrationRecommendationsOptions = {},\n ): Promise<RecalibrationRecommendationResponse> {\n return this.get(\n `/provenance/recommendations/${pathPart(entityId)}`,\n query({ max_depth: options.maxDepth }),\n );\n }\n\n private bindGeneratedApi(\n api: ReturnType<typeof getQDashAPI>,\n ): ReturnType<typeof getQDashAPI> {\n const entries = Object.entries(api).map(([name, method]) => {\n const generated = method as (...args: unknown[]) => unknown;\n const bound = (...args: unknown[]) => {\n const optionIndex = Math.max(0, generated.length - 1);\n const callArgs = [...args];\n while (callArgs.length < optionIndex) callArgs.push(undefined);\n const supplied = callArgs[optionIndex];\n const options =\n typeof supplied === \"object\" && supplied !== null\n ? (supplied as Record<string, unknown>)\n : {};\n callArgs[optionIndex] = { ...options, qdashTransport: this.transport };\n return generated(...callArgs);\n };\n return [name, bound];\n });\n return Object.fromEntries(entries) as ReturnType<typeof getQDashAPI>;\n }\n\n private get<T>(path: string, requestQuery?: Query): Promise<T> {\n return this.transport.requestJson<T>(\"GET\", path, { query: requestQuery });\n }\n\n private post<T>(path: string, body?: unknown): Promise<T> {\n return this.transport.requestJson<T>(\"POST\", path, { body });\n }\n\n private put<T>(path: string, body?: unknown): Promise<T> {\n return this.transport.requestJson<T>(\"PUT\", path, { body });\n }\n\n private patch<T>(path: string, body?: unknown): Promise<T> {\n return this.transport.requestJson<T>(\"PATCH\", path, { body });\n }\n\n private async pollAgentAction(\n sessionId: string,\n actionId: string,\n field: \"operation_id\" | \"execution_id\",\n options: PollOptions,\n ): Promise<AgentActionResponse> {\n const timeoutSeconds = options.timeoutSeconds ?? 120;\n const pollIntervalSeconds = options.pollIntervalSeconds ?? 0.5;\n this.validatePollOptions(timeoutSeconds, pollIntervalSeconds);\n const deadline = Date.now() + timeoutSeconds * 1_000;\n while (true) {\n const action = await this.getAgentAction(sessionId, actionId);\n if (action.execution_status === \"failed\" || action[field] != null) return action;\n if (Date.now() >= deadline) {\n throw new Error(\n `Agent action '${actionId}' did not produce ${field} within ${timeoutSeconds} seconds`,\n );\n }\n await sleep(pollIntervalSeconds * 1_000);\n }\n }\n\n private validatePollOptions(timeoutSeconds: number, pollIntervalSeconds: number): void {\n if (timeoutSeconds < 0 || pollIntervalSeconds < 0) {\n throw new RangeError(\"Polling timeout and interval must be non-negative\");\n }\n }\n}\n","import { chmod, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nimport ini from \"ini\";\n\nimport { QDashConfigError } from \"./errors.js\";\n\nexport interface QDashRetryConfig {\n maxAttempts: number;\n baseDelaySeconds: number;\n maxDelaySeconds: number;\n}\n\nexport interface QDashConfigOptions {\n baseUrl: string;\n username?: string;\n passwordEnv?: string;\n apiToken?: string;\n projectId?: string;\n cfAccessClientId?: string;\n cfAccessClientSecret?: string;\n timeoutSeconds?: number;\n verifyTls?: boolean;\n proxy?: string;\n userAgent?: string;\n retry?: Partial<QDashRetryConfig>;\n}\n\ntype Environment = Record<string, string | undefined>;\n\nconst DEFAULT_RETRY: QDashRetryConfig = {\n maxAttempts: 3,\n baseDelaySeconds: 0.2,\n maxDelaySeconds: 5,\n};\n\nfunction optional(value: unknown): string | undefined {\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction positiveNumber(value: unknown, name: string, fallback: number): number {\n if (value === undefined || value === null || value === \"\") return fallback;\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n throw new QDashConfigError(`${name} must be a positive number`);\n }\n return parsed;\n}\n\nfunction nonNegativeNumber(value: unknown, name: string, fallback: number): number {\n if (value === undefined || value === null || value === \"\") return fallback;\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0) {\n throw new QDashConfigError(`${name} must be a non-negative number`);\n }\n return parsed;\n}\n\nfunction booleanValue(value: unknown, name: string, fallback: boolean): boolean {\n if (value === undefined || value === null || value === \"\") return fallback;\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"string\") {\n if ([\"1\", \"true\", \"yes\", \"on\"].includes(value.toLowerCase())) return true;\n if ([\"0\", \"false\", \"no\", \"off\"].includes(value.toLowerCase())) return false;\n }\n throw new QDashConfigError(`${name} must be a boolean`);\n}\n\nexport function defaultConfigPath(env: Environment = process.env): string {\n return env.XDG_CONFIG_HOME\n ? join(env.XDG_CONFIG_HOME, \"qdash\", \"config.ini\")\n : join(homedir(), \".config\", \"qdash\", \"config.ini\");\n}\n\nexport class QDashConfig {\n readonly baseUrl: string;\n readonly username?: string;\n readonly passwordEnv?: string;\n readonly apiToken?: string;\n readonly projectId?: string;\n readonly cfAccessClientId?: string;\n readonly cfAccessClientSecret?: string;\n readonly timeoutSeconds: number;\n readonly verifyTls: boolean;\n readonly proxy?: string;\n readonly userAgent: string;\n readonly retry: QDashRetryConfig;\n\n constructor(options: QDashConfigOptions) {\n const baseUrl = options.baseUrl?.replace(/\\/+$/, \"\");\n if (!baseUrl) throw new QDashConfigError(\"baseUrl is required\");\n try {\n new URL(baseUrl);\n } catch (cause) {\n throw new QDashConfigError(\"baseUrl must be a valid URL\", { cause });\n }\n\n this.baseUrl = baseUrl;\n this.username = optional(options.username);\n this.passwordEnv = optional(options.passwordEnv);\n this.apiToken = optional(options.apiToken);\n this.projectId = optional(options.projectId);\n this.cfAccessClientId = optional(options.cfAccessClientId);\n this.cfAccessClientSecret = optional(options.cfAccessClientSecret);\n this.timeoutSeconds = positiveNumber(options.timeoutSeconds, \"timeoutSeconds\", 30);\n this.verifyTls = options.verifyTls ?? true;\n this.proxy = optional(options.proxy);\n this.userAgent = optional(options.userAgent) ?? \"qdash-client-ts/dev\";\n this.retry = {\n maxAttempts: positiveNumber(\n options.retry?.maxAttempts,\n \"retry.maxAttempts\",\n DEFAULT_RETRY.maxAttempts,\n ),\n baseDelaySeconds: nonNegativeNumber(\n options.retry?.baseDelaySeconds,\n \"retry.baseDelaySeconds\",\n DEFAULT_RETRY.baseDelaySeconds,\n ),\n maxDelaySeconds: nonNegativeNumber(\n options.retry?.maxDelaySeconds,\n \"retry.maxDelaySeconds\",\n DEFAULT_RETRY.maxDelaySeconds,\n ),\n };\n }\n\n static fromEnv(env: Environment = process.env): QDashConfig {\n const baseUrl = env.QDASH_BASE_URL;\n if (!baseUrl) {\n throw new QDashConfigError(\"Environment variable QDASH_BASE_URL is required\");\n }\n return new QDashConfig({\n baseUrl,\n ...(optional(env.QDASH_USERNAME) ? { username: env.QDASH_USERNAME } : {}),\n passwordEnv: env.QDASH_PASSWORD_ENV ?? \"QDASH_PASSWORD\",\n ...(optional(env.QDASH_API_TOKEN) ? { apiToken: env.QDASH_API_TOKEN } : {}),\n ...(optional(env.QDASH_PROJECT_ID) ? { projectId: env.QDASH_PROJECT_ID } : {}),\n ...(optional(env.QDASH_CF_ACCESS_CLIENT_ID)\n ? { cfAccessClientId: env.QDASH_CF_ACCESS_CLIENT_ID }\n : {}),\n ...(optional(env.QDASH_CF_ACCESS_CLIENT_SECRET)\n ? { cfAccessClientSecret: env.QDASH_CF_ACCESS_CLIENT_SECRET }\n : {}),\n timeoutSeconds: positiveNumber(env.QDASH_TIMEOUT_SECONDS, \"QDASH_TIMEOUT_SECONDS\", 30),\n verifyTls: booleanValue(env.QDASH_VERIFY_TLS, \"QDASH_VERIFY_TLS\", true),\n ...(optional(env.QDASH_PROXY) ? { proxy: env.QDASH_PROXY } : {}),\n userAgent: env.QDASH_USER_AGENT ?? \"qdash-client-ts/dev\",\n retry: {\n maxAttempts: positiveNumber(\n env.QDASH_RETRY_MAX_ATTEMPTS,\n \"QDASH_RETRY_MAX_ATTEMPTS\",\n 3,\n ),\n baseDelaySeconds: nonNegativeNumber(\n env.QDASH_RETRY_BACKOFF_SECONDS,\n \"QDASH_RETRY_BACKOFF_SECONDS\",\n 0.2,\n ),\n maxDelaySeconds: nonNegativeNumber(\n env.QDASH_RETRY_MAX_BACKOFF_SECONDS,\n \"QDASH_RETRY_MAX_BACKOFF_SECONDS\",\n 5,\n ),\n },\n });\n }\n\n static async fromFile(profile = \"default\", path = defaultConfigPath()): Promise<QDashConfig> {\n let contents: string;\n try {\n contents = await readFile(path, \"utf8\");\n } catch (cause) {\n throw new QDashConfigError(`Config file not found: ${path}`, { cause });\n }\n const section = ini.parse(contents)[profile] as Record<string, unknown> | undefined;\n if (!section) throw new QDashConfigError(`Config profile not found: ${profile}`);\n\n const baseUrl = optional(section.base_url);\n if (!baseUrl) throw new QDashConfigError(`base_url is required in profile '${profile}'`);\n return new QDashConfig({\n baseUrl,\n ...(optional(section.username) ? { username: String(section.username) } : {}),\n ...(optional(section.password_env) ? { passwordEnv: String(section.password_env) } : {}),\n ...(optional(section.api_token) ? { apiToken: String(section.api_token) } : {}),\n ...(optional(section.project_id) ? { projectId: String(section.project_id) } : {}),\n ...(optional(section.cf_access_client_id)\n ? { cfAccessClientId: String(section.cf_access_client_id) }\n : {}),\n ...(optional(section.cf_access_client_secret)\n ? { cfAccessClientSecret: String(section.cf_access_client_secret) }\n : {}),\n timeoutSeconds: positiveNumber(\n section.timeout_seconds ?? section.timeout_sec,\n \"timeout_seconds\",\n 30,\n ),\n verifyTls: booleanValue(section.verify_tls, \"verify_tls\", true),\n ...(optional(section.proxy) ? { proxy: String(section.proxy) } : {}),\n userAgent: optional(section.user_agent) ?? \"qdash-client-ts/dev\",\n retry: {\n maxAttempts: positiveNumber(section.retry_max_attempts, \"retry_max_attempts\", 3),\n baseDelaySeconds: nonNegativeNumber(\n section.retry_backoff_seconds ?? section.retry_base_delay_sec,\n \"retry_backoff_seconds\",\n 0.2,\n ),\n maxDelaySeconds: nonNegativeNumber(\n section.retry_max_backoff_seconds ?? section.retry_max_delay_sec,\n \"retry_max_backoff_seconds\",\n 5,\n ),\n },\n });\n }\n\n async save(profile = \"default\", path = defaultConfigPath()): Promise<string> {\n let parsed: Record<string, unknown> = {};\n try {\n parsed = ini.parse(await readFile(path, \"utf8\")) as Record<string, unknown>;\n } catch (cause) {\n if ((cause as NodeJS.ErrnoException).code !== \"ENOENT\") throw cause;\n }\n parsed[profile] = {\n base_url: this.baseUrl,\n ...(this.username ? { username: this.username } : {}),\n ...(this.passwordEnv ? { password_env: this.passwordEnv } : {}),\n ...(this.apiToken ? { api_token: this.apiToken } : {}),\n ...(this.projectId ? { project_id: this.projectId } : {}),\n ...(this.cfAccessClientId ? { cf_access_client_id: this.cfAccessClientId } : {}),\n ...(this.cfAccessClientSecret\n ? { cf_access_client_secret: this.cfAccessClientSecret }\n : {}),\n timeout_seconds: this.timeoutSeconds,\n verify_tls: this.verifyTls,\n ...(this.proxy ? { proxy: this.proxy } : {}),\n user_agent: this.userAgent,\n retry_max_attempts: this.retry.maxAttempts,\n retry_backoff_seconds: this.retry.baseDelaySeconds,\n retry_max_backoff_seconds: this.retry.maxDelaySeconds,\n };\n await mkdir(dirname(path), { recursive: true });\n await writeFile(path, ini.stringify(parsed), { encoding: \"utf8\", mode: 0o600 });\n await chmod(path, 0o600);\n return path;\n }\n}\n","import { setTimeout as sleep } from \"node:timers/promises\";\n\nimport type { AxiosRequestConfig } from \"axios\";\n\nimport { QDashConfig } from \"./config.js\";\nimport {\n QDashApiError,\n QDashAuthError,\n QDashNotFoundError,\n QDashTransportError,\n QDashValidationError,\n} from \"./errors.js\";\n\nexport type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\nexport type QueryValue = string | number | boolean | null | undefined | readonly string[];\n\nexport interface RequestOptions {\n query?: Record<string, QueryValue>;\n body?: unknown;\n headers?: HeadersInit;\n}\n\nexport interface TransportOptions {\n fetch?: Fetch;\n defaultHeaders?: HeadersInit;\n sleep?: (milliseconds: number) => Promise<void>;\n random?: () => number;\n env?: Record<string, string | undefined>;\n}\n\nconst RETRYABLE_STATUSES = new Set([408, 429, 500, 502, 503, 504]);\n\nasync function responsePayload(response: Response): Promise<unknown> {\n if (response.status === 204) return undefined;\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return text;\n }\n}\n\nfunction errorMessage(response: Response, payload: unknown): string {\n let detail: unknown;\n if (typeof payload === \"object\" && payload !== null && \"detail\" in payload) {\n detail = (payload as { detail?: unknown }).detail;\n } else if (typeof payload === \"string\") {\n detail = payload;\n }\n const endpoint = response.url ? new URL(response.url).pathname : \"<unknown>\";\n return `${response.status} ${endpoint}${detail ? `: ${String(detail)}` : \"\"}`;\n}\n\nexport class QDashTransport {\n readonly fetch: Fetch;\n\n private token?: string;\n private readonly baseFetch: Fetch;\n private readonly defaultHeaders: Headers;\n private readonly sleep: (milliseconds: number) => Promise<void>;\n private readonly random: () => number;\n private readonly env: Record<string, string | undefined>;\n\n constructor(\n readonly config: QDashConfig,\n options: TransportOptions = {},\n ) {\n if ((config.proxy || !config.verifyTls) && !options.fetch) {\n throw new QDashTransportError(\n \"proxy and verifyTls overrides require a custom fetch implementation\",\n );\n }\n this.baseFetch = options.fetch ?? globalThis.fetch.bind(globalThis);\n this.defaultHeaders = new Headers(options.defaultHeaders);\n this.sleep = options.sleep ?? ((milliseconds) => sleep(milliseconds));\n this.random = options.random ?? Math.random;\n this.env = options.env ?? process.env;\n this.token = config.apiToken;\n this.fetch = this.authorizedFetch.bind(this);\n }\n\n async requestJson<T>(method: string, path: string, options: RequestOptions = {}): Promise<T> {\n return this.request<T>({\n method,\n url: path,\n params: options.query,\n data: options.body,\n ...(options.headers\n ? { headers: Object.fromEntries(new Headers(options.headers).entries()) }\n : {}),\n });\n }\n\n async request<T>(config: AxiosRequestConfig): Promise<T> {\n const requestUrl = config.url ?? \"\";\n const url = new URL(\n requestUrl.startsWith(\"http://\") || requestUrl.startsWith(\"https://\")\n ? requestUrl\n : this.config.baseUrl + (requestUrl.startsWith(\"/\") ? \"\" : \"/\") + requestUrl,\n );\n for (const [key, value] of Object.entries(\n (config.params ?? {}) as Record<string, QueryValue>,\n )) {\n if (value === undefined || value === null) continue;\n if (Array.isArray(value)) {\n for (const item of value) url.searchParams.append(key, item);\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n const headers = new Headers(config.headers as HeadersInit | undefined);\n let body: BodyInit | undefined;\n if (config.data !== undefined) {\n if (\n typeof config.data === \"string\" ||\n config.data instanceof URLSearchParams ||\n config.data instanceof FormData ||\n config.data instanceof Blob ||\n config.data instanceof ArrayBuffer\n ) {\n body = config.data as BodyInit;\n if (config.data instanceof FormData) headers.delete(\"Content-Type\");\n } else {\n if (!headers.has(\"Content-Type\")) headers.set(\"Content-Type\", \"application/json\");\n body = JSON.stringify(config.data);\n }\n }\n const response = await this.fetch(url, {\n method: config.method ?? \"GET\",\n headers,\n ...(body === undefined ? {} : { body }),\n });\n let payload: unknown;\n if (config.responseType === \"arraybuffer\") payload = await response.arrayBuffer();\n else if (config.responseType === \"blob\") payload = await response.blob();\n else if (config.responseType === \"text\") payload = await response.text();\n else payload = await responsePayload(response);\n if (!response.ok) throw this.apiError(response, payload);\n return payload as T;\n }\n\n private async authorizedFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n const request = new Request(input, init);\n const headers = new Headers(this.defaultHeaders);\n request.headers.forEach((value, key) => headers.set(key, value));\n headers.set(\"Accept\", \"application/json\");\n headers.set(\"User-Agent\", this.config.userAgent);\n headers.set(\"Authorization\", `Bearer ${await this.getToken()}`);\n this.setGatewayHeaders(headers);\n\n const authenticated = new Request(request, { headers });\n const retryableMethod = authenticated.method === \"GET\" || authenticated.method === \"HEAD\";\n const attempts = retryableMethod ? this.config.retry.maxAttempts : 1;\n\n for (let attempt = 1; attempt <= attempts; attempt += 1) {\n try {\n const response = await this.fetchWithTimeout(authenticated.clone());\n if (response.status === 401 && !this.config.apiToken && this.config.username) {\n this.token = undefined;\n }\n if (!RETRYABLE_STATUSES.has(response.status) || attempt === attempts) return response;\n await this.sleep(this.retryDelayMilliseconds(attempt, response));\n } catch (cause) {\n if (cause instanceof QDashApiError) throw cause;\n if (attempt === attempts) {\n throw new QDashTransportError(\"QDash request failed\", { cause });\n }\n await this.sleep(this.retryDelayMilliseconds(attempt));\n }\n }\n throw new QDashTransportError(\"QDash request exhausted all retries\");\n }\n\n private async fetchWithTimeout(request: Request): Promise<Response> {\n const timeout = AbortSignal.timeout(this.config.timeoutSeconds * 1_000);\n const signal = request.signal.aborted\n ? request.signal\n : AbortSignal.any([request.signal, timeout]);\n return this.baseFetch(new Request(request, { signal }));\n }\n\n private async getToken(): Promise<string> {\n if (this.token) return this.token;\n if (!this.config.username) {\n throw new QDashAuthError(\"No authentication method configured\", { statusCode: 401 });\n }\n const passwordEnv = this.config.passwordEnv;\n if (!passwordEnv) {\n throw new QDashAuthError(\"passwordEnv is required for username/password authentication\", {\n statusCode: 401,\n });\n }\n const password = this.env[passwordEnv];\n if (!password) {\n throw new QDashAuthError(`Missing password in environment variable ${passwordEnv}`, {\n statusCode: 401,\n });\n }\n\n const headers = new Headers({\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"User-Agent\": this.config.userAgent,\n });\n this.setGatewayHeaders(headers);\n const response = await this.baseFetch(`${this.config.baseUrl}/auth/login`, {\n method: \"POST\",\n headers,\n body: new URLSearchParams({ username: this.config.username, password }),\n signal: AbortSignal.timeout(this.config.timeoutSeconds * 1_000),\n });\n const payload = await responsePayload(response);\n if (!response.ok) throw this.apiError(response, payload);\n const token =\n typeof payload === \"object\" && payload !== null && \"access_token\" in payload\n ? (payload as { access_token?: unknown }).access_token\n : undefined;\n if (typeof token !== \"string\" || !token) {\n throw new QDashAuthError(\"Login response did not include access_token\", {\n statusCode: 401,\n payload,\n });\n }\n this.token = token;\n return token;\n }\n\n private setGatewayHeaders(headers: Headers): void {\n if (this.config.projectId) headers.set(\"X-Project-Id\", this.config.projectId);\n if (this.config.cfAccessClientId) {\n headers.set(\"CF-Access-Client-Id\", this.config.cfAccessClientId);\n }\n if (this.config.cfAccessClientSecret) {\n headers.set(\"CF-Access-Client-Secret\", this.config.cfAccessClientSecret);\n }\n }\n\n private retryDelayMilliseconds(attempt: number, response?: Response): number {\n const retryAfter = response?.headers.get(\"Retry-After\");\n if (retryAfter) {\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1_000);\n }\n const base = this.config.retry.baseDelaySeconds;\n const cap = this.config.retry.maxDelaySeconds;\n const delay = Math.min(cap, base * 2 ** (attempt - 1));\n return (delay + this.random() * delay * 0.1) * 1_000;\n }\n\n private apiError(response: Response, payload: unknown): QDashApiError {\n const options = { statusCode: response.status, payload };\n const message = errorMessage(response, payload);\n if (response.status === 401 || response.status === 403) {\n return new QDashAuthError(message, options);\n }\n if (response.status === 404) return new QDashNotFoundError(message, options);\n if (response.status === 422) return new QDashValidationError(message, options);\n return new QDashTransportError(message, options);\n }\n}\n"],"mappings":"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","names":["sleep","sleep"]}