@overdeck/desktop 0.40.0 → 0.41.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-CW1ZdFdY.js → chunk-BO2N2NFS-66nJvb0Y.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-Cw_BgPPR.js → diagram-OG6HWLK6-CnpgVLBi.js} +1 -1
- package/server/public/assets/{dist-CGMAxsiA.js → dist-BFQhMul-.js} +3 -3
- package/server/public/assets/{dist-913yenhq.js → dist-CHQsz1no.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-CUPZhXKC.js → ganttDiagram-6RSMTGT7-CFA1TEUl.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-PZCZRTma.js → highlighted-body-OFNGDK62-DbRNyBRD.js} +1 -1
- package/server/public/assets/{index-D_duUQjN.css → index-By2KY9vK.css} +1 -1
- package/server/public/assets/{index-2sJIy1Mo.js → index-Cc9hNbWG.js} +129 -129
- package/server/public/assets/{linear-CaWsupFC.js → linear-CveL56V8.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BM8E6NEr.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BhU2fIWh.js → pieDiagram-4H26LBE5-BWMp3bl2.js} +1 -1
- package/server/public/assets/{prod-Dk-iWRhQ.js → prod-BtqEDkif.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-DGOsJ_nS.js → quadrantDiagram-W4KKPZXB-BXfFUtKT.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CzirInk6.js → sankeyDiagram-5OEKKPKP-D2A4SsFI.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-CG8FHgaF.js → xychartDiagram-2RQKCTM6-BQuEJ-Sx.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/server.js +296 -109
- package/server/public/assets/mermaid-GHXKKRXX-CD7SbVD6.js +0 -1
package/server/server.js
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { C as
|
|
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
3
|
import { A as init_model_capabilities, B as FsError, C as defaultBackgroundAiFeatures, E as MODEL_DEPRECATIONS, F as require_dist$1, H as GitHubApiError, J as TrackerError, K as ProcessSpawnError, M as resolveModelIdSync, N as init_js_yaml, O as getModelEffortLevelsSync, P as jsYaml, S as updateConversationsConfig, T as MODEL_CAPABILITIES, X as init_errors, _ as loadConfigNoMigration, a as ROLE_EFFORTS, b as mergeTtsDaemonConfigs, c as getConversationSearchConfigSync, d as getDefaultTtsDaemonConfig, f as getGlobalConfigPath, g as isTldrEnabledSync, i as PARENT_MODEL_REF, j as modelSupportsImagesSync, k as hasModelCapabilitySync, l as getConversationsConfig, m as isClaudeCodeChannelsEnabled, n as DEFAULT_ROLES, o as clearConfigCache, p as init_config_yaml, r as DEFAULT_WORKHORSES, s as computeModelOrigin, t as COMPLIANCE_MODES, v as loadConfigSync, w as init_registry, x as resolveModel, y as mergeConfigs } from "./config-yaml-DKmldcyb.js";
|
|
4
|
-
import { A as getAgentJsonlMtime, B as isTrustedOriginForHost, C as resolveAgentHarness, D as resolvePiSessionPath, E as resolveJsonlPath, F as init_agent_input_detection, G as init_codex_auth, H as validateOrigin$1, I as parseCodexApprovalPrompt, K as httpHandler, L as getHeaderFromMap, M as scanPendingInputsPromise, N as detectAwaitingInputForAgent, O as computeAgentEnrichment, P as detectAwaitingInputFromPaneSync, S as readLauncherPinnedSessionId, T as resolveCodexRolloutPath, U as validateOriginHeaders, W as checkCodexAuthStatus, X as init_http_helpers, Z as jsonResponse, _ as getRuntimeForAgent, a as init_agent_projection, b as init_health, c as init_git_info, d as getSystemHealthSnapshot, f as init_system_health_service, g as init_service, h as getCloisterService, j as init_agent_enrichment, n as init_agents, o as saveAgentStateAndEmitEvent, q as init_http_handler, s as saveAgentStateAndEmitEventProgram, t as agentsRouteLayer, u as resolveConversationGitInfo, v as init_runtimes, w as resolveClaudeSessionId, x as init_jsonl_resolver, y as getAgentHealth, z as init_origin_validation } from "./agents-
|
|
4
|
+
import { A as getAgentJsonlMtime, B as isTrustedOriginForHost, C as resolveAgentHarness, D as resolvePiSessionPath, E as resolveJsonlPath, F as init_agent_input_detection, G as init_codex_auth, H as validateOrigin$1, I as parseCodexApprovalPrompt, K as httpHandler, L as getHeaderFromMap, M as scanPendingInputsPromise, N as detectAwaitingInputForAgent, O as computeAgentEnrichment, P as detectAwaitingInputFromPaneSync, S as readLauncherPinnedSessionId, T as resolveCodexRolloutPath, U as validateOriginHeaders, W as checkCodexAuthStatus, X as init_http_helpers, Z as jsonResponse, _ as getRuntimeForAgent, a as init_agent_projection, b as init_health, c as init_git_info, d as getSystemHealthSnapshot, f as init_system_health_service, g as init_service, h as getCloisterService, j as init_agent_enrichment, n as init_agents, o as saveAgentStateAndEmitEvent, q as init_http_handler, s as saveAgentStateAndEmitEventProgram, t as agentsRouteLayer, u as resolveConversationGitInfo, v as init_runtimes, w as resolveClaudeSessionId, x as init_jsonl_resolver, y as getAgentHealth, z as init_origin_validation } from "./agents-cMZF-UTW.js";
|
|
5
5
|
import { a as init_activity_logger, i as emitDashboardLifecycleSync, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-DW1XjyNu.js";
|
|
6
|
-
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-
|
|
6
|
+
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-uzOlAtyu.js";
|
|
7
7
|
import { n as openDatabase, t as init_driver } from "./driver-CYPr28GN.js";
|
|
8
8
|
import { a as parseIssueIdSync, n as extractPrefixSync, r as init_issue_id } from "./issue-id-9iS2dwrp.js";
|
|
9
|
-
import { E as registerProjectSync, N as setProjectAutoMergeDefaultSync, O as resolveProjectFromIssue, _ as init_projects, b as listProjects, d as getProjectSync, k as resolveProjectFromIssueSync, l as getIssuePrefix, r as extractTeamPrefix, s as findProjectByTeamSync, x as listProjectsSync } from "./projects-
|
|
10
|
-
import { B as init_ui_theme, D as listSessionNames, F as sessionExists, G as init_child_env, H as BLANKED_PROVIDER_ENV, L as setOption, N as sendKeys, P as sendRawKeystroke, S as isHarnessProcessAlive, U as buildChildEnvSync, V as setUiTheme, W as buildChildEnvWithoutTmuxSync, b as getWindowDimensions, c as ensureManagedTmuxContextOnce, d as exactPaneTarget, i as capturePane, j as resizeWindow, k as listSessionsSync, n as buildTmuxArgs, o as createSession, p as findManagedServerPidSync, w as killSession, x as init_tmux } from "./tmux-
|
|
11
|
-
import { a as init_event_store, i as initEventStore, n as getEventStore, r as getSharedDb } from "./event-store-
|
|
9
|
+
import { E as registerProjectSync, N as setProjectAutoMergeDefaultSync, O as resolveProjectFromIssue, _ as init_projects, b as listProjects, d as getProjectSync, k as resolveProjectFromIssueSync, l as getIssuePrefix, r as extractTeamPrefix, s as findProjectByTeamSync, x as listProjectsSync } from "./projects-9JNVPnww.js";
|
|
10
|
+
import { B as init_ui_theme, D as listSessionNames, F as sessionExists, G as init_child_env, H as BLANKED_PROVIDER_ENV, L as setOption, N as sendKeys, P as sendRawKeystroke, S as isHarnessProcessAlive, U as buildChildEnvSync, V as setUiTheme, W as buildChildEnvWithoutTmuxSync, b as getWindowDimensions, c as ensureManagedTmuxContextOnce, d as exactPaneTarget, i as capturePane, j as resizeWindow, k as listSessionsSync, n as buildTmuxArgs, o as createSession, p as findManagedServerPidSync, w as killSession, x as init_tmux } from "./tmux-fuzPZ-S7.js";
|
|
11
|
+
import { a as init_event_store, i as initEventStore, n as getEventStore, r as getSharedDb } from "./event-store-Dx53k8E7.js";
|
|
12
12
|
import { _ as MemoryObservation, d as PanRpcGroup, f as WS_METHODS, h as EDITORS, i as FlywheelStats, m as FlywheelStatus, n as ContextLayerSaveRequest, p as FlywheelRunId, r as ContextPreviewRequest, t as init_src, u as PanRpcError } from "./src-wyzx0Z0w.js";
|
|
13
|
-
import { _ as setReviewStatus, a as fixStuckCommentedReviews, c as getReviewStatusSync, l as init_review_status, n as clearReviewStatus, o as fixStuckReadyForMerge, r as clearStuckMergeStatuses, s as getReviewStatus, u as loadReviewStatuses } from "./review-status-
|
|
14
|
-
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 } from "./issue-lifecycle-
|
|
15
|
-
import { n as AgentsResolverLive, o as init_agents$1 } from "./agents-
|
|
16
|
-
import { i as init_paths$2, l as resolveObservationsFile, r as ensureParentDir, s as resolveIssueMemoryRoot, t as assertMemorySafeSegment } from "./paths-
|
|
17
|
-
import { i as recordBriefingSessionStart, n as ensureSessionContextBriefingFile, r as init_briefing_freshness, t as appendFreshBriefingUpdate } from "./briefing-freshness
|
|
18
|
-
import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-
|
|
13
|
+
import { _ as setReviewStatus, a as fixStuckCommentedReviews, c as getReviewStatusSync, l as init_review_status, n as clearReviewStatus, o as fixStuckReadyForMerge, r as clearStuckMergeStatuses, s as getReviewStatus, u as loadReviewStatuses } from "./review-status-rO7znkga.js";
|
|
14
|
+
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 } from "./issue-lifecycle-BIdrF-U5.js";
|
|
15
|
+
import { n as AgentsResolverLive, o as init_agents$1 } from "./agents-BX0F_1V2.js";
|
|
16
|
+
import { i as init_paths$2, l as resolveObservationsFile, r as ensureParentDir, s as resolveIssueMemoryRoot, t as assertMemorySafeSegment } from "./paths-3zDoFwPl.js";
|
|
17
|
+
import { i as recordBriefingSessionStart, n as ensureSessionContextBriefingFile, r as init_briefing_freshness, t as appendFreshBriefingUpdate } from "./briefing-freshness-BVjg7adf.js";
|
|
18
|
+
import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-BjEVR7fj.js";
|
|
19
19
|
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-B8USYP2J.js";
|
|
20
|
-
import { _ as init_cost, a as init_costs, c as init_reconciler, d as migrateAllSessionsSync, f as getCostsForIssueSync, g as CostResolverLive, h as CostResolver, i as resolveIssueHeadlineCost, l as reconcile, m as syncCacheSync, n as init_running_agents_cache, o as init_sync_wal, p as rebuildCacheSync, r as init_issue_cost_resolver, s as syncWalFromAllProjects, t as getCachedRunningAgents, u as reconcilePiTranscripts } from "./running-agents-cache-
|
|
21
|
-
import { i as init_agent_state_service, n as AgentStateServiceLive } from "./agent-state-service-
|
|
22
|
-
import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-
|
|
20
|
+
import { _ as init_cost, a as init_costs, c as init_reconciler, d as migrateAllSessionsSync, f as getCostsForIssueSync, g as CostResolverLive, h as CostResolver, i as resolveIssueHeadlineCost, l as reconcile, m as syncCacheSync, n as init_running_agents_cache, o as init_sync_wal, p as rebuildCacheSync, r as init_issue_cost_resolver, s as syncWalFromAllProjects, t as getCachedRunningAgents, u as reconcilePiTranscripts } from "./running-agents-cache-bwJnbB6r.js";
|
|
21
|
+
import { i as init_agent_state_service, n as AgentStateServiceLive } from "./agent-state-service-BUhXCI_4.js";
|
|
22
|
+
import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-NzBQEKKo.js";
|
|
23
23
|
import { d as init_typed_errors, l as WorkspaceCreateError, n as AgentStartError, r as BeadsNotInitialized, t as AgentAlreadyRunning, u as WorkspaceNotFound } from "./typed-errors-BRDFMoss.js";
|
|
24
|
-
import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-
|
|
25
|
-
import { i as init_github_client, r as GitHubClientOptionalLive } from "./github-client-
|
|
26
|
-
import { i as init_rally_client, r as RallyClientOptionalLive } from "./rally-client-
|
|
27
|
-
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-
|
|
28
|
-
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-
|
|
29
|
-
import { i as ensureInternalTokenSync, s as init_internal_token } from "./internal-token-
|
|
30
|
-
import { a as setPipelineHandlerSync, t as init_pipeline_notifier } from "./pipeline-notifier-
|
|
31
|
-
import { c as init_review_status_sync, i as getMergeBlockerReconcileCandidates, r as getAllReviewStatusesFromDb } from "./review-status-sync-
|
|
32
|
-
import { a as getCostForIssueAggregateSync, c as getDailyTrendsSync, l as getModelRollupSync, n as getBackgroundCostBySourceSync, r as getCavemanExperimentDataSync, s as getCostsByIssueSync, u as init_cost_sync } from "./cost-sync-
|
|
33
|
-
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-
|
|
34
|
-
import { A as PAN_CONTINUE_FILENAME, I as init_types, _ as findSpecByIssue, a as init_io, j as PAN_DIRNAME, l as readWorkspacePlan, n as findPlan, s as readPlan, y as init_specs } from "./io-
|
|
35
|
-
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-
|
|
36
|
-
import { f as init_config, m as loadConfigSync$1, s as getDashboardApiUrlSync } from "./config-
|
|
24
|
+
import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-BRwBC1ub.js";
|
|
25
|
+
import { i as init_github_client, r as GitHubClientOptionalLive } from "./github-client-CLhcTuCU.js";
|
|
26
|
+
import { i as init_rally_client, r as RallyClientOptionalLive } from "./rally-client-C51tvXfE.js";
|
|
27
|
+
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-zk9EsKQs.js";
|
|
28
|
+
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-Cq0mMaNH.js";
|
|
29
|
+
import { i as ensureInternalTokenSync, s as init_internal_token } from "./internal-token-C8Bg8u5G.js";
|
|
30
|
+
import { a as setPipelineHandlerSync, t as init_pipeline_notifier } from "./pipeline-notifier-BOcC7C98.js";
|
|
31
|
+
import { c as init_review_status_sync, i as getMergeBlockerReconcileCandidates, r as getAllReviewStatusesFromDb } from "./review-status-sync-D1KZJHeS.js";
|
|
32
|
+
import { a as getCostForIssueAggregateSync, c as getDailyTrendsSync, l as getModelRollupSync, n as getBackgroundCostBySourceSync, r as getCavemanExperimentDataSync, s as getCostsByIssueSync, u as init_cost_sync } from "./cost-sync-DJZXPGqK.js";
|
|
33
|
+
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-bO1W7sg-.js";
|
|
34
|
+
import { A as PAN_CONTINUE_FILENAME, I as init_types, _ as findSpecByIssue, a as init_io, j as PAN_DIRNAME, l as readWorkspacePlan, n as findPlan, s as readPlan, y as init_specs } from "./io-BsBjfxgG.js";
|
|
35
|
+
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-shDfFOk1.js";
|
|
36
|
+
import { f as init_config, m as loadConfigSync$1, s as getDashboardApiUrlSync } from "./config-DrT6EhRW.js";
|
|
37
37
|
import { n as require_auth_errors, r as require_token_error, t as require_token_util } from "./token-util-CROoF5ic.js";
|
|
38
|
-
import { $ as
|
|
39
|
-
import { _ as init_codex_conversation_parser, a as init_conversation_service, c as parseFromLastCompactBoundary, d as init_ohmypi_conversation_parser, f as isOhmypiSessionFile, g as parsePiConversationMessages, h as isPiSessionFile, i as gateSnapshotEmission, l as summarizeConversationActivity, m as init_pi_conversation_parser, n as contextUsageFromParseResult, o as parseConversationMessages, p as parseOhmypiConversationMessages, t as computeContextUsage, u as watchConversation, v as parseCodexConversationMessages } from "./conversation-service-
|
|
38
|
+
import { $ as updateForkStatus, A as listArchivedConversationsWithEnrichment, C as getStuckForks, D as init_conversations, E as incrementForkRetryCount, F as markConversationRunning, G as setFavorite, H as setConversationClaudeSessionId, J as unarchiveConversation, K as setForkRequest, M as listFavoritedIds, N as markConversationActive, O as isAgentConversationName, P as markConversationEnded, Q as updateConversationTitle, R as recordConversationHandoff, S as getConversationByTmuxSession, T as importLegacyConversation, U as setConversationHarness, V as setClearedToConvId, W as setConversationModel, X as updateConversationDeliveryMethod, Y as updateConversationCost, Z as updateConversationForkFallbackReason, _ as canReplaceTitle, b as getConversationById, et as updateLastAttached, g as backfillConversationModel, h as archiveConversation, j as listConversations, k as listActiveConversations, q as setImportedConversationLinks, tt as updateSpawnError, v as createConversation, w as hasOtherActiveConversationOnTmuxSession, x as getConversationByName, y as getConversationByClaudeSessionId, z as removeFavorite } from "./conversations-Db3UIeTM.js";
|
|
39
|
+
import { _ as init_codex_conversation_parser, a as init_conversation_service, c as parseFromLastCompactBoundary, d as init_ohmypi_conversation_parser, f as isOhmypiSessionFile, g as parsePiConversationMessages, h as isPiSessionFile, i as gateSnapshotEmission, l as summarizeConversationActivity, m as init_pi_conversation_parser, n as contextUsageFromParseResult, o as parseConversationMessages, p as parseOhmypiConversationMessages, t as computeContextUsage, u as watchConversation, v as parseCodexConversationMessages } from "./conversation-service-IG9dJkAf.js";
|
|
40
40
|
import { i as getClaudePermissionFlagsStringSync, o as init_claude_permissions, s as resolvePermissionModeSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-BqmkURDk.js";
|
|
41
|
-
import { l as init_codex, s as findRolloutPath } from "./codex-
|
|
42
|
-
import { $t as init_claude_auth, A as getAgentStateFilePath, At as init_operator_interventions, B as init_agents$2, Bt as init_pty_token, C as dismissDevChannelsDialog, D as getAgentRuntimeState, Dt as captureTranscriptUserRecordSnapshot, E as getAgentRuntimeBaseCommand, Et as writeChannelsBridgeMcpConfig, F as getProviderEnvForModel, G as listAgentStates, Ht as init_bridge_token, I as getProviderExportsForModel, K as listRunningAgents, O as getAgentRuntimeStateSync, Ot as init_transcript_landing, P as getProviderAuthMode, Qt as getClaudeAuthStatus, Rt as init_pi_fifo, St as waitForReadySignal, T as getAgentDir, Ut as writeBridgeTokenSync, V as injectPiConversationMemory, Vt as writePtyToken, Xt as init_agent_record_sync, Z as messageAgent, Zt as readAgentHarnessModelRecordSync, en as getOpenAIAuthStatus, h as clearReadySignal, j as getAgentStateSync, jt as operatorInterventionEvent, k as getAgentState, kt as probeTranscriptSince, tn as init_openai_auth, v as deliverAgentMessage, zt as piFifoPaths } from "./agents-
|
|
41
|
+
import { l as init_codex, s as findRolloutPath } from "./codex-Bj_hftHG.js";
|
|
42
|
+
import { $t as init_claude_auth, A as getAgentStateFilePath, At as init_operator_interventions, B as init_agents$2, Bt as init_pty_token, C as dismissDevChannelsDialog, D as getAgentRuntimeState, Dt as captureTranscriptUserRecordSnapshot, E as getAgentRuntimeBaseCommand, Et as writeChannelsBridgeMcpConfig, F as getProviderEnvForModel, G as listAgentStates, Ht as init_bridge_token, I as getProviderExportsForModel, K as listRunningAgents, O as getAgentRuntimeStateSync, Ot as init_transcript_landing, P as getProviderAuthMode, Qt as getClaudeAuthStatus, Rt as init_pi_fifo, St as waitForReadySignal, T as getAgentDir, Ut as writeBridgeTokenSync, V as injectPiConversationMemory, Vt as writePtyToken, Xt as init_agent_record_sync, Z as messageAgent, Zt as readAgentHarnessModelRecordSync, en as getOpenAIAuthStatus, h as clearReadySignal, j as getAgentStateSync, jt as operatorInterventionEvent, k as getAgentState, kt as probeTranscriptSince, tn as init_openai_auth, v as deliverAgentMessage, zt as piFifoPaths } from "./agents-SteL0Yy7.js";
|
|
43
43
|
import { a as getBuiltInDefaultHarness, c as getProviderForModelSync, l as init_providers, o as getKimiAnthropicBaseUrl, u as piProviderForModel } from "./providers-Cju7HorZ.js";
|
|
44
44
|
import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-BsiM65ZI.js";
|
|
45
45
|
import { i as init_settings, r as getMemoryWorkerConcurrency, t as areMemoryObservationsEnabled } from "./settings-s_9BJkQW.js";
|
|
46
|
-
import { t as init_pan_dir } from "./pan-dir-
|
|
47
|
-
import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-
|
|
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-
|
|
49
|
-
import { i as init_harness_policy, n as resolveHarness, r as canUseHarnessSync, t as init_harness_resolve } from "./harness-resolve-
|
|
50
|
-
import { c as init_docker_stats } from "./stack-health-
|
|
51
|
-
import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health$1, t as init_providers$1 } from "./providers-
|
|
52
|
-
import { a as getSetting, b as setSetting, c as isDeaconGloballyPausedSync, d as isFlywheelRequireUatBeforeMerge, f as isMergeTrainEnabled, g as setFlywheelAutoPickupBacklog, l as isFlywheelAutoPickupBacklog, m as setDeaconGloballyPausedSync, o as init_control_settings, u as isFlywheelGloballyPaused$1, v as setFlywheelRequireUatBeforeMerge, y as setMergeTrainEnabled } from "./control-settings-
|
|
53
|
-
import { a as parseRelativeTime, n as CostThresholdError, s as embed } from "./scanner-
|
|
54
|
-
import { n as deduplicateEventsSync, o as readEventsSync, s as tailEventsSync } from "./events-
|
|
55
|
-
import { n as recordBackgroundAiCost, t as init_cost$1 } from "./cost-
|
|
56
|
-
import { a as startUatTrainReconciler, c as openFlywheelRunReportForDashboard, d as resumeFlywheelRunForDashboard, f as startFlywheelRunForDashboard, l as pauseFlywheelRunForDashboard, o as stopUatTrainReconciler, p as runDashboardDbJob, s as abortFlywheelRunForDashboard, u as readCurrentFlywheelStatusForDashboard } from "./uat-train-
|
|
57
|
-
import { S as subscribeLatestFlywheelStatus, _ as listFlywheelRuns, g as isFlywheelRunId, h as init_flywheel_run_state, l as buildClassifyLookups, p as getFlywheelRunDetail, u as init_lookups, w as writeLatestFlywheelStatus, x as resolveLiveFlywheelRunId, y as readCurrentLatestFlywheelStatus } from "./flywheel-
|
|
58
|
-
import { f as workspacesRouteLayer, g as getWorkspacePathForIssue, h as processPendingFeedbackDeliveries, m as resumeQueuedMerges, p as enrichReviewStatus } from "./workspaces-
|
|
59
|
-
import { _ as init_platform, g as detectPlatform } from "./workspace-manager-
|
|
60
|
-
import { a as getShadowState, s as init_shadow_state } from "./shadow-state-
|
|
61
|
-
import { C as init_dashboard_auth, D as init_review_status$1, E as rejectUnsafeDashboardMutationRequest, S as hasDashboardInternalToken, T as rejectUnauthorizedDashboardSessionMintRequest, _ as groupResourceAllocatedIssuesByProject, b as dashboardCsrfToken, g as getCachedResourceAllocatedIssues, m as issuesRouteLayer, p as init_issues, v as init_resource_discovery, w as rejectUnauthorizedDashboardRequest, x as dashboardSessionCookieHeader, y as sanitizeResourceAllocatedIssues } from "./issues-
|
|
62
|
-
import { a as loadCloisterConfigSync, i as loadCloisterConfig, o as saveCloisterConfigSync, r as init_config$1, s as shouldAutoStart } from "./config-
|
|
63
|
-
import { O as init_specialists, b as getReviewerSessionName } from "./specialists-
|
|
64
|
-
import { H as init_deacon, _t as emergencyBrake, ct as setAgentStoppedNotifier, gt as withConcurrencyLimit, ht as init_concurrency$1, i as autoResumeStoppedWorkAgents, lt as setMergeReadyNotifier, rt as resetPatrolHeartbeatForStartup, st as setAgentStatusChangedNotifier, vt as init_concurrency } from "./deacon-
|
|
46
|
+
import { t as init_pan_dir } from "./pan-dir-CnOUvQm_.js";
|
|
47
|
+
import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-Bzj8tdlM.js";
|
|
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-0Zw11iHd.js";
|
|
49
|
+
import { i as init_harness_policy, n as resolveHarness, r as canUseHarnessSync, t as init_harness_resolve } from "./harness-resolve-C1dMLCfn.js";
|
|
50
|
+
import { c as init_docker_stats } from "./stack-health-DEdzAjBZ.js";
|
|
51
|
+
import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health$1, t as init_providers$1 } from "./providers-BjJWJ-lN.js";
|
|
52
|
+
import { a as getSetting, b as setSetting, c as isDeaconGloballyPausedSync, d as isFlywheelRequireUatBeforeMerge, f as isMergeTrainEnabled, g as setFlywheelAutoPickupBacklog, l as isFlywheelAutoPickupBacklog, m as setDeaconGloballyPausedSync, o as init_control_settings, u as isFlywheelGloballyPaused$1, v as setFlywheelRequireUatBeforeMerge, y as setMergeTrainEnabled } from "./control-settings-ddYZWzH3.js";
|
|
53
|
+
import { a as parseRelativeTime, n as CostThresholdError, s as embed } from "./scanner-DVDpIEUb.js";
|
|
54
|
+
import { n as deduplicateEventsSync, o as readEventsSync, s as tailEventsSync } from "./events-BXe36mwW.js";
|
|
55
|
+
import { n as recordBackgroundAiCost, t as init_cost$1 } from "./cost-RWt0c0ft.js";
|
|
56
|
+
import { a as startUatTrainReconciler, c as openFlywheelRunReportForDashboard, d as resumeFlywheelRunForDashboard, f as startFlywheelRunForDashboard, l as pauseFlywheelRunForDashboard, o as stopUatTrainReconciler, p as runDashboardDbJob, s as abortFlywheelRunForDashboard, u as readCurrentFlywheelStatusForDashboard } from "./uat-train-n8HCRtcj.js";
|
|
57
|
+
import { S as subscribeLatestFlywheelStatus, _ as listFlywheelRuns, g as isFlywheelRunId, h as init_flywheel_run_state, l as buildClassifyLookups, p as getFlywheelRunDetail, u as init_lookups, w as writeLatestFlywheelStatus, x as resolveLiveFlywheelRunId, y as readCurrentLatestFlywheelStatus } from "./flywheel-Dn6Akk0c.js";
|
|
58
|
+
import { f as workspacesRouteLayer, g as getWorkspacePathForIssue, h as processPendingFeedbackDeliveries, m as resumeQueuedMerges, p as enrichReviewStatus } from "./workspaces-B8dRF3nB.js";
|
|
59
|
+
import { _ as init_platform, g as detectPlatform } from "./workspace-manager-C-2qis5x.js";
|
|
60
|
+
import { a as getShadowState, s as init_shadow_state } from "./shadow-state-CH4do7Wh.js";
|
|
61
|
+
import { C as init_dashboard_auth, D as init_review_status$1, E as rejectUnsafeDashboardMutationRequest, S as hasDashboardInternalToken, T as rejectUnauthorizedDashboardSessionMintRequest, _ as groupResourceAllocatedIssuesByProject, b as dashboardCsrfToken, g as getCachedResourceAllocatedIssues, m as issuesRouteLayer, p as init_issues, v as init_resource_discovery, w as rejectUnauthorizedDashboardRequest, x as dashboardSessionCookieHeader, y as sanitizeResourceAllocatedIssues } from "./issues-DGG1xJ9W.js";
|
|
62
|
+
import { a as loadCloisterConfigSync, i as loadCloisterConfig, o as saveCloisterConfigSync, r as init_config$1, s as shouldAutoStart } from "./config-DijD5z28.js";
|
|
63
|
+
import { O as init_specialists, b as getReviewerSessionName } from "./specialists-CRQv_8TC.js";
|
|
64
|
+
import { H as init_deacon, _t as emergencyBrake, ct as setAgentStoppedNotifier, gt as withConcurrencyLimit, ht as init_concurrency$1, i as autoResumeStoppedWorkAgents, lt as setMergeReadyNotifier, rt as resetPatrolHeartbeatForStartup, st as setAgentStatusChangedNotifier, vt as init_concurrency } from "./deacon-B1xw9Xx2.js";
|
|
65
65
|
import { n as getNoResumeMode, r as init_no_resume_mode, t as disableNoResumeMode } from "./no-resume-mode-DlMPigWY.js";
|
|
66
|
-
import { c as init_prd_locations, s as findPrdAtStatusSync } from "./archive-planning-
|
|
67
|
-
import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-
|
|
68
|
-
import { n as parseSequenceMd, r as writeSequenceMd, t as init_sequence_io } from "./sequence-io-
|
|
69
|
-
import { _ as computeStats, b as normalizeGate, c as BLOCKS_MAIN_LABEL, d as READY_LABEL, f as RELEASED_LABEL, g as computeLanes, h as computeCohort, l as OBJECTION_LABEL, m as classifyIssue, p as VETOED_LABEL, u as PARKED_LABEL, v as computeWaves, y as init_pickup } from "./flywheel-merge-order-
|
|
70
|
-
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-
|
|
71
|
-
import { _ as init_git_activity, v as listGitOperationsSync } from "./merge-agent-
|
|
66
|
+
import { c as init_prd_locations, s as findPrdAtStatusSync } from "./archive-planning-CgavlD03.js";
|
|
67
|
+
import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-0v4RHIwO.js";
|
|
68
|
+
import { n as parseSequenceMd, r as writeSequenceMd, t as init_sequence_io } from "./sequence-io-0WGOYOmb.js";
|
|
69
|
+
import { _ as computeStats, b as normalizeGate, c as BLOCKS_MAIN_LABEL, d as READY_LABEL, f as RELEASED_LABEL, g as computeLanes, h as computeCohort, l as OBJECTION_LABEL, m as classifyIssue, p as VETOED_LABEL, u as PARKED_LABEL, v as computeWaves, y as init_pickup } from "./flywheel-merge-order-C_hlPfAU.js";
|
|
70
|
+
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-Ckw0Uup4.js";
|
|
71
|
+
import { _ as init_git_activity, v as listGitOperationsSync } from "./merge-agent-Chd_Rt2n.js";
|
|
72
72
|
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-C4f0Cv5Z.js";
|
|
73
|
-
import { i as runMemoryFtsTransaction, n as init_fts_db, r as runMemoryFtsStatement, t as closeMemoryFtsDatabases } from "./fts-db-
|
|
74
|
-
import { c as init_pending, l as maybeTriggerStatusRollup, o as readRecentObservations, r as init_rollup, u as writePendingTurn } from "./rollup-
|
|
75
|
-
import { r as specialistsRouteLayer } from "./specialists-
|
|
76
|
-
import { t as getAgentCommandSync } from "./settings-
|
|
77
|
-
import { n as init_review_agent, r as isExtendedReviewEnabled } from "./review-agent-
|
|
78
|
-
import { i as isRemoteAvailable, r as init_remote, t as createFlyProviderFromConfig } from "./remote-
|
|
73
|
+
import { i as runMemoryFtsTransaction, n as init_fts_db, r as runMemoryFtsStatement, t as closeMemoryFtsDatabases } from "./fts-db-ByIkpwNP.js";
|
|
74
|
+
import { c as init_pending, l as maybeTriggerStatusRollup, o as readRecentObservations, r as init_rollup, u as writePendingTurn } from "./rollup-BliEel5D.js";
|
|
75
|
+
import { r as specialistsRouteLayer } from "./specialists-CDM5vkDy.js";
|
|
76
|
+
import { t as getAgentCommandSync } from "./settings-BYAK9dF4.js";
|
|
77
|
+
import { n as init_review_agent, r as isExtendedReviewEnabled } from "./review-agent-DlkjIM6c.js";
|
|
78
|
+
import { i as isRemoteAvailable, r as init_remote, t as createFlyProviderFromConfig } from "./remote-Cu-ROCd0.js";
|
|
79
79
|
import { n as init_claude_settings_overlay, t as detectProviderEnvConflicts } from "./claude-settings-overlay-Ck8qNezZ.js";
|
|
80
|
-
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-
|
|
81
|
-
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-
|
|
82
|
-
import { a as init_conversation_compaction, c as shouldInterceptManualCompact, n as compactConversationNative, o as isCompacting } from "./conversation-compaction-
|
|
83
|
-
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-
|
|
80
|
+
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-Bv8oh7WW.js";
|
|
81
|
+
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-gcj_CR2I.js";
|
|
82
|
+
import { a as init_conversation_compaction, c as shouldInterceptManualCompact, n as compactConversationNative, o as isCompacting } from "./conversation-compaction-dqaXGhcH.js";
|
|
83
|
+
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-SF7iOUH9.js";
|
|
84
84
|
import { c as init_github_app, s as getPullRequestState } from "./github-app-DgISqJqI.js";
|
|
85
85
|
import { i as parseArtifactRef, r as init_forge } from "./forge-mcRx-ba-.js";
|
|
86
|
-
import { a as spawnSequencerAgent, i as init_sequencer_agent, n as clearFinishedSequencerRun, r as getSequencerRunStatus, t as SEQUENCER_AGENT_ID } from "./sequencer-agent-
|
|
87
|
-
import { i as listTranscriptCheckpoints, r as getTranscriptCheckpoint$1 } from "./checkpoints-
|
|
86
|
+
import { a as spawnSequencerAgent, i as init_sequencer_agent, n as clearFinishedSequencerRun, r as getSequencerRunStatus, t as SEQUENCER_AGENT_ID } from "./sequencer-agent-DZgob0vQ.js";
|
|
87
|
+
import { i as listTranscriptCheckpoints, r as getTranscriptCheckpoint$1 } from "./checkpoints-D9IV1yvV.js";
|
|
88
88
|
import { createRequire } from "node:module";
|
|
89
89
|
import { Cause, Context, Data, Effect, Exit, Fiber, FileSystem, Layer, Option, Path, Queue, Result, Schedule, Schema, Stream } from "effect";
|
|
90
90
|
import { createReadStream, createWriteStream, existsSync, fstatSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
|
|
@@ -628,7 +628,7 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
628
628
|
const beadsDir = join$1(workspacePath, ".beads");
|
|
629
629
|
const projectBeadsDir = join$1(workspacePath, "..", "..", ".beads");
|
|
630
630
|
if (!(existsSync$1(beadsDir) || existsSync$1(projectBeadsDir))) throw new BeadsNotInitialized({ workspace: workspacePath });
|
|
631
|
-
const { getAgentState, spawnAgent, normalizeAgentId } = await import("./agents-
|
|
631
|
+
const { getAgentState, spawnAgent, normalizeAgentId } = await import("./agents-BeWOeR_m.js");
|
|
632
632
|
const normalizedId = normalizeAgentId(issueId);
|
|
633
633
|
if ((await Effect.runPromise(getAgentState(normalizedId)))?.status === "running") throw new AgentAlreadyRunning({ id: issueId });
|
|
634
634
|
return {
|
|
@@ -659,7 +659,7 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
659
659
|
const { workspacePath, projectPath, issue } = opts;
|
|
660
660
|
if (!existsSync$1(workspacePath)) throw new WorkspaceNotFound({ id: issueId });
|
|
661
661
|
const sessionName = opts.sessionName ?? `planning-${issueId.toLowerCase()}`;
|
|
662
|
-
const { spawnPlanningSession } = await import("./spawn-planning-session-
|
|
662
|
+
const { spawnPlanningSession } = await import("./spawn-planning-session-HmyOU9y0.js");
|
|
663
663
|
const result = await spawnPlanningSession({
|
|
664
664
|
issue: {
|
|
665
665
|
id: issue.id,
|
|
@@ -692,14 +692,14 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
692
692
|
}),
|
|
693
693
|
kill: (agentId) => Effect.tryPromise({
|
|
694
694
|
try: async () => {
|
|
695
|
-
const { stopAgent } = await import("./agents-
|
|
695
|
+
const { stopAgent } = await import("./agents-BeWOeR_m.js");
|
|
696
696
|
await Effect.runPromise(stopAgent(agentId));
|
|
697
697
|
},
|
|
698
698
|
catch: () => void 0
|
|
699
699
|
}).pipe(Effect.ignore),
|
|
700
700
|
message: (agentId, msg) => Effect.tryPromise({
|
|
701
701
|
try: async () => {
|
|
702
|
-
const { messageAgent } = await import("./agents-
|
|
702
|
+
const { messageAgent } = await import("./agents-BeWOeR_m.js");
|
|
703
703
|
await messageAgent(agentId, msg);
|
|
704
704
|
},
|
|
705
705
|
catch: (err) => new AgentStartError({
|
|
@@ -710,8 +710,8 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
|
|
|
710
710
|
}),
|
|
711
711
|
deepWipe: (issueId, opts) => Effect.tryPromise({
|
|
712
712
|
try: async () => {
|
|
713
|
-
const { deepWipe } = await import("./workflows-
|
|
714
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
713
|
+
const { deepWipe } = await import("./workflows-BGSPZ2WT.js");
|
|
714
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bx1iT8WM.js");
|
|
715
715
|
const project = resolveProjectFromIssueSync(issueId);
|
|
716
716
|
const projectPath = project?.projectPath ?? process.cwd();
|
|
717
717
|
await Effect.runPromise(deepWipe({
|
|
@@ -767,8 +767,8 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
767
767
|
const { workspacePath, branch } = getWorkspacePath(issueId);
|
|
768
768
|
const issueLower = issueId.toLowerCase();
|
|
769
769
|
if (existsSync$1(workspacePath)) return workspacePath;
|
|
770
|
-
const { createWorkspace } = await import("./workspace-manager-
|
|
771
|
-
const { loadProjectsConfigSync } = await import("./projects-
|
|
770
|
+
const { createWorkspace } = await import("./workspace-manager-B7Ji7R9Y.js");
|
|
771
|
+
const { loadProjectsConfigSync } = await import("./projects-Bx1iT8WM.js");
|
|
772
772
|
const { projects } = loadProjectsConfigSync();
|
|
773
773
|
const project = resolveProjectFromIssueSync(issueId);
|
|
774
774
|
if (!project) throw new WorkspaceCreateError({
|
|
@@ -803,7 +803,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
803
803
|
const { workspacePath } = getWorkspacePath(issueId);
|
|
804
804
|
const issueLower = issueId.toLowerCase();
|
|
805
805
|
if (!existsSync$1(workspacePath)) throw new WorkspaceNotFound({ id: issueId });
|
|
806
|
-
const { removeWorkspace } = await import("./workspace-manager-
|
|
806
|
+
const { removeWorkspace } = await import("./workspace-manager-B7Ji7R9Y.js");
|
|
807
807
|
const project = resolveProjectFromIssueSync(issueId);
|
|
808
808
|
if (!project) throw new WorkspaceCreateError({
|
|
809
809
|
id: issueId,
|
|
@@ -834,7 +834,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
834
834
|
try: async () => {
|
|
835
835
|
const { workspacePath } = getWorkspacePath(issueId);
|
|
836
836
|
const issueLower = issueId.toLowerCase();
|
|
837
|
-
const { stopWorkspaceDocker } = await import("./workspace-manager-
|
|
837
|
+
const { stopWorkspaceDocker } = await import("./workspace-manager-B7Ji7R9Y.js");
|
|
838
838
|
await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
|
|
839
839
|
},
|
|
840
840
|
catch: () => void 0
|
|
@@ -903,7 +903,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
|
|
|
903
903
|
join$1(workspacePath, ".devcontainer", "docker-compose.devcontainer.yml")
|
|
904
904
|
];
|
|
905
905
|
if (!composePaths.find((p) => existsSync$1(p))) {
|
|
906
|
-
const { ensureDevcontainerSync } = await import("./ensure-devcontainer-
|
|
906
|
+
const { ensureDevcontainerSync } = await import("./ensure-devcontainer-DLZ2bnuQ.js");
|
|
907
907
|
const ensure = ensureDevcontainerSync({
|
|
908
908
|
workspacePath,
|
|
909
909
|
issueId
|
|
@@ -36870,6 +36870,158 @@ function isAbortError(error) {
|
|
|
36870
36870
|
return error instanceof Error && error.name === "AbortError";
|
|
36871
36871
|
}
|
|
36872
36872
|
//#endregion
|
|
36873
|
+
//#region ../../lib/overdeck/legacy-import.ts
|
|
36874
|
+
init_driver();
|
|
36875
|
+
init_conversations();
|
|
36876
|
+
function previewLegacyConversations(path) {
|
|
36877
|
+
if (!existsSync$1(path)) return { found: false };
|
|
36878
|
+
const db = openDatabase(path, { readOnly: true });
|
|
36879
|
+
try {
|
|
36880
|
+
const legacyRows = db.prepare(`SELECT name, title, created_at, model, last_attached_at, claude_session_id
|
|
36881
|
+
FROM conversations
|
|
36882
|
+
ORDER BY created_at DESC`).all();
|
|
36883
|
+
const favSet = new Set(db.prepare(`SELECT item_id FROM favorites WHERE type = 'conversation'`).all().map((r) => r.item_id));
|
|
36884
|
+
const rows = [];
|
|
36885
|
+
for (const row of legacyRows) {
|
|
36886
|
+
if (isAgentConversationName(row.name)) continue;
|
|
36887
|
+
rows.push({
|
|
36888
|
+
name: row.name,
|
|
36889
|
+
title: row.title,
|
|
36890
|
+
createdAt: row.created_at,
|
|
36891
|
+
model: row.model,
|
|
36892
|
+
lastActivityAt: row.last_attached_at,
|
|
36893
|
+
messageCount: null,
|
|
36894
|
+
hasFavorite: favSet.has(row.name),
|
|
36895
|
+
claudeSessionId: row.claude_session_id,
|
|
36896
|
+
alreadyImported: getConversationByName(row.name) !== null
|
|
36897
|
+
});
|
|
36898
|
+
}
|
|
36899
|
+
return {
|
|
36900
|
+
found: true,
|
|
36901
|
+
rows
|
|
36902
|
+
};
|
|
36903
|
+
} finally {
|
|
36904
|
+
db.close();
|
|
36905
|
+
}
|
|
36906
|
+
}
|
|
36907
|
+
function parseIsoToMs(iso) {
|
|
36908
|
+
if (!iso) return null;
|
|
36909
|
+
const ms = new Date(iso).getTime();
|
|
36910
|
+
return Number.isNaN(ms) ? null : ms;
|
|
36911
|
+
}
|
|
36912
|
+
function importLegacyConversations(path, names) {
|
|
36913
|
+
const result = {
|
|
36914
|
+
imported: [],
|
|
36915
|
+
skipped: [],
|
|
36916
|
+
failed: [],
|
|
36917
|
+
warnings: [],
|
|
36918
|
+
favoritesCarried: 0
|
|
36919
|
+
};
|
|
36920
|
+
if (!existsSync$1(path) || names.length === 0) return result;
|
|
36921
|
+
const db = openDatabase(path, { readOnly: true });
|
|
36922
|
+
let legacyRows;
|
|
36923
|
+
let favSet;
|
|
36924
|
+
try {
|
|
36925
|
+
const placeholders = names.map(() => "?").join(", ");
|
|
36926
|
+
legacyRows = db.prepare(`SELECT id, name, tmux_session, status, cwd, created_at, ended_at, last_attached_at,
|
|
36927
|
+
session_file, claude_session_id, title, title_source, title_seed,
|
|
36928
|
+
total_cost, total_tokens, archived_at, model, effort, fork_status, fork_error,
|
|
36929
|
+
harness, delivery_method, spawn_error, handoff_doc_path, handoff_target_conv_id,
|
|
36930
|
+
fork_fallback_reason, cleared_to_conv_id, fork_request, fork_retry_count
|
|
36931
|
+
FROM conversations WHERE name IN (${placeholders})`).all(...names);
|
|
36932
|
+
favSet = new Set(db.prepare(`SELECT item_id FROM favorites WHERE type = 'conversation'`).all().map((r) => r.item_id));
|
|
36933
|
+
} finally {
|
|
36934
|
+
db.close();
|
|
36935
|
+
}
|
|
36936
|
+
const rowidToUuid = /* @__PURE__ */ new Map();
|
|
36937
|
+
for (const row of legacyRows) {
|
|
36938
|
+
if (isAgentConversationName(row.name)) {
|
|
36939
|
+
result.skipped.push({
|
|
36940
|
+
name: row.name,
|
|
36941
|
+
reason: "agent/planning/specialist conversation excluded from import"
|
|
36942
|
+
});
|
|
36943
|
+
continue;
|
|
36944
|
+
}
|
|
36945
|
+
const createdAtMs = parseIsoToMs(row.created_at);
|
|
36946
|
+
if (createdAtMs === null) {
|
|
36947
|
+
result.failed.push({
|
|
36948
|
+
name: row.name,
|
|
36949
|
+
reason: `unparseable created_at: ${String(row.created_at)}`
|
|
36950
|
+
});
|
|
36951
|
+
continue;
|
|
36952
|
+
}
|
|
36953
|
+
if (getConversationByName(row.name) !== null) {
|
|
36954
|
+
result.skipped.push({
|
|
36955
|
+
name: row.name,
|
|
36956
|
+
reason: "name already exists in overdeck.db"
|
|
36957
|
+
});
|
|
36958
|
+
continue;
|
|
36959
|
+
}
|
|
36960
|
+
if (row.claude_session_id && getConversationByClaudeSessionId(row.claude_session_id) !== null) {
|
|
36961
|
+
result.skipped.push({
|
|
36962
|
+
name: row.name,
|
|
36963
|
+
reason: "claude_session_id already registered in overdeck.db"
|
|
36964
|
+
});
|
|
36965
|
+
continue;
|
|
36966
|
+
}
|
|
36967
|
+
const archivedAtMs = parseIsoToMs(row.archived_at);
|
|
36968
|
+
const status = row.status ?? (archivedAtMs ? "ended" : "active");
|
|
36969
|
+
const { uuid } = importLegacyConversation({
|
|
36970
|
+
name: row.name,
|
|
36971
|
+
tmuxSession: row.tmux_session,
|
|
36972
|
+
status,
|
|
36973
|
+
cwd: row.cwd,
|
|
36974
|
+
createdAt: createdAtMs,
|
|
36975
|
+
endedAt: parseIsoToMs(row.ended_at),
|
|
36976
|
+
lastAttachedAt: parseIsoToMs(row.last_attached_at),
|
|
36977
|
+
sessionFile: row.session_file,
|
|
36978
|
+
claudeSessionId: row.claude_session_id,
|
|
36979
|
+
title: row.title,
|
|
36980
|
+
titleSource: row.title_source,
|
|
36981
|
+
titleSeed: row.title_seed,
|
|
36982
|
+
totalCost: row.total_cost ?? 0,
|
|
36983
|
+
totalTokens: row.total_tokens ?? 0,
|
|
36984
|
+
archivedAt: archivedAtMs,
|
|
36985
|
+
model: row.model,
|
|
36986
|
+
effort: row.effort,
|
|
36987
|
+
forkStatus: row.fork_status,
|
|
36988
|
+
forkError: row.fork_error,
|
|
36989
|
+
harness: row.harness,
|
|
36990
|
+
deliveryMethod: row.delivery_method,
|
|
36991
|
+
spawnError: row.spawn_error,
|
|
36992
|
+
handoffDocPath: row.handoff_doc_path,
|
|
36993
|
+
forkFallbackReason: row.fork_fallback_reason,
|
|
36994
|
+
forkRequest: row.fork_request,
|
|
36995
|
+
forkRetryCount: row.fork_retry_count ?? 0
|
|
36996
|
+
});
|
|
36997
|
+
rowidToUuid.set(row.id, uuid);
|
|
36998
|
+
result.imported.push(row.name);
|
|
36999
|
+
if (favSet.has(row.name)) {
|
|
37000
|
+
setFavorite("conversation", row.name);
|
|
37001
|
+
result.favoritesCarried++;
|
|
37002
|
+
}
|
|
37003
|
+
}
|
|
37004
|
+
for (const row of legacyRows) {
|
|
37005
|
+
const uuid = rowidToUuid.get(row.id);
|
|
37006
|
+
if (!uuid) continue;
|
|
37007
|
+
const handoffTargetUuid = row.handoff_target_conv_id != null ? rowidToUuid.get(row.handoff_target_conv_id) ?? null : null;
|
|
37008
|
+
const clearedToUuid = row.cleared_to_conv_id != null ? rowidToUuid.get(row.cleared_to_conv_id) ?? null : null;
|
|
37009
|
+
if (row.handoff_target_conv_id != null && handoffTargetUuid === null) result.warnings.push({
|
|
37010
|
+
name: row.name,
|
|
37011
|
+
reason: `handoff target (legacy rowid ${row.handoff_target_conv_id}) was not imported; handoff_target_conv_id set to NULL`
|
|
37012
|
+
});
|
|
37013
|
+
if (row.cleared_to_conv_id != null && clearedToUuid === null) result.warnings.push({
|
|
37014
|
+
name: row.name,
|
|
37015
|
+
reason: `cleared_to target (legacy rowid ${row.cleared_to_conv_id}) was not imported; cleared_to_conv_id set to NULL`
|
|
37016
|
+
});
|
|
37017
|
+
if (handoffTargetUuid !== null || clearedToUuid !== null) setImportedConversationLinks(uuid, {
|
|
37018
|
+
handoffTargetUuid,
|
|
37019
|
+
clearedToUuid
|
|
37020
|
+
});
|
|
37021
|
+
}
|
|
37022
|
+
return result;
|
|
37023
|
+
}
|
|
37024
|
+
//#endregion
|
|
36873
37025
|
//#region routes/settings.ts
|
|
36874
37026
|
/**
|
|
36875
37027
|
* Settings route module — Effect HttpRouter.Layer (PAN-428 B15)
|
|
@@ -36887,6 +37039,7 @@ init_providers();
|
|
|
36887
37039
|
init_http_handler();
|
|
36888
37040
|
init_agents$2();
|
|
36889
37041
|
init_config_yaml();
|
|
37042
|
+
init_paths();
|
|
36890
37043
|
const REINDEX_CONFIRM_THRESHOLD_USD = 1;
|
|
36891
37044
|
const REINDEX_CONFIRM_TTL_MS = 600 * 1e3;
|
|
36892
37045
|
const reindexConfirmationNonces = /* @__PURE__ */ new Map();
|
|
@@ -37688,7 +37841,41 @@ const getProviderEnvConflictsRoute = HttpRouter.add("GET", "/api/settings/provid
|
|
|
37688
37841
|
}
|
|
37689
37842
|
});
|
|
37690
37843
|
})));
|
|
37691
|
-
const
|
|
37844
|
+
const getLegacyImportPreviewRoute = HttpRouter.add("GET", "/api/settings/legacy-import/conversations", httpHandler(Effect.gen(function* () {
|
|
37845
|
+
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
37846
|
+
return yield* Effect.try({
|
|
37847
|
+
try: () => {
|
|
37848
|
+
const urlPath = new URL(request.url, "http://localhost").searchParams.get("path");
|
|
37849
|
+
const defaultPath = join$1(getLegacyHome(), "panopticon.db");
|
|
37850
|
+
const resolvedPath = urlPath?.trim() || defaultPath;
|
|
37851
|
+
const preview = previewLegacyConversations(resolvedPath);
|
|
37852
|
+
if (!preview.found) return jsonResponse({
|
|
37853
|
+
found: false,
|
|
37854
|
+
defaultPath,
|
|
37855
|
+
message: `No legacy database found at ${resolvedPath}`
|
|
37856
|
+
});
|
|
37857
|
+
return jsonResponse({
|
|
37858
|
+
found: true,
|
|
37859
|
+
path: resolvedPath,
|
|
37860
|
+
conversations: preview.rows
|
|
37861
|
+
});
|
|
37862
|
+
},
|
|
37863
|
+
catch: (err) => jsonResponse({ error: err instanceof Error ? err.message : String(err) }, { status: 500 })
|
|
37864
|
+
});
|
|
37865
|
+
})));
|
|
37866
|
+
const postLegacyImportRoute = HttpRouter.add("POST", "/api/settings/legacy-import/conversations", httpHandler(Effect.gen(function* () {
|
|
37867
|
+
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
37868
|
+
if (authError) return authError;
|
|
37869
|
+
const body = yield* readJsonBody$8;
|
|
37870
|
+
return yield* Effect.try({
|
|
37871
|
+
try: () => {
|
|
37872
|
+
const { path, names } = body;
|
|
37873
|
+
return jsonResponse(importLegacyConversations(path, names));
|
|
37874
|
+
},
|
|
37875
|
+
catch: (err) => jsonResponse({ error: err instanceof Error ? err.message : String(err) }, { status: 500 })
|
|
37876
|
+
});
|
|
37877
|
+
})));
|
|
37878
|
+
const settingsRouteLayer = Layer.mergeAll(getSettingsRoute, getAvailableModelsRoute, getOptimalDefaultsRoute, getMiniMaxDefaultsRoute, getClaudeAuthRoute, getOpenAIAuthRoute, postTestApiKeyRoute, postValidateApiKeyRoute, getConversationSearchStatusRoute, getConversationSearchReindexEstimateRoute, postConversationSearchReindexRoute, getConversationSearchReindexProgressRoute, putSettingsRoute, putUiThemeRoute, getOpenRouterModelsRoute, putOpenRouterFavoritesRoute, putOpenRouterApiKeyRoute, postOpenRouterTestKeyRoute, getHarnessPolicyRoute, getProviderEnvConflictsRoute, getLegacyImportPreviewRoute, postLegacyImportRoute);
|
|
37692
37879
|
//#endregion
|
|
37693
37880
|
//#region routes/autopreso.ts
|
|
37694
37881
|
init_http_helpers();
|
|
@@ -38541,7 +38728,7 @@ const getVersionRoute = HttpRouter.add("GET", "/api/version", Effect.promise(asy
|
|
|
38541
38728
|
const version = await getOverdeckVersion();
|
|
38542
38729
|
let supervisorUrl = null;
|
|
38543
38730
|
try {
|
|
38544
|
-
const { getSupervisorUrlSync } = await import("./supervisor-
|
|
38731
|
+
const { getSupervisorUrlSync } = await import("./supervisor-DVlsIgfZ.js");
|
|
38545
38732
|
supervisorUrl = getSupervisorUrlSync();
|
|
38546
38733
|
} catch {}
|
|
38547
38734
|
return jsonResponse({
|
|
@@ -38637,7 +38824,7 @@ const getPlanningStatusRoute = HttpRouter.add("GET", "/api/planning/:issueId/sta
|
|
|
38637
38824
|
const remoteState = loadRemoteAgentState(sessionName);
|
|
38638
38825
|
const isRemote = !!remoteState;
|
|
38639
38826
|
const vmName = remoteState?.vmName ?? "";
|
|
38640
|
-
const { getAgentStateSync } = await import("./agents-
|
|
38827
|
+
const { getAgentStateSync } = await import("./agents-BeWOeR_m.js");
|
|
38641
38828
|
const agentStarting = getAgentStateSync(sessionName)?.status === "starting";
|
|
38642
38829
|
let tmuxSessionAlive = false;
|
|
38643
38830
|
if (!isRemote) try {
|
|
@@ -38780,7 +38967,7 @@ Continue the PLANNING session. Do NOT implement anything.
|
|
|
38780
38967
|
`);
|
|
38781
38968
|
const agentCwd = workspacePath;
|
|
38782
38969
|
if (existsSync$1(outputFile)) await rename(outputFile, join$1(planningDir, `output-${Date.now()}.jsonl`));
|
|
38783
|
-
const { getAgentCommandSync } = await import("./settings-
|
|
38970
|
+
const { getAgentCommandSync } = await import("./settings-wPqxbDcV.js");
|
|
38784
38971
|
let msgPlanningModel = "claude-sonnet-4-6";
|
|
38785
38972
|
try {
|
|
38786
38973
|
msgPlanningModel = resolveModel("plan", void 0, loadConfigSync().config);
|
|
@@ -39046,7 +39233,7 @@ const postShadowMonitorRoute = HttpRouter.add("POST", "/api/shadow/:issueId/moni
|
|
|
39046
39233
|
const projectPath = await getProjectPath(issuePrefix);
|
|
39047
39234
|
const workspacePath = join$1(projectPath, "workspaces", `feature-${issueLower}`);
|
|
39048
39235
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
|
|
39049
|
-
const { gatherArtifacts, generateBasicInference, updateInferenceDocumentSync } = await import("./shadow-engineering-
|
|
39236
|
+
const { gatherArtifacts, generateBasicInference, updateInferenceDocumentSync } = await import("./shadow-engineering-BZTBik_h.js");
|
|
39050
39237
|
const config = {
|
|
39051
39238
|
issueId,
|
|
39052
39239
|
workspacePath,
|
|
@@ -39076,7 +39263,7 @@ const postShadowObserveRoute = HttpRouter.add("POST", "/api/shadow/:issueId/obse
|
|
|
39076
39263
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
|
|
39077
39264
|
const ghConfig = getGitHubConfig();
|
|
39078
39265
|
if (!ghConfig) return jsonResponse({ error: "GitHub not configured - Observer requires GitHub" }, { status: 400 });
|
|
39079
|
-
const { runObserverCycle } = await import("./shadow-engineering-
|
|
39266
|
+
const { runObserverCycle } = await import("./shadow-engineering-BZTBik_h.js");
|
|
39080
39267
|
const firstRepo = ghConfig.repos[0];
|
|
39081
39268
|
const config = {
|
|
39082
39269
|
issueId,
|
|
@@ -40416,7 +40603,7 @@ async function cleanupConversationAttachments(name) {
|
|
|
40416
40603
|
* sessions that the lifecycle poller missed. */
|
|
40417
40604
|
async function cleanupOrphanedConversationAttachments() {
|
|
40418
40605
|
try {
|
|
40419
|
-
const { listConversations } = await import("./conversations-
|
|
40606
|
+
const { listConversations } = await import("./conversations-DumOm1wb.js");
|
|
40420
40607
|
const convNames = new Set(listConversations().map((c) => c.name));
|
|
40421
40608
|
const root = getConversationAttachmentsRoot();
|
|
40422
40609
|
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, {
|
|
@@ -41468,7 +41655,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
41468
41655
|
const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
|
|
41469
41656
|
const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
|
|
41470
41657
|
const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
|
|
41471
|
-
const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-
|
|
41658
|
+
const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-DZZiDgis.js");
|
|
41472
41659
|
initCodexHome(codexHome, {
|
|
41473
41660
|
trustedDir: cwd,
|
|
41474
41661
|
approvalPolicy: codexApprovalPolicy,
|
|
@@ -41538,7 +41725,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
41538
41725
|
} catch {}
|
|
41539
41726
|
console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
|
|
41540
41727
|
try {
|
|
41541
|
-
const { preTrustDirectory } = await import("./workspace-manager-
|
|
41728
|
+
const { preTrustDirectory } = await import("./workspace-manager-B7Ji7R9Y.js");
|
|
41542
41729
|
preTrustDirectory(cwd);
|
|
41543
41730
|
} catch {}
|
|
41544
41731
|
try {
|
|
@@ -41555,7 +41742,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
41555
41742
|
const codexHomeDir = codexFields.codexHome;
|
|
41556
41743
|
(async () => {
|
|
41557
41744
|
try {
|
|
41558
|
-
const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-
|
|
41745
|
+
const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-DZZiDgis.js");
|
|
41559
41746
|
const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
|
|
41560
41747
|
if (rollout) {
|
|
41561
41748
|
const threadId = extractThreadIdFromRollout(rollout);
|
|
@@ -43737,7 +43924,7 @@ async function registerProjectFromPath(opts) {
|
|
|
43737
43924
|
registerProjectSync(key, projectConfig);
|
|
43738
43925
|
const seededContextLayer = ensureProjectLayer(fullPath);
|
|
43739
43926
|
try {
|
|
43740
|
-
const { preTrustDirectorySync } = await import("./workspace-manager-
|
|
43927
|
+
const { preTrustDirectorySync } = await import("./workspace-manager-B7Ji7R9Y.js");
|
|
43741
43928
|
preTrustDirectorySync(fullPath);
|
|
43742
43929
|
} catch {}
|
|
43743
43930
|
let hooksInstalled = 0;
|
|
@@ -43778,7 +43965,7 @@ init_jsonl_resolver();
|
|
|
43778
43965
|
init_paths();
|
|
43779
43966
|
const execAsync$2 = promisify(exec);
|
|
43780
43967
|
async function getIssueDataService() {
|
|
43781
|
-
const { getSharedIssueService } = await import("./issue-service-singleton-
|
|
43968
|
+
const { getSharedIssueService } = await import("./issue-service-singleton-BoOA6Zoi.js");
|
|
43782
43969
|
return getSharedIssueService();
|
|
43783
43970
|
}
|
|
43784
43971
|
/** Returns true if the path exists (any type). */
|
|
@@ -45795,8 +45982,8 @@ async function handlePullRequestPromise(payload) {
|
|
|
45795
45982
|
if (!issueId) return;
|
|
45796
45983
|
const repo = payload.repository.full_name;
|
|
45797
45984
|
if (payload.action === "closed" && pr.merged === true) try {
|
|
45798
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
45799
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
45985
|
+
const { postMergeLifecycle } = await import("./merge-agent-PlMChx1A.js");
|
|
45986
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bx1iT8WM.js");
|
|
45800
45987
|
const project = resolveProjectFromIssueSync(issueId);
|
|
45801
45988
|
if (project) {
|
|
45802
45989
|
const branchName = pr.head.ref;
|
|
@@ -46257,7 +46444,7 @@ function getCheckpointWorker() {
|
|
|
46257
46444
|
return worker;
|
|
46258
46445
|
}
|
|
46259
46446
|
async function runInline(operation, payload) {
|
|
46260
|
-
const { claimTranscriptRange, commitTranscriptRange, releaseTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints } = await import("./checkpoints-
|
|
46447
|
+
const { claimTranscriptRange, commitTranscriptRange, releaseTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints } = await import("./checkpoints-AfvX58uE.js");
|
|
46261
46448
|
switch (operation) {
|
|
46262
46449
|
case "claimTranscriptRange": return claimTranscriptRange(payload);
|
|
46263
46450
|
case "commitTranscriptRange": return commitTranscriptRange(payload);
|
|
@@ -47411,7 +47598,7 @@ function buildPendingTurn(input, fromOffset, toOffset, compressed) {
|
|
|
47411
47598
|
};
|
|
47412
47599
|
}
|
|
47413
47600
|
async function emitMemoryObservationCreated(observation, timestamp) {
|
|
47414
|
-
const { initEventStore } = await import("./event-store-
|
|
47601
|
+
const { initEventStore } = await import("./event-store-wcLlc5KG.js");
|
|
47415
47602
|
await (await initEventStore()).appendAsync({
|
|
47416
47603
|
type: "memory.observation_created",
|
|
47417
47604
|
timestamp,
|
|
@@ -50339,7 +50526,7 @@ async function getFlywheelConversationPayload() {
|
|
|
50339
50526
|
};
|
|
50340
50527
|
}
|
|
50341
50528
|
async function postFlywheelReportPayload() {
|
|
50342
|
-
const { flywheelReportCommand } = await import("./flywheel-
|
|
50529
|
+
const { flywheelReportCommand } = await import("./flywheel-Bz8p0duH.js");
|
|
50343
50530
|
await flywheelReportCommand({ cwd: process.cwd() });
|
|
50344
50531
|
return {
|
|
50345
50532
|
status: 200,
|
|
@@ -50528,11 +50715,11 @@ const getMergeBlockersRoute = HttpRouter.add("GET", "/api/flywheel/merge-blocker
|
|
|
50528
50715
|
async function defaultGetOrderedIssueIds() {
|
|
50529
50716
|
const status = await readCurrentFlywheelStatusForDashboard();
|
|
50530
50717
|
if (!status) return [];
|
|
50531
|
-
const { computeMergeQueue } = await import("./flywheel-merge-order-
|
|
50718
|
+
const { computeMergeQueue } = await import("./flywheel-merge-order-B027U7Y2.js");
|
|
50532
50719
|
return (await Effect.runPromise(computeMergeQueue(status.activePipeline, process.cwd()).pipe(Effect.provide(layer)))).map((i) => i.issueId);
|
|
50533
50720
|
}
|
|
50534
50721
|
async function defaultMergeOne(issueId) {
|
|
50535
|
-
const { triggerMerge } = await import("./workspaces-
|
|
50722
|
+
const { triggerMerge } = await import("./workspaces-BB169tZ1.js");
|
|
50536
50723
|
const r = await triggerMerge(issueId);
|
|
50537
50724
|
return r.success ? { ok: true } : {
|
|
50538
50725
|
ok: false,
|
|
@@ -50709,7 +50896,7 @@ const getFlywheelMergeQueueRoute = HttpRouter.add("GET", "/api/flywheel/merge-qu
|
|
|
50709
50896
|
return yield* Effect.promise(async () => {
|
|
50710
50897
|
const status = await readCurrentFlywheelStatusForDashboard();
|
|
50711
50898
|
if (!status) return jsonResponse([]);
|
|
50712
|
-
const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-
|
|
50899
|
+
const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-B027U7Y2.js");
|
|
50713
50900
|
return jsonResponse(await Effect.runPromise(computeMergeQueue(status.activePipeline, process.cwd(), { getPrUrl: resolveMergeQueuePrUrl }).pipe(Effect.provide(layer))));
|
|
50714
50901
|
});
|
|
50715
50902
|
})));
|
|
@@ -50723,14 +50910,14 @@ function uatGenerationNameFromParam(param) {
|
|
|
50723
50910
|
return decoded.startsWith("uat/") ? decoded : `uat/${decoded}`;
|
|
50724
50911
|
}
|
|
50725
50912
|
const getUatGenerationsRoute = HttpRouter.add("GET", "/api/flywheel/uat-generations", httpHandler(Effect.gen(function* () {
|
|
50726
|
-
const { getUatGenerationsPayload } = yield* Effect.promise(() => import("./uat-train-
|
|
50913
|
+
const { getUatGenerationsPayload } = yield* Effect.promise(() => import("./uat-train-D0UsTS5S.js"));
|
|
50727
50914
|
return jsonResponse(yield* Effect.promise(() => getUatGenerationsPayload()));
|
|
50728
50915
|
})));
|
|
50729
50916
|
const postUatGenerationStackRoute = HttpRouter.add("POST", "/api/flywheel/uat-generations/:name/stack", httpHandler(Effect.gen(function* () {
|
|
50730
50917
|
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
50731
50918
|
if (authError) return authError;
|
|
50732
50919
|
const name = uatGenerationNameFromParam((yield* HttpRouter.params)["name"] ?? "");
|
|
50733
|
-
const { postUatGenerationStackPayload } = yield* Effect.promise(() => import("./uat-train-
|
|
50920
|
+
const { postUatGenerationStackPayload } = yield* Effect.promise(() => import("./uat-train-D0UsTS5S.js"));
|
|
50734
50921
|
const result = yield* Effect.promise(() => postUatGenerationStackPayload(name));
|
|
50735
50922
|
if (!result.ok) return jsonResponse({ error: result.error }, { status: result.status });
|
|
50736
50923
|
return jsonResponse({
|
|
@@ -50742,8 +50929,8 @@ const postUatGenerationPromoteRoute = HttpRouter.add("POST", "/api/flywheel/uat-
|
|
|
50742
50929
|
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
50743
50930
|
if (authError) return authError;
|
|
50744
50931
|
const name = uatGenerationNameFromParam((yield* HttpRouter.params)["name"] ?? "");
|
|
50745
|
-
const { postUatGenerationPromotePayload } = yield* Effect.promise(() => import("./uat-train-
|
|
50746
|
-
const { firePostMergeLifecycle } = yield* Effect.promise(() => import("./specialists-
|
|
50932
|
+
const { postUatGenerationPromotePayload } = yield* Effect.promise(() => import("./uat-train-D0UsTS5S.js"));
|
|
50933
|
+
const { firePostMergeLifecycle } = yield* Effect.promise(() => import("./specialists-ZtyvSxW9.js"));
|
|
50747
50934
|
const result = yield* Effect.promise(() => postUatGenerationPromotePayload(name, firePostMergeLifecycle));
|
|
50748
50935
|
if (!result.success) return jsonResponse(result, { status: result.reason === "not-found" ? 404 : result.reason === "merge-failed" ? 500 : 409 });
|
|
50749
50936
|
return jsonResponse(result);
|
|
@@ -50756,7 +50943,7 @@ const postUatGenerationPromoteRoute = HttpRouter.add("POST", "/api/flywheel/uat-
|
|
|
50756
50943
|
const postFlywheelAssembleUatRoute = HttpRouter.add("POST", "/api/flywheel/assemble-uat", httpHandler(Effect.gen(function* () {
|
|
50757
50944
|
const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
|
|
50758
50945
|
if (authError) return authError;
|
|
50759
|
-
const { runUatTrainReconcile } = yield* Effect.promise(() => import("./uat-train-
|
|
50946
|
+
const { runUatTrainReconcile } = yield* Effect.promise(() => import("./uat-train-D0UsTS5S.js"));
|
|
50760
50947
|
return jsonResponse(yield* Effect.promise(() => runUatTrainReconcile({ force: true })));
|
|
50761
50948
|
})));
|
|
50762
50949
|
const getFlywheelStateRoute = HttpRouter.add("GET", "/api/flywheel/state", httpHandler(Effect.gen(function* () {
|
|
@@ -53927,7 +54114,7 @@ async function pollOnce(state) {
|
|
|
53927
54114
|
try {
|
|
53928
54115
|
const remoteState = await readFile(join$1(homedir$1(), ".overdeck", "agents", agentId, "remote-state.json"), "utf-8").then((text) => JSON.parse(text)).catch(() => null);
|
|
53929
54116
|
if (remoteState?.location === "remote" && remoteState?.vmName) {
|
|
53930
|
-
const { getRemoteAgentOutput } = await import("./remote-agents-
|
|
54117
|
+
const { getRemoteAgentOutput } = await import("./remote-agents-CYhsjnkE.js");
|
|
53931
54118
|
stdout = await getRemoteAgentOutput(agentId, remoteState.vmName, 50);
|
|
53932
54119
|
} else stdout = await Effect.runPromise(capturePane(agentId, 50));
|
|
53933
54120
|
} catch {
|
|
@@ -54880,7 +55067,7 @@ const RESTART_MARKER = join(homedir(), ".overdeck", "dashboard-restarting.json")
|
|
|
54880
55067
|
* loads new content-hashed chunk filenames (no ERR_MODULE_NOT_FOUND after rebuild).
|
|
54881
55068
|
*/
|
|
54882
55069
|
async function defaultLifecycleRunner(pending) {
|
|
54883
|
-
const { postMergeLifecycle, notifyTldrDaemon } = await import("./merge-agent-
|
|
55070
|
+
const { postMergeLifecycle, notifyTldrDaemon } = await import("./merge-agent-PlMChx1A.js");
|
|
54884
55071
|
await postMergeLifecycle(pending.issueId, pending.projectPath, pending.sourceBranch, { skipDeploy: true });
|
|
54885
55072
|
if (pending.sourceBranch) await notifyTldrDaemon(pending.projectPath, pending.sourceBranch);
|
|
54886
55073
|
}
|
|
@@ -55201,7 +55388,7 @@ function failureReason(result) {
|
|
|
55201
55388
|
return result.error ?? result.message ?? `merge returned status ${result.statusCode ?? "unknown"}`;
|
|
55202
55389
|
}
|
|
55203
55390
|
async function defaultMergeIssue(issueId) {
|
|
55204
|
-
const { triggerMerge } = await import("./workspaces-
|
|
55391
|
+
const { triggerMerge } = await import("./workspaces-BB169tZ1.js");
|
|
55205
55392
|
return triggerMerge(issueId);
|
|
55206
55393
|
}
|
|
55207
55394
|
function defaultAnnounceFailure(issueId, reason) {
|
|
@@ -55812,7 +55999,7 @@ reconcileStaleGitHubBlockers().then((n) => {
|
|
|
55812
55999
|
}
|
|
55813
56000
|
}).catch((err) => console.warn(`[overdeck] Startup blocker reconciliation failed: ${err.message}`));
|
|
55814
56001
|
try {
|
|
55815
|
-
const { resetProcessingToQueued } = await import("./merge-sync-
|
|
56002
|
+
const { resetProcessingToQueued } = await import("./merge-sync-Qvqrosks.js");
|
|
55816
56003
|
const resetCount = resetProcessingToQueued();
|
|
55817
56004
|
if (resetCount > 0) {
|
|
55818
56005
|
console.log(`[overdeck] Reset ${resetCount} stuck merge queue entries to queued`);
|