agentrix 0.0.1
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/README.md +235 -0
- package/bin/agentrix.js +5 -0
- package/dist/api/auth.d.ts +10 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +30 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/automation.d.ts +52 -0
- package/dist/api/automation.d.ts.map +1 -0
- package/dist/api/automation.js +181 -0
- package/dist/api/automation.js.map +1 -0
- package/dist/api/base-handler.d.ts +62 -0
- package/dist/api/base-handler.d.ts.map +1 -0
- package/dist/api/base-handler.js +55 -0
- package/dist/api/base-handler.js.map +1 -0
- package/dist/api/config.d.ts +5 -0
- package/dist/api/config.d.ts.map +1 -0
- package/dist/api/config.js +14 -0
- package/dist/api/config.js.map +1 -0
- package/dist/api/create-plan.d.ts +8 -0
- package/dist/api/create-plan.d.ts.map +1 -0
- package/dist/api/create-plan.js +77 -0
- package/dist/api/create-plan.js.map +1 -0
- package/dist/api/git-status.d.ts +6 -0
- package/dist/api/git-status.d.ts.map +1 -0
- package/dist/api/git-status.js +57 -0
- package/dist/api/git-status.js.map +1 -0
- package/dist/api/plans.d.ts +6 -0
- package/dist/api/plans.d.ts.map +1 -0
- package/dist/api/plans.js +75 -0
- package/dist/api/plans.js.map +1 -0
- package/dist/api/repo-dashboard.d.ts +13 -0
- package/dist/api/repo-dashboard.d.ts.map +1 -0
- package/dist/api/repo-dashboard.js +47 -0
- package/dist/api/repo-dashboard.js.map +1 -0
- package/dist/api/repo-issue.d.ts +12 -0
- package/dist/api/repo-issue.d.ts.map +1 -0
- package/dist/api/repo-issue.js +47 -0
- package/dist/api/repo-issue.js.map +1 -0
- package/dist/api/repos.d.ts +9 -0
- package/dist/api/repos.d.ts.map +1 -0
- package/dist/api/repos.js +46 -0
- package/dist/api/repos.js.map +1 -0
- package/dist/api/sessions.d.ts +5 -0
- package/dist/api/sessions.d.ts.map +1 -0
- package/dist/api/sessions.js +19 -0
- package/dist/api/sessions.js.map +1 -0
- package/dist/api/tasks.d.ts +6 -0
- package/dist/api/tasks.d.ts.map +1 -0
- package/dist/api/tasks.js +22 -0
- package/dist/api/tasks.js.map +1 -0
- package/dist/api/terminal.d.ts +7 -0
- package/dist/api/terminal.d.ts.map +1 -0
- package/dist/api/terminal.js +16 -0
- package/dist/api/terminal.js.map +1 -0
- package/dist/api/worktrees.d.ts +7 -0
- package/dist/api/worktrees.d.ts.map +1 -0
- package/dist/api/worktrees.js +26 -0
- package/dist/api/worktrees.js.map +1 -0
- package/dist/cli/arg-parser.d.ts +3 -0
- package/dist/cli/arg-parser.d.ts.map +1 -0
- package/dist/cli/arg-parser.js +243 -0
- package/dist/cli/arg-parser.js.map +1 -0
- package/dist/cli/config-resolver.d.ts +29 -0
- package/dist/cli/config-resolver.d.ts.map +1 -0
- package/dist/cli/config-resolver.js +139 -0
- package/dist/cli/config-resolver.js.map +1 -0
- package/dist/cli/config.d.ts +5 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +224 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/constants.d.ts +7 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/constants.js +15 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/help.d.ts +3 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +35 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +23 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +23 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/plans-command.d.ts +3 -0
- package/dist/cli/plans-command.d.ts.map +1 -0
- package/dist/cli/plans-command.js +151 -0
- package/dist/cli/plans-command.js.map +1 -0
- package/dist/cli/server-starter.d.ts +26 -0
- package/dist/cli/server-starter.d.ts.map +1 -0
- package/dist/cli/server-starter.js +72 -0
- package/dist/cli/server-starter.js.map +1 -0
- package/dist/cli/types.d.ts +46 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/validation.d.ts +14 -0
- package/dist/cli/validation.d.ts.map +1 -0
- package/dist/cli/validation.js +99 -0
- package/dist/cli/validation.js.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +73 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/agent-commands.d.ts +27 -0
- package/dist/config/agent-commands.d.ts.map +1 -0
- package/dist/config/agent-commands.js +56 -0
- package/dist/config/agent-commands.js.map +1 -0
- package/dist/config/constants.d.ts +35 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +35 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/developer-messages.d.ts +2 -0
- package/dist/config/developer-messages.d.ts.map +1 -0
- package/dist/config/developer-messages.js +43 -0
- package/dist/config/developer-messages.js.map +1 -0
- package/dist/core/agents.d.ts +23 -0
- package/dist/core/agents.d.ts.map +1 -0
- package/dist/core/agents.js +91 -0
- package/dist/core/agents.js.map +1 -0
- package/dist/core/auth.d.ts +3 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +69 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/automation/branch.d.ts +18 -0
- package/dist/core/automation/branch.d.ts.map +1 -0
- package/dist/core/automation/branch.js +29 -0
- package/dist/core/automation/branch.js.map +1 -0
- package/dist/core/automation/git-orchestration.d.ts +51 -0
- package/dist/core/automation/git-orchestration.d.ts.map +1 -0
- package/dist/core/automation/git-orchestration.js +25 -0
- package/dist/core/automation/git-orchestration.js.map +1 -0
- package/dist/core/automation/plan.d.ts +15 -0
- package/dist/core/automation/plan.d.ts.map +1 -0
- package/dist/core/automation/plan.js +25 -0
- package/dist/core/automation/plan.js.map +1 -0
- package/dist/core/automation/request-validation.d.ts +45 -0
- package/dist/core/automation/request-validation.d.ts.map +1 -0
- package/dist/core/automation/request-validation.js +144 -0
- package/dist/core/automation/request-validation.js.map +1 -0
- package/dist/core/automation/task-runner.d.ts +42 -0
- package/dist/core/automation/task-runner.d.ts.map +1 -0
- package/dist/core/automation/task-runner.js +215 -0
- package/dist/core/automation/task-runner.js.map +1 -0
- package/dist/core/branch-name.d.ts +13 -0
- package/dist/core/branch-name.d.ts.map +1 -0
- package/dist/core/branch-name.js +429 -0
- package/dist/core/branch-name.js.map +1 -0
- package/dist/core/default-branch.d.ts +12 -0
- package/dist/core/default-branch.d.ts.map +1 -0
- package/dist/core/default-branch.js +78 -0
- package/dist/core/default-branch.js.map +1 -0
- package/dist/core/event-bus.d.ts +73 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +127 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/git.d.ts +13 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +15 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/github.d.ts +10 -0
- package/dist/core/github.d.ts.map +1 -0
- package/dist/core/github.js +245 -0
- package/dist/core/github.js.map +1 -0
- package/dist/core/plan-storage.d.ts +46 -0
- package/dist/core/plan-storage.d.ts.map +1 -0
- package/dist/core/plan-storage.js +237 -0
- package/dist/core/plan-storage.js.map +1 -0
- package/dist/core/plan.d.ts +23 -0
- package/dist/core/plan.d.ts.map +1 -0
- package/dist/core/plan.js +445 -0
- package/dist/core/plan.js.map +1 -0
- package/dist/core/repositories.d.ts +2 -0
- package/dist/core/repositories.d.ts.map +1 -0
- package/dist/core/repositories.js +58 -0
- package/dist/core/repositories.js.map +1 -0
- package/dist/core/repository-config.d.ts +9 -0
- package/dist/core/repository-config.d.ts.map +1 -0
- package/dist/core/repository-config.js +65 -0
- package/dist/core/repository-config.js.map +1 -0
- package/dist/core/task-store.d.ts +14 -0
- package/dist/core/task-store.d.ts.map +1 -0
- package/dist/core/task-store.js +105 -0
- package/dist/core/task-store.js.map +1 -0
- package/dist/core/tasks.d.ts +62 -0
- package/dist/core/tasks.d.ts.map +1 -0
- package/dist/core/tasks.js +582 -0
- package/dist/core/tasks.js.map +1 -0
- package/dist/core/terminal-sessions.d.ts +18 -0
- package/dist/core/terminal-sessions.d.ts.map +1 -0
- package/dist/core/terminal-sessions.js +539 -0
- package/dist/core/terminal-sessions.js.map +1 -0
- package/dist/core/tmux.d.ts +29 -0
- package/dist/core/tmux.d.ts.map +1 -0
- package/dist/core/tmux.js +151 -0
- package/dist/core/tmux.js.map +1 -0
- package/dist/core/workdir.d.ts +8 -0
- package/dist/core/workdir.d.ts.map +1 -0
- package/dist/core/workdir.js +26 -0
- package/dist/core/workdir.js.map +1 -0
- package/dist/domain/branch-validator.d.ts +51 -0
- package/dist/domain/branch-validator.d.ts.map +1 -0
- package/dist/domain/branch-validator.js +88 -0
- package/dist/domain/branch-validator.js.map +1 -0
- package/dist/domain/git-url-parser.d.ts +27 -0
- package/dist/domain/git-url-parser.d.ts.map +1 -0
- package/dist/domain/git-url-parser.js +84 -0
- package/dist/domain/git-url-parser.js.map +1 -0
- package/dist/domain/index.d.ts +8 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +5 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/repository.d.ts +55 -0
- package/dist/domain/repository.d.ts.map +1 -0
- package/dist/domain/repository.js +73 -0
- package/dist/domain/repository.js.map +1 -0
- package/dist/domain/worktree.d.ts +43 -0
- package/dist/domain/worktree.d.ts.map +1 -0
- package/dist/domain/worktree.js +57 -0
- package/dist/domain/worktree.js.map +1 -0
- package/dist/infrastructure/cookies/cookie-manager.d.ts +18 -0
- package/dist/infrastructure/cookies/cookie-manager.d.ts.map +1 -0
- package/dist/infrastructure/cookies/cookie-manager.js +20 -0
- package/dist/infrastructure/cookies/cookie-manager.js.map +1 -0
- package/dist/infrastructure/cookies/cookie-parser.d.ts +43 -0
- package/dist/infrastructure/cookies/cookie-parser.d.ts.map +1 -0
- package/dist/infrastructure/cookies/cookie-parser.js +88 -0
- package/dist/infrastructure/cookies/cookie-parser.js.map +1 -0
- package/dist/infrastructure/cookies/cookie-security.d.ts +15 -0
- package/dist/infrastructure/cookies/cookie-security.d.ts.map +1 -0
- package/dist/infrastructure/cookies/cookie-security.js +35 -0
- package/dist/infrastructure/cookies/cookie-security.js.map +1 -0
- package/dist/infrastructure/cookies/index.d.ts +7 -0
- package/dist/infrastructure/cookies/index.d.ts.map +1 -0
- package/dist/infrastructure/cookies/index.js +4 -0
- package/dist/infrastructure/cookies/index.js.map +1 -0
- package/dist/infrastructure/errors/error-handler.d.ts +22 -0
- package/dist/infrastructure/errors/error-handler.d.ts.map +1 -0
- package/dist/infrastructure/errors/error-handler.js +89 -0
- package/dist/infrastructure/errors/error-handler.js.map +1 -0
- package/dist/infrastructure/errors/http-error.d.ts +30 -0
- package/dist/infrastructure/errors/http-error.d.ts.map +1 -0
- package/dist/infrastructure/errors/http-error.js +46 -0
- package/dist/infrastructure/errors/http-error.js.map +1 -0
- package/dist/infrastructure/errors/index.d.ts +5 -0
- package/dist/infrastructure/errors/index.d.ts.map +1 -0
- package/dist/infrastructure/errors/index.js +5 -0
- package/dist/infrastructure/errors/index.js.map +1 -0
- package/dist/infrastructure/errors/not-found-error.d.ts +8 -0
- package/dist/infrastructure/errors/not-found-error.d.ts.map +1 -0
- package/dist/infrastructure/errors/not-found-error.js +13 -0
- package/dist/infrastructure/errors/not-found-error.js.map +1 -0
- package/dist/infrastructure/errors/validation-error.d.ts +21 -0
- package/dist/infrastructure/errors/validation-error.d.ts.map +1 -0
- package/dist/infrastructure/errors/validation-error.js +31 -0
- package/dist/infrastructure/errors/validation-error.js.map +1 -0
- package/dist/infrastructure/logging/index.d.ts +3 -0
- package/dist/infrastructure/logging/index.d.ts.map +1 -0
- package/dist/infrastructure/logging/index.js +2 -0
- package/dist/infrastructure/logging/index.js.map +1 -0
- package/dist/infrastructure/logging/logger.d.ts +21 -0
- package/dist/infrastructure/logging/logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/logger.js +49 -0
- package/dist/infrastructure/logging/logger.js.map +1 -0
- package/dist/repositories/git-repository.d.ts +67 -0
- package/dist/repositories/git-repository.d.ts.map +1 -0
- package/dist/repositories/git-repository.js +111 -0
- package/dist/repositories/git-repository.js.map +1 -0
- package/dist/repositories/git-status-repository.d.ts +22 -0
- package/dist/repositories/git-status-repository.d.ts.map +1 -0
- package/dist/repositories/git-status-repository.js +620 -0
- package/dist/repositories/git-status-repository.js.map +1 -0
- package/dist/repositories/repository-repository.d.ts +44 -0
- package/dist/repositories/repository-repository.d.ts.map +1 -0
- package/dist/repositories/repository-repository.js +155 -0
- package/dist/repositories/repository-repository.js.map +1 -0
- package/dist/repositories/worktree-repository.d.ts +66 -0
- package/dist/repositories/worktree-repository.d.ts.map +1 -0
- package/dist/repositories/worktree-repository.js +330 -0
- package/dist/repositories/worktree-repository.js.map +1 -0
- package/dist/server/cookies.d.ts +6 -0
- package/dist/server/cookies.d.ts.map +1 -0
- package/dist/server/cookies.js +6 -0
- package/dist/server/cookies.js.map +1 -0
- package/dist/server/events.d.ts +8 -0
- package/dist/server/events.d.ts.map +1 -0
- package/dist/server/events.js +128 -0
- package/dist/server/events.js.map +1 -0
- package/dist/server/index.d.ts +18 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +173 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/router.d.ts +16 -0
- package/dist/server/router.d.ts.map +1 -0
- package/dist/server/router.js +256 -0
- package/dist/server/router.js.map +1 -0
- package/dist/server/ui.d.ts +8 -0
- package/dist/server/ui.d.ts.map +1 -0
- package/dist/server/ui.js +211 -0
- package/dist/server/ui.js.map +1 -0
- package/dist/server/websocket.d.ts +9 -0
- package/dist/server/websocket.d.ts.map +1 -0
- package/dist/server/websocket.js +116 -0
- package/dist/server/websocket.js.map +1 -0
- package/dist/services/auth-service.d.ts +49 -0
- package/dist/services/auth-service.d.ts.map +1 -0
- package/dist/services/auth-service.js +53 -0
- package/dist/services/auth-service.js.map +1 -0
- package/dist/services/index.d.ts +11 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +6 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/repository-service.d.ts +57 -0
- package/dist/services/repository-service.d.ts.map +1 -0
- package/dist/services/repository-service.js +62 -0
- package/dist/services/repository-service.js.map +1 -0
- package/dist/services/session-service.d.ts +31 -0
- package/dist/services/session-service.d.ts.map +1 -0
- package/dist/services/session-service.js +134 -0
- package/dist/services/session-service.js.map +1 -0
- package/dist/services/terminal-service.d.ts +43 -0
- package/dist/services/terminal-service.d.ts.map +1 -0
- package/dist/services/terminal-service.js +85 -0
- package/dist/services/terminal-service.js.map +1 -0
- package/dist/services/worktree-service.d.ts +39 -0
- package/dist/services/worktree-service.d.ts.map +1 -0
- package/dist/services/worktree-service.js +208 -0
- package/dist/services/worktree-service.js.map +1 -0
- package/dist/types/auth.d.ts +35 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/config.d.ts +46 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/git.d.ts +190 -0
- package/dist/types/git.d.ts.map +1 -0
- package/dist/types/git.js +5 -0
- package/dist/types/git.js.map +1 -0
- package/dist/types/http.d.ts +46 -0
- package/dist/types/http.d.ts.map +1 -0
- package/dist/types/http.js +2 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plan.d.ts +31 -0
- package/dist/types/plan.d.ts.map +1 -0
- package/dist/types/plan.js +5 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/services.d.ts +99 -0
- package/dist/types/services.d.ts.map +1 -0
- package/dist/types/services.js +2 -0
- package/dist/types/services.js.map +1 -0
- package/dist/types/tasks.d.ts +68 -0
- package/dist/types/tasks.d.ts.map +1 -0
- package/dist/types/tasks.js +5 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/types/terminal.d.ts +60 -0
- package/dist/types/terminal.d.ts.map +1 -0
- package/dist/types/terminal.js +2 -0
- package/dist/types/terminal.js.map +1 -0
- package/dist/utils/cookies.d.ts +7 -0
- package/dist/utils/cookies.d.ts.map +1 -0
- package/dist/utils/cookies.js +6 -0
- package/dist/utils/cookies.js.map +1 -0
- package/dist/utils/http.d.ts +23 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +58 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/random.d.ts +12 -0
- package/dist/utils/random.d.ts.map +1 -0
- package/dist/utils/random.js +25 -0
- package/dist/utils/random.js.map +1 -0
- package/dist/utils/repository-cache.d.ts +8 -0
- package/dist/utils/repository-cache.d.ts.map +1 -0
- package/dist/utils/repository-cache.js +13 -0
- package/dist/utils/repository-cache.js.map +1 -0
- package/dist/validation/index.d.ts +9 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/request-validator.d.ts +99 -0
- package/dist/validation/request-validator.d.ts.map +1 -0
- package/dist/validation/request-validator.js +189 -0
- package/dist/validation/request-validator.js.map +1 -0
- package/dist/validation/schemas/repository-schema.d.ts +26 -0
- package/dist/validation/schemas/repository-schema.d.ts.map +1 -0
- package/dist/validation/schemas/repository-schema.js +31 -0
- package/dist/validation/schemas/repository-schema.js.map +1 -0
- package/dist/validation/schemas/terminal-schema.d.ts +21 -0
- package/dist/validation/schemas/terminal-schema.d.ts.map +1 -0
- package/dist/validation/schemas/terminal-schema.js +38 -0
- package/dist/validation/schemas/terminal-schema.js.map +1 -0
- package/dist/validation/schemas/worktree-schema.d.ts +21 -0
- package/dist/validation/schemas/worktree-schema.d.ts.map +1 -0
- package/dist/validation/schemas/worktree-schema.js +29 -0
- package/dist/validation/schemas/worktree-schema.js.map +1 -0
- package/package.json +79 -0
- package/ui/dist/assets/index-BDDrbP3l.js +354 -0
- package/ui/dist/assets/index-CwB7gOl4.css +41 -0
- package/ui/dist/index.html +13 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { startServer, generateRandomPassword } from '../server/index.js';
|
|
2
|
+
export async function startAppServer(config) {
|
|
3
|
+
const chosenPassword = config.password || generateRandomPassword();
|
|
4
|
+
const passwordWasProvided = config.password !== null;
|
|
5
|
+
const shouldPrintPassword = config.showPassword || !passwordWasProvided;
|
|
6
|
+
const commandOverrides = {
|
|
7
|
+
codex: config.codexCommand,
|
|
8
|
+
claude: config.claudeCommand,
|
|
9
|
+
cursor: config.cursorCommand ?? config.ideCommand,
|
|
10
|
+
ide: config.ideCommand,
|
|
11
|
+
vscode: config.vscodeCommand,
|
|
12
|
+
};
|
|
13
|
+
const ngrokOptions = config.ngrokApiKey && config.ngrokDomain
|
|
14
|
+
? { apiKey: config.ngrokApiKey, domain: config.ngrokDomain }
|
|
15
|
+
: undefined;
|
|
16
|
+
const hasDefaultBranchConfig = Boolean(config.defaultBranch) || Boolean(config.defaultBranches);
|
|
17
|
+
const defaultBranchConfig = hasDefaultBranchConfig
|
|
18
|
+
? {
|
|
19
|
+
global: config.defaultBranch ?? undefined,
|
|
20
|
+
overrides: config.defaultBranches || undefined,
|
|
21
|
+
}
|
|
22
|
+
: undefined;
|
|
23
|
+
const { server: _server, host, port, uiPath: resolvedUi, close, password: serverPassword, publicUrl, } = await startServer({
|
|
24
|
+
uiPath: config.uiPath,
|
|
25
|
+
port: config.port,
|
|
26
|
+
host: config.host,
|
|
27
|
+
workdir: config.workdir,
|
|
28
|
+
password: chosenPassword,
|
|
29
|
+
commandOverrides: commandOverrides,
|
|
30
|
+
ngrok: ngrokOptions,
|
|
31
|
+
automationApiKey: (config.automationApiKey ?? undefined),
|
|
32
|
+
openaiApiKey: (config.openaiApiKey ?? undefined),
|
|
33
|
+
branchNameLlm: (config.branchNameLlm ?? undefined),
|
|
34
|
+
planLlm: (config.planLlm ?? undefined),
|
|
35
|
+
defaultBranches: defaultBranchConfig,
|
|
36
|
+
cookieSecure: (config.cookieSecure ?? undefined),
|
|
37
|
+
terminalSessionMode: (config.terminalSessionMode ?? undefined),
|
|
38
|
+
});
|
|
39
|
+
const localAddress = host === '0.0.0.0' ? 'localhost' : host;
|
|
40
|
+
process.stdout.write(`Serving UI from ${resolvedUi}\n`);
|
|
41
|
+
process.stdout.write(`Working directory set to ${config.workdir}\n`);
|
|
42
|
+
process.stdout.write(`Listening on http://${localAddress}:${port}\n`);
|
|
43
|
+
const effectivePassword = serverPassword || chosenPassword;
|
|
44
|
+
if (shouldPrintPassword) {
|
|
45
|
+
process.stdout.write(`Password: ${effectivePassword}\n`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
process.stdout.write('Password logging suppressed (operator-provided password). Use --show-password to print.\n');
|
|
49
|
+
}
|
|
50
|
+
if (publicUrl) {
|
|
51
|
+
process.stdout.write(`Public URL (ngrok): ${publicUrl}\n`);
|
|
52
|
+
}
|
|
53
|
+
setupShutdownHandlers(close);
|
|
54
|
+
}
|
|
55
|
+
function setupShutdownHandlers(close) {
|
|
56
|
+
let shuttingDown = false;
|
|
57
|
+
const shutdown = () => {
|
|
58
|
+
if (shuttingDown) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
shuttingDown = true;
|
|
62
|
+
process.stdout.write('\nShutting down...\n');
|
|
63
|
+
close()
|
|
64
|
+
.catch((error) => {
|
|
65
|
+
process.stderr.write(`Error during shutdown: ${error.message}\n`);
|
|
66
|
+
})
|
|
67
|
+
.finally(() => process.exit(0));
|
|
68
|
+
};
|
|
69
|
+
process.on('SIGINT', shutdown);
|
|
70
|
+
process.on('SIGTERM', shutdown);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=server-starter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-starter.js","sourceRoot":"","sources":["../../src/cli/server-starter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export interface CliConfig {
|
|
2
|
+
port: number;
|
|
3
|
+
host: string;
|
|
4
|
+
ui: string | null;
|
|
5
|
+
workdir: string | null;
|
|
6
|
+
password: string | null;
|
|
7
|
+
cookieSecure: string | null;
|
|
8
|
+
defaultBranch: string | null;
|
|
9
|
+
defaultBranches?: Record<string, string>;
|
|
10
|
+
showPassword: boolean;
|
|
11
|
+
codexCommand: string | null;
|
|
12
|
+
claudeCommand: string | null;
|
|
13
|
+
cursorCommand: string | null;
|
|
14
|
+
ideCommand: string | null;
|
|
15
|
+
vscodeCommand: string | null;
|
|
16
|
+
ngrokApiKey: string | null;
|
|
17
|
+
ngrokDomain: string | null;
|
|
18
|
+
automationApiKey?: string | null;
|
|
19
|
+
openaiApiKey: string | null;
|
|
20
|
+
branchNameLlm?: string | null;
|
|
21
|
+
planLlm?: string | null;
|
|
22
|
+
terminalSessionMode: string | null;
|
|
23
|
+
save: boolean;
|
|
24
|
+
help: boolean;
|
|
25
|
+
version: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface ParsedArgs extends CliConfig {
|
|
28
|
+
_provided: Record<string, boolean>;
|
|
29
|
+
}
|
|
30
|
+
export interface PlansOptions {
|
|
31
|
+
org: string;
|
|
32
|
+
repo: string;
|
|
33
|
+
branch: string;
|
|
34
|
+
planId: string;
|
|
35
|
+
limit?: number;
|
|
36
|
+
workdir: string;
|
|
37
|
+
help: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface NormalizedConfig {
|
|
40
|
+
values: Record<string, unknown>;
|
|
41
|
+
path: string | null;
|
|
42
|
+
}
|
|
43
|
+
export type TerminalSessionMode = 'auto' | 'tmux' | 'pty';
|
|
44
|
+
export type BranchLlm = 'codex' | 'claude' | 'cursor';
|
|
45
|
+
export type CookieSecureMode = 'true' | 'false' | 'auto';
|
|
46
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class ValidationError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare function warnConfig(message: string): void;
|
|
5
|
+
export declare function validatePort(value: unknown, name: string, configPath: string): number | undefined;
|
|
6
|
+
export declare function validateString(value: unknown, name: string, configPath: string): string | undefined;
|
|
7
|
+
export declare function validateBranchLlm(value: unknown, name: string, configPath: string): string | undefined;
|
|
8
|
+
export declare function validateTerminalSessionMode(value: unknown, name: string, configPath: string): string | undefined;
|
|
9
|
+
export declare function validateCookieSecure(value: unknown, name: string, configPath: string): string | undefined;
|
|
10
|
+
export declare function pickFirst<T>(sources: Array<{
|
|
11
|
+
value: unknown;
|
|
12
|
+
name: string;
|
|
13
|
+
}>, validator: (value: unknown, name: string, configPath: string) => T | undefined, configPath: string): T | undefined;
|
|
14
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/cli/validation.ts"],"names":[],"mappings":"AAMA,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqBjG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBnG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBtG;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBhH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAezG;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,EAC9E,UAAU,EAAE,MAAM,GACjB,CAAC,GAAG,SAAS,CAWf"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { VALID_BRANCH_LLMS, VALID_TERMINAL_SESSION_MODES, VALID_COOKIE_SECURE_MODES, } from './constants.js';
|
|
2
|
+
export class ValidationError extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = 'ValidationError';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export function warnConfig(message) {
|
|
9
|
+
process.stderr.write(`[agentrix] ${message}\n`);
|
|
10
|
+
}
|
|
11
|
+
export function validatePort(value, name, configPath) {
|
|
12
|
+
if (value === undefined || value === null) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
let portValue = value;
|
|
16
|
+
if (typeof portValue === 'string') {
|
|
17
|
+
const trimmed = portValue.trim();
|
|
18
|
+
if (!trimmed) {
|
|
19
|
+
warnConfig(`Ignoring empty ${name} in ${configPath || 'config'}`);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
portValue = Number.parseInt(trimmed, 10);
|
|
23
|
+
}
|
|
24
|
+
if (!Number.isInteger(portValue) || portValue < 1 || portValue > 65535) {
|
|
25
|
+
warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected port between 1-65535.`);
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
return portValue;
|
|
29
|
+
}
|
|
30
|
+
export function validateString(value, name, configPath) {
|
|
31
|
+
if (value === undefined || value === null) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value !== 'string') {
|
|
35
|
+
warnConfig(`Ignoring non-string ${name} in ${configPath || 'config'}.`);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const trimmed = value.trim();
|
|
39
|
+
if (!trimmed) {
|
|
40
|
+
warnConfig(`Ignoring empty ${name} in ${configPath || 'config'}.`);
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
return trimmed;
|
|
44
|
+
}
|
|
45
|
+
export function validateBranchLlm(value, name, configPath) {
|
|
46
|
+
const stringValue = validateString(value, name, configPath);
|
|
47
|
+
if (stringValue === undefined) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const lower = stringValue.toLowerCase();
|
|
51
|
+
if (!VALID_BRANCH_LLMS.has(lower)) {
|
|
52
|
+
warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected one of ${[
|
|
53
|
+
...VALID_BRANCH_LLMS,
|
|
54
|
+
].join(', ')}.`);
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return lower;
|
|
58
|
+
}
|
|
59
|
+
export function validateTerminalSessionMode(value, name, configPath) {
|
|
60
|
+
const stringValue = validateString(value, name, configPath);
|
|
61
|
+
if (stringValue === undefined) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
const lower = stringValue.toLowerCase();
|
|
65
|
+
if (!VALID_TERMINAL_SESSION_MODES.has(lower)) {
|
|
66
|
+
warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected one of ${[
|
|
67
|
+
...VALID_TERMINAL_SESSION_MODES,
|
|
68
|
+
].join(', ')}.`);
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return lower;
|
|
72
|
+
}
|
|
73
|
+
export function validateCookieSecure(value, name, configPath) {
|
|
74
|
+
if (typeof value === 'string') {
|
|
75
|
+
const trimmed = value.trim().toLowerCase();
|
|
76
|
+
if (VALID_COOKIE_SECURE_MODES.has(trimmed)) {
|
|
77
|
+
return trimmed;
|
|
78
|
+
}
|
|
79
|
+
warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected true, false, or auto.`);
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
if (typeof value === 'boolean') {
|
|
83
|
+
return value ? 'true' : 'false';
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
export function pickFirst(sources, validator, configPath) {
|
|
88
|
+
for (const { value, name } of sources) {
|
|
89
|
+
if (value === undefined || value === null) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const validated = validator(value, name, configPath);
|
|
93
|
+
if (validated !== undefined) {
|
|
94
|
+
return validated;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/cli/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,iBAAe,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEzE;AAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { parseArgs } from './cli/arg-parser.js';
|
|
3
|
+
import { loadConfig, saveConfig } from './cli/config.js';
|
|
4
|
+
import { resolveConfig, validateNgrokConfig, buildConfigToSave } from './cli/config-resolver.js';
|
|
5
|
+
import { printHelp, printVersion } from './cli/help.js';
|
|
6
|
+
import { handlePlansCommand } from './cli/plans-command.js';
|
|
7
|
+
import { startAppServer } from './cli/server-starter.js';
|
|
8
|
+
async function main(argv = process.argv.slice(2)) {
|
|
9
|
+
// Handle plans subcommand
|
|
10
|
+
if (argv[0] === 'plans') {
|
|
11
|
+
await handlePlansCommand(argv.slice(1));
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Parse CLI arguments
|
|
15
|
+
let args;
|
|
16
|
+
try {
|
|
17
|
+
args = parseArgs(argv);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
const error = err;
|
|
21
|
+
process.stderr.write(`${error?.message || String(err)}\n`);
|
|
22
|
+
process.stderr.write('Use --help to see usage.\n');
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// Handle help and version flags
|
|
27
|
+
if (args.help) {
|
|
28
|
+
printHelp();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (args.version) {
|
|
32
|
+
await printVersion();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Load and merge configuration
|
|
36
|
+
const { values: fileConfig } = await loadConfig();
|
|
37
|
+
const config = resolveConfig(args, fileConfig);
|
|
38
|
+
// Validate configuration
|
|
39
|
+
try {
|
|
40
|
+
validateNgrokConfig(config);
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
const error = err;
|
|
44
|
+
process.stderr.write(`${error?.message || String(err)}\n`);
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Handle save command
|
|
49
|
+
if (args.save) {
|
|
50
|
+
const configToSave = buildConfigToSave(config, args, fileConfig);
|
|
51
|
+
try {
|
|
52
|
+
const savedPath = await saveConfig(configToSave);
|
|
53
|
+
process.stdout.write(`Config saved to ${savedPath}\n`);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const err = error;
|
|
57
|
+
process.stderr.write(`Failed to save config: ${err?.message || String(error)}\n`);
|
|
58
|
+
process.exitCode = 1;
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Start the server
|
|
63
|
+
try {
|
|
64
|
+
await startAppServer(config);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
const error = err;
|
|
68
|
+
process.stderr.write(`Failed to start server: ${error?.message || String(err)}\n`);
|
|
69
|
+
process.exitCode = 1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export { main, parseArgs };
|
|
73
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const DEFAULT_AGENT_COMMANDS: {
|
|
2
|
+
readonly codex: "codex";
|
|
3
|
+
readonly codexDangerous: "codex --dangerously-bypass-approvals-and-sandbox";
|
|
4
|
+
readonly claude: "claude";
|
|
5
|
+
readonly claudeDangerous: "claude --dangerously-skip-permissions";
|
|
6
|
+
readonly cursor: "cursor-agent";
|
|
7
|
+
readonly vscode: "code .";
|
|
8
|
+
};
|
|
9
|
+
export interface AgentCommands {
|
|
10
|
+
codex: string;
|
|
11
|
+
codexDangerous: string;
|
|
12
|
+
claude: string;
|
|
13
|
+
claudeDangerous: string;
|
|
14
|
+
cursor: string;
|
|
15
|
+
vscode: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AgentCommandOverrides {
|
|
18
|
+
codex?: string;
|
|
19
|
+
codexDangerous?: string;
|
|
20
|
+
claude?: string;
|
|
21
|
+
claudeDangerous?: string;
|
|
22
|
+
cursor?: string;
|
|
23
|
+
ide?: string;
|
|
24
|
+
vscode?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function createAgentCommands(overrides?: AgentCommandOverrides): AgentCommands;
|
|
27
|
+
//# sourceMappingURL=agent-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-commands.d.ts","sourceRoot":"","sources":["../../src/config/agent-commands.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,qBAA0B,GAAG,aAAa,CAyCxF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const DEFAULT_CODEX_COMMAND = 'codex';
|
|
2
|
+
const DEFAULT_CODEX_DANGEROUS_SUFFIX = '--dangerously-bypass-approvals-and-sandbox';
|
|
3
|
+
const DEFAULT_CLAUDE_COMMAND = 'claude';
|
|
4
|
+
const DEFAULT_CLAUDE_DANGEROUS_SUFFIX = '--dangerously-skip-permissions';
|
|
5
|
+
const DEFAULT_CURSOR_COMMAND = 'cursor-agent';
|
|
6
|
+
const DEFAULT_VSCODE_COMMAND = 'code .';
|
|
7
|
+
export const DEFAULT_AGENT_COMMANDS = {
|
|
8
|
+
codex: `${DEFAULT_CODEX_COMMAND}`,
|
|
9
|
+
codexDangerous: `${DEFAULT_CODEX_COMMAND} ${DEFAULT_CODEX_DANGEROUS_SUFFIX}`,
|
|
10
|
+
claude: `${DEFAULT_CLAUDE_COMMAND}`,
|
|
11
|
+
claudeDangerous: `${DEFAULT_CLAUDE_COMMAND} ${DEFAULT_CLAUDE_DANGEROUS_SUFFIX}`,
|
|
12
|
+
cursor: `${DEFAULT_CURSOR_COMMAND}`,
|
|
13
|
+
vscode: `${DEFAULT_VSCODE_COMMAND}`,
|
|
14
|
+
};
|
|
15
|
+
function appendDangerSuffix(base, suffix) {
|
|
16
|
+
const trimmed = typeof base === 'string' ? base.trim() : '';
|
|
17
|
+
if (!trimmed) {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
return `${trimmed} ${suffix}`.trim();
|
|
21
|
+
}
|
|
22
|
+
export function createAgentCommands(overrides = {}) {
|
|
23
|
+
const codexBase = typeof overrides.codex === 'string' && overrides.codex.trim()
|
|
24
|
+
? overrides.codex.trim()
|
|
25
|
+
: DEFAULT_AGENT_COMMANDS.codex;
|
|
26
|
+
const claudeBase = typeof overrides.claude === 'string' && overrides.claude.trim()
|
|
27
|
+
? overrides.claude.trim()
|
|
28
|
+
: DEFAULT_AGENT_COMMANDS.claude;
|
|
29
|
+
const cursorCommand = (() => {
|
|
30
|
+
if (typeof overrides.cursor === 'string' && overrides.cursor.trim()) {
|
|
31
|
+
return overrides.cursor.trim();
|
|
32
|
+
}
|
|
33
|
+
if (typeof overrides.ide === 'string' && overrides.ide.trim()) {
|
|
34
|
+
return overrides.ide.trim();
|
|
35
|
+
}
|
|
36
|
+
return DEFAULT_AGENT_COMMANDS.cursor;
|
|
37
|
+
})();
|
|
38
|
+
const vscodeCommand = typeof overrides.vscode === 'string' && overrides.vscode.trim()
|
|
39
|
+
? overrides.vscode.trim()
|
|
40
|
+
: DEFAULT_AGENT_COMMANDS.vscode;
|
|
41
|
+
const codexDangerous = typeof overrides.codexDangerous === 'string' && overrides.codexDangerous.trim()
|
|
42
|
+
? overrides.codexDangerous.trim()
|
|
43
|
+
: appendDangerSuffix(codexBase, DEFAULT_CODEX_DANGEROUS_SUFFIX);
|
|
44
|
+
const claudeDangerous = typeof overrides.claudeDangerous === 'string' && overrides.claudeDangerous.trim()
|
|
45
|
+
? overrides.claudeDangerous.trim()
|
|
46
|
+
: appendDangerSuffix(claudeBase, DEFAULT_CLAUDE_DANGEROUS_SUFFIX);
|
|
47
|
+
return {
|
|
48
|
+
codex: codexBase,
|
|
49
|
+
codexDangerous,
|
|
50
|
+
claude: claudeBase,
|
|
51
|
+
claudeDangerous,
|
|
52
|
+
cursor: cursorCommand,
|
|
53
|
+
vscode: vscodeCommand,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=agent-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-commands.js","sourceRoot":"","sources":["../../src/config/agent-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const DEFAULT_HOST = "0.0.0.0";
|
|
2
|
+
export declare const DEFAULT_PORT = 3414;
|
|
3
|
+
export declare const MAX_TERMINAL_BUFFER = 200000;
|
|
4
|
+
export declare const PASSWORD_LENGTH = 12;
|
|
5
|
+
export declare const SESSION_COOKIE_NAME = "terminal_worktree_session";
|
|
6
|
+
export declare const SESSION_MAX_AGE_SECONDS: number;
|
|
7
|
+
export declare const TMUX_BIN = "tmux";
|
|
8
|
+
export declare const TMUX_SESSION_PREFIX = "tw-";
|
|
9
|
+
export declare const MAX_REQUEST_BODY_SIZE: number;
|
|
10
|
+
/** HTTP Status Codes */
|
|
11
|
+
export declare const HTTP_STATUS: {
|
|
12
|
+
readonly OK: 200;
|
|
13
|
+
readonly CREATED: 201;
|
|
14
|
+
readonly ACCEPTED: 202;
|
|
15
|
+
readonly NO_CONTENT: 204;
|
|
16
|
+
readonly BAD_REQUEST: 400;
|
|
17
|
+
readonly UNAUTHORIZED: 401;
|
|
18
|
+
readonly FORBIDDEN: 403;
|
|
19
|
+
readonly NOT_FOUND: 404;
|
|
20
|
+
readonly METHOD_NOT_ALLOWED: 405;
|
|
21
|
+
readonly INTERNAL_SERVER_ERROR: 500;
|
|
22
|
+
readonly BAD_GATEWAY: 502;
|
|
23
|
+
readonly SERVICE_UNAVAILABLE: 503;
|
|
24
|
+
};
|
|
25
|
+
/** Common error messages */
|
|
26
|
+
export declare const ERROR_MESSAGES: {
|
|
27
|
+
readonly AUTH_REQUIRED: "Authentication required";
|
|
28
|
+
readonly INVALID_PASSWORD: "Invalid password";
|
|
29
|
+
readonly INVALID_PAYLOAD: "Invalid request payload";
|
|
30
|
+
readonly REPOSITORY_NOT_FOUND: "Repository not found";
|
|
31
|
+
readonly WORKTREE_NOT_FOUND: "Worktree not found";
|
|
32
|
+
readonly SESSION_NOT_FOUND: "Terminal session not found";
|
|
33
|
+
readonly METHOD_NOT_ALLOWED: "Method Not Allowed";
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,QAAc,CAAC;AACnD,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAEjD,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX,4BAA4B;AAC5B,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const DEFAULT_HOST = '0.0.0.0';
|
|
2
|
+
export const DEFAULT_PORT = 3414;
|
|
3
|
+
export const MAX_TERMINAL_BUFFER = 200000;
|
|
4
|
+
export const PASSWORD_LENGTH = 12;
|
|
5
|
+
export const SESSION_COOKIE_NAME = 'terminal_worktree_session';
|
|
6
|
+
export const SESSION_MAX_AGE_SECONDS = 60 * 60 * 8;
|
|
7
|
+
export const TMUX_BIN = 'tmux';
|
|
8
|
+
export const TMUX_SESSION_PREFIX = 'tw-';
|
|
9
|
+
export const MAX_REQUEST_BODY_SIZE = 1024 * 1024;
|
|
10
|
+
/** HTTP Status Codes */
|
|
11
|
+
export const HTTP_STATUS = {
|
|
12
|
+
OK: 200,
|
|
13
|
+
CREATED: 201,
|
|
14
|
+
ACCEPTED: 202,
|
|
15
|
+
NO_CONTENT: 204,
|
|
16
|
+
BAD_REQUEST: 400,
|
|
17
|
+
UNAUTHORIZED: 401,
|
|
18
|
+
FORBIDDEN: 403,
|
|
19
|
+
NOT_FOUND: 404,
|
|
20
|
+
METHOD_NOT_ALLOWED: 405,
|
|
21
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
22
|
+
BAD_GATEWAY: 502,
|
|
23
|
+
SERVICE_UNAVAILABLE: 503,
|
|
24
|
+
};
|
|
25
|
+
/** Common error messages */
|
|
26
|
+
export const ERROR_MESSAGES = {
|
|
27
|
+
AUTH_REQUIRED: 'Authentication required',
|
|
28
|
+
INVALID_PASSWORD: 'Invalid password',
|
|
29
|
+
INVALID_PAYLOAD: 'Invalid request payload',
|
|
30
|
+
REPOSITORY_NOT_FOUND: 'Repository not found',
|
|
31
|
+
WORKTREE_NOT_FOUND: 'Worktree not found',
|
|
32
|
+
SESSION_NOT_FOUND: 'Terminal session not found',
|
|
33
|
+
METHOD_NOT_ALLOWED: 'Method Not Allowed',
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,GAAG;IAC1B,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,GAAG;CAChB,CAAC;AAEX,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,aAAa,EAAE,yBAAyB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,yBAAyB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,4BAA4B;IAC/C,kBAAkB,EAAE,oBAAoB;CAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developer-messages.d.ts","sourceRoot":"","sources":["../../src/config/developer-messages.ts"],"names":[],"mappings":"AAkBA,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B/F"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
const CONFIG_DIR_NAME = '.agentrix';
|
|
5
|
+
const CACHE = new Map();
|
|
6
|
+
function getDeveloperMessagePath(slug) {
|
|
7
|
+
if (!slug) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const homeDir = os.homedir();
|
|
11
|
+
if (!homeDir) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
return path.join(homeDir, CONFIG_DIR_NAME, `${slug}.md`);
|
|
15
|
+
}
|
|
16
|
+
export async function loadDeveloperMessage(slug, fallback = '') {
|
|
17
|
+
if (CACHE.has(slug)) {
|
|
18
|
+
return CACHE.get(slug);
|
|
19
|
+
}
|
|
20
|
+
const defaultMessage = typeof fallback === 'string' ? fallback : '';
|
|
21
|
+
const filePath = getDeveloperMessagePath(slug);
|
|
22
|
+
if (!filePath) {
|
|
23
|
+
CACHE.set(slug, defaultMessage);
|
|
24
|
+
return defaultMessage;
|
|
25
|
+
}
|
|
26
|
+
let message = defaultMessage;
|
|
27
|
+
try {
|
|
28
|
+
const raw = await fs.readFile(filePath, 'utf8');
|
|
29
|
+
const trimmed = raw.trim();
|
|
30
|
+
if (trimmed) {
|
|
31
|
+
message = trimmed;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
const err = error;
|
|
36
|
+
if (err && err.code !== 'ENOENT') {
|
|
37
|
+
console.warn(`[agentrix] Failed to read developer message override at ${filePath}:`, err?.message || error);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
CACHE.set(slug, message);
|
|
41
|
+
return message;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=developer-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developer-messages.js","sourceRoot":"","sources":["../../src/config/developer-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExC,SAAS,uBAAuB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAE;IAC5E,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,GAAG,cAAc,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA4C,CAAC;QACzD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,2DAA2D,QAAQ,GAAG,EACtE,GAAG,EAAE,OAAO,IAAI,KAAK,CACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface LaunchAgentParams {
|
|
2
|
+
command: string;
|
|
3
|
+
workdir: string;
|
|
4
|
+
org: string;
|
|
5
|
+
repo: string;
|
|
6
|
+
branch: string;
|
|
7
|
+
prompt: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LaunchAgentResult {
|
|
10
|
+
pid: number | null;
|
|
11
|
+
command: string;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
tmuxSessionName: string | null;
|
|
14
|
+
usingTmux: boolean;
|
|
15
|
+
createdSession: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Launches an automation agent command inside the managed terminal session for a worktree.
|
|
19
|
+
* Commands run inside the same tmux-backed terminal infrastructure used by the UI so that
|
|
20
|
+
* automation launches remain observable and attachable from the frontend.
|
|
21
|
+
*/
|
|
22
|
+
export declare function launchAgentProcess({ command, workdir, org, repo, branch, prompt, }: LaunchAgentParams): Promise<LaunchAgentResult>;
|
|
23
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,GACP,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkDhD"}
|