@companyhelm/runner 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +57 -0
- package/dist/commands/global-options.js +20 -0
- package/dist/commands/register-commands.js +15 -0
- package/dist/commands/root.js +2627 -0
- package/dist/commands/runner/common.js +18 -0
- package/dist/commands/runner/register-runner-commands.js +12 -0
- package/dist/commands/runner/start.js +30 -0
- package/dist/commands/runner/stop.js +55 -0
- package/dist/commands/sdk/codex/auth.js +200 -0
- package/dist/commands/sdk/codex/register-codex-sdk-commands.js +12 -0
- package/dist/commands/sdk/codex/use-dedicated-auth.js +18 -0
- package/dist/commands/sdk/codex/use-host-auth.js +19 -0
- package/dist/commands/sdk/list.js +76 -0
- package/dist/commands/sdk/refresh-models.js +25 -0
- package/dist/commands/sdk/register-sdk-commands.js +14 -0
- package/dist/commands/shell.js +90 -0
- package/dist/commands/startup.js +137 -0
- package/dist/commands/status.js +32 -0
- package/dist/commands/thread/docker.js +77 -0
- package/dist/commands/thread/list.js +37 -0
- package/dist/commands/thread/register-thread-commands.js +12 -0
- package/dist/config.js +105 -0
- package/dist/generated/codex-app-server/AbsolutePathBuf.js +3 -0
- package/dist/generated/codex-app-server/AddConversationListenerParams.js +3 -0
- package/dist/generated/codex-app-server/AddConversationSubscriptionResponse.js +3 -0
- package/dist/generated/codex-app-server/AgentMessageContent.js +3 -0
- package/dist/generated/codex-app-server/AgentMessageContentDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentMessageDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentMessageEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentMessageItem.js +3 -0
- package/dist/generated/codex-app-server/AgentReasoningDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentReasoningEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentReasoningRawContentDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentReasoningRawContentEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentReasoningSectionBreakEvent.js +3 -0
- package/dist/generated/codex-app-server/AgentStatus.js +3 -0
- package/dist/generated/codex-app-server/ApplyPatchApprovalParams.js +3 -0
- package/dist/generated/codex-app-server/ApplyPatchApprovalRequestEvent.js +3 -0
- package/dist/generated/codex-app-server/ApplyPatchApprovalResponse.js +3 -0
- package/dist/generated/codex-app-server/ArchiveConversationParams.js +3 -0
- package/dist/generated/codex-app-server/ArchiveConversationResponse.js +3 -0
- package/dist/generated/codex-app-server/AskForApproval.js +3 -0
- package/dist/generated/codex-app-server/AuthMode.js +3 -0
- package/dist/generated/codex-app-server/AuthStatusChangeNotification.js +3 -0
- package/dist/generated/codex-app-server/BackgroundEventEvent.js +3 -0
- package/dist/generated/codex-app-server/ByteRange.js +3 -0
- package/dist/generated/codex-app-server/CallToolResult.js +3 -0
- package/dist/generated/codex-app-server/CancelLoginChatGptParams.js +3 -0
- package/dist/generated/codex-app-server/CancelLoginChatGptResponse.js +3 -0
- package/dist/generated/codex-app-server/ClientInfo.js +3 -0
- package/dist/generated/codex-app-server/ClientNotification.js +3 -0
- package/dist/generated/codex-app-server/ClientRequest.js +3 -0
- package/dist/generated/codex-app-server/CodexErrorInfo.js +3 -0
- package/dist/generated/codex-app-server/CollabAgentInteractionBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabAgentInteractionEndEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabAgentSpawnBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabAgentSpawnEndEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabCloseBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabCloseEndEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabResumeBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabResumeEndEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabWaitingBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/CollabWaitingEndEvent.js +3 -0
- package/dist/generated/codex-app-server/CollaborationMode.js +3 -0
- package/dist/generated/codex-app-server/CollaborationModeMask.js +3 -0
- package/dist/generated/codex-app-server/ContentItem.js +3 -0
- package/dist/generated/codex-app-server/ContextCompactedEvent.js +3 -0
- package/dist/generated/codex-app-server/ContextCompactionItem.js +3 -0
- package/dist/generated/codex-app-server/ConversationGitInfo.js +3 -0
- package/dist/generated/codex-app-server/ConversationSummary.js +3 -0
- package/dist/generated/codex-app-server/CreditsSnapshot.js +3 -0
- package/dist/generated/codex-app-server/CustomPrompt.js +3 -0
- package/dist/generated/codex-app-server/DeprecationNoticeEvent.js +3 -0
- package/dist/generated/codex-app-server/DynamicToolCallRequest.js +3 -0
- package/dist/generated/codex-app-server/ElicitationRequestEvent.js +3 -0
- package/dist/generated/codex-app-server/ErrorEvent.js +3 -0
- package/dist/generated/codex-app-server/EventMsg.js +3 -0
- package/dist/generated/codex-app-server/ExecApprovalRequestEvent.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandApprovalParams.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandApprovalResponse.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandEndEvent.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandOutputDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandSource.js +3 -0
- package/dist/generated/codex-app-server/ExecCommandStatus.js +3 -0
- package/dist/generated/codex-app-server/ExecOneOffCommandParams.js +3 -0
- package/dist/generated/codex-app-server/ExecOneOffCommandResponse.js +3 -0
- package/dist/generated/codex-app-server/ExecOutputStream.js +3 -0
- package/dist/generated/codex-app-server/ExecPolicyAmendment.js +3 -0
- package/dist/generated/codex-app-server/ExitedReviewModeEvent.js +3 -0
- package/dist/generated/codex-app-server/FileChange.js +3 -0
- package/dist/generated/codex-app-server/ForcedLoginMethod.js +3 -0
- package/dist/generated/codex-app-server/ForkConversationParams.js +3 -0
- package/dist/generated/codex-app-server/ForkConversationResponse.js +3 -0
- package/dist/generated/codex-app-server/FunctionCallOutputBody.js +3 -0
- package/dist/generated/codex-app-server/FunctionCallOutputContentItem.js +3 -0
- package/dist/generated/codex-app-server/FunctionCallOutputPayload.js +3 -0
- package/dist/generated/codex-app-server/FuzzyFileSearchParams.js +3 -0
- package/dist/generated/codex-app-server/FuzzyFileSearchResponse.js +3 -0
- package/dist/generated/codex-app-server/FuzzyFileSearchResult.js +3 -0
- package/dist/generated/codex-app-server/FuzzyFileSearchSessionCompletedNotification.js +3 -0
- package/dist/generated/codex-app-server/FuzzyFileSearchSessionUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/GetAuthStatusParams.js +3 -0
- package/dist/generated/codex-app-server/GetAuthStatusResponse.js +3 -0
- package/dist/generated/codex-app-server/GetConversationSummaryParams.js +3 -0
- package/dist/generated/codex-app-server/GetConversationSummaryResponse.js +3 -0
- package/dist/generated/codex-app-server/GetHistoryEntryResponseEvent.js +3 -0
- package/dist/generated/codex-app-server/GetUserAgentResponse.js +3 -0
- package/dist/generated/codex-app-server/GetUserSavedConfigResponse.js +3 -0
- package/dist/generated/codex-app-server/GhostCommit.js +3 -0
- package/dist/generated/codex-app-server/GitDiffToRemoteParams.js +3 -0
- package/dist/generated/codex-app-server/GitDiffToRemoteResponse.js +3 -0
- package/dist/generated/codex-app-server/GitSha.js +3 -0
- package/dist/generated/codex-app-server/HistoryEntry.js +3 -0
- package/dist/generated/codex-app-server/InitializeCapabilities.js +3 -0
- package/dist/generated/codex-app-server/InitializeParams.js +3 -0
- package/dist/generated/codex-app-server/InitializeResponse.js +3 -0
- package/dist/generated/codex-app-server/InputItem.js +3 -0
- package/dist/generated/codex-app-server/InputModality.js +3 -0
- package/dist/generated/codex-app-server/InterruptConversationParams.js +3 -0
- package/dist/generated/codex-app-server/InterruptConversationResponse.js +3 -0
- package/dist/generated/codex-app-server/ItemCompletedEvent.js +3 -0
- package/dist/generated/codex-app-server/ItemStartedEvent.js +3 -0
- package/dist/generated/codex-app-server/ListConversationsParams.js +3 -0
- package/dist/generated/codex-app-server/ListConversationsResponse.js +3 -0
- package/dist/generated/codex-app-server/ListCustomPromptsResponseEvent.js +3 -0
- package/dist/generated/codex-app-server/ListRemoteSkillsResponseEvent.js +3 -0
- package/dist/generated/codex-app-server/ListSkillsResponseEvent.js +3 -0
- package/dist/generated/codex-app-server/LocalShellAction.js +3 -0
- package/dist/generated/codex-app-server/LocalShellExecAction.js +3 -0
- package/dist/generated/codex-app-server/LocalShellStatus.js +3 -0
- package/dist/generated/codex-app-server/LoginApiKeyParams.js +3 -0
- package/dist/generated/codex-app-server/LoginApiKeyResponse.js +3 -0
- package/dist/generated/codex-app-server/LoginChatGptCompleteNotification.js +3 -0
- package/dist/generated/codex-app-server/LoginChatGptResponse.js +3 -0
- package/dist/generated/codex-app-server/LogoutChatGptResponse.js +3 -0
- package/dist/generated/codex-app-server/McpAuthStatus.js +3 -0
- package/dist/generated/codex-app-server/McpInvocation.js +3 -0
- package/dist/generated/codex-app-server/McpListToolsResponseEvent.js +3 -0
- package/dist/generated/codex-app-server/McpStartupCompleteEvent.js +3 -0
- package/dist/generated/codex-app-server/McpStartupFailure.js +3 -0
- package/dist/generated/codex-app-server/McpStartupStatus.js +3 -0
- package/dist/generated/codex-app-server/McpStartupUpdateEvent.js +3 -0
- package/dist/generated/codex-app-server/McpToolCallBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/McpToolCallEndEvent.js +3 -0
- package/dist/generated/codex-app-server/MessagePhase.js +3 -0
- package/dist/generated/codex-app-server/ModeKind.js +3 -0
- package/dist/generated/codex-app-server/ModelRerouteEvent.js +3 -0
- package/dist/generated/codex-app-server/ModelRerouteReason.js +3 -0
- package/dist/generated/codex-app-server/NetworkAccess.js +3 -0
- package/dist/generated/codex-app-server/NetworkApprovalContext.js +3 -0
- package/dist/generated/codex-app-server/NetworkApprovalProtocol.js +3 -0
- package/dist/generated/codex-app-server/NewConversationParams.js +3 -0
- package/dist/generated/codex-app-server/NewConversationResponse.js +3 -0
- package/dist/generated/codex-app-server/ParsedCommand.js +3 -0
- package/dist/generated/codex-app-server/PatchApplyBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/PatchApplyEndEvent.js +3 -0
- package/dist/generated/codex-app-server/PatchApplyStatus.js +3 -0
- package/dist/generated/codex-app-server/Personality.js +3 -0
- package/dist/generated/codex-app-server/PlanDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/PlanItem.js +3 -0
- package/dist/generated/codex-app-server/PlanItemArg.js +3 -0
- package/dist/generated/codex-app-server/PlanType.js +3 -0
- package/dist/generated/codex-app-server/Profile.js +3 -0
- package/dist/generated/codex-app-server/RateLimitSnapshot.js +3 -0
- package/dist/generated/codex-app-server/RateLimitWindow.js +3 -0
- package/dist/generated/codex-app-server/RawResponseItemEvent.js +3 -0
- package/dist/generated/codex-app-server/ReadOnlyAccess.js +3 -0
- package/dist/generated/codex-app-server/ReasoningContentDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/ReasoningEffort.js +3 -0
- package/dist/generated/codex-app-server/ReasoningItem.js +3 -0
- package/dist/generated/codex-app-server/ReasoningItemContent.js +3 -0
- package/dist/generated/codex-app-server/ReasoningItemReasoningSummary.js +3 -0
- package/dist/generated/codex-app-server/ReasoningRawContentDeltaEvent.js +3 -0
- package/dist/generated/codex-app-server/ReasoningSummary.js +3 -0
- package/dist/generated/codex-app-server/RemoteSkillDownloadedEvent.js +3 -0
- package/dist/generated/codex-app-server/RemoteSkillSummary.js +3 -0
- package/dist/generated/codex-app-server/RemoveConversationListenerParams.js +3 -0
- package/dist/generated/codex-app-server/RemoveConversationSubscriptionResponse.js +3 -0
- package/dist/generated/codex-app-server/RequestId.js +3 -0
- package/dist/generated/codex-app-server/RequestUserInputEvent.js +3 -0
- package/dist/generated/codex-app-server/RequestUserInputQuestion.js +3 -0
- package/dist/generated/codex-app-server/RequestUserInputQuestionOption.js +3 -0
- package/dist/generated/codex-app-server/Resource.js +3 -0
- package/dist/generated/codex-app-server/ResourceTemplate.js +3 -0
- package/dist/generated/codex-app-server/ResponseItem.js +3 -0
- package/dist/generated/codex-app-server/ResumeConversationParams.js +3 -0
- package/dist/generated/codex-app-server/ResumeConversationResponse.js +3 -0
- package/dist/generated/codex-app-server/ReviewCodeLocation.js +3 -0
- package/dist/generated/codex-app-server/ReviewDecision.js +3 -0
- package/dist/generated/codex-app-server/ReviewFinding.js +3 -0
- package/dist/generated/codex-app-server/ReviewLineRange.js +3 -0
- package/dist/generated/codex-app-server/ReviewOutputEvent.js +3 -0
- package/dist/generated/codex-app-server/ReviewRequest.js +3 -0
- package/dist/generated/codex-app-server/ReviewTarget.js +3 -0
- package/dist/generated/codex-app-server/SandboxMode.js +3 -0
- package/dist/generated/codex-app-server/SandboxPolicy.js +3 -0
- package/dist/generated/codex-app-server/SandboxSettings.js +3 -0
- package/dist/generated/codex-app-server/SendUserMessageParams.js +3 -0
- package/dist/generated/codex-app-server/SendUserMessageResponse.js +3 -0
- package/dist/generated/codex-app-server/SendUserTurnParams.js +3 -0
- package/dist/generated/codex-app-server/SendUserTurnResponse.js +3 -0
- package/dist/generated/codex-app-server/ServerNotification.js +3 -0
- package/dist/generated/codex-app-server/ServerRequest.js +3 -0
- package/dist/generated/codex-app-server/SessionConfiguredEvent.js +3 -0
- package/dist/generated/codex-app-server/SessionConfiguredNotification.js +3 -0
- package/dist/generated/codex-app-server/SessionNetworkProxyRuntime.js +3 -0
- package/dist/generated/codex-app-server/SessionSource.js +3 -0
- package/dist/generated/codex-app-server/SetDefaultModelParams.js +3 -0
- package/dist/generated/codex-app-server/SetDefaultModelResponse.js +3 -0
- package/dist/generated/codex-app-server/Settings.js +3 -0
- package/dist/generated/codex-app-server/SkillDependencies.js +3 -0
- package/dist/generated/codex-app-server/SkillErrorInfo.js +3 -0
- package/dist/generated/codex-app-server/SkillInterface.js +3 -0
- package/dist/generated/codex-app-server/SkillMetadata.js +3 -0
- package/dist/generated/codex-app-server/SkillScope.js +3 -0
- package/dist/generated/codex-app-server/SkillToolDependency.js +3 -0
- package/dist/generated/codex-app-server/SkillsListEntry.js +3 -0
- package/dist/generated/codex-app-server/StepStatus.js +3 -0
- package/dist/generated/codex-app-server/StreamErrorEvent.js +3 -0
- package/dist/generated/codex-app-server/SubAgentSource.js +3 -0
- package/dist/generated/codex-app-server/TerminalInteractionEvent.js +3 -0
- package/dist/generated/codex-app-server/TextElement.js +3 -0
- package/dist/generated/codex-app-server/ThreadId.js +3 -0
- package/dist/generated/codex-app-server/ThreadNameUpdatedEvent.js +3 -0
- package/dist/generated/codex-app-server/ThreadRolledBackEvent.js +3 -0
- package/dist/generated/codex-app-server/TokenCountEvent.js +3 -0
- package/dist/generated/codex-app-server/TokenUsage.js +3 -0
- package/dist/generated/codex-app-server/TokenUsageInfo.js +3 -0
- package/dist/generated/codex-app-server/Tool.js +3 -0
- package/dist/generated/codex-app-server/Tools.js +3 -0
- package/dist/generated/codex-app-server/TurnAbortReason.js +3 -0
- package/dist/generated/codex-app-server/TurnAbortedEvent.js +3 -0
- package/dist/generated/codex-app-server/TurnCompleteEvent.js +3 -0
- package/dist/generated/codex-app-server/TurnDiffEvent.js +3 -0
- package/dist/generated/codex-app-server/TurnItem.js +3 -0
- package/dist/generated/codex-app-server/TurnStartedEvent.js +3 -0
- package/dist/generated/codex-app-server/UndoCompletedEvent.js +3 -0
- package/dist/generated/codex-app-server/UndoStartedEvent.js +3 -0
- package/dist/generated/codex-app-server/UpdatePlanArgs.js +3 -0
- package/dist/generated/codex-app-server/UserInfoResponse.js +3 -0
- package/dist/generated/codex-app-server/UserInput.js +3 -0
- package/dist/generated/codex-app-server/UserMessageEvent.js +3 -0
- package/dist/generated/codex-app-server/UserMessageItem.js +3 -0
- package/dist/generated/codex-app-server/UserSavedConfig.js +3 -0
- package/dist/generated/codex-app-server/Verbosity.js +3 -0
- package/dist/generated/codex-app-server/ViewImageToolCallEvent.js +3 -0
- package/dist/generated/codex-app-server/WarningEvent.js +3 -0
- package/dist/generated/codex-app-server/WebSearchAction.js +3 -0
- package/dist/generated/codex-app-server/WebSearchBeginEvent.js +3 -0
- package/dist/generated/codex-app-server/WebSearchEndEvent.js +3 -0
- package/dist/generated/codex-app-server/WebSearchItem.js +3 -0
- package/dist/generated/codex-app-server/WebSearchMode.js +3 -0
- package/dist/generated/codex-app-server/index.js +38 -0
- package/dist/generated/codex-app-server/serde_json/JsonValue.js +3 -0
- package/dist/generated/codex-app-server/v2/Account.js +3 -0
- package/dist/generated/codex-app-server/v2/AccountLoginCompletedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/AccountRateLimitsUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/AccountUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/AgentMessageDeltaNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/AnalyticsConfig.js +3 -0
- package/dist/generated/codex-app-server/v2/AppBranding.js +3 -0
- package/dist/generated/codex-app-server/v2/AppDisabledReason.js +3 -0
- package/dist/generated/codex-app-server/v2/AppInfo.js +3 -0
- package/dist/generated/codex-app-server/v2/AppListUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/AppMetadata.js +3 -0
- package/dist/generated/codex-app-server/v2/AppReview.js +3 -0
- package/dist/generated/codex-app-server/v2/AppScreenshot.js +3 -0
- package/dist/generated/codex-app-server/v2/AppsConfig.js +3 -0
- package/dist/generated/codex-app-server/v2/AppsListParams.js +3 -0
- package/dist/generated/codex-app-server/v2/AppsListResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/AskForApproval.js +3 -0
- package/dist/generated/codex-app-server/v2/ByteRange.js +3 -0
- package/dist/generated/codex-app-server/v2/CancelLoginAccountParams.js +3 -0
- package/dist/generated/codex-app-server/v2/CancelLoginAccountResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/CancelLoginAccountStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/ChatgptAuthTokensRefreshParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ChatgptAuthTokensRefreshReason.js +3 -0
- package/dist/generated/codex-app-server/v2/ChatgptAuthTokensRefreshResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/CodexErrorInfo.js +3 -0
- package/dist/generated/codex-app-server/v2/CollabAgentState.js +3 -0
- package/dist/generated/codex-app-server/v2/CollabAgentStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/CollabAgentTool.js +3 -0
- package/dist/generated/codex-app-server/v2/CollabAgentToolCallStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandAction.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecParams.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecutionApprovalDecision.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecutionOutputDeltaNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecutionRequestApprovalParams.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecutionRequestApprovalResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/CommandExecutionStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/Config.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigBatchWriteParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigEdit.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigLayer.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigLayerMetadata.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigLayerSource.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigReadParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigReadResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigRequirements.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigRequirementsReadResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigValueWriteParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigWarningNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ConfigWriteResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ContextCompactedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/CreditsSnapshot.js +3 -0
- package/dist/generated/codex-app-server/v2/DeprecationNoticeNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/DynamicToolCallOutputContentItem.js +3 -0
- package/dist/generated/codex-app-server/v2/DynamicToolCallParams.js +3 -0
- package/dist/generated/codex-app-server/v2/DynamicToolCallResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/DynamicToolSpec.js +3 -0
- package/dist/generated/codex-app-server/v2/ErrorNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ExecPolicyAmendment.js +3 -0
- package/dist/generated/codex-app-server/v2/ExperimentalFeature.js +3 -0
- package/dist/generated/codex-app-server/v2/ExperimentalFeatureListParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ExperimentalFeatureListResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ExperimentalFeatureStage.js +3 -0
- package/dist/generated/codex-app-server/v2/FeedbackUploadParams.js +3 -0
- package/dist/generated/codex-app-server/v2/FeedbackUploadResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/FileChangeApprovalDecision.js +3 -0
- package/dist/generated/codex-app-server/v2/FileChangeOutputDeltaNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/FileChangeRequestApprovalParams.js +3 -0
- package/dist/generated/codex-app-server/v2/FileChangeRequestApprovalResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/FileUpdateChange.js +3 -0
- package/dist/generated/codex-app-server/v2/GetAccountParams.js +3 -0
- package/dist/generated/codex-app-server/v2/GetAccountRateLimitsResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/GetAccountResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/GitInfo.js +3 -0
- package/dist/generated/codex-app-server/v2/HazelnutScope.js +3 -0
- package/dist/generated/codex-app-server/v2/ItemCompletedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ItemStartedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ListMcpServerStatusParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ListMcpServerStatusResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/LoginAccountParams.js +3 -0
- package/dist/generated/codex-app-server/v2/LoginAccountResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/LogoutAccountResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/McpAuthStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/McpServerOauthLoginCompletedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/McpServerOauthLoginParams.js +3 -0
- package/dist/generated/codex-app-server/v2/McpServerOauthLoginResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/McpServerRefreshResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/McpServerStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/McpToolCallError.js +3 -0
- package/dist/generated/codex-app-server/v2/McpToolCallProgressNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/McpToolCallResult.js +3 -0
- package/dist/generated/codex-app-server/v2/McpToolCallStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/MergeStrategy.js +3 -0
- package/dist/generated/codex-app-server/v2/Model.js +3 -0
- package/dist/generated/codex-app-server/v2/ModelListParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ModelListResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ModelRerouteReason.js +3 -0
- package/dist/generated/codex-app-server/v2/ModelReroutedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/NetworkAccess.js +3 -0
- package/dist/generated/codex-app-server/v2/NetworkRequirements.js +3 -0
- package/dist/generated/codex-app-server/v2/OverriddenMetadata.js +3 -0
- package/dist/generated/codex-app-server/v2/PatchApplyStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/PatchChangeKind.js +3 -0
- package/dist/generated/codex-app-server/v2/PlanDeltaNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ProductSurface.js +3 -0
- package/dist/generated/codex-app-server/v2/ProfileV2.js +3 -0
- package/dist/generated/codex-app-server/v2/RateLimitSnapshot.js +3 -0
- package/dist/generated/codex-app-server/v2/RateLimitWindow.js +3 -0
- package/dist/generated/codex-app-server/v2/RawResponseItemCompletedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ReadOnlyAccess.js +3 -0
- package/dist/generated/codex-app-server/v2/ReasoningEffortOption.js +3 -0
- package/dist/generated/codex-app-server/v2/ReasoningSummaryPartAddedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ReasoningSummaryTextDeltaNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ReasoningTextDeltaNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/RemoteSkillSummary.js +3 -0
- package/dist/generated/codex-app-server/v2/ResidencyRequirement.js +3 -0
- package/dist/generated/codex-app-server/v2/ReviewDelivery.js +3 -0
- package/dist/generated/codex-app-server/v2/ReviewStartParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ReviewStartResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ReviewTarget.js +3 -0
- package/dist/generated/codex-app-server/v2/SandboxMode.js +3 -0
- package/dist/generated/codex-app-server/v2/SandboxPolicy.js +3 -0
- package/dist/generated/codex-app-server/v2/SandboxWorkspaceWrite.js +3 -0
- package/dist/generated/codex-app-server/v2/SessionSource.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillDependencies.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillErrorInfo.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillInterface.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillMetadata.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillScope.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillToolDependency.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsConfigWriteParams.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsConfigWriteResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsListEntry.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsListExtraRootsForCwd.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsListParams.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsListResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsRemoteReadParams.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsRemoteReadResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsRemoteWriteParams.js +3 -0
- package/dist/generated/codex-app-server/v2/SkillsRemoteWriteResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/TerminalInteractionNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/TextElement.js +3 -0
- package/dist/generated/codex-app-server/v2/TextPosition.js +3 -0
- package/dist/generated/codex-app-server/v2/TextRange.js +3 -0
- package/dist/generated/codex-app-server/v2/Thread.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadArchiveParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadArchiveResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadArchivedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadCompactStartParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadCompactStartResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadForkParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadForkResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadItem.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadListParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadListResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadLoadedListParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadLoadedListResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadNameUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadReadParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadReadResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadResumeParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadResumeResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadRollbackParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadRollbackResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadSetNameParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadSetNameResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadSortKey.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadSourceKind.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadStartParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadStartResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadStartedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadTokenUsage.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadTokenUsageUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadUnarchiveParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadUnarchiveResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ThreadUnarchivedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/TokenUsageBreakdown.js +3 -0
- package/dist/generated/codex-app-server/v2/ToolRequestUserInputAnswer.js +3 -0
- package/dist/generated/codex-app-server/v2/ToolRequestUserInputOption.js +3 -0
- package/dist/generated/codex-app-server/v2/ToolRequestUserInputParams.js +3 -0
- package/dist/generated/codex-app-server/v2/ToolRequestUserInputQuestion.js +3 -0
- package/dist/generated/codex-app-server/v2/ToolRequestUserInputResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/ToolsV2.js +3 -0
- package/dist/generated/codex-app-server/v2/Turn.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnCompletedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnDiffUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnError.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnInterruptParams.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnInterruptResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnPlanStep.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnPlanStepStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnPlanUpdatedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnStartParams.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnStartResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnStartedNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnSteerParams.js +3 -0
- package/dist/generated/codex-app-server/v2/TurnSteerResponse.js +3 -0
- package/dist/generated/codex-app-server/v2/UserInput.js +3 -0
- package/dist/generated/codex-app-server/v2/WebSearchAction.js +3 -0
- package/dist/generated/codex-app-server/v2/WindowsWorldWritableWarningNotification.js +3 -0
- package/dist/generated/codex-app-server/v2/WriteStatus.js +3 -0
- package/dist/generated/codex-app-server/v2/index.js +3 -0
- package/dist/service/app_server.js +441 -0
- package/dist/service/buffered_client_message_sender.js +89 -0
- package/dist/service/companyhelm_api_client.js +337 -0
- package/dist/service/docker/app_server_container.js +319 -0
- package/dist/service/docker/dind.js +114 -0
- package/dist/service/docker/runtime_app_server_exec.js +97 -0
- package/dist/service/host.js +15 -0
- package/dist/service/runtime_bashrc.js +57 -0
- package/dist/service/runtime_shell.js +23 -0
- package/dist/service/sdk/refresh_models.js +91 -0
- package/dist/service/thread_lifecycle.js +693 -0
- package/dist/service/thread_runtime.js +15 -0
- package/dist/service/thread_turn_state.js +46 -0
- package/dist/service/thread_user_message_request_store.js +136 -0
- package/dist/service/workspace_agents.js +82 -0
- package/dist/state/daemon_state.js +83 -0
- package/dist/state/db.js +63 -0
- package/dist/state/schema.js +59 -0
- package/dist/templates/app_server_bootstrap.sh.j2 +52 -0
- package/dist/templates/runtime_agents.md.j2 +50 -0
- package/dist/templates/runtime_bashrc.j2 +19 -0
- package/dist/utils/async_queue.js +102 -0
- package/dist/utils/daemon.js +15 -0
- package/dist/utils/logger.js +96 -0
- package/dist/utils/path.js +10 -0
- package/dist/utils/process.js +83 -0
- package/dist/utils/terminal.js +34 -0
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addRunnerStartOptions = addRunnerStartOptions;
|
|
4
|
+
const global_options_js_1 = require("../global-options.js");
|
|
5
|
+
function addRunnerStartOptions(command) {
|
|
6
|
+
return command
|
|
7
|
+
.option("--config-path <path>", global_options_js_1.CONFIG_PATH_OPTION_DESCRIPTION)
|
|
8
|
+
.option("--server-url <url>", "CompanyHelm gRPC API URL override.")
|
|
9
|
+
.option("--agent-api-url <url>", "Agent gRPC API URL for companyhelm-agent in runtime containers (localhost is rewritten to http://host.docker.internal).")
|
|
10
|
+
.option("--secret <secret>", "Bearer secret used as gRPC Authorization header.")
|
|
11
|
+
.option("--state-db-path <path>", "State database path override (defaults to state.db under the active config directory).")
|
|
12
|
+
.option("--log-path <path>", "Daemon log file override.")
|
|
13
|
+
.option("--use-host-docker-runtime", "Mount host Docker socket into runtime containers instead of creating DinD sidecars.")
|
|
14
|
+
.option("--host-docker-path <path>", "Host Docker endpoint when --use-host-docker-runtime is enabled (unix:///<socket-path> or tcp://localhost:<port>).")
|
|
15
|
+
.option("--thread-git-skills-directory <path>", "Container path where thread git skill repositories are cloned before linking into ~/.codex/skills.")
|
|
16
|
+
.option("-d, --daemon", "Run in daemon mode and fail fast when no SDK is configured.")
|
|
17
|
+
.option("--log-level <level>", "Log level (DEBUG, INFO, WARN, ERROR).", "INFO");
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerRunnerCommands = registerRunnerCommands;
|
|
4
|
+
const start_js_1 = require("./start.js");
|
|
5
|
+
const stop_js_1 = require("./stop.js");
|
|
6
|
+
function registerRunnerCommands(program) {
|
|
7
|
+
const runnerCommand = program
|
|
8
|
+
.command("runner")
|
|
9
|
+
.description("Manage the local CompanyHelm runner daemon.");
|
|
10
|
+
(0, start_js_1.registerRunnerStartCommand)(runnerCommand);
|
|
11
|
+
(0, stop_js_1.registerRunnerStopCommand)(runnerCommand);
|
|
12
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerRunnerStartCommand = registerRunnerStartCommand;
|
|
4
|
+
const root_js_1 = require("../root.js");
|
|
5
|
+
const common_js_1 = require("./common.js");
|
|
6
|
+
function registerRunnerStartCommand(runnerCommand) {
|
|
7
|
+
(0, common_js_1.addRunnerStartOptions)(runnerCommand
|
|
8
|
+
.command("start")
|
|
9
|
+
.description("Start the local CompanyHelm runner daemon.")).action(async (options) => {
|
|
10
|
+
if (options.daemon && !(0, root_js_1.isInternalDaemonChildProcess)()) {
|
|
11
|
+
await (0, root_js_1.runDetachedDaemonProcess)(options);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
await (0, root_js_1.runRootCommand)(options, (0, root_js_1.isInternalDaemonChildProcess)()
|
|
16
|
+
? {
|
|
17
|
+
onDaemonReady: () => {
|
|
18
|
+
(0, root_js_1.sendDaemonParentMessage)({ type: "daemon-ready" });
|
|
19
|
+
},
|
|
20
|
+
}
|
|
21
|
+
: undefined);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if ((0, root_js_1.isInternalDaemonChildProcess)()) {
|
|
25
|
+
(0, root_js_1.sendDaemonParentMessage)({ type: "daemon-error", message: (0, root_js_1.toErrorMessage)(error) });
|
|
26
|
+
}
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runRunnerStopCommand = runRunnerStopCommand;
|
|
4
|
+
exports.registerRunnerStopCommand = registerRunnerStopCommand;
|
|
5
|
+
const config_js_1 = require("../../config.js");
|
|
6
|
+
const daemon_state_js_1 = require("../../state/daemon_state.js");
|
|
7
|
+
const process_js_1 = require("../../utils/process.js");
|
|
8
|
+
const root_js_1 = require("../root.js");
|
|
9
|
+
const RUNNER_STOP_TIMEOUT_MS = 15000;
|
|
10
|
+
async function waitForProcessExit(pid, timeoutMs) {
|
|
11
|
+
const deadline = Date.now() + timeoutMs;
|
|
12
|
+
while (Date.now() < deadline) {
|
|
13
|
+
if (!(0, process_js_1.isProcessRunning)(pid)) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
17
|
+
}
|
|
18
|
+
return !(0, process_js_1.isProcessRunning)(pid);
|
|
19
|
+
}
|
|
20
|
+
async function runRunnerStopCommand(options) {
|
|
21
|
+
const cfg = config_js_1.config.parse({
|
|
22
|
+
state_db_path: options.stateDbPath,
|
|
23
|
+
});
|
|
24
|
+
const state = await (0, daemon_state_js_1.readCurrentDaemonState)(cfg.state_db_path);
|
|
25
|
+
if (!state?.pid) {
|
|
26
|
+
console.log("CompanyHelm runner is not running.");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (!(0, process_js_1.isProcessRunning)(state.pid)) {
|
|
30
|
+
await (0, daemon_state_js_1.clearCurrentDaemonState)(cfg.state_db_path, state.pid);
|
|
31
|
+
console.log(`CompanyHelm runner was not running. Cleared stale pid ${state.pid}.`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
process.kill(state.pid, "SIGTERM");
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw new Error(`Failed to stop CompanyHelm runner pid ${state.pid}: ${(0, root_js_1.toErrorMessage)(error)}`);
|
|
39
|
+
}
|
|
40
|
+
const stopped = await waitForProcessExit(state.pid, RUNNER_STOP_TIMEOUT_MS);
|
|
41
|
+
if (!stopped) {
|
|
42
|
+
throw new Error(`Timed out waiting for CompanyHelm runner pid ${state.pid} to stop.`);
|
|
43
|
+
}
|
|
44
|
+
await (0, daemon_state_js_1.clearCurrentDaemonState)(cfg.state_db_path, state.pid);
|
|
45
|
+
console.log(`CompanyHelm runner stopped (pid ${state.pid}).`);
|
|
46
|
+
}
|
|
47
|
+
function registerRunnerStopCommand(runnerCommand) {
|
|
48
|
+
runnerCommand
|
|
49
|
+
.command("stop")
|
|
50
|
+
.description("Stop the local CompanyHelm runner daemon.")
|
|
51
|
+
.option("--state-db-path <path>", "State database path override (defaults to state.db under the active config directory).")
|
|
52
|
+
.action(async (options) => {
|
|
53
|
+
await runRunnerStopCommand(options);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultUseDedicatedCodexAuthDependencies = exports.defaultSetCodexHostAuthDependencies = void 0;
|
|
4
|
+
exports.isErrnoException = isErrnoException;
|
|
5
|
+
exports.buildDockerMissingError = buildDockerMissingError;
|
|
6
|
+
exports.ensureDockerAvailable = ensureDockerAvailable;
|
|
7
|
+
exports.listCodexStartupAuthOptions = listCodexStartupAuthOptions;
|
|
8
|
+
exports.setCodexHostAuthInDb = setCodexHostAuthInDb;
|
|
9
|
+
exports.setCodexDedicatedAuthInDb = setCodexDedicatedAuthInDb;
|
|
10
|
+
exports.runSetCodexHostAuth = runSetCodexHostAuth;
|
|
11
|
+
exports.runDedicatedCodexAuth = runDedicatedCodexAuth;
|
|
12
|
+
exports.runUseDedicatedCodexAuth = runUseDedicatedCodexAuth;
|
|
13
|
+
const node_child_process_1 = require("node:child_process");
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_path_1 = require("node:path");
|
|
16
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
17
|
+
const host_js_1 = require("../../../service/host.js");
|
|
18
|
+
const db_js_1 = require("../../../state/db.js");
|
|
19
|
+
const schema_js_1 = require("../../../state/schema.js");
|
|
20
|
+
const path_js_1 = require("../../../utils/path.js");
|
|
21
|
+
exports.defaultSetCodexHostAuthDependencies = {
|
|
22
|
+
getHostInfoFn: host_js_1.getHostInfo,
|
|
23
|
+
initDbFn: db_js_1.initDb,
|
|
24
|
+
};
|
|
25
|
+
exports.defaultUseDedicatedCodexAuthDependencies = {
|
|
26
|
+
initDbFn: db_js_1.initDb,
|
|
27
|
+
logInfo: console.log,
|
|
28
|
+
logSuccess: console.log,
|
|
29
|
+
spawnCommand: node_child_process_1.spawn,
|
|
30
|
+
spawnSyncCommand: node_child_process_1.spawnSync,
|
|
31
|
+
};
|
|
32
|
+
function isErrnoException(error) {
|
|
33
|
+
return error instanceof Error && "code" in error;
|
|
34
|
+
}
|
|
35
|
+
function buildDockerMissingError() {
|
|
36
|
+
return new Error("Docker is not installed or not available on PATH. Install Docker and retry.");
|
|
37
|
+
}
|
|
38
|
+
function ensureDockerAvailable(spawnSyncCommand) {
|
|
39
|
+
const result = spawnSyncCommand("docker", ["--version"], { stdio: "ignore" });
|
|
40
|
+
if (isErrnoException(result.error) && result.error.code === "ENOENT") {
|
|
41
|
+
throw buildDockerMissingError();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function listCodexStartupAuthOptions(cfg, getHostInfoFn = host_js_1.getHostInfo) {
|
|
45
|
+
const options = [
|
|
46
|
+
{
|
|
47
|
+
value: "dedicated",
|
|
48
|
+
label: "Dedicated",
|
|
49
|
+
hint: "recommended -- runs Codex login inside a container",
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
const hostInfo = getHostInfoFn(cfg.codex.codex_auth_path);
|
|
53
|
+
if (hostInfo.codexAuthExists) {
|
|
54
|
+
options.push({
|
|
55
|
+
value: "host",
|
|
56
|
+
label: "Host",
|
|
57
|
+
hint: `reuse existing credentials from ${cfg.codex.codex_auth_path}`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return options;
|
|
61
|
+
}
|
|
62
|
+
async function setCodexHostAuthInDb(db) {
|
|
63
|
+
const existingSdk = await db.select().from(schema_js_1.agentSdks).where((0, drizzle_orm_1.eq)(schema_js_1.agentSdks.name, "codex")).get();
|
|
64
|
+
if (existingSdk) {
|
|
65
|
+
await db
|
|
66
|
+
.update(schema_js_1.agentSdks)
|
|
67
|
+
.set({ authentication: "host" })
|
|
68
|
+
.where((0, drizzle_orm_1.eq)(schema_js_1.agentSdks.name, "codex"));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await db.insert(schema_js_1.agentSdks).values({ name: "codex", authentication: "host" });
|
|
72
|
+
}
|
|
73
|
+
async function setCodexDedicatedAuthInDb(db) {
|
|
74
|
+
const existingSdk = await db.select().from(schema_js_1.agentSdks).where((0, drizzle_orm_1.eq)(schema_js_1.agentSdks.name, "codex")).get();
|
|
75
|
+
if (existingSdk) {
|
|
76
|
+
await db
|
|
77
|
+
.update(schema_js_1.agentSdks)
|
|
78
|
+
.set({ authentication: "dedicated" })
|
|
79
|
+
.where((0, drizzle_orm_1.eq)(schema_js_1.agentSdks.name, "codex"));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
await db.insert(schema_js_1.agentSdks).values({ name: "codex", authentication: "dedicated" });
|
|
83
|
+
}
|
|
84
|
+
async function runSetCodexHostAuth(cfg, overrides = {}) {
|
|
85
|
+
const deps = { ...exports.defaultSetCodexHostAuthDependencies, ...overrides };
|
|
86
|
+
const authPath = (0, path_js_1.expandHome)(cfg.codex.codex_auth_path);
|
|
87
|
+
const hostInfo = deps.getHostInfoFn(cfg.codex.codex_auth_path);
|
|
88
|
+
if (!hostInfo.codexAuthExists) {
|
|
89
|
+
throw new Error(`Codex host auth file not found at ${authPath}.`);
|
|
90
|
+
}
|
|
91
|
+
const { db, client } = await deps.initDbFn(cfg.state_db_path);
|
|
92
|
+
try {
|
|
93
|
+
await setCodexHostAuthInDb(db);
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
client.close();
|
|
97
|
+
}
|
|
98
|
+
return authPath;
|
|
99
|
+
}
|
|
100
|
+
async function runDedicatedCodexAuth(cfg, db, deps) {
|
|
101
|
+
ensureDockerAvailable(deps.spawnSyncCommand);
|
|
102
|
+
const port = cfg.codex.codex_auth_port;
|
|
103
|
+
const socatPort = port + 1;
|
|
104
|
+
const containerName = `companyhelm-codex-auth-${Date.now()}`;
|
|
105
|
+
deps.logInfo("Starting Codex login inside a container...");
|
|
106
|
+
deps.logInfo("A browser URL will appear -- open it to complete authentication.");
|
|
107
|
+
const configDir = (0, path_js_1.expandHome)(cfg.config_directory);
|
|
108
|
+
if (!(0, node_fs_1.existsSync)(configDir)) {
|
|
109
|
+
(0, node_fs_1.mkdirSync)(configDir, { recursive: true });
|
|
110
|
+
}
|
|
111
|
+
const destPath = (0, node_path_1.join)(configDir, cfg.codex.codex_auth_file_path);
|
|
112
|
+
let authCopied = false;
|
|
113
|
+
await new Promise((resolve, reject) => {
|
|
114
|
+
let settled = false;
|
|
115
|
+
let poll;
|
|
116
|
+
const rejectOnce = (error) => {
|
|
117
|
+
if (settled) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
settled = true;
|
|
121
|
+
if (poll) {
|
|
122
|
+
clearInterval(poll);
|
|
123
|
+
}
|
|
124
|
+
deps.spawnSyncCommand("docker", ["rm", "-f", containerName], { stdio: "ignore" });
|
|
125
|
+
reject(error);
|
|
126
|
+
};
|
|
127
|
+
const resolveOnce = () => {
|
|
128
|
+
if (settled) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
settled = true;
|
|
132
|
+
if (poll) {
|
|
133
|
+
clearInterval(poll);
|
|
134
|
+
}
|
|
135
|
+
resolve();
|
|
136
|
+
};
|
|
137
|
+
const child = deps.spawnCommand("docker", [
|
|
138
|
+
"run",
|
|
139
|
+
"-it",
|
|
140
|
+
"--name",
|
|
141
|
+
containerName,
|
|
142
|
+
"-p",
|
|
143
|
+
`${port}:${socatPort}`,
|
|
144
|
+
"--entrypoint",
|
|
145
|
+
"bash",
|
|
146
|
+
cfg.runtime_image,
|
|
147
|
+
"-c",
|
|
148
|
+
`source "$NVM_DIR/nvm.sh"; socat TCP-LISTEN:${socatPort},fork,bind=0.0.0.0,reuseaddr TCP:127.0.0.1:${port} 2>/dev/null & codex`,
|
|
149
|
+
], { stdio: "inherit" });
|
|
150
|
+
child.on("error", (error) => {
|
|
151
|
+
if (isErrnoException(error) && error.code === "ENOENT") {
|
|
152
|
+
rejectOnce(buildDockerMissingError());
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
rejectOnce(new Error(`Failed to start Codex login container: ${error.message}`));
|
|
156
|
+
});
|
|
157
|
+
poll = setInterval(() => {
|
|
158
|
+
if (settled) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const check = deps.spawnSyncCommand("docker", ["exec", containerName, "sh", "-c", `test -f ${cfg.codex.codex_auth_path}`], {
|
|
162
|
+
stdio: "ignore",
|
|
163
|
+
});
|
|
164
|
+
if (check.status === 0) {
|
|
165
|
+
const resolveResult = deps.spawnSyncCommand("docker", ["exec", containerName, "sh", "-c", `echo ${cfg.codex.codex_auth_path}`], {
|
|
166
|
+
encoding: "utf-8",
|
|
167
|
+
});
|
|
168
|
+
const containerAuthAbsPath = resolveResult.stdout.trim();
|
|
169
|
+
const cpResult = deps.spawnSyncCommand("docker", ["cp", `${containerName}:${containerAuthAbsPath}`, destPath], {
|
|
170
|
+
stdio: "ignore",
|
|
171
|
+
});
|
|
172
|
+
if (cpResult.status !== 0) {
|
|
173
|
+
rejectOnce(new Error("Failed to extract auth file from container."));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
authCopied = true;
|
|
177
|
+
deps.spawnSyncCommand("docker", ["rm", "-f", containerName], { stdio: "ignore" });
|
|
178
|
+
resolveOnce();
|
|
179
|
+
}
|
|
180
|
+
}, 1000);
|
|
181
|
+
child.on("exit", () => {
|
|
182
|
+
if (!authCopied) {
|
|
183
|
+
rejectOnce(new Error("Codex login failed or was cancelled."));
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
await setCodexDedicatedAuthInDb(db);
|
|
188
|
+
deps.logSuccess(`Codex auth saved to ${destPath}`);
|
|
189
|
+
return destPath;
|
|
190
|
+
}
|
|
191
|
+
async function runUseDedicatedCodexAuth(cfg, overrides = {}) {
|
|
192
|
+
const deps = { ...exports.defaultUseDedicatedCodexAuthDependencies, ...overrides };
|
|
193
|
+
const { db, client } = await deps.initDbFn(cfg.state_db_path);
|
|
194
|
+
try {
|
|
195
|
+
return await runDedicatedCodexAuth(cfg, db, deps);
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
client.close();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerCodexSdkCommands = registerCodexSdkCommands;
|
|
4
|
+
const use_dedicated_auth_js_1 = require("./use-dedicated-auth.js");
|
|
5
|
+
const use_host_auth_js_1 = require("./use-host-auth.js");
|
|
6
|
+
function registerCodexSdkCommands(sdkCommand) {
|
|
7
|
+
const codexCommand = sdkCommand
|
|
8
|
+
.command("codex")
|
|
9
|
+
.description("Manage Codex SDK authentication.");
|
|
10
|
+
(0, use_host_auth_js_1.registerSdkCodexUseHostAuthCommand)(codexCommand);
|
|
11
|
+
(0, use_dedicated_auth_js_1.registerSdkCodexUseDedicatedAuthCommand)(codexCommand);
|
|
12
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runSdkCodexUseDedicatedAuthCommand = runSdkCodexUseDedicatedAuthCommand;
|
|
4
|
+
exports.registerSdkCodexUseDedicatedAuthCommand = registerSdkCodexUseDedicatedAuthCommand;
|
|
5
|
+
const config_js_1 = require("../../../config.js");
|
|
6
|
+
const auth_js_1 = require("./auth.js");
|
|
7
|
+
async function runSdkCodexUseDedicatedAuthCommand(cfg = config_js_1.config.parse({}), overrides = {}) {
|
|
8
|
+
const deps = { ...auth_js_1.defaultUseDedicatedCodexAuthDependencies, ...overrides };
|
|
9
|
+
await (0, auth_js_1.runUseDedicatedCodexAuth)(cfg, deps);
|
|
10
|
+
}
|
|
11
|
+
function registerSdkCodexUseDedicatedAuthCommand(codexCommand) {
|
|
12
|
+
codexCommand
|
|
13
|
+
.command("use-dedicated-auth")
|
|
14
|
+
.description("Configure the Codex SDK to use dedicated authentication.")
|
|
15
|
+
.action(async () => {
|
|
16
|
+
await runSdkCodexUseDedicatedAuthCommand();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runSdkCodexUseHostAuthCommand = runSdkCodexUseHostAuthCommand;
|
|
4
|
+
exports.registerSdkCodexUseHostAuthCommand = registerSdkCodexUseHostAuthCommand;
|
|
5
|
+
const config_js_1 = require("../../../config.js");
|
|
6
|
+
const auth_js_1 = require("./auth.js");
|
|
7
|
+
async function runSdkCodexUseHostAuthCommand(cfg = config_js_1.config.parse({}), overrides = {}) {
|
|
8
|
+
const deps = { ...auth_js_1.defaultSetCodexHostAuthDependencies, ...overrides };
|
|
9
|
+
const authPath = await (0, auth_js_1.runSetCodexHostAuth)(cfg, deps);
|
|
10
|
+
console.log(`Codex SDK configured with host authentication using ${authPath}.`);
|
|
11
|
+
}
|
|
12
|
+
function registerSdkCodexUseHostAuthCommand(codexCommand) {
|
|
13
|
+
codexCommand
|
|
14
|
+
.command("use-host-auth")
|
|
15
|
+
.description("Configure the Codex SDK to use host authentication.")
|
|
16
|
+
.action(async () => {
|
|
17
|
+
await runSdkCodexUseHostAuthCommand();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runSdkListCommand = runSdkListCommand;
|
|
4
|
+
exports.registerSdkListCommand = registerSdkListCommand;
|
|
5
|
+
const config_js_1 = require("../../config.js");
|
|
6
|
+
const db_js_1 = require("../../state/db.js");
|
|
7
|
+
const schema_js_1 = require("../../state/schema.js");
|
|
8
|
+
function normalizeReasoningLevels(value) {
|
|
9
|
+
if (Array.isArray(value)) {
|
|
10
|
+
return value.filter((item) => typeof item === "string");
|
|
11
|
+
}
|
|
12
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(value);
|
|
15
|
+
if (Array.isArray(parsed)) {
|
|
16
|
+
return parsed.filter((item) => typeof item === "string");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
function formatReasoningLevels(levels) {
|
|
26
|
+
return levels.length > 0 ? levels.join(", ") : "none";
|
|
27
|
+
}
|
|
28
|
+
async function runSdkListCommand() {
|
|
29
|
+
const cfg = config_js_1.config.parse({});
|
|
30
|
+
const { db, client } = await (0, db_js_1.initDb)(cfg.state_db_path);
|
|
31
|
+
try {
|
|
32
|
+
const sdks = await db.select().from(schema_js_1.agentSdks).orderBy(schema_js_1.agentSdks.name).all();
|
|
33
|
+
const models = await db.select().from(schema_js_1.llmModels).orderBy(schema_js_1.llmModels.sdkName, schema_js_1.llmModels.name).all();
|
|
34
|
+
if (sdks.length === 0) {
|
|
35
|
+
console.log("No SDKs configured.");
|
|
36
|
+
console.log("Run `companyhelm-runner` to configure an SDK.");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const modelsBySdk = new Map();
|
|
40
|
+
for (const model of models) {
|
|
41
|
+
const sdkModels = modelsBySdk.get(model.sdkName) ?? [];
|
|
42
|
+
sdkModels.push({
|
|
43
|
+
name: model.name,
|
|
44
|
+
reasoningLevels: normalizeReasoningLevels(model.reasoningLevels),
|
|
45
|
+
});
|
|
46
|
+
modelsBySdk.set(model.sdkName, sdkModels);
|
|
47
|
+
}
|
|
48
|
+
sdks.forEach((sdk, index) => {
|
|
49
|
+
console.log(`SDK: ${sdk.name}`);
|
|
50
|
+
console.log(` authentication: ${sdk.authentication}`);
|
|
51
|
+
const sdkModels = modelsBySdk.get(sdk.name) ?? [];
|
|
52
|
+
if (sdkModels.length === 0) {
|
|
53
|
+
console.log(" models: none");
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log(" models:");
|
|
57
|
+
for (const model of sdkModels) {
|
|
58
|
+
console.log(` - ${model.name}`);
|
|
59
|
+
console.log(` reasoning levels: ${formatReasoningLevels(model.reasoningLevels)}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (index < sdks.length - 1) {
|
|
63
|
+
console.log();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
client.close();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function registerSdkListCommand(sdkCommand) {
|
|
72
|
+
sdkCommand
|
|
73
|
+
.command("list")
|
|
74
|
+
.description("List configured SDKs with their available models and reasoning levels.")
|
|
75
|
+
.action(runSdkListCommand);
|
|
76
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runSdkRefreshModelsCommand = runSdkRefreshModelsCommand;
|
|
4
|
+
exports.registerSdkRefreshModelsCommand = registerSdkRefreshModelsCommand;
|
|
5
|
+
const refresh_models_js_1 = require("../../service/sdk/refresh_models.js");
|
|
6
|
+
async function runSdkRefreshModelsCommand(options) {
|
|
7
|
+
let results;
|
|
8
|
+
try {
|
|
9
|
+
results = await (0, refresh_models_js_1.refreshSdkModels)({ sdk: options.sdk });
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
const sdkName = options.sdk ?? "configured";
|
|
13
|
+
throw new Error((0, refresh_models_js_1.formatSdkModelRefreshFailure)(sdkName, error));
|
|
14
|
+
}
|
|
15
|
+
for (const result of results) {
|
|
16
|
+
console.log(`Refreshed ${result.modelCount} models for SDK '${result.sdk}'.`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function registerSdkRefreshModelsCommand(sdkCommand) {
|
|
20
|
+
sdkCommand
|
|
21
|
+
.command("refresh-models")
|
|
22
|
+
.description("Refresh model catalog from app-server and store it in the local database.")
|
|
23
|
+
.option("--sdk <name>", "Refresh only the specified SDK.")
|
|
24
|
+
.action(runSdkRefreshModelsCommand);
|
|
25
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerSdkCommands = registerSdkCommands;
|
|
4
|
+
const register_codex_sdk_commands_js_1 = require("./codex/register-codex-sdk-commands.js");
|
|
5
|
+
const list_js_1 = require("./list.js");
|
|
6
|
+
const refresh_models_js_1 = require("./refresh-models.js");
|
|
7
|
+
function registerSdkCommands(program) {
|
|
8
|
+
const sdkCommand = program
|
|
9
|
+
.command("sdk")
|
|
10
|
+
.description("Manage configured SDKs and their model capabilities.");
|
|
11
|
+
(0, list_js_1.registerSdkListCommand)(sdkCommand);
|
|
12
|
+
(0, refresh_models_js_1.registerSdkRefreshModelsCommand)(sdkCommand);
|
|
13
|
+
(0, register_codex_sdk_commands_js_1.registerCodexSdkCommands)(sdkCommand);
|
|
14
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getShellConfigurableDaemonOptions = getShellConfigurableDaemonOptions;
|
|
4
|
+
exports.buildShellDaemonOverrideArgs = buildShellDaemonOverrideArgs;
|
|
5
|
+
exports.runShellCommand = runShellCommand;
|
|
6
|
+
exports.registerShellCommand = registerShellCommand;
|
|
7
|
+
const config_js_1 = require("../config.js");
|
|
8
|
+
const db_js_1 = require("../state/db.js");
|
|
9
|
+
const schema_js_1 = require("../state/schema.js");
|
|
10
|
+
const common_js_1 = require("./runner/common.js");
|
|
11
|
+
const NON_OVERRIDABLE_DAEMON_OPTION_NAMES = new Set(["daemon", "serverUrl", "secret", "help"]);
|
|
12
|
+
function resolveDaemonOptionValue(option, values) {
|
|
13
|
+
const explicit = values[option.name];
|
|
14
|
+
if (explicit !== undefined) {
|
|
15
|
+
return explicit;
|
|
16
|
+
}
|
|
17
|
+
if (option.defaultValue !== undefined) {
|
|
18
|
+
return option.defaultValue;
|
|
19
|
+
}
|
|
20
|
+
if (!option.takesValue) {
|
|
21
|
+
return option.negate ? true : false;
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
function getShellConfigurableDaemonOptions(program) {
|
|
26
|
+
const runnerStartCommand = (0, common_js_1.addRunnerStartOptions)(program.createCommand("start"));
|
|
27
|
+
return runnerStartCommand.options
|
|
28
|
+
.filter((option) => {
|
|
29
|
+
if (!option.long || option.hidden) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return !NON_OVERRIDABLE_DAEMON_OPTION_NAMES.has(option.attributeName());
|
|
33
|
+
})
|
|
34
|
+
.map((option) => ({
|
|
35
|
+
name: option.attributeName(),
|
|
36
|
+
longFlag: option.long,
|
|
37
|
+
description: option.description || "",
|
|
38
|
+
takesValue: option.required || option.optional,
|
|
39
|
+
negate: option.negate,
|
|
40
|
+
defaultValue: option.defaultValue,
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
function buildShellDaemonOverrideArgs(options, values) {
|
|
44
|
+
const args = [];
|
|
45
|
+
for (const option of options) {
|
|
46
|
+
const value = resolveDaemonOptionValue(option, values);
|
|
47
|
+
if (option.takesValue) {
|
|
48
|
+
if (value !== undefined && value !== null && String(value).trim().length > 0) {
|
|
49
|
+
args.push(option.longFlag, String(value));
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const enabled = Boolean(value);
|
|
54
|
+
if (option.negate) {
|
|
55
|
+
if (!enabled) {
|
|
56
|
+
args.push(option.longFlag);
|
|
57
|
+
}
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (enabled) {
|
|
61
|
+
args.push(option.longFlag);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return args;
|
|
65
|
+
}
|
|
66
|
+
async function assertConfiguredSdks(cfg) {
|
|
67
|
+
const { db, client } = await (0, db_js_1.initDb)(cfg.state_db_path);
|
|
68
|
+
try {
|
|
69
|
+
const configuredSdks = await db.select().from(schema_js_1.agentSdks).all();
|
|
70
|
+
if (configuredSdks.length === 0) {
|
|
71
|
+
throw new Error("No SDKs configured. Daemon mode requires at least one configured SDK.");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
client.close();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function runShellCommand(_program) {
|
|
79
|
+
const cfg = config_js_1.config.parse({});
|
|
80
|
+
await assertConfiguredSdks(cfg);
|
|
81
|
+
throw new Error("Interactive shell is no longer supported. Use the daemon mode entrypoint.");
|
|
82
|
+
}
|
|
83
|
+
function registerShellCommand(program) {
|
|
84
|
+
program
|
|
85
|
+
.command("shell")
|
|
86
|
+
.description("Start an interactive protobuf shell against a local companyhelm-runner daemon process.")
|
|
87
|
+
.action(async () => {
|
|
88
|
+
await runShellCommand(program);
|
|
89
|
+
});
|
|
90
|
+
}
|