@overdeck/desktop 0.42.0 → 0.43.0
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/package.json +1 -1
- package/server/public/assets/{chunk-BO2N2NFS-C4IC6tXf.js → chunk-BO2N2NFS-DT2hpoe9.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-DGdm9pVn.js → diagram-OG6HWLK6-CILjxFV5.js} +1 -1
- package/server/public/assets/{dist-AFfBwqj3.js → dist-BBtIkNyE.js} +1 -1
- package/server/public/assets/{dist-YEo-2Oy8.js → dist-WopvNJhW.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BsV09cPX.js → ganttDiagram-6RSMTGT7-CByisuCB.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-Bq_qtCsW.js → highlighted-body-OFNGDK62-BTG45eDk.js} +1 -1
- package/server/public/assets/{index-C2PMO6nB.js → index-etdSnOxp.js} +112 -112
- package/server/public/assets/{index-Dzio_3kK.css → index-qrDOFwsw.css} +1 -1
- package/server/public/assets/{linear-DxIhHUPD.js → linear-BlUaWFF8.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-7G86hyh-.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-B0yqF_w8.js → pieDiagram-4H26LBE5-C9XG5bKT.js} +1 -1
- package/server/public/assets/{prod-DhREhukv.js → prod-BjCGQWZg.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CdByrHkW.js → quadrantDiagram-W4KKPZXB-BqyPPpJS.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-DApIsH9w.js → sankeyDiagram-5OEKKPKP-DOiWA53d.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-BrVcjfKW.js → xychartDiagram-2RQKCTM6-BkfiVkrb.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/server.js +188 -149
- package/server/public/assets/mermaid-GHXKKRXX-BZNohdCo.js +0 -1
package/server/server.js
CHANGED
|
@@ -1,97 +1,97 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
2
|
import { C as init_paths, D as sessionFilePath, E as resolveOhmypiExtensionPath, S as getOverdeckHome, T as packageRoot, _ as SYNC_SOURCES, l as LOGS_DIR, o as CLAUDE_DIR, t as AGENTS_DIR, u as OVERDECK_HOME, w as isDevMode, x as getLegacyHome, y as encodeClaudeProjectDir } from "./paths-tknG80xs.js";
|
|
3
|
-
import { $ as
|
|
4
|
-
import { _ as getDashboardIdentity, c as startUatTrainReconciler, d as openFlywheelRunReportForDashboard, f as pauseFlywheelRunForDashboard, g as runDashboardDbJob, h as startFlywheelRunForDashboard, l as stopUatTrainReconciler, m as resumeFlywheelRunForDashboard, p as readCurrentFlywheelStatusForDashboard, u as abortFlywheelRunForDashboard, v as readHostDashboardApiPort, y as shouldRefuseHostDashboardPort } from "./uat-train-
|
|
5
|
-
import { A as jsonStringResponse, C as isTrustedOriginForHost, D as checkCodexAuthStatus, E as validateOriginHeaders, O as httpHandler, T as validateOrigin$1, _ as resolveClaudeSessionId, a as agentsRouteLayer, b as resolvePiSessionPath, c as invalidateAgentsCache, d as startSmeeProcessSync, f as resolveAgentGitInfo, g as resolveAgentHarness, h as readLauncherPinnedSessionId, k as jsonResponse, l as getSystemHealthSnapshot, o as saveAgentStateAndEmitEvent, p as resolveConversationGitInfo, s as saveAgentStateAndEmitEventProgram, t as specialistsRouteLayer, u as isSmeeConfiguredSync, v as resolveCodexRolloutPath, x as getHeaderFromMap, y as resolveJsonlPath } from "./specialists-
|
|
3
|
+
import { $ as init_model_capabilities, A as UnknownModelError, C as validateTieredExecutionConfig, E as init_harness_policy, F as getProviderForModelSync, G as DEFAULT_WORKHORSES, H as defaultBackgroundAiFeatures, I as init_providers, J as MODEL_CAPABILITIES, K as computeModelOrigin, L as piProviderForModel, M as getBuiltInDefaultHarness, N as getKimiAnthropicBaseUrl, Q as hasModelCapabilitySync, S as resolveTieredExecutionEnabled, U as init_registry, W as DEFAULT_ROLES, Y as MODEL_DEPRECATIONS, Z as getModelEffortLevelsSync, _ as mergeTtsDaemonConfigs, at as require_dist$1, b as TieredExecutionConfigError, bt as init_errors, d as loadConfigSync, et as modelSupportsImagesSync, f as updateConversationsConfig, ft as GitHubApiError, g as getDefaultTtsDaemonConfig, gt as ProcessSpawnError, h as mergeConfigs, i as getConversationsConfig, it as ROLE_EFFORTS, l as isTldrEnabledSync, m as jsYaml, n as clearConfigCache, nt as COMPLIANCE_MODES, o as getGlobalConfigPath, p as init_js_yaml, q as resolveModel, r as getConversationSearchConfigSync, rt as PARENT_MODEL_REF, s as isClaudeCodeChannelsEnabled, t as init_config_yaml, tt as resolveModelIdSync, u as loadConfigNoMigration, ut as FsError, vt as TrackerError, w as canUseHarnessSync, x as init_tier_table } from "./config-yaml-B5z7J6BP.js";
|
|
4
|
+
import { _ as getDashboardIdentity, c as startUatTrainReconciler, d as openFlywheelRunReportForDashboard, f as pauseFlywheelRunForDashboard, g as runDashboardDbJob, h as startFlywheelRunForDashboard, l as stopUatTrainReconciler, m as resumeFlywheelRunForDashboard, p as readCurrentFlywheelStatusForDashboard, u as abortFlywheelRunForDashboard, v as readHostDashboardApiPort, y as shouldRefuseHostDashboardPort } from "./uat-train-BX0_9wAC.js";
|
|
5
|
+
import { A as jsonStringResponse, C as isTrustedOriginForHost, D as checkCodexAuthStatus, E as validateOriginHeaders, O as httpHandler, T as validateOrigin$1, _ as resolveClaudeSessionId, a as agentsRouteLayer, b as resolvePiSessionPath, c as invalidateAgentsCache, d as startSmeeProcessSync, f as resolveAgentGitInfo, g as resolveAgentHarness, h as readLauncherPinnedSessionId, k as jsonResponse, l as getSystemHealthSnapshot, o as saveAgentStateAndEmitEvent, p as resolveConversationGitInfo, s as saveAgentStateAndEmitEventProgram, t as specialistsRouteLayer, u as isSmeeConfiguredSync, v as resolveCodexRolloutPath, x as getHeaderFromMap, y as resolveJsonlPath } from "./specialists-lL_oaMMz.js";
|
|
6
6
|
import { a as init_activity_logger, i as emitDashboardLifecycleSync, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-C_Hsfouw.js";
|
|
7
|
-
import { A as init_paths$1, O as OVERDECK_MIGRATION_PATH, d as getOverdeckDatabaseSync, f as init_infra, i as DbLive, k as getOverdeckDatabasePath, u as TmuxLive } from "./infra-
|
|
7
|
+
import { A as init_paths$1, O as OVERDECK_MIGRATION_PATH, d as getOverdeckDatabaseSync, f as init_infra, i as DbLive, k as getOverdeckDatabasePath, u as TmuxLive } from "./infra-BnUODQb7.js";
|
|
8
8
|
import { n as openDatabase, t as init_driver } from "./driver-CBobl_fb.js";
|
|
9
|
-
import { g as getIssueWorkspacePath, v as init_record } from "./record-
|
|
9
|
+
import { g as getIssueWorkspacePath, v as init_record } from "./record-BRRVhnOm.js";
|
|
10
10
|
import { a as parseIssueIdSync, n as extractPrefixSync, r as init_issue_id } from "./issue-id-CtudqaOv.js";
|
|
11
|
-
import { A as resolveProjectFromIssueSync, D as registerProjectSync, P as setProjectAutoMergeDefaultSync, S as listProjectsSync, f as getProjectSync, k as resolveProjectFromIssue, l as getIssuePrefix, r as extractTeamPrefix, s as findProjectByTeamSync, v as init_projects, x as listProjects } from "./projects-
|
|
12
|
-
import { E as listPaneValues, F as sendKeysAsync, G as buildChildEnvSync, H as init_ui_theme, I as sendRawKeystroke, K as buildChildEnvWithoutTmuxSync, L as sessionExists, M as resizeWindow, O as listSessionNames, P as sendKeys, S as isHarnessProcessAlive, U as setUiTheme, W as BLANKED_PROVIDER_ENV, b as getWindowDimensions, c as ensureManagedTmuxContextOnce, d as exactPaneTarget, i as capturePane, k as listSessions, n as buildTmuxArgs, o as createSession, p as findManagedServerPidSync, q as init_child_env, w as killSession, x as init_tmux, z as setOption } from "./tmux-
|
|
13
|
-
import { a as init_event_store, i as initEventStore, n as getEventStore, r as getSharedDb } from "./event-store-
|
|
14
|
-
import { _ as FlywheelRunId, a as getHarnessBehavior, c as FlywheelStats, g as WS_METHODS, h as PanRpcGroup, m as PanRpcError, o as ContextLayerSaveRequest, s as ContextPreviewRequest, t as init_src, v as FlywheelStatus, x as MemoryObservation, y as EDITORS } from "./src-
|
|
15
|
-
import { a as fixStuckCommentedReviews, b as setReviewStatusSync, c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status, n as clearReviewStatus, o as fixStuckReadyForMerge, r as clearStuckMergeStatuses, s as getReviewStatus, u as loadReadyForMergeFlags, y as setReviewStatus } from "./review-status-
|
|
16
|
-
import { a as EventStoreService, c as ReadModelService, d as init_read_model, f as toAgentResolution, i as init_issue_lifecycle, l as ReadModelServiceLive, m as toRole, n as IssueLifecycleLive, o as EventStoreServiceLive, p as toAgentStatus, s as init_domain_services, t as IssueLifecycle } from "./issue-lifecycle-
|
|
17
|
-
import { d as init_agents, i as recordBriefingSessionStart, n as ensureSessionContextBriefingFile, p as listAllAgentsSync, r as init_briefing_freshness, s as AgentsResolverLive, t as appendFreshBriefingUpdate } from "./briefing-freshness-
|
|
11
|
+
import { A as resolveProjectFromIssueSync, D as registerProjectSync, P as setProjectAutoMergeDefaultSync, S as listProjectsSync, f as getProjectSync, k as resolveProjectFromIssue, l as getIssuePrefix, r as extractTeamPrefix, s as findProjectByTeamSync, v as init_projects, x as listProjects } from "./projects-BWA18sW9.js";
|
|
12
|
+
import { E as listPaneValues, F as sendKeysAsync, G as buildChildEnvSync, H as init_ui_theme, I as sendRawKeystroke, K as buildChildEnvWithoutTmuxSync, L as sessionExists, M as resizeWindow, O as listSessionNames, P as sendKeys, S as isHarnessProcessAlive, U as setUiTheme, W as BLANKED_PROVIDER_ENV, b as getWindowDimensions, c as ensureManagedTmuxContextOnce, d as exactPaneTarget, i as capturePane, k as listSessions, n as buildTmuxArgs, o as createSession, p as findManagedServerPidSync, q as init_child_env, w as killSession, x as init_tmux, z as setOption } from "./tmux-DwRDpZ6x.js";
|
|
13
|
+
import { a as init_event_store, i as initEventStore, n as getEventStore, r as getSharedDb } from "./event-store-BMvjb-ek.js";
|
|
14
|
+
import { _ as FlywheelRunId, a as getHarnessBehavior, b as DomainEvent, c as FlywheelStats, g as WS_METHODS, h as PanRpcGroup, m as PanRpcError, o as ContextLayerSaveRequest, s as ContextPreviewRequest, t as init_src, v as FlywheelStatus, x as MemoryObservation, y as EDITORS } from "./src-CEKNqdTd.js";
|
|
15
|
+
import { a as fixStuckCommentedReviews, b as setReviewStatusSync, c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status, n as clearReviewStatus, o as fixStuckReadyForMerge, r as clearStuckMergeStatuses, s as getReviewStatus, u as loadReadyForMergeFlags, y as setReviewStatus } from "./review-status-Sdng4KbL.js";
|
|
16
|
+
import { a as EventStoreService, c as ReadModelService, d as init_read_model, f as toAgentResolution, i as init_issue_lifecycle, l as ReadModelServiceLive, m as toRole, n as IssueLifecycleLive, o as EventStoreServiceLive, p as toAgentStatus, s as init_domain_services, t as IssueLifecycle } from "./issue-lifecycle-BQ7MbVQW.js";
|
|
17
|
+
import { d as init_agents, i as recordBriefingSessionStart, n as ensureSessionContextBriefingFile, p as listAllAgentsSync, r as init_briefing_freshness, s as AgentsResolverLive, t as appendFreshBriefingUpdate } from "./briefing-freshness-to38wymF.js";
|
|
18
18
|
import { i as init_paths$2, l as resolveObservationsFile, r as ensureParentDir, s as resolveIssueMemoryRoot, t as assertMemorySafeSegment } from "./paths-Dsd_dtCx.js";
|
|
19
19
|
import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-DCtE46iD.js";
|
|
20
|
-
import { a as diffAgainstMainFiles, c as diffFilesAgainstHead, d as findCommitAtTime, i as diffAgainstMain, l as diffPatchFilesAgainstHead, m as listCheckpoints, o as diffCheckpointFiles, p as init_checkpoint_manager, s as diffCheckpoints, t as captureCheckpoint, u as diffPatchSinceCommit } from "./checkpoint-manager-
|
|
21
|
-
import { $ as init_concurrency, An as saveAgentStateSync, Bn as init_pty_token, D as messageAgent, Ft as getProviderAuthMode, G as listRunningAgents, Gt as getClaudeAuthStatus, Hn as clearReadySignal, Ht as piFifoPaths, Jn as getAgentRuntimeState, K as listRunningAgentsSync, Kt as init_claude_auth, Mt as getAgentRuntimeBaseCommand, O as init_operator_interventions, Rn as init_agent_record_sync, Rt as injectPiConversationMemory, St as writeBridgeTokenSync, Ut as init_ohmypi_fifo, Vn as writePtyToken, Vt as init_pi_fifo, W as listAgentStates, Wn as normalizeAgentId, Wt as ohmypiFifoPaths, Xt as getProviderEnvForModel, Yn as getAgentRuntimeStateSync, Z as emergencyBrake, Zt as getProviderExportsForModel, _n as getAgentStateFilePath, bt as probeTranscriptSince, c as init_tier_supervisor, ct as init_config, d as supervisorAgentId, dt as saveCloisterConfigSync, ft as shouldAutoStart, gn as getAgentState, hn as getAgentDir, k as operatorInterventionEvent, lt as loadCloisterConfig, nn as init_openai_auth, on as dismissDevChannelsDialog, pt as deliverAgentMessage, qn as waitForReadySignal, s as deliverCommitForReview, sn as writeChannelsBridgeMcpConfig, t as init_agents$1, tn as getOpenAIAuthStatus, ut as loadCloisterConfigSync, vn as getAgentStateSync, vt as captureTranscriptUserRecordSnapshot, xt as init_bridge_token, yt as init_transcript_landing, zn as readAgentHarnessModelRecordSync } from "./agents-
|
|
22
|
-
import { t as init_behavior } from "./behavior-
|
|
23
|
-
import { a as getCostForIssueAggregateSync, c as getDailyTrendsSync, d as init_cost_sync, l as getModelRollupSync, n as getBackgroundCostBySourceSync, r as getCavemanExperimentDataSync, s as getCostsByIssueSync, u as getTodayCostSync } from "./cost-sync-
|
|
24
|
-
import { c as getAgentsNeedingAttention, d as CostResolverLive, n as readCloisterStateFile, o as generateHealthSummary, s as getAgentHealth, t as getCloisterService, u as CostResolver } from "./service-
|
|
25
|
-
import { n as AgentStateServiceLive } from "./agent-state-service-
|
|
26
|
-
import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-
|
|
20
|
+
import { a as diffAgainstMainFiles, c as diffFilesAgainstHead, d as findCommitAtTime, i as diffAgainstMain, l as diffPatchFilesAgainstHead, m as listCheckpoints, o as diffCheckpointFiles, p as init_checkpoint_manager, s as diffCheckpoints, t as captureCheckpoint, u as diffPatchSinceCommit } from "./checkpoint-manager-CKcDJjLT.js";
|
|
21
|
+
import { $ as init_concurrency, An as saveAgentStateSync, Bn as init_pty_token, D as messageAgent, Ft as getProviderAuthMode, G as listRunningAgents, Gt as getClaudeAuthStatus, Hn as clearReadySignal, Ht as piFifoPaths, Jn as getAgentRuntimeState, K as listRunningAgentsSync, Kt as init_claude_auth, Mt as getAgentRuntimeBaseCommand, O as init_operator_interventions, Rn as init_agent_record_sync, Rt as injectPiConversationMemory, St as writeBridgeTokenSync, Ut as init_ohmypi_fifo, Vn as writePtyToken, Vt as init_pi_fifo, W as listAgentStates, Wn as normalizeAgentId, Wt as ohmypiFifoPaths, Xt as getProviderEnvForModel, Yn as getAgentRuntimeStateSync, Z as emergencyBrake, Zt as getProviderExportsForModel, _n as getAgentStateFilePath, bt as probeTranscriptSince, c as init_tier_supervisor, ct as init_config, d as supervisorAgentId, dt as saveCloisterConfigSync, ft as shouldAutoStart, gn as getAgentState, hn as getAgentDir, k as operatorInterventionEvent, lt as loadCloisterConfig, nn as init_openai_auth, on as dismissDevChannelsDialog, pt as deliverAgentMessage, qn as waitForReadySignal, s as deliverCommitForReview, sn as writeChannelsBridgeMcpConfig, t as init_agents$1, tn as getOpenAIAuthStatus, ut as loadCloisterConfigSync, vn as getAgentStateSync, vt as captureTranscriptUserRecordSnapshot, xt as init_bridge_token, yt as init_transcript_landing, zn as readAgentHarnessModelRecordSync } from "./agents-B6tWmcXf.js";
|
|
22
|
+
import { t as init_behavior } from "./behavior-RdPVwq8Z.js";
|
|
23
|
+
import { a as getCostForIssueAggregateSync, c as getDailyTrendsSync, d as init_cost_sync, l as getModelRollupSync, n as getBackgroundCostBySourceSync, r as getCavemanExperimentDataSync, s as getCostsByIssueSync, u as getTodayCostSync } from "./cost-sync-DYokw49s.js";
|
|
24
|
+
import { c as getAgentsNeedingAttention, d as CostResolverLive, n as readCloisterStateFile, o as generateHealthSummary, s as getAgentHealth, t as getCloisterService, u as CostResolver } from "./service-BCLgzZEy.js";
|
|
25
|
+
import { n as AgentStateServiceLive } from "./agent-state-service-ATZbN2LT.js";
|
|
26
|
+
import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-JlYBFawD.js";
|
|
27
27
|
import { d as init_typed_errors, l as WorkspaceCreateError, n as AgentStartError, r as BeadsNotInitialized, s as TrackerApiError, t as AgentAlreadyRunning, u as WorkspaceNotFound } from "./typed-errors-BQLS2-a2.js";
|
|
28
|
-
import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-
|
|
29
|
-
import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-
|
|
30
|
-
import { i as init_rally_client, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-
|
|
31
|
-
import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-
|
|
32
|
-
import { a as CacheService, i as startSharedIssueService, n as init_issue_service_singleton, o as init_cache_service, r as issue_service_singleton_exports, s as parseIntegerHeader, t as getSharedIssueService } from "./issue-service-singleton-
|
|
33
|
-
import { i as ensureInternalTokenSync, o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
34
|
-
import { a as setPipelineHandlerSync, t as init_pipeline_notifier } from "./pipeline-notifier-
|
|
35
|
-
import { c as init_review_status_sync, i as getMergeBlockerReconcileCandidates } from "./review-status-sync-
|
|
36
|
-
import { C as transitionToMerging, _ as markFailed, c as isFlywheelGloballyPaused, d as listDuePendingAutoMerges, f as listProblemAutoMerges, g as markBlocked, n as getActionableAutoMerge, o as init_merge_sync, t as cancelPending, u as listActiveAutoMerges, v as markMerged, x as scheduleAutoMergeWithResult, y as requeueToPending } from "./merge-sync-
|
|
37
|
-
import { E as writeSpecForIssue, L as asPanSpecDocument, M as PAN_CONTINUE_FILENAME, N as PAN_DIRNAME, R as init_types$1, S as init_specs, T as writeSpec, _ as init_types, a as findWorkspaceDraftPlan, b as findSpecByIssue, c as readPlan, d as readWorkspacePlan, f as readWorkspacePlanSync, o as init_io, r as findPlan, s as isPlanningComplete, v as subItemsOf } from "./io-
|
|
38
|
-
import { C as restartCliproxy, S as readPidFile, T as stopCliproxy, b as isCliproxyInstalled, d as getCliproxyAuthDir, o as bridgeCodexAuthToCliproxy, v as init_cliproxy, w as startCliproxy, x as isCliproxyRunning, y as installCliproxy } from "./cliproxy-
|
|
39
|
-
import { f as init_config$1, m as loadConfigSync$1, s as getDashboardApiUrlSync } from "./config-
|
|
28
|
+
import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-DtBd7iee.js";
|
|
29
|
+
import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-BLwJoTrW.js";
|
|
30
|
+
import { i as init_rally_client, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-BqrgQ0Pu.js";
|
|
31
|
+
import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DZaFGJUO.js";
|
|
32
|
+
import { a as CacheService, i as startSharedIssueService, n as init_issue_service_singleton, o as init_cache_service, r as issue_service_singleton_exports, s as parseIntegerHeader, t as getSharedIssueService } from "./issue-service-singleton-B1aiia7z.js";
|
|
33
|
+
import { i as ensureInternalTokenSync, o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-ByEURFQq.js";
|
|
34
|
+
import { a as setPipelineHandlerSync, t as init_pipeline_notifier } from "./pipeline-notifier-BpZ4S0Hi.js";
|
|
35
|
+
import { c as init_review_status_sync, i as getMergeBlockerReconcileCandidates } from "./review-status-sync-C4eeN5DR.js";
|
|
36
|
+
import { C as transitionToMerging, _ as markFailed, c as isFlywheelGloballyPaused, d as listDuePendingAutoMerges, f as listProblemAutoMerges, g as markBlocked, n as getActionableAutoMerge, o as init_merge_sync, t as cancelPending, u as listActiveAutoMerges, v as markMerged, x as scheduleAutoMergeWithResult, y as requeueToPending } from "./merge-sync-B79eYXWq.js";
|
|
37
|
+
import { E as writeSpecForIssue, L as asPanSpecDocument, M as PAN_CONTINUE_FILENAME, N as PAN_DIRNAME, R as init_types$1, S as init_specs, T as writeSpec, _ as init_types, a as findWorkspaceDraftPlan, b as findSpecByIssue, c as readPlan, d as readWorkspacePlan, f as readWorkspacePlanSync, o as init_io, r as findPlan, s as isPlanningComplete, v as subItemsOf } from "./io-Bh8VelYD.js";
|
|
38
|
+
import { C as restartCliproxy, S as readPidFile, T as stopCliproxy, b as isCliproxyInstalled, d as getCliproxyAuthDir, o as bridgeCodexAuthToCliproxy, v as init_cliproxy, w as startCliproxy, x as isCliproxyRunning, y as installCliproxy } from "./cliproxy-BY-a7oH8.js";
|
|
39
|
+
import { f as init_config$1, m as loadConfigSync$1, s as getDashboardApiUrlSync } from "./config-D9ULtCLv.js";
|
|
40
40
|
import { n as require_auth_errors, r as require_token_error, t as require_token_util } from "./token-util-BEuuoN7z.js";
|
|
41
|
-
import { $ as updateConversationTitle, A as listArchivedConversationsWithEnrichment, C as getConversationLedgerCosts, D as incrementForkRetryCount, E as importLegacyConversation, F as markConversationRunning, G as setConversationModel, H as setConversationClaudeSessionId, J as setImportedConversationLinks, K as setFavorite, M as listFavoritedIds, N as markConversationActive, O as init_conversations, P as markConversationEnded, Q as updateConversationForkFallbackReason, R as recordConversationHandoff, S as getConversationByTmuxSession, T as hasOtherActiveConversationOnTmuxSession, U as setConversationEffort, V as setClearedToConvId, W as setConversationHarness, X as updateConversationCost, Y as unarchiveConversation, Z as updateConversationDeliveryMethod, _ as canReplaceTitle, _t as init_discovered_sessions, b as getConversationById, et as updateForkStatus, g as backfillConversationModel, h as archiveConversation, j as listConversations, k as isAgentConversationName, mt as getDiscoveredSessionBySessionId, nt as updateSpawnError, q as setForkRequest, tt as updateLastAttached, v as createConversation, w as getStuckForks, x as getConversationByName, y as getConversationByClaudeSessionId, z as removeFavorite } from "./conversations-
|
|
42
|
-
import { _ as init_codex_conversation_parser, a as contextUsageFromParseResult, c as parseEntireConversation, d as init_pi_conversation_parser, f as isPiSessionFile, g as parseOhmypiConversationMessages, h as isOhmypiSessionFile, i as computeContextUsage, l as parseFromLastCompactBoundary, m as init_ohmypi_conversation_parser, n as gateSnapshotEmission, o as summarizeConversationActivity, p as parsePiConversationMessages, r as watchConversation, s as parseConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-
|
|
43
|
-
import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-
|
|
44
|
-
import { i as init_settings, r as getMemoryWorkerConcurrency, t as areMemoryObservationsEnabled } from "./settings-
|
|
45
|
-
import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers$1 } from "./providers-
|
|
46
|
-
import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-
|
|
47
|
-
import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-
|
|
41
|
+
import { $ as updateConversationTitle, A as listArchivedConversationsWithEnrichment, C as getConversationLedgerCosts, D as incrementForkRetryCount, E as importLegacyConversation, F as markConversationRunning, G as setConversationModel, H as setConversationClaudeSessionId, J as setImportedConversationLinks, K as setFavorite, M as listFavoritedIds, N as markConversationActive, O as init_conversations, P as markConversationEnded, Q as updateConversationForkFallbackReason, R as recordConversationHandoff, S as getConversationByTmuxSession, T as hasOtherActiveConversationOnTmuxSession, U as setConversationEffort, V as setClearedToConvId, W as setConversationHarness, X as updateConversationCost, Y as unarchiveConversation, Z as updateConversationDeliveryMethod, _ as canReplaceTitle, _t as init_discovered_sessions, b as getConversationById, et as updateForkStatus, g as backfillConversationModel, h as archiveConversation, j as listConversations, k as isAgentConversationName, mt as getDiscoveredSessionBySessionId, nt as updateSpawnError, q as setForkRequest, tt as updateLastAttached, v as createConversation, w as getStuckForks, x as getConversationByName, y as getConversationByClaudeSessionId, z as removeFavorite } from "./conversations-CSxhAzME.js";
|
|
42
|
+
import { _ as init_codex_conversation_parser, a as contextUsageFromParseResult, c as parseEntireConversation, d as init_pi_conversation_parser, f as isPiSessionFile, g as parseOhmypiConversationMessages, h as isOhmypiSessionFile, i as computeContextUsage, l as parseFromLastCompactBoundary, m as init_ohmypi_conversation_parser, n as gateSnapshotEmission, o as summarizeConversationActivity, p as parsePiConversationMessages, r as watchConversation, s as parseConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-Dxivfe0w.js";
|
|
43
|
+
import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-D6BM-oE5.js";
|
|
44
|
+
import { i as init_settings, r as getMemoryWorkerConcurrency, t as areMemoryObservationsEnabled } from "./settings-ncJepdos.js";
|
|
45
|
+
import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers$1 } from "./providers-DitjC5u4.js";
|
|
46
|
+
import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-DrSU75_W.js";
|
|
47
|
+
import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-CfMr0eIT.js";
|
|
48
48
|
import { a as globalContextFile$1, d as workspaceContextFile, l as projectContextFile, n as codexGlobalContextFile, o as init_layers, r as ensureProjectLayer, s as piGlobalContextFile } from "./layers-B1dMbFu0.js";
|
|
49
|
-
import { l as init_codex, s as findRolloutPath } from "./codex-
|
|
50
|
-
import { C as setMergeTrainEnabled, S as setFlywheelRequireUatBeforeMerge, b as setFlywheelAutoPickupBacklog, c as isCloisterSpawnsPausedSync, d as isFlywheelAutoPickupBacklog, f as isFlywheelGloballyPaused$1, g as setCloisterSpawnsPausedSync, h as setBootReconciliationDecision, m as isMergeTrainEnabled, o as getSetting, p as isFlywheelRequireUatBeforeMerge, r as getBootReconciliationState, s as init_control_settings, u as isDeaconGloballyPausedSync, v as setDeaconGloballyPausedSync, w as setSetting } from "./control-settings-
|
|
51
|
-
import { c as init_docker_stats } from "./stack-health-
|
|
52
|
-
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-
|
|
53
|
-
import { i as checkPrdGateSync, t as init_pan_dir } from "./pan-dir-
|
|
54
|
-
import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-
|
|
55
|
-
import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-
|
|
56
|
-
import { At as getAgentJsonlMtime, B as createInFlightGuard, Dt as getRuntimeForAgent, F as setAgentStatusChangedNotifier, Ft as detectAwaitingInputForAgent, I as setAgentStoppedNotifier, It as detectAwaitingInputFromPaneSync, J as startBootReconciliation, K as isBootReconciliationCandidate, L as setMergeReadyNotifier, O as loadConfig, Ot as computeAgentEnrichment, Pt as scanPendingInputsPromise, Rt as parseCodexApprovalPrompt, X as resolveBootGates, Y as formatBootGateState, k as loadState, kt as countPendingAskUserQuestionsForAgent, n as assessDeaconPatrolFreshness, q as listBootReconciliationCandidates, st as withConcurrencyLimit, t as applyBootReconciliationDecision, x as getDeaconLogs } from "./deacon-
|
|
57
|
-
import { i as CostThresholdError, l as embed, s as parseRelativeTime } from "./scanner-
|
|
58
|
-
import { n as deduplicateEventsSync, o as readEventsSync, s as tailEventsSync } from "./events-
|
|
59
|
-
import { n as recordBackgroundAiCost, t as init_cost } from "./cost-
|
|
60
|
-
import { S as writeLatestFlywheelStatus, _ as readCurrentLatestFlywheelStatus, b as subscribeLatestFlywheelStatus, f as getFlywheelRunDetail, h as listFlywheelRuns, l as buildClassifyLookups, m as isFlywheelRunId, y as resolveLiveFlywheelRunId } from "./flywheel-
|
|
61
|
-
import { C as rejectUnauthorizedDashboardSessionMintRequest, S as rejectUnauthorizedDashboardRequest, T as getWorkspacePathForIssue, _ as rebuildCacheSync, b as dashboardSessionCookieHeader, c as resumeQueuedMerges, d as resolveIssueHeadlineCost, f as syncWalFromAllProjects, g as getCostsForIssueSync, h as migrateAllSessionsSync, l as processPendingFeedbackDeliveries, m as reconcilePiTranscripts, p as reconcile, t as workspacesRouteLayer, u as getCachedRunningAgents, v as syncCacheSync, w as rejectUnsafeDashboardMutationRequest, x as hasDashboardInternalToken, y as dashboardCsrfToken } from "./workspaces-
|
|
62
|
-
import { l as detectPlatform, u as init_platform } from "./workspace-manager-
|
|
63
|
-
import { O as init_specialists, b as getReviewerSessionName } from "./specialists-
|
|
49
|
+
import { l as init_codex, s as findRolloutPath } from "./codex-BcSHb3Oi.js";
|
|
50
|
+
import { C as setMergeTrainEnabled, S as setFlywheelRequireUatBeforeMerge, b as setFlywheelAutoPickupBacklog, c as isCloisterSpawnsPausedSync, d as isFlywheelAutoPickupBacklog, f as isFlywheelGloballyPaused$1, g as setCloisterSpawnsPausedSync, h as setBootReconciliationDecision, m as isMergeTrainEnabled, o as getSetting, p as isFlywheelRequireUatBeforeMerge, r as getBootReconciliationState, s as init_control_settings, u as isDeaconGloballyPausedSync, v as setDeaconGloballyPausedSync, w as setSetting } from "./control-settings-CcllfQYK.js";
|
|
51
|
+
import { c as init_docker_stats } from "./stack-health-BDjtNZ9V.js";
|
|
52
|
+
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DzutoEqt.js";
|
|
53
|
+
import { i as checkPrdGateSync, t as init_pan_dir } from "./pan-dir-BwlWqB_Z.js";
|
|
54
|
+
import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-wMIX4D4p.js";
|
|
55
|
+
import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-B2JKxIBj.js";
|
|
56
|
+
import { At as getAgentJsonlMtime, B as createInFlightGuard, Dt as getRuntimeForAgent, F as setAgentStatusChangedNotifier, Ft as detectAwaitingInputForAgent, I as setAgentStoppedNotifier, It as detectAwaitingInputFromPaneSync, J as startBootReconciliation, K as isBootReconciliationCandidate, L as setMergeReadyNotifier, O as loadConfig, Ot as computeAgentEnrichment, Pt as scanPendingInputsPromise, Rt as parseCodexApprovalPrompt, X as resolveBootGates, Y as formatBootGateState, k as loadState, kt as countPendingAskUserQuestionsForAgent, n as assessDeaconPatrolFreshness, q as listBootReconciliationCandidates, st as withConcurrencyLimit, t as applyBootReconciliationDecision, x as getDeaconLogs } from "./deacon-Da1gKxDd.js";
|
|
57
|
+
import { i as CostThresholdError, l as embed, s as parseRelativeTime } from "./scanner-CzCiMLJf.js";
|
|
58
|
+
import { n as deduplicateEventsSync, o as readEventsSync, s as tailEventsSync } from "./events-B3ytKOJM.js";
|
|
59
|
+
import { n as recordBackgroundAiCost, t as init_cost } from "./cost-CGo8texI.js";
|
|
60
|
+
import { S as writeLatestFlywheelStatus, _ as readCurrentLatestFlywheelStatus, b as subscribeLatestFlywheelStatus, f as getFlywheelRunDetail, h as listFlywheelRuns, l as buildClassifyLookups, m as isFlywheelRunId, y as resolveLiveFlywheelRunId } from "./flywheel-By5V03uu.js";
|
|
61
|
+
import { C as rejectUnauthorizedDashboardSessionMintRequest, S as rejectUnauthorizedDashboardRequest, T as getWorkspacePathForIssue, _ as rebuildCacheSync, b as dashboardSessionCookieHeader, c as resumeQueuedMerges, d as resolveIssueHeadlineCost, f as syncWalFromAllProjects, g as getCostsForIssueSync, h as migrateAllSessionsSync, l as processPendingFeedbackDeliveries, m as reconcilePiTranscripts, p as reconcile, t as workspacesRouteLayer, u as getCachedRunningAgents, v as syncCacheSync, w as rejectUnsafeDashboardMutationRequest, x as hasDashboardInternalToken, y as dashboardCsrfToken } from "./workspaces-JkQdW0Rd.js";
|
|
62
|
+
import { l as detectPlatform, u as init_platform } from "./workspace-manager-DA59Z70a.js";
|
|
63
|
+
import { O as init_specialists, b as getReviewerSessionName } from "./specialists-DALlYmo_.js";
|
|
64
64
|
import { t as withBdMutex } from "./bd-mutex-DXCIKL87.js";
|
|
65
|
-
import { n as findPrdAtStatusSync, r as init_prd_locations } from "./prd-locations-
|
|
65
|
+
import { n as findPrdAtStatusSync, r as init_prd_locations } from "./prd-locations-D9J9Dei3.js";
|
|
66
66
|
import { a as getShadowState, s as init_shadow_state } from "./shadow-state-bugG0OUd.js";
|
|
67
|
-
import { c as getMergeBackendStatus, d as init_github_app, f as isGitHubAppConfigured, u as getPullRequestState } from "./github-app-
|
|
68
|
-
import { t as clearIssueClosedCache } from "./issue-closed-
|
|
69
|
-
import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-
|
|
70
|
-
import { n as parseSequenceMd, r as writeSequenceMd, t as init_sequence_io } from "./sequence-io-
|
|
71
|
-
import { C as selectNeedsPlanning, S as normalizeGate, _ as computeCohort, b as computeStats, d as OBJECTION_LABEL, f as PARKED_LABEL, g as classifyIssue, h as VETOED_LABEL, m as RELEASED_LABEL, p as READY_LABEL, u as BLOCKS_MAIN_LABEL, v as computeEpicGroups, x as computeWaves, y as computeLanes } from "./flywheel-merge-order-
|
|
72
|
-
import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-
|
|
73
|
-
import { i as resolveAutoSpawnOnFinalize, o as spawnPlanningSession } from "./spawn-planning-session-
|
|
74
|
-
import { _ as sendToRemoteAgent, a as getRemoteAgentOutput, n as checkRemoteSpendCap, o as init_remote_agents, p as loadRemoteAgentState, u as killRemoteAgent, v as spawnRemoteAgent } from "./remote-agents-
|
|
75
|
-
import { r as spawnInspectAgent } from "./inspect-agent-
|
|
76
|
-
import { a as init_pull_requests, c as getIssuePrTabCacheGeneration, d as githubPrLookupSource, f as init_github_pr_lookup, i as fetchIssuePullRequestDiff, l as init_pr_tab_cache, n as fetchIssuePullRequest, o as bumpIssuePrTabCacheGeneration, p as lookupPullRequestNumberForBranch, r as fetchIssuePullRequestDetails, s as getCachedIssuePrTabResponse, t as fetchIssueCheckRuns, u as setCachedIssuePrTabResponse } from "./pull-requests-
|
|
77
|
-
import { t as enrichReviewStatus } from "./review-status-enrichment-
|
|
67
|
+
import { c as getMergeBackendStatus, d as init_github_app, f as isGitHubAppConfigured, u as getPullRequestState } from "./github-app-DpbY6nKj.js";
|
|
68
|
+
import { t as clearIssueClosedCache } from "./issue-closed-BEVoKUiE.js";
|
|
69
|
+
import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-DUcHN5E1.js";
|
|
70
|
+
import { n as parseSequenceMd, r as writeSequenceMd, t as init_sequence_io } from "./sequence-io-DzHGjEQG.js";
|
|
71
|
+
import { C as selectNeedsPlanning, S as normalizeGate, _ as computeCohort, b as computeStats, d as OBJECTION_LABEL, f as PARKED_LABEL, g as classifyIssue, h as VETOED_LABEL, m as RELEASED_LABEL, p as READY_LABEL, u as BLOCKS_MAIN_LABEL, v as computeEpicGroups, x as computeWaves, y as computeLanes } from "./flywheel-merge-order-DS83DYov.js";
|
|
72
|
+
import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-BWP0Gghc.js";
|
|
73
|
+
import { i as resolveAutoSpawnOnFinalize, o as spawnPlanningSession } from "./spawn-planning-session-DyKxcVGi.js";
|
|
74
|
+
import { _ as sendToRemoteAgent, a as getRemoteAgentOutput, n as checkRemoteSpendCap, o as init_remote_agents, p as loadRemoteAgentState, u as killRemoteAgent, v as spawnRemoteAgent } from "./remote-agents-DHPxoyuA.js";
|
|
75
|
+
import { r as spawnInspectAgent } from "./inspect-agent-CCGhgZwF.js";
|
|
76
|
+
import { a as init_pull_requests, c as getIssuePrTabCacheGeneration, d as githubPrLookupSource, f as init_github_pr_lookup, i as fetchIssuePullRequestDiff, l as init_pr_tab_cache, n as fetchIssuePullRequest, o as bumpIssuePrTabCacheGeneration, p as lookupPullRequestNumberForBranch, r as fetchIssuePullRequestDetails, s as getCachedIssuePrTabResponse, t as fetchIssueCheckRuns, u as setCachedIssuePrTabResponse } from "./pull-requests-R3t6SZ7b.js";
|
|
77
|
+
import { t as enrichReviewStatus } from "./review-status-enrichment-Ddj7NTYe.js";
|
|
78
78
|
import { i as runMemoryFtsTransaction, n as init_fts_db, r as runMemoryFtsStatement, t as closeMemoryFtsDatabases } from "./fts-db-BkKcBcY2.js";
|
|
79
|
-
import { c as init_pending, l as maybeTriggerStatusRollup, o as readRecentObservations, r as init_rollup, u as writePendingTurn } from "./rollup-
|
|
80
|
-
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-
|
|
81
|
-
import { _ as init_git_activity, v as listGitOperationsSync } from "./merge-agent-
|
|
82
|
-
import { t as getAgentCommandSync } from "./settings-
|
|
83
|
-
import { n as init_review_agent, r as isExtendedReviewEnabled } from "./review-agent-
|
|
84
|
-
import { r as isRemoteAvailable, t as createFlyProviderFromConfig } from "./remote-
|
|
85
|
-
import { n as init_claude_settings_overlay, t as detectProviderEnvConflicts } from "./claude-settings-overlay-
|
|
86
|
-
import { a as init_query_expansion, i as clearQueryExpansionCache, n as init_injection, o as buildMatchQuery, r as injectPromptTimeMemory, s as init_search } from "./injection-
|
|
87
|
-
import { _ as init_transcript_adapter, a as generateFallbackSummary, c as handoffPreconditionFallbackReason, d as prependFallbackFocus, f as requestHandoffFromAgent, g as getTranscriptAdapter, i as copySessionFromCompactBoundary, l as init_summary_fork, o as generateSummaryForFork, p as reserveSummaryForkSession, r as authorHandoffExternal, s as handoffFailureReason, u as logHandoffFallback } from "./summary-fork-
|
|
88
|
-
import { a as init_conversation_compaction, c as shouldInterceptManualCompact, n as compactConversationNative, o as isCompacting } from "./conversation-compaction-
|
|
79
|
+
import { c as init_pending, l as maybeTriggerStatusRollup, o as readRecentObservations, r as init_rollup, u as writePendingTurn } from "./rollup-DjuYNjJA.js";
|
|
80
|
+
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-BUdzAlOX.js";
|
|
81
|
+
import { _ as init_git_activity, v as listGitOperationsSync } from "./merge-agent-NmPcMe48.js";
|
|
82
|
+
import { t as getAgentCommandSync } from "./settings-CHBd7dXM.js";
|
|
83
|
+
import { n as init_review_agent, r as isExtendedReviewEnabled } from "./review-agent-Fy6N7Kgq.js";
|
|
84
|
+
import { r as isRemoteAvailable, t as createFlyProviderFromConfig } from "./remote-D9u5oAKU.js";
|
|
85
|
+
import { n as init_claude_settings_overlay, t as detectProviderEnvConflicts } from "./claude-settings-overlay-CwvL66eF.js";
|
|
86
|
+
import { a as init_query_expansion, i as clearQueryExpansionCache, n as init_injection, o as buildMatchQuery, r as injectPromptTimeMemory, s as init_search } from "./injection-GRwakte4.js";
|
|
87
|
+
import { _ as init_transcript_adapter, a as generateFallbackSummary, c as handoffPreconditionFallbackReason, d as prependFallbackFocus, f as requestHandoffFromAgent, g as getTranscriptAdapter, i as copySessionFromCompactBoundary, l as init_summary_fork, o as generateSummaryForFork, p as reserveSummaryForkSession, r as authorHandoffExternal, s as handoffFailureReason, u as logHandoffFallback } from "./summary-fork-B9qYAHl6.js";
|
|
88
|
+
import { a as init_conversation_compaction, c as shouldInterceptManualCompact, n as compactConversationNative, o as isCompacting } from "./conversation-compaction-CKJRITVq.js";
|
|
89
89
|
import { a as init_render, d as validateTemplate, i as hasManagedRegion, l as init_harness, o as userContentOutsideRegion, t as init_context_layers, u as renderForHarness } from "./context-layers-DGIdj1-C.js";
|
|
90
|
-
import { r as parseArtifactRef } from "./forge-
|
|
91
|
-
import { t as getMergeBlockersPayload } from "./merge-blockers-
|
|
92
|
-
import { a as spawnSequencerAgent, i as init_sequencer_agent, n as clearFinishedSequencerRun, r as getSequencerRunStatus, t as SEQUENCER_AGENT_ID } from "./sequencer-agent-
|
|
93
|
-
import "./supervisor-
|
|
94
|
-
import { i as listTranscriptCheckpoints, r as getTranscriptCheckpoint$1 } from "./checkpoints-
|
|
90
|
+
import { r as parseArtifactRef } from "./forge-C7RLCYC_.js";
|
|
91
|
+
import { t as getMergeBlockersPayload } from "./merge-blockers-B3Y4Sprl.js";
|
|
92
|
+
import { a as spawnSequencerAgent, i as init_sequencer_agent, n as clearFinishedSequencerRun, r as getSequencerRunStatus, t as SEQUENCER_AGENT_ID } from "./sequencer-agent-BEVXaOSB.js";
|
|
93
|
+
import "./supervisor-CNcM3RIc.js";
|
|
94
|
+
import { i as listTranscriptCheckpoints, r as getTranscriptCheckpoint$1 } from "./checkpoints-0C9dS0-x.js";
|
|
95
95
|
import { createRequire } from "node:module";
|
|
96
96
|
import { Cause, Context, Data, Duration, Effect, Exit, Fiber, FileSystem, Layer, Option, Path, Queue, Result, Schedule, Schema, Stream } from "effect";
|
|
97
97
|
import { createReadStream, createWriteStream, existsSync, fstatSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
|
|
@@ -651,7 +651,7 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
651
651
|
const beadsDir = join$1(workspacePath, ".beads");
|
|
652
652
|
const projectBeadsDir = join$1(workspacePath, "..", "..", ".beads");
|
|
653
653
|
if (!(existsSync$1(beadsDir) || existsSync$1(projectBeadsDir))) throw new BeadsNotInitialized({ workspace: workspacePath });
|
|
654
|
-
const { getAgentState, spawnAgent, normalizeAgentId } = await import("./agents-
|
|
654
|
+
const { getAgentState, spawnAgent, normalizeAgentId } = await import("./agents-Bi9Y6h5B.js");
|
|
655
655
|
const normalizedId = normalizeAgentId(issueId);
|
|
656
656
|
if ((await Effect.runPromise(getAgentState(normalizedId)))?.status === "running") throw new AgentAlreadyRunning({ id: issueId });
|
|
657
657
|
return {
|
|
@@ -682,7 +682,7 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
682
682
|
const { workspacePath, projectPath, issue } = opts;
|
|
683
683
|
if (!existsSync$1(workspacePath)) throw new WorkspaceNotFound({ id: issueId });
|
|
684
684
|
const sessionName = opts.sessionName ?? `planning-${issueId.toLowerCase()}`;
|
|
685
|
-
const { spawnPlanningSession } = await import("./spawn-planning-session-
|
|
685
|
+
const { spawnPlanningSession } = await import("./spawn-planning-session-B-vx-dop.js");
|
|
686
686
|
const result = await spawnPlanningSession({
|
|
687
687
|
issue: {
|
|
688
688
|
id: issue.id,
|
|
@@ -715,14 +715,14 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
715
715
|
}),
|
|
716
716
|
kill: (agentId) => Effect.tryPromise({
|
|
717
717
|
try: async () => {
|
|
718
|
-
const { stopAgent } = await import("./agents-
|
|
718
|
+
const { stopAgent } = await import("./agents-Bi9Y6h5B.js");
|
|
719
719
|
await Effect.runPromise(stopAgent(agentId));
|
|
720
720
|
},
|
|
721
721
|
catch: () => void 0
|
|
722
722
|
}).pipe(Effect.ignore),
|
|
723
723
|
message: (agentId, msg) => Effect.tryPromise({
|
|
724
724
|
try: async () => {
|
|
725
|
-
const { messageAgent } = await import("./agents-
|
|
725
|
+
const { messageAgent } = await import("./agents-Bi9Y6h5B.js");
|
|
726
726
|
await messageAgent(agentId, msg);
|
|
727
727
|
},
|
|
728
728
|
catch: (err) => new AgentStartError({
|
|
@@ -733,8 +733,8 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
733
733
|
}),
|
|
734
734
|
deepWipe: (issueId, opts) => Effect.tryPromise({
|
|
735
735
|
try: async () => {
|
|
736
|
-
const { deepWipe } = await import("./workflows-
|
|
737
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
736
|
+
const { deepWipe } = await import("./workflows-DaV5vcGg.js");
|
|
737
|
+
const { resolveProjectFromIssueSync } = await import("./projects-CKnFqWB0.js");
|
|
738
738
|
const project = resolveProjectFromIssueSync(issueId);
|
|
739
739
|
const projectPath = project?.projectPath ?? process.cwd();
|
|
740
740
|
await Effect.runPromise(deepWipe({
|
|
@@ -790,8 +790,8 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
790
790
|
const { workspacePath, branch } = getWorkspacePath(issueId);
|
|
791
791
|
const issueLower = issueId.toLowerCase();
|
|
792
792
|
if (existsSync$1(workspacePath)) return workspacePath;
|
|
793
|
-
const { createWorkspace } = await import("./workspace-manager-
|
|
794
|
-
const { loadProjectsConfigSync } = await import("./projects-
|
|
793
|
+
const { createWorkspace } = await import("./workspace-manager-CK4yZQev.js");
|
|
794
|
+
const { loadProjectsConfigSync } = await import("./projects-CKnFqWB0.js");
|
|
795
795
|
const { projects } = loadProjectsConfigSync();
|
|
796
796
|
const project = resolveProjectFromIssueSync(issueId);
|
|
797
797
|
if (!project) throw new WorkspaceCreateError({
|
|
@@ -826,7 +826,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
826
826
|
const { workspacePath } = getWorkspacePath(issueId);
|
|
827
827
|
const issueLower = issueId.toLowerCase();
|
|
828
828
|
if (!existsSync$1(workspacePath)) throw new WorkspaceNotFound({ id: issueId });
|
|
829
|
-
const { removeWorkspace } = await import("./workspace-manager-
|
|
829
|
+
const { removeWorkspace } = await import("./workspace-manager-CK4yZQev.js");
|
|
830
830
|
const project = resolveProjectFromIssueSync(issueId);
|
|
831
831
|
if (!project) throw new WorkspaceCreateError({
|
|
832
832
|
id: issueId,
|
|
@@ -857,7 +857,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
857
857
|
try: async () => {
|
|
858
858
|
const { workspacePath } = getWorkspacePath(issueId);
|
|
859
859
|
const issueLower = issueId.toLowerCase();
|
|
860
|
-
const { stopWorkspaceDocker } = await import("./workspace-manager-
|
|
860
|
+
const { stopWorkspaceDocker } = await import("./workspace-manager-CK4yZQev.js");
|
|
861
861
|
await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
|
|
862
862
|
},
|
|
863
863
|
catch: () => void 0
|
|
@@ -926,7 +926,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
926
926
|
join$1(workspacePath, ".devcontainer", "docker-compose.devcontainer.yml")
|
|
927
927
|
];
|
|
928
928
|
if (!composePaths.find((p) => existsSync$1(p))) {
|
|
929
|
-
const { ensureDevcontainerSync } = await import("./ensure-devcontainer-
|
|
929
|
+
const { ensureDevcontainerSync } = await import("./ensure-devcontainer-C18oIaYa.js");
|
|
930
930
|
const ensure = ensureDevcontainerSync({
|
|
931
931
|
workspacePath,
|
|
932
932
|
issueId
|
|
@@ -29286,6 +29286,12 @@ function storedToDomainEvent(stored) {
|
|
|
29286
29286
|
payload: stored.payload
|
|
29287
29287
|
};
|
|
29288
29288
|
}
|
|
29289
|
+
const isKnownDomainEvent = Schema.is(DomainEvent);
|
|
29290
|
+
function passesDomainEventSchema(event) {
|
|
29291
|
+
if (isKnownDomainEvent(event)) return true;
|
|
29292
|
+
console.error(`[ws-rpc] dropping domain event that fails DomainEvent schema validation — add it to the contracts union: type=${event.type} seq=${event.sequence}`);
|
|
29293
|
+
return false;
|
|
29294
|
+
}
|
|
29289
29295
|
function createSystemHeartbeatEvent() {
|
|
29290
29296
|
const ts = Date.now();
|
|
29291
29297
|
return {
|
|
@@ -29719,7 +29725,7 @@ const PanRpcLayer = PanRpcGroup.toLayer(Effect.gen(function* () {
|
|
|
29719
29725
|
[WS_METHODS.subscribeDomainEvents]: (_input) => {
|
|
29720
29726
|
console.log("[ws-rpc] subscribeDomainEvents invoked");
|
|
29721
29727
|
const heartbeats = Stream.tick("15 seconds").pipe(Stream.map(createSystemHeartbeatEvent));
|
|
29722
|
-
return eventStore.streamEvents.pipe(Stream.map(storedToDomainEvent), Stream.merge(heartbeats));
|
|
29728
|
+
return eventStore.streamEvents.pipe(Stream.map(storedToDomainEvent), Stream.filter(passesDomainEventSchema), Stream.merge(heartbeats));
|
|
29723
29729
|
},
|
|
29724
29730
|
[WS_METHODS.subscribeFlywheelStatus]: (_input) => Stream.callback((queue) => Effect.acquireRelease(Effect.promise(async () => {
|
|
29725
29731
|
const latest = await readCurrentLatestFlywheelStatus({ activeRunId: await runDashboardDbJob("getSetting", "flywheel.active_run_id") });
|
|
@@ -29730,7 +29736,7 @@ const PanRpcLayer = PanRpcGroup.toLayer(Effect.gen(function* () {
|
|
|
29730
29736
|
}), (unsubscribe) => Effect.sync(() => unsubscribe()))),
|
|
29731
29737
|
[WS_METHODS.subscribeIssueEvents]: (input) => {
|
|
29732
29738
|
console.log(`[ws-rpc] subscribeIssueEvents invoked issueId=${input.issueId}`);
|
|
29733
|
-
return eventStore.streamEvents.pipe(Stream.map(storedToDomainEvent), Stream.mapEffect((event) => getCachedAgentIssueLookup(readModel).pipe(Effect.map((lookup) => filterDomainEventForIssue(event, input.issueId, lookup)))), Stream.filter((event) => event !== null));
|
|
29739
|
+
return eventStore.streamEvents.pipe(Stream.map(storedToDomainEvent), Stream.filter(passesDomainEventSchema), Stream.mapEffect((event) => getCachedAgentIssueLookup(readModel).pipe(Effect.map((lookup) => filterDomainEventForIssue(event, input.issueId, lookup)))), Stream.filter((event) => event !== null));
|
|
29734
29740
|
},
|
|
29735
29741
|
[WS_METHODS.subscribeTerminal]: (input) => terminalService.streamSession(input.sessionName, input.cols, input.rows),
|
|
29736
29742
|
[WS_METHODS.subscribeAgentOutput]: (input) => eventStore.streamEvents.pipe(Stream.filter((e) => e.type === "agent.output_received" && e.payload["agentId"] === input.agentId), Stream.flatMap((e) => {
|
|
@@ -29752,7 +29758,7 @@ const PanRpcLayer = PanRpcGroup.toLayer(Effect.gen(function* () {
|
|
|
29752
29758
|
message: `Failed to build dashboard snapshot: ${String(cause)}`,
|
|
29753
29759
|
code: "SNAPSHOT_FAILED"
|
|
29754
29760
|
}))),
|
|
29755
|
-
[WS_METHODS.replayEvents]: (input) => eventStore.readFrom(input.fromSequence).pipe(Effect.map((stored) => stored.map(storedToDomainEvent)), Effect.mapError((cause) => new PanRpcError({
|
|
29761
|
+
[WS_METHODS.replayEvents]: (input) => eventStore.readFrom(input.fromSequence).pipe(Effect.map((stored) => stored.map(storedToDomainEvent).filter(passesDomainEventSchema)), Effect.mapError((cause) => new PanRpcError({
|
|
29756
29762
|
message: `Failed to replay events: ${String(cause)}`,
|
|
29757
29763
|
code: "REPLAY_FAILED"
|
|
29758
29764
|
}))),
|
|
@@ -30487,7 +30493,7 @@ function isDiscoverableAgentSession(sessionName) {
|
|
|
30487
30493
|
async function loadTrackerIssues() {
|
|
30488
30494
|
const map = /* @__PURE__ */ new Map();
|
|
30489
30495
|
try {
|
|
30490
|
-
const { getSharedIssueService } = await import("./issue-service-singleton-
|
|
30496
|
+
const { getSharedIssueService } = await import("./issue-service-singleton-BSgap-ST.js");
|
|
30491
30497
|
const issues = (await getSharedIssueService()).getIssues();
|
|
30492
30498
|
for (const issue of issues) if (issue.identifier) map.set(issue.identifier.toUpperCase(), issue);
|
|
30493
30499
|
} catch {
|
|
@@ -30686,7 +30692,7 @@ async function computeResourceAllocatedIssues() {
|
|
|
30686
30692
|
if (!issue.resourceDetails.tmuxSessions.includes(sessionName)) issue.resourceDetails.tmuxSessions.push(sessionName);
|
|
30687
30693
|
}
|
|
30688
30694
|
try {
|
|
30689
|
-
const { listActiveRemoteAgentStates } = await import("./remote-agents-
|
|
30695
|
+
const { listActiveRemoteAgentStates } = await import("./remote-agents-tBpE_KXg.js");
|
|
30690
30696
|
for (const remoteState of listActiveRemoteAgentStates()) {
|
|
30691
30697
|
const issue = ensureIssue(remoteState.issueId);
|
|
30692
30698
|
if (!issue) continue;
|
|
@@ -31249,7 +31255,7 @@ async function completePlanningArtifacts(options) {
|
|
|
31249
31255
|
if (workspaceIssueId && workspaceIssueId.toLowerCase() !== issueLower) throw new Error(`Workspace vBRIEF is for ${workspaceIssueId.toUpperCase()}, not ${upperIssueId}`);
|
|
31250
31256
|
assertPlanQuality(workspaceDoc);
|
|
31251
31257
|
const createBeads = options.createBeads ?? (async (path) => {
|
|
31252
|
-
const mod = await import("./beads-
|
|
31258
|
+
const mod = await import("./beads-BRYZM_Zz.js");
|
|
31253
31259
|
return await Effect.runPromise(mod.createBeadsFromVBrief(path));
|
|
31254
31260
|
});
|
|
31255
31261
|
emitCompletePlanningPhase(upperIssueId, "specWrite", "start", "writing proposed vBRIEF spec", { projectPath });
|
|
@@ -31851,7 +31857,7 @@ async function closeIssuePullRequest(issueId, reason = "Canceled via Overdeck")
|
|
|
31851
31857
|
timeout: 15e3
|
|
31852
31858
|
});
|
|
31853
31859
|
try {
|
|
31854
|
-
const { setReviewStatusSync } = await import("./review-status-
|
|
31860
|
+
const { setReviewStatusSync } = await import("./review-status-BzMWJsVk.js");
|
|
31855
31861
|
setReviewStatusSync(issueId.toUpperCase(), { prUrl: void 0 });
|
|
31856
31862
|
} catch {}
|
|
31857
31863
|
return [`Closed PR #${prNumber} on ${githubCheck.owner}/${githubCheck.repo}`];
|
|
@@ -31905,7 +31911,7 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
|
|
|
31905
31911
|
const { ctx, projectConfig } = buildLifecycleContext(id, getIssueDataService$8().getIssueSource(id) ?? void 0);
|
|
31906
31912
|
const deleteWorkspace = opts.deleteWorkspace ?? true;
|
|
31907
31913
|
cleanupLog.push(...await closeIssuePullRequest(id, mode === "cancel" ? "Canceled via Overdeck" : "Reset to Todo via Overdeck"));
|
|
31908
|
-
const { resetToTodo, cancelIssueWorkflow } = await import("./lifecycle-
|
|
31914
|
+
const { resetToTodo, cancelIssueWorkflow } = await import("./lifecycle-Bu2YCv15.js");
|
|
31909
31915
|
const workflow = mode === "cancel" ? cancelIssueWorkflow : resetToTodo;
|
|
31910
31916
|
const result = await Effect.runPromise(workflow(ctx, {
|
|
31911
31917
|
deleteWorkspace,
|
|
@@ -31920,7 +31926,7 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
|
|
|
31920
31926
|
}));
|
|
31921
31927
|
cleanupLog.push(...result.steps.flatMap((step) => step.details || [step.error].filter(Boolean)));
|
|
31922
31928
|
if (mode === "cancel") try {
|
|
31923
|
-
const { transitionVBriefOnMain } = await import("./lifecycle-io-
|
|
31929
|
+
const { transitionVBriefOnMain } = await import("./lifecycle-io-DmVYRVq5.js");
|
|
31924
31930
|
const tx = await Effect.runPromise(transitionVBriefOnMain(ctx.projectPath, id, "cancelled", "cancelled", `scope: cancel ${id.toUpperCase()} vBRIEF`));
|
|
31925
31931
|
if (tx.moved) cleanupLog.push(`vBRIEF moved ${tx.fromDir} → cancelled`);
|
|
31926
31932
|
if (tx.committed) cleanupLog.push(`Committed vBRIEF cancellation on main`);
|
|
@@ -31928,8 +31934,8 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
|
|
|
31928
31934
|
cleanupLog.push(`vBRIEF cancel transition failed (non-fatal): ${err?.message ?? err}`);
|
|
31929
31935
|
}
|
|
31930
31936
|
try {
|
|
31931
|
-
const { killAllReviewerSessions } = await import("./review-agent-
|
|
31932
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
31937
|
+
const { killAllReviewerSessions } = await import("./review-agent-D-gfTx9G.js");
|
|
31938
|
+
const { resolveProjectFromIssueSync } = await import("./projects-CKnFqWB0.js");
|
|
31933
31939
|
const projectKey = resolveProjectFromIssueSync(id)?.projectKey;
|
|
31934
31940
|
if (projectKey) {
|
|
31935
31941
|
const { killed } = await Effect.runPromise(killAllReviewerSessions(projectKey, id.toUpperCase()));
|
|
@@ -31943,7 +31949,7 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
|
|
|
31943
31949
|
cleanupLog.push("Cleared review status");
|
|
31944
31950
|
} catch {}
|
|
31945
31951
|
try {
|
|
31946
|
-
const { resetPostMergeState } = await import("./merge-agent-
|
|
31952
|
+
const { resetPostMergeState } = await import("./merge-agent-CvVDCFOp.js");
|
|
31947
31953
|
resetPostMergeState(id);
|
|
31948
31954
|
resetPostMergeState(id.toUpperCase());
|
|
31949
31955
|
cleanupLog.push("Cleared merge state");
|
|
@@ -31963,7 +31969,7 @@ function closeIssueTransition(options) {
|
|
|
31963
31969
|
const { issueId, body, eventStore } = options;
|
|
31964
31970
|
const { reason } = body;
|
|
31965
31971
|
const projectPath = getProjectPath$3(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
31966
|
-
const { close: closeWorkflow } = yield* Effect.promise(() => import("./lifecycle-
|
|
31972
|
+
const { close: closeWorkflow } = yield* Effect.promise(() => import("./lifecycle-Bu2YCv15.js"));
|
|
31967
31973
|
const githubCheck = isGitHubIssue$4(issueId);
|
|
31968
31974
|
const issueDataService = getIssueDataService$8();
|
|
31969
31975
|
const issueSource = issueDataService.getIssueSource(issueId);
|
|
@@ -32230,7 +32236,7 @@ function reopenIssueTransition(options) {
|
|
|
32230
32236
|
else clearReviewStatus(id.toUpperCase());
|
|
32231
32237
|
} catch {}
|
|
32232
32238
|
try {
|
|
32233
|
-
const { resetPostMergeState } = await import("./merge-agent-
|
|
32239
|
+
const { resetPostMergeState } = await import("./merge-agent-CvVDCFOp.js");
|
|
32234
32240
|
resetPostMergeState(id);
|
|
32235
32241
|
resetPostMergeState(id.toUpperCase());
|
|
32236
32242
|
} catch {}
|
|
@@ -32250,7 +32256,7 @@ function reopenIssueTransition(options) {
|
|
|
32250
32256
|
const projectPath = (teamPrefix ? findProjectByTeamSync(teamPrefix) : null)?.path || "";
|
|
32251
32257
|
if (projectPath) {
|
|
32252
32258
|
const workspacePath = join$1(projectPath, "workspaces", `feature-${issueLower}`);
|
|
32253
|
-
const { createBeadsFromVBrief } = await import("./beads-
|
|
32259
|
+
const { createBeadsFromVBrief } = await import("./beads-BRYZM_Zz.js");
|
|
32254
32260
|
if (existsSync$1(workspacePath) && await Effect.runPromise(findPlan(workspacePath))) try {
|
|
32255
32261
|
const { stdout: bdCheck } = await Effect.runPromise(withBdMutex(() => Effect.promise(() => execFileAsync$6("bd", [
|
|
32256
32262
|
"list",
|
|
@@ -32554,7 +32560,7 @@ async function copySettingsToWorkspace(id) {
|
|
|
32554
32560
|
success: false,
|
|
32555
32561
|
error: "Workspace not found"
|
|
32556
32562
|
}, { status: 404 });
|
|
32557
|
-
const { copyOverdeckSettingsToWorkspaceSync } = await import("./workspace-manager-
|
|
32563
|
+
const { copyOverdeckSettingsToWorkspaceSync } = await import("./workspace-manager-CK4yZQev.js");
|
|
32558
32564
|
const result = copyOverdeckSettingsToWorkspaceSync(workspacePath);
|
|
32559
32565
|
return jsonResponse({
|
|
32560
32566
|
success: result.errors.length === 0 || result.copied.length > 0,
|
|
@@ -32587,7 +32593,7 @@ function generateTasksForIssue(id) {
|
|
|
32587
32593
|
success: false,
|
|
32588
32594
|
error: `No vBRIEF spec found on main for ${id} — run planning first.`
|
|
32589
32595
|
}, { status: 409 });
|
|
32590
|
-
const { createBeadsFromVBrief } = yield* Effect.promise(() => import("./beads-
|
|
32596
|
+
const { createBeadsFromVBrief } = yield* Effect.promise(() => import("./beads-BRYZM_Zz.js"));
|
|
32591
32597
|
const result = yield* createBeadsFromVBrief(workspacePath);
|
|
32592
32598
|
if (!result.success || result.created.length === 0) {
|
|
32593
32599
|
const errors = result.errors.length > 0 ? result.errors : ["Beads creation produced no tasks"];
|
|
@@ -33479,7 +33485,7 @@ function closeOutIssue(id) {
|
|
|
33479
33485
|
}
|
|
33480
33486
|
const closeOutResult = yield* Effect.promise(async () => {
|
|
33481
33487
|
try {
|
|
33482
|
-
const { closeOut } = await import("./lifecycle-
|
|
33488
|
+
const { closeOut } = await import("./lifecycle-Bu2YCv15.js");
|
|
33483
33489
|
return {
|
|
33484
33490
|
ok: true,
|
|
33485
33491
|
result: await Effect.runPromise(closeOut(ctx))
|
|
@@ -33565,7 +33571,7 @@ function bulkCloseOut(body) {
|
|
|
33565
33571
|
const invalidIds = issueIds.filter((id) => !isValidIssueId(id));
|
|
33566
33572
|
if (invalidIds.length > 0) return jsonResponse({ error: `Invalid issue ID format: ${invalidIds.join(", ")}` }, { status: 400 });
|
|
33567
33573
|
const eventStore = yield* EventStoreService;
|
|
33568
|
-
const { closeOut } = yield* Effect.promise(() => import("./lifecycle-
|
|
33574
|
+
const { closeOut } = yield* Effect.promise(() => import("./lifecycle-Bu2YCv15.js"));
|
|
33569
33575
|
const issueDataService = getIssueDataService$5();
|
|
33570
33576
|
const tasks = [];
|
|
33571
33577
|
const agentChecks = yield* withConcurrencyLimit(issueIds.map((id) => Effect.promise(async () => {
|
|
@@ -34979,8 +34985,34 @@ async function deriveSessionPresence(agentId, rtState, tmuxSessionNames) {
|
|
|
34979
34985
|
return "idle";
|
|
34980
34986
|
}
|
|
34981
34987
|
//#endregion
|
|
34982
|
-
//#region ../../lib/settings-api.ts
|
|
34988
|
+
//#region ../../lib/settings-api-tiered-execution.ts
|
|
34983
34989
|
init_prd_locations();
|
|
34990
|
+
function tieredExecutionConfigForSave(config, providerAuth) {
|
|
34991
|
+
if (config === void 0) return void 0;
|
|
34992
|
+
const validated = validateTieredExecutionConfig(config, { providerAuth });
|
|
34993
|
+
return {
|
|
34994
|
+
enabled: validated.enabled,
|
|
34995
|
+
tiers: validated.tiers,
|
|
34996
|
+
supervisor: validated.supervisor,
|
|
34997
|
+
by_kind: validated.by_kind,
|
|
34998
|
+
feed: validated.feed,
|
|
34999
|
+
escalation: validated.escalation,
|
|
35000
|
+
compaction_reroute: validated.compaction_reroute,
|
|
35001
|
+
replay_threshold: validated.replay_threshold
|
|
35002
|
+
};
|
|
35003
|
+
}
|
|
35004
|
+
function validateTieredExecutionSettings(config, providerAuth) {
|
|
35005
|
+
if (config === void 0) return null;
|
|
35006
|
+
try {
|
|
35007
|
+
validateTieredExecutionConfig(config, { providerAuth });
|
|
35008
|
+
return null;
|
|
35009
|
+
} catch (error) {
|
|
35010
|
+
if (error instanceof TieredExecutionConfigError) return error.message;
|
|
35011
|
+
throw error;
|
|
35012
|
+
}
|
|
35013
|
+
}
|
|
35014
|
+
//#endregion
|
|
35015
|
+
//#region ../../lib/settings-api.ts
|
|
34984
35016
|
/**
|
|
34985
35017
|
* Settings API Adapter
|
|
34986
35018
|
*
|
|
@@ -35440,7 +35472,8 @@ async function writeYamlConfigPreservingComments(yamlConfig) {
|
|
|
35440
35472
|
["tracker_keys", config.tracker_keys],
|
|
35441
35473
|
["experimental", config.experimental],
|
|
35442
35474
|
["claude", config.claude],
|
|
35443
|
-
["codex", config.codex]
|
|
35475
|
+
["codex", config.codex],
|
|
35476
|
+
["tiered_execution", config.tiered_execution]
|
|
35444
35477
|
];
|
|
35445
35478
|
for (const [key, value] of topLevelSections) if (value === void 0) doc.deleteIn([key]);
|
|
35446
35479
|
else doc.setIn([key], value);
|
|
@@ -35544,7 +35577,8 @@ async function saveSettingsApiPromise(settings) {
|
|
|
35544
35577
|
} : void 0,
|
|
35545
35578
|
claude: settings.claude?.permissionMode ? { permissionMode: settings.claude.permissionMode } : void 0,
|
|
35546
35579
|
codex: settings.codex?.permissionMode ? { permissionMode: settings.codex.permissionMode } : void 0,
|
|
35547
|
-
remote: settings.remote
|
|
35580
|
+
remote: settings.remote,
|
|
35581
|
+
tiered_execution: tieredExecutionConfigForSave(settings.tiered_execution, currentConfig.providerAuth)
|
|
35548
35582
|
});
|
|
35549
35583
|
clearConfigCache();
|
|
35550
35584
|
}
|
|
@@ -35711,6 +35745,10 @@ function validateSettingsApi(settings) {
|
|
|
35711
35745
|
if (settings.remote.resiliency_tier !== void 0 && settings.remote.resiliency_tier !== "ephemeral" && settings.remote.resiliency_tier !== "durable") errors.push("remote.resiliency_tier must be ephemeral or durable");
|
|
35712
35746
|
if (settings.remote.max_concurrent_agents !== void 0 && (!Number.isInteger(settings.remote.max_concurrent_agents) || settings.remote.max_concurrent_agents < 0)) errors.push("remote.max_concurrent_agents must be a non-negative integer");
|
|
35713
35747
|
}
|
|
35748
|
+
if (settings.tiered_execution !== void 0) {
|
|
35749
|
+
const tieredExecutionError = validateTieredExecutionSettings(settings.tiered_execution, loadConfigSync().config.providerAuth);
|
|
35750
|
+
if (tieredExecutionError) errors.push(tieredExecutionError);
|
|
35751
|
+
}
|
|
35714
35752
|
return {
|
|
35715
35753
|
valid: errors.length === 0,
|
|
35716
35754
|
errors,
|
|
@@ -36881,7 +36919,7 @@ Be specific: reference actual file names, function names, requirement text, disc
|
|
|
36881
36919
|
const { command: cliCmd, args: cliArgs } = getAgentCommandSync(statusModelId);
|
|
36882
36920
|
const modelFlag = cliArgs.length > 0 ? ` ${cliArgs.join(" ")}` : "";
|
|
36883
36921
|
const promptFile = join$1(planningDir, ".status-review-prompt.tmp");
|
|
36884
|
-
const { getProviderForModelSync, getProviderEnvSync } = await import("./providers-
|
|
36922
|
+
const { getProviderForModelSync, getProviderEnvSync } = await import("./providers-B0dqjvFa.js");
|
|
36885
36923
|
let providerEnvStr = "";
|
|
36886
36924
|
let providerEnv = {};
|
|
36887
36925
|
const statusProvider = getProviderForModelSync(statusModelId);
|
|
@@ -42842,7 +42880,7 @@ const postRallyValidateRoute = HttpRouter.add("POST", "/api/rally/validate", Eff
|
|
|
42842
42880
|
}, { status: 400 });
|
|
42843
42881
|
return yield* Effect.promise(async () => {
|
|
42844
42882
|
try {
|
|
42845
|
-
const { RallyRestApi } = await import("./rally-api-
|
|
42883
|
+
const { RallyRestApi } = await import("./rally-api-ukAD0De8.js");
|
|
42846
42884
|
const api = new RallyRestApi({
|
|
42847
42885
|
apiKey,
|
|
42848
42886
|
server: server || "https://rally1.rallydev.com"
|
|
@@ -43170,7 +43208,7 @@ const getPlanningStatusRoute = HttpRouter.add("GET", "/api/planning/:issueId/sta
|
|
|
43170
43208
|
const remoteState = loadRemoteAgentState(sessionName);
|
|
43171
43209
|
const isRemote = !!remoteState;
|
|
43172
43210
|
const vmName = remoteState?.vmName ?? "";
|
|
43173
|
-
const { getAgentStateSync } = await import("./agents-
|
|
43211
|
+
const { getAgentStateSync } = await import("./agents-Bi9Y6h5B.js");
|
|
43174
43212
|
const agentStarting = getAgentStateSync(sessionName)?.status === "starting";
|
|
43175
43213
|
let tmuxSessionAlive = false;
|
|
43176
43214
|
if (!isRemote) try {
|
|
@@ -43313,7 +43351,7 @@ Continue the PLANNING session. Do NOT implement anything.
|
|
|
43313
43351
|
`);
|
|
43314
43352
|
const agentCwd = workspacePath;
|
|
43315
43353
|
if (existsSync$1(outputFile)) await rename(outputFile, join$1(planningDir, `output-${Date.now()}.jsonl`));
|
|
43316
|
-
const { getAgentCommandSync } = await import("./settings-
|
|
43354
|
+
const { getAgentCommandSync } = await import("./settings-DPQ5nEA-.js");
|
|
43317
43355
|
let msgPlanningModel = "claude-sonnet-5";
|
|
43318
43356
|
try {
|
|
43319
43357
|
msgPlanningModel = resolveModel("plan", void 0, loadConfigSync().config);
|
|
@@ -43434,7 +43472,7 @@ async function getIndexStats(rootPath, isMain) {
|
|
|
43434
43472
|
}
|
|
43435
43473
|
const getTldrStatusRoute = HttpRouter.add("GET", "/api/services/tldr/status", Effect.promise(async () => {
|
|
43436
43474
|
try {
|
|
43437
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
43475
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-LV_URGSC.js");
|
|
43438
43476
|
const projectRoot = process.cwd();
|
|
43439
43477
|
const venvPath = join$1(projectRoot, ".venv");
|
|
43440
43478
|
const results = [];
|
|
@@ -43479,7 +43517,7 @@ const getTldrStatusRoute = HttpRouter.add("GET", "/api/services/tldr/status", Ef
|
|
|
43479
43517
|
}));
|
|
43480
43518
|
const postTldrStartRoute = HttpRouter.add("POST", "/api/services/tldr/start", Effect.promise(async () => {
|
|
43481
43519
|
try {
|
|
43482
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
43520
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-LV_URGSC.js");
|
|
43483
43521
|
const projectRoot = process.cwd();
|
|
43484
43522
|
const venvPath = join$1(projectRoot, ".venv");
|
|
43485
43523
|
if (!existsSync$1(venvPath)) return jsonResponse({ error: "No .venv found in project root" }, { status: 404 });
|
|
@@ -43496,7 +43534,7 @@ const postTldrStartRoute = HttpRouter.add("POST", "/api/services/tldr/start", Ef
|
|
|
43496
43534
|
}));
|
|
43497
43535
|
const postTldrStopRoute = HttpRouter.add("POST", "/api/services/tldr/stop", Effect.promise(async () => {
|
|
43498
43536
|
try {
|
|
43499
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
43537
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-LV_URGSC.js");
|
|
43500
43538
|
const projectRoot = process.cwd();
|
|
43501
43539
|
const venvPath = join$1(projectRoot, ".venv");
|
|
43502
43540
|
if (!existsSync$1(venvPath)) return jsonResponse({ error: "No .venv found in project root" }, { status: 404 });
|
|
@@ -43513,7 +43551,7 @@ const postTldrStopRoute = HttpRouter.add("POST", "/api/services/tldr/stop", Effe
|
|
|
43513
43551
|
}));
|
|
43514
43552
|
const postTldrReloadRoute = HttpRouter.add("POST", "/api/services/tldr/reload", Effect.promise(async () => {
|
|
43515
43553
|
try {
|
|
43516
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
43554
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-LV_URGSC.js");
|
|
43517
43555
|
const enabled = isTldrEnabledSync();
|
|
43518
43556
|
const projectRoot = process.cwd();
|
|
43519
43557
|
const targets = [];
|
|
@@ -43589,7 +43627,7 @@ const getVersionRoute = HttpRouter.add("GET", "/api/version", Effect.promise(asy
|
|
|
43589
43627
|
const version = await getOverdeckVersion();
|
|
43590
43628
|
let supervisorUrl = null;
|
|
43591
43629
|
try {
|
|
43592
|
-
const { getSupervisorUrlSync } = await import("./supervisor-
|
|
43630
|
+
const { getSupervisorUrlSync } = await import("./supervisor-DyNL2rTl.js");
|
|
43593
43631
|
supervisorUrl = getSupervisorUrlSync();
|
|
43594
43632
|
} catch {}
|
|
43595
43633
|
return jsonResponse({
|
|
@@ -43753,7 +43791,7 @@ const postShadowMonitorRoute = HttpRouter.add("POST", "/api/shadow/:issueId/moni
|
|
|
43753
43791
|
const projectPath = await getProjectPath(issuePrefix);
|
|
43754
43792
|
const workspacePath = join$1(projectPath, "workspaces", `feature-${issueLower}`);
|
|
43755
43793
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
|
|
43756
|
-
const { gatherArtifacts, generateBasicInference, updateInferenceDocumentSync } = await import("./shadow-engineering-
|
|
43794
|
+
const { gatherArtifacts, generateBasicInference, updateInferenceDocumentSync } = await import("./shadow-engineering-CStyQ6yp.js");
|
|
43757
43795
|
const config = {
|
|
43758
43796
|
issueId,
|
|
43759
43797
|
workspacePath,
|
|
@@ -43783,7 +43821,7 @@ const postShadowObserveRoute = HttpRouter.add("POST", "/api/shadow/:issueId/obse
|
|
|
43783
43821
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
|
|
43784
43822
|
const ghConfig = getGitHubConfig();
|
|
43785
43823
|
if (!ghConfig) return jsonResponse({ error: "GitHub not configured - Observer requires GitHub" }, { status: 400 });
|
|
43786
|
-
const { runObserverCycle } = await import("./shadow-engineering-
|
|
43824
|
+
const { runObserverCycle } = await import("./shadow-engineering-CStyQ6yp.js");
|
|
43787
43825
|
const firstRepo = ghConfig.repos[0];
|
|
43788
43826
|
const config = {
|
|
43789
43827
|
issueId,
|
|
@@ -44848,7 +44886,7 @@ async function cleanupConversationAttachments(name) {
|
|
|
44848
44886
|
* sessions that the lifecycle poller missed. */
|
|
44849
44887
|
async function cleanupOrphanedConversationAttachments() {
|
|
44850
44888
|
try {
|
|
44851
|
-
const { listConversations } = await import("./conversations-
|
|
44889
|
+
const { listConversations } = await import("./conversations-DYz9OyMT.js");
|
|
44852
44890
|
const convNames = new Set(listConversations().map((c) => c.name));
|
|
44853
44891
|
const root = getConversationAttachmentsRoot();
|
|
44854
44892
|
await runInBatches((await readdir(root, { withFileTypes: true })).filter((entry) => entry.isDirectory() && !convNames.has(entry.name)).map((entry) => join$1(root, entry.name)), 10, (path) => rm(path, {
|
|
@@ -45716,7 +45754,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
45716
45754
|
const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
|
|
45717
45755
|
const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
|
|
45718
45756
|
const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
|
|
45719
|
-
const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-
|
|
45757
|
+
const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-RRg-7JsH.js");
|
|
45720
45758
|
initCodexHome(codexHome, {
|
|
45721
45759
|
trustedDir: cwd,
|
|
45722
45760
|
approvalPolicy: codexApprovalPolicy,
|
|
@@ -45786,7 +45824,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
45786
45824
|
} catch {}
|
|
45787
45825
|
console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
|
|
45788
45826
|
try {
|
|
45789
|
-
const { preTrustDirectory } = await import("./workspace-manager-
|
|
45827
|
+
const { preTrustDirectory } = await import("./workspace-manager-CK4yZQev.js");
|
|
45790
45828
|
preTrustDirectory(cwd);
|
|
45791
45829
|
} catch {}
|
|
45792
45830
|
try {
|
|
@@ -45803,7 +45841,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
45803
45841
|
const codexHomeDir = codexFields.codexHome;
|
|
45804
45842
|
(async () => {
|
|
45805
45843
|
try {
|
|
45806
|
-
const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-
|
|
45844
|
+
const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-RRg-7JsH.js");
|
|
45807
45845
|
const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
|
|
45808
45846
|
if (rollout) {
|
|
45809
45847
|
const threadId = extractThreadIdFromRollout(rollout);
|
|
@@ -48872,7 +48910,7 @@ async function registerProjectFromPath(opts) {
|
|
|
48872
48910
|
registerProjectSync(key, projectConfig);
|
|
48873
48911
|
const seededContextLayer = ensureProjectLayer(fullPath);
|
|
48874
48912
|
try {
|
|
48875
|
-
const { preTrustDirectorySync } = await import("./workspace-manager-
|
|
48913
|
+
const { preTrustDirectorySync } = await import("./workspace-manager-CK4yZQev.js");
|
|
48876
48914
|
preTrustDirectorySync(fullPath);
|
|
48877
48915
|
} catch {}
|
|
48878
48916
|
let hooksInstalled = 0;
|
|
@@ -48908,7 +48946,7 @@ init_pan_dir();
|
|
|
48908
48946
|
init_paths();
|
|
48909
48947
|
const execAsync$3 = promisify(exec);
|
|
48910
48948
|
async function getIssueDataService() {
|
|
48911
|
-
const { getSharedIssueService } = await import("./issue-service-singleton-
|
|
48949
|
+
const { getSharedIssueService } = await import("./issue-service-singleton-BSgap-ST.js");
|
|
48912
48950
|
return getSharedIssueService();
|
|
48913
48951
|
}
|
|
48914
48952
|
/** Returns true if the path exists (any type). */
|
|
@@ -50835,7 +50873,7 @@ async function refreshMergeStateFromGitHub(issueId, repo, prNumber) {
|
|
|
50835
50873
|
let mergeState;
|
|
50836
50874
|
let isDraft;
|
|
50837
50875
|
let checksFailed;
|
|
50838
|
-
const { isGitHubAppConfigured, getPullRequestState } = await import("./github-app-
|
|
50876
|
+
const { isGitHubAppConfigured, getPullRequestState } = await import("./github-app-BG36jYzm.js");
|
|
50839
50877
|
if (isGitHubAppConfigured()) {
|
|
50840
50878
|
const prState = await Effect.runPromise(getPullRequestState(owner, repoName, prNumber));
|
|
50841
50879
|
mergeable = prState.mergeable === null ? "UNKNOWN" : prState.mergeable ? "MERGEABLE" : "CONFLICTING";
|
|
@@ -50984,8 +51022,8 @@ async function handlePullRequestPromise(payload) {
|
|
|
50984
51022
|
bumpIssuePrTabCacheGeneration(issueId);
|
|
50985
51023
|
const repo = payload.repository.full_name;
|
|
50986
51024
|
if (payload.action === "closed" && pr.merged === true) try {
|
|
50987
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
50988
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
51025
|
+
const { postMergeLifecycle } = await import("./merge-agent-CvVDCFOp.js");
|
|
51026
|
+
const { resolveProjectFromIssueSync } = await import("./projects-CKnFqWB0.js");
|
|
50989
51027
|
const project = resolveProjectFromIssueSync(issueId);
|
|
50990
51028
|
if (project) {
|
|
50991
51029
|
const branchName = pr.head.ref;
|
|
@@ -51484,7 +51522,7 @@ function getCheckpointWorker() {
|
|
|
51484
51522
|
return worker;
|
|
51485
51523
|
}
|
|
51486
51524
|
async function runInline(operation, payload) {
|
|
51487
|
-
const { claimTranscriptRange, commitTranscriptRange, releaseTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints } = await import("./checkpoints-
|
|
51525
|
+
const { claimTranscriptRange, commitTranscriptRange, releaseTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints } = await import("./checkpoints-DMO68jIJ.js");
|
|
51488
51526
|
switch (operation) {
|
|
51489
51527
|
case "claimTranscriptRange": return claimTranscriptRange(payload);
|
|
51490
51528
|
case "commitTranscriptRange": return commitTranscriptRange(payload);
|
|
@@ -52638,7 +52676,7 @@ function buildPendingTurn(input, fromOffset, toOffset, compressed) {
|
|
|
52638
52676
|
};
|
|
52639
52677
|
}
|
|
52640
52678
|
async function emitMemoryObservationCreated(observation, timestamp) {
|
|
52641
|
-
const { initEventStore } = await import("./event-store-
|
|
52679
|
+
const { initEventStore } = await import("./event-store-BQRWQeyx.js");
|
|
52642
52680
|
await (await initEventStore()).appendAsync({
|
|
52643
52681
|
type: "memory.observation_created",
|
|
52644
52682
|
timestamp,
|
|
@@ -55677,7 +55715,7 @@ async function getFlywheelConversationPayload() {
|
|
|
55677
55715
|
};
|
|
55678
55716
|
}
|
|
55679
55717
|
async function postFlywheelReportPayload() {
|
|
55680
|
-
const { flywheelReportCommand } = await import("./flywheel-
|
|
55718
|
+
const { flywheelReportCommand } = await import("./flywheel-iZNbJfS_.js");
|
|
55681
55719
|
await flywheelReportCommand({ cwd: process.cwd() });
|
|
55682
55720
|
return {
|
|
55683
55721
|
status: 200,
|
|
@@ -55835,11 +55873,11 @@ const getMergeBlockersRoute = HttpRouter.add("GET", "/api/flywheel/merge-blocker
|
|
|
55835
55873
|
async function defaultGetOrderedIssueIds() {
|
|
55836
55874
|
const status = await readCurrentFlywheelStatusForDashboard();
|
|
55837
55875
|
if (!status) return [];
|
|
55838
|
-
const { computeMergeQueue } = await import("./flywheel-merge-order-
|
|
55876
|
+
const { computeMergeQueue } = await import("./flywheel-merge-order-PW8nIENP.js");
|
|
55839
55877
|
return (await Effect.runPromise(computeMergeQueue(status.activePipeline, process.cwd()).pipe(Effect.provide(layer)))).map((i) => i.issueId);
|
|
55840
55878
|
}
|
|
55841
55879
|
async function defaultMergeOne(issueId) {
|
|
55842
|
-
const { triggerMerge } = await import("./merge-ops-
|
|
55880
|
+
const { triggerMerge } = await import("./merge-ops-iaG5kd-C.js");
|
|
55843
55881
|
const r = await triggerMerge(issueId);
|
|
55844
55882
|
return r.success ? { ok: true } : {
|
|
55845
55883
|
ok: false,
|
|
@@ -56016,7 +56054,7 @@ const getFlywheelMergeQueueRoute = HttpRouter.add("GET", "/api/flywheel/merge-qu
|
|
|
56016
56054
|
return yield* Effect.promise(async () => {
|
|
56017
56055
|
const status = await readCurrentFlywheelStatusForDashboard();
|
|
56018
56056
|
if (!status) return jsonResponse([]);
|
|
56019
|
-
const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-
|
|
56057
|
+
const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-PW8nIENP.js");
|
|
56020
56058
|
return jsonResponse(await Effect.runPromise(computeMergeQueue(status.activePipeline, process.cwd(), { getPrUrl: resolveMergeQueuePrUrl }).pipe(Effect.provide(layer))));
|
|
56021
56059
|
});
|
|
56022
56060
|
})));
|
|
@@ -56030,18 +56068,18 @@ function uatGenerationNameFromParam(param) {
|
|
|
56030
56068
|
return decoded.startsWith("uat/") ? decoded : `uat/${decoded}`;
|
|
56031
56069
|
}
|
|
56032
56070
|
const getUatGenerationsRoute = HttpRouter.add("GET", "/api/flywheel/uat-generations", httpHandler(Effect.gen(function* () {
|
|
56033
|
-
const { getUatGenerationsPayload } = yield* Effect.promise(() => import("./uat-train-
|
|
56071
|
+
const { getUatGenerationsPayload } = yield* Effect.promise(() => import("./uat-train-CwAd0sZ1.js"));
|
|
56034
56072
|
return jsonResponse(yield* Effect.promise(() => getUatGenerationsPayload()));
|
|
56035
56073
|
})));
|
|
56036
56074
|
const getUatCandidateRoute = HttpRouter.add("GET", "/api/flywheel/uat-candidate", httpHandler(Effect.gen(function* () {
|
|
56037
|
-
const { getUatCandidatePayload } = yield* Effect.promise(() => import("./uat-train-
|
|
56075
|
+
const { getUatCandidatePayload } = yield* Effect.promise(() => import("./uat-train-CwAd0sZ1.js"));
|
|
56038
56076
|
return jsonResponse(yield* Effect.promise(() => getUatCandidatePayload()));
|
|
56039
56077
|
})));
|
|
56040
56078
|
const postUatGenerationStackRoute = HttpRouter.add("POST", "/api/flywheel/uat-generations/:name/stack", httpHandler(Effect.gen(function* () {
|
|
56041
56079
|
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
56042
56080
|
if (authError) return authError;
|
|
56043
56081
|
const name = uatGenerationNameFromParam((yield* HttpRouter.params)["name"] ?? "");
|
|
56044
|
-
const { postUatGenerationStackPayload } = yield* Effect.promise(() => import("./uat-train-
|
|
56082
|
+
const { postUatGenerationStackPayload } = yield* Effect.promise(() => import("./uat-train-CwAd0sZ1.js"));
|
|
56045
56083
|
const result = yield* Effect.promise(() => postUatGenerationStackPayload(name));
|
|
56046
56084
|
if (!result.ok) return jsonResponse({ error: result.error }, { status: result.status });
|
|
56047
56085
|
return jsonResponse({
|
|
@@ -56053,8 +56091,8 @@ const postUatGenerationPromoteRoute = HttpRouter.add("POST", "/api/flywheel/uat-
|
|
|
56053
56091
|
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
56054
56092
|
if (authError) return authError;
|
|
56055
56093
|
const name = uatGenerationNameFromParam((yield* HttpRouter.params)["name"] ?? "");
|
|
56056
|
-
const { postUatGenerationPromotePayload } = yield* Effect.promise(() => import("./uat-train-
|
|
56057
|
-
const { firePostMergeLifecycle } = yield* Effect.promise(() => import("./specialists-
|
|
56094
|
+
const { postUatGenerationPromotePayload } = yield* Effect.promise(() => import("./uat-train-CwAd0sZ1.js"));
|
|
56095
|
+
const { firePostMergeLifecycle } = yield* Effect.promise(() => import("./specialists-uq-O3uxF.js"));
|
|
56058
56096
|
const result = yield* Effect.promise(() => postUatGenerationPromotePayload(name, firePostMergeLifecycle));
|
|
56059
56097
|
if (!result.success) return jsonResponse(result, { status: result.reason === "not-found" ? 404 : result.reason === "merge-failed" ? 500 : 409 });
|
|
56060
56098
|
return jsonResponse(result);
|
|
@@ -56067,7 +56105,7 @@ const postUatGenerationPromoteRoute = HttpRouter.add("POST", "/api/flywheel/uat-
|
|
|
56067
56105
|
const postFlywheelAssembleUatRoute = HttpRouter.add("POST", "/api/flywheel/assemble-uat", httpHandler(Effect.gen(function* () {
|
|
56068
56106
|
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
56069
56107
|
if (authError) return authError;
|
|
56070
|
-
const { runUatTrainReconcile } = yield* Effect.promise(() => import("./uat-train-
|
|
56108
|
+
const { runUatTrainReconcile } = yield* Effect.promise(() => import("./uat-train-CwAd0sZ1.js"));
|
|
56071
56109
|
return jsonResponse(yield* Effect.promise(() => runUatTrainReconcile({ force: true })));
|
|
56072
56110
|
})));
|
|
56073
56111
|
const getFlywheelStateRoute = HttpRouter.add("GET", "/api/flywheel/state", httpHandler(Effect.gen(function* () {
|
|
@@ -58805,6 +58843,7 @@ init_config_yaml();
|
|
|
58805
58843
|
init_review_status();
|
|
58806
58844
|
init_activity_logger();
|
|
58807
58845
|
init_tier_supervisor();
|
|
58846
|
+
init_tier_table();
|
|
58808
58847
|
function parseCalloutBody(body) {
|
|
58809
58848
|
if (!body || typeof body !== "object") return void 0;
|
|
58810
58849
|
const record = body;
|
|
@@ -59582,7 +59621,7 @@ async function pollOnce(state) {
|
|
|
59582
59621
|
try {
|
|
59583
59622
|
const remoteState = await readFile(join$1(homedir$1(), ".overdeck", "agents", agentId, "remote-state.json"), "utf-8").then((text) => JSON.parse(text)).catch(() => null);
|
|
59584
59623
|
if (remoteState?.location === "remote" && remoteState?.vmName) {
|
|
59585
|
-
const { getRemoteAgentOutput } = await import("./remote-agents-
|
|
59624
|
+
const { getRemoteAgentOutput } = await import("./remote-agents-tBpE_KXg.js");
|
|
59586
59625
|
stdout = await getRemoteAgentOutput(agentId, remoteState.vmName, 50);
|
|
59587
59626
|
} else stdout = await Effect.runPromise(capturePane(agentId, 50));
|
|
59588
59627
|
} catch {
|
|
@@ -60765,7 +60804,7 @@ const RESTART_MARKER = join(homedir(), ".overdeck", "dashboard-restarting.json")
|
|
|
60765
60804
|
* loads new content-hashed chunk filenames (no ERR_MODULE_NOT_FOUND after rebuild).
|
|
60766
60805
|
*/
|
|
60767
60806
|
async function defaultLifecycleRunner(pending) {
|
|
60768
|
-
const { postMergeLifecycle, notifyTldrDaemon } = await import("./merge-agent-
|
|
60807
|
+
const { postMergeLifecycle, notifyTldrDaemon } = await import("./merge-agent-CvVDCFOp.js");
|
|
60769
60808
|
await postMergeLifecycle(pending.issueId, pending.projectPath, pending.sourceBranch, { skipDeploy: true });
|
|
60770
60809
|
if (pending.sourceBranch) await notifyTldrDaemon(pending.projectPath, pending.sourceBranch);
|
|
60771
60810
|
}
|
|
@@ -61086,7 +61125,7 @@ function failureReason(result) {
|
|
|
61086
61125
|
return result.error ?? result.message ?? `merge returned status ${result.statusCode ?? "unknown"}`;
|
|
61087
61126
|
}
|
|
61088
61127
|
async function defaultMergeIssue(issueId) {
|
|
61089
|
-
const { triggerMerge } = await import("./merge-ops-
|
|
61128
|
+
const { triggerMerge } = await import("./merge-ops-iaG5kd-C.js");
|
|
61090
61129
|
return triggerMerge(issueId);
|
|
61091
61130
|
}
|
|
61092
61131
|
function defaultAnnounceFailure(issueId, reason) {
|
|
@@ -61683,7 +61722,7 @@ reconcileStaleGitHubBlockers().then((n) => {
|
|
|
61683
61722
|
}
|
|
61684
61723
|
}).catch((err) => console.warn(`[overdeck] Startup blocker reconciliation failed: ${err.message}`));
|
|
61685
61724
|
try {
|
|
61686
|
-
const { resetProcessingToQueued } = await import("./merge-sync-
|
|
61725
|
+
const { resetProcessingToQueued } = await import("./merge-sync-Dz7-euH2.js");
|
|
61687
61726
|
const resetCount = resetProcessingToQueued();
|
|
61688
61727
|
if (resetCount > 0) {
|
|
61689
61728
|
console.log(`[overdeck] Reset ${resetCount} stuck merge queue entries to queued`);
|