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,44 @@
|
|
|
1
|
+
export interface RepositoryPaths {
|
|
2
|
+
repoRoot: string;
|
|
3
|
+
repositoryPath: string;
|
|
4
|
+
}
|
|
5
|
+
export interface CloneResult {
|
|
6
|
+
org: string;
|
|
7
|
+
repo: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CloneOptions {
|
|
10
|
+
initCommand?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface RepositoriesMap {
|
|
13
|
+
[org: string]: {
|
|
14
|
+
[repo: string]: {
|
|
15
|
+
branches: string[];
|
|
16
|
+
initCommand: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Ensures a repository exists and returns its paths
|
|
22
|
+
* @param workdir - Work directory root
|
|
23
|
+
* @param org - Organization name
|
|
24
|
+
* @param repo - Repository name
|
|
25
|
+
* @returns Repository paths
|
|
26
|
+
* @throws {Error} If repository doesn't exist or is invalid
|
|
27
|
+
*/
|
|
28
|
+
export declare function ensureRepository(workdir: string, org: string, repo: string): Promise<RepositoryPaths>;
|
|
29
|
+
/**
|
|
30
|
+
* Clones a repository
|
|
31
|
+
* @param workdir - Work directory root
|
|
32
|
+
* @param repositoryUrl - Git repository URL
|
|
33
|
+
* @param options - Options
|
|
34
|
+
* @returns Clone result with org and repo
|
|
35
|
+
* @throws {Error} If clone fails or repository already exists
|
|
36
|
+
*/
|
|
37
|
+
export declare function cloneRepository(workdir: string, repositoryUrl: string, options?: CloneOptions): Promise<CloneResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Discovers all repositories in the work directory
|
|
40
|
+
* @param workdir - Work directory root
|
|
41
|
+
* @returns Nested object: {org: {repo: {branches, initCommand}}}
|
|
42
|
+
*/
|
|
43
|
+
export declare function discoverRepositories(workdir: string): Promise<RepositoriesMap>;
|
|
44
|
+
//# sourceMappingURL=repository-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-repository.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-repository.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAwB3G;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAwCtB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA8EpF"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { executeGitCommand, extractGitErrorMessage, GIT_BUFFER_SIZES } from './git-repository.js';
|
|
4
|
+
import { listWorktrees } from './worktree-repository.js';
|
|
5
|
+
import { parseRepositoryUrl } from '../domain/index.js';
|
|
6
|
+
import { getRepositoryInitCommand } from '../core/repository-config.js';
|
|
7
|
+
import { normaliseInitCommand, setRepositoryInitCommand } from '../core/repository-config.js';
|
|
8
|
+
/**
|
|
9
|
+
* Ensures a repository exists and returns its paths
|
|
10
|
+
* @param workdir - Work directory root
|
|
11
|
+
* @param org - Organization name
|
|
12
|
+
* @param repo - Repository name
|
|
13
|
+
* @returns Repository paths
|
|
14
|
+
* @throws {Error} If repository doesn't exist or is invalid
|
|
15
|
+
*/
|
|
16
|
+
export async function ensureRepository(workdir, org, repo) {
|
|
17
|
+
if (!org || !repo) {
|
|
18
|
+
throw new Error('Repository identifier is incomplete');
|
|
19
|
+
}
|
|
20
|
+
const repoRoot = path.join(workdir, org, repo);
|
|
21
|
+
const repositoryPath = path.join(repoRoot, 'repository');
|
|
22
|
+
let stats;
|
|
23
|
+
try {
|
|
24
|
+
stats = await fs.stat(repositoryPath);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
const err = error;
|
|
28
|
+
if (err && err.code === 'ENOENT') {
|
|
29
|
+
throw new Error(`Repository not found for ${org}/${repo}`);
|
|
30
|
+
}
|
|
31
|
+
throw new Error(`Unable to access repository ${org}/${repo}: ${err.message}`);
|
|
32
|
+
}
|
|
33
|
+
if (!stats.isDirectory()) {
|
|
34
|
+
throw new Error(`Repository path is not a directory: ${repositoryPath}`);
|
|
35
|
+
}
|
|
36
|
+
return { repoRoot, repositoryPath };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Clones a repository
|
|
40
|
+
* @param workdir - Work directory root
|
|
41
|
+
* @param repositoryUrl - Git repository URL
|
|
42
|
+
* @param options - Options
|
|
43
|
+
* @returns Clone result with org and repo
|
|
44
|
+
* @throws {Error} If clone fails or repository already exists
|
|
45
|
+
*/
|
|
46
|
+
export async function cloneRepository(workdir, repositoryUrl, options = {}) {
|
|
47
|
+
const { org, repo, url } = parseRepositoryUrl(repositoryUrl);
|
|
48
|
+
const repoRoot = path.join(workdir, org, repo);
|
|
49
|
+
const repositoryPath = path.join(repoRoot, 'repository');
|
|
50
|
+
await fs.mkdir(repoRoot, { recursive: true });
|
|
51
|
+
try {
|
|
52
|
+
const stats = await fs.stat(repositoryPath);
|
|
53
|
+
if (stats.isDirectory()) {
|
|
54
|
+
throw new Error(`Repository already exists for ${org}/${repo}`);
|
|
55
|
+
}
|
|
56
|
+
throw new Error(`Cannot create repository at ${repositoryPath}`);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
const err = error;
|
|
60
|
+
if (!err || err.code !== 'ENOENT') {
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
await executeGitCommand(['clone', url, repositoryPath], {
|
|
66
|
+
maxBuffer: GIT_BUFFER_SIZES.MEDIUM,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const message = extractGitErrorMessage(error);
|
|
71
|
+
throw new Error(`Failed to clone repository: ${message}`);
|
|
72
|
+
}
|
|
73
|
+
if (options && Object.prototype.hasOwnProperty.call(options, 'initCommand')) {
|
|
74
|
+
const initCommand = normaliseInitCommand(options.initCommand);
|
|
75
|
+
try {
|
|
76
|
+
await setRepositoryInitCommand(repoRoot, initCommand);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const err = error;
|
|
80
|
+
throw new Error(`Failed to persist repository settings: ${err?.message || error}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return { org, repo };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Discovers all repositories in the work directory
|
|
87
|
+
* @param workdir - Work directory root
|
|
88
|
+
* @returns Nested object: {org: {repo: {branches, initCommand}}}
|
|
89
|
+
*/
|
|
90
|
+
export async function discoverRepositories(workdir) {
|
|
91
|
+
const result = {};
|
|
92
|
+
let organisations;
|
|
93
|
+
try {
|
|
94
|
+
organisations = await fs.readdir(workdir, { withFileTypes: true });
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const err = error;
|
|
98
|
+
if (err.code === 'ENOENT') {
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
for (const orgEntry of organisations) {
|
|
104
|
+
if (!orgEntry.isDirectory()) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const orgName = orgEntry.name;
|
|
108
|
+
const orgPath = path.join(workdir, orgName);
|
|
109
|
+
let repoEntries;
|
|
110
|
+
try {
|
|
111
|
+
repoEntries = await fs.readdir(orgPath, { withFileTypes: true });
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
for (const repoEntry of repoEntries) {
|
|
117
|
+
if (!repoEntry.isDirectory()) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const repoName = repoEntry.name;
|
|
121
|
+
const repoRoot = path.join(orgPath, repoName);
|
|
122
|
+
const repositoryPath = path.join(repoRoot, 'repository');
|
|
123
|
+
try {
|
|
124
|
+
const stats = await fs.stat(repositoryPath);
|
|
125
|
+
if (!stats.isDirectory()) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
// eslint-disable-next-line no-await-in-loop
|
|
133
|
+
const worktrees = await listWorktrees(repositoryPath);
|
|
134
|
+
const branches = Array.from(new Set(worktrees
|
|
135
|
+
.map((entry) => entry.branch)
|
|
136
|
+
.filter((branch) => typeof branch === 'string' && branch.length > 0)));
|
|
137
|
+
let initCommand = '';
|
|
138
|
+
try {
|
|
139
|
+
// eslint-disable-next-line no-await-in-loop
|
|
140
|
+
initCommand = await getRepositoryInitCommand(repoRoot);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
const err = error;
|
|
144
|
+
console.warn(`[agentrix] Failed to load repository config for ${orgName}/${repoName}:`, err?.message || error);
|
|
145
|
+
initCommand = '';
|
|
146
|
+
}
|
|
147
|
+
if (!result[orgName]) {
|
|
148
|
+
result[orgName] = {};
|
|
149
|
+
}
|
|
150
|
+
result[orgName][repoName] = { branches, initCommand };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=repository-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-repository.js","sourceRoot":"","sources":["../../src/repositories/repository-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error for worktree operations
|
|
3
|
+
*/
|
|
4
|
+
export declare class GitWorktreeError extends Error {
|
|
5
|
+
readonly repositoryPath: string;
|
|
6
|
+
constructor(repositoryPath: string, message: string, cause?: Error | unknown);
|
|
7
|
+
}
|
|
8
|
+
export interface WorktreeEntry {
|
|
9
|
+
path: string | null;
|
|
10
|
+
branch: string | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Lists all worktrees for a repository
|
|
14
|
+
* @param repositoryPath - Path to the repository
|
|
15
|
+
* @returns Array of {path, branch} objects
|
|
16
|
+
* @throws {GitWorktreeError}
|
|
17
|
+
*/
|
|
18
|
+
export declare function listWorktrees(repositoryPath: string): Promise<WorktreeEntry[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Counts local worktrees (optionally excluding main)
|
|
21
|
+
* @param repositoryPath - Path to the repository
|
|
22
|
+
* @param options - Options
|
|
23
|
+
* @returns Count of worktrees
|
|
24
|
+
*/
|
|
25
|
+
export declare function countLocalWorktrees(repositoryPath: string, { includeMain }?: {
|
|
26
|
+
includeMain?: boolean;
|
|
27
|
+
}): Promise<number>;
|
|
28
|
+
export interface InitCommandResult {
|
|
29
|
+
ran: boolean;
|
|
30
|
+
command: string;
|
|
31
|
+
}
|
|
32
|
+
export interface CreateWorktreeOptions {
|
|
33
|
+
defaultBranchOverride?: string;
|
|
34
|
+
progress?: unknown;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new worktree
|
|
38
|
+
* @param workdir - Work directory root
|
|
39
|
+
* @param org - Organization name
|
|
40
|
+
* @param repo - Repository name
|
|
41
|
+
* @param branch - Branch name
|
|
42
|
+
* @param options - Options
|
|
43
|
+
*/
|
|
44
|
+
export declare function createWorktree(workdir: string, org: string, repo: string, branch: string, options?: CreateWorktreeOptions): Promise<void>;
|
|
45
|
+
export interface WorktreePathResult {
|
|
46
|
+
repositoryPath: string;
|
|
47
|
+
worktreePath: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Gets the path to a worktree for a specific branch
|
|
51
|
+
* @param workdir - Work directory root
|
|
52
|
+
* @param org - Organization name
|
|
53
|
+
* @param repo - Repository name
|
|
54
|
+
* @param branch - Branch name
|
|
55
|
+
* @returns Worktree paths
|
|
56
|
+
*/
|
|
57
|
+
export declare function getWorktreePath(workdir: string, org: string, repo: string, branch: string): Promise<WorktreePathResult>;
|
|
58
|
+
/**
|
|
59
|
+
* Removes a worktree
|
|
60
|
+
* @param workdir - Work directory root
|
|
61
|
+
* @param org - Organization name
|
|
62
|
+
* @param repo - Repository name
|
|
63
|
+
* @param branch - Branch name
|
|
64
|
+
*/
|
|
65
|
+
export declare function removeWorktree(workdir: string, org: string, repo: string, branch: string): Promise<void>;
|
|
66
|
+
//# sourceMappingURL=worktree-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-repository.d.ts","sourceRoot":"","sources":["../../src/repositories/worktree-repository.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,cAAc,EAAE,MAAM,CAAC;gBAE3B,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;CAQ7E;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAuCpF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,EAAE,WAAmB,EAAE,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtD,OAAO,CAAC,MAAM,CAAC,CAWjB;AAqBD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAsDD,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CA0Jf;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAU7B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { executeGitCommandInRepo, extractGitErrorMessage, GIT_BUFFER_SIZES, } from './git-repository.js';
|
|
4
|
+
import { normalizeBranchName, deriveWorktreeFolderName } from '../domain/index.js';
|
|
5
|
+
import { resolveDefaultBranch } from '../core/default-branch.js';
|
|
6
|
+
import { getRepositoryInitCommand, } from '../core/repository-config.js';
|
|
7
|
+
/**
|
|
8
|
+
* Custom error for worktree operations
|
|
9
|
+
*/
|
|
10
|
+
export class GitWorktreeError extends Error {
|
|
11
|
+
repositoryPath;
|
|
12
|
+
constructor(repositoryPath, message, cause) {
|
|
13
|
+
super(`Failed to list worktrees for ${repositoryPath}: ${message}`);
|
|
14
|
+
this.name = 'GitWorktreeError';
|
|
15
|
+
this.repositoryPath = repositoryPath;
|
|
16
|
+
if (cause) {
|
|
17
|
+
this.cause = cause;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Lists all worktrees for a repository
|
|
23
|
+
* @param repositoryPath - Path to the repository
|
|
24
|
+
* @returns Array of {path, branch} objects
|
|
25
|
+
* @throws {GitWorktreeError}
|
|
26
|
+
*/
|
|
27
|
+
export async function listWorktrees(repositoryPath) {
|
|
28
|
+
try {
|
|
29
|
+
const { stdout } = await executeGitCommandInRepo(repositoryPath, ['worktree', 'list', '--porcelain'], { maxBuffer: GIT_BUFFER_SIZES.MEDIUM });
|
|
30
|
+
if (!stdout.trim()) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const worktrees = [];
|
|
34
|
+
const blocks = stdout.trim().split(/\n\n+/);
|
|
35
|
+
blocks.forEach((block) => {
|
|
36
|
+
let worktreePath = null;
|
|
37
|
+
let branchName = null;
|
|
38
|
+
block.split('\n').forEach((line) => {
|
|
39
|
+
if (line.startsWith('worktree ')) {
|
|
40
|
+
worktreePath = line.slice('worktree '.length).trim();
|
|
41
|
+
}
|
|
42
|
+
else if (line.startsWith('branch ')) {
|
|
43
|
+
const ref = line.slice('branch '.length).trim();
|
|
44
|
+
branchName = ref.replace(/^refs\/heads\//, '');
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
worktrees.push({ path: worktreePath, branch: branchName });
|
|
48
|
+
});
|
|
49
|
+
return worktrees;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
const message = extractGitErrorMessage(error);
|
|
53
|
+
console.error(`[agentrix] Failed to list worktrees for ${repositoryPath}: ${message}`);
|
|
54
|
+
throw new GitWorktreeError(repositoryPath, message, error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Counts local worktrees (optionally excluding main)
|
|
59
|
+
* @param repositoryPath - Path to the repository
|
|
60
|
+
* @param options - Options
|
|
61
|
+
* @returns Count of worktrees
|
|
62
|
+
*/
|
|
63
|
+
export async function countLocalWorktrees(repositoryPath, { includeMain = false } = {}) {
|
|
64
|
+
const worktrees = await listWorktrees(repositoryPath);
|
|
65
|
+
return worktrees.reduce((total, entry) => {
|
|
66
|
+
if (!entry || typeof entry.branch !== 'string') {
|
|
67
|
+
return total;
|
|
68
|
+
}
|
|
69
|
+
if (!includeMain && entry.branch === 'main') {
|
|
70
|
+
return total;
|
|
71
|
+
}
|
|
72
|
+
return total + 1;
|
|
73
|
+
}, 0);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Checks if a branch exists in the repository
|
|
77
|
+
* @param repositoryPath - Path to the repository
|
|
78
|
+
* @param branch - Branch name
|
|
79
|
+
* @returns True if branch exists
|
|
80
|
+
*/
|
|
81
|
+
async function branchExists(repositoryPath, branch) {
|
|
82
|
+
try {
|
|
83
|
+
await executeGitCommandInRepo(repositoryPath, ['rev-parse', '--verify', `refs/heads/${branch}`], { maxBuffer: GIT_BUFFER_SIZES.MEDIUM });
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Runs the repository init command in a worktree
|
|
92
|
+
* @param repoRoot - Repository root directory
|
|
93
|
+
* @param worktreePath - Path to the worktree
|
|
94
|
+
* @returns Init command result
|
|
95
|
+
*/
|
|
96
|
+
async function runRepositoryInitCommand(repoRoot, worktreePath) {
|
|
97
|
+
let initCommand = '';
|
|
98
|
+
try {
|
|
99
|
+
initCommand = await getRepositoryInitCommand(repoRoot);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
const err = error;
|
|
103
|
+
console.warn(`[agentrix] Failed to read repository config for ${repoRoot}:`, err?.message || error);
|
|
104
|
+
initCommand = '';
|
|
105
|
+
}
|
|
106
|
+
if (!initCommand) {
|
|
107
|
+
return { ran: false, command: '' };
|
|
108
|
+
}
|
|
109
|
+
const candidateShell = typeof process.env['SHELL'] === 'string' ? process.env['SHELL'].trim() : '';
|
|
110
|
+
const shell = candidateShell || '/bin/sh';
|
|
111
|
+
const shellName = path.basename(shell);
|
|
112
|
+
const shellArgs = ['-l', '-c', initCommand];
|
|
113
|
+
if (['bash', 'zsh', 'fish'].includes(shellName)) {
|
|
114
|
+
shellArgs.splice(1, 0, '-i');
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
const { execFile } = await import('node:child_process');
|
|
118
|
+
const { promisify } = await import('node:util');
|
|
119
|
+
const execFileAsync = promisify(execFile);
|
|
120
|
+
await execFileAsync(shell, shellArgs, {
|
|
121
|
+
cwd: worktreePath,
|
|
122
|
+
maxBuffer: GIT_BUFFER_SIZES.XLARGE,
|
|
123
|
+
env: { ...process.env },
|
|
124
|
+
});
|
|
125
|
+
return { ran: true, command: initCommand };
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
const err = error;
|
|
129
|
+
const stderr = err?.stderr ? err.stderr.toString() : '';
|
|
130
|
+
const stdout = err?.stdout ? err.stdout.toString() : '';
|
|
131
|
+
const details = stderr || stdout || err?.message || 'Unknown repository init error';
|
|
132
|
+
throw new Error(`Repository init command failed: ${details.trim()}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Creates a new worktree
|
|
137
|
+
* @param workdir - Work directory root
|
|
138
|
+
* @param org - Organization name
|
|
139
|
+
* @param repo - Repository name
|
|
140
|
+
* @param branch - Branch name
|
|
141
|
+
* @param options - Options
|
|
142
|
+
*/
|
|
143
|
+
export async function createWorktree(workdir, org, repo, branch, options = {}) {
|
|
144
|
+
const { defaultBranchOverride, progress } = options || {};
|
|
145
|
+
const branchName = normalizeBranchName(branch);
|
|
146
|
+
if (!branchName) {
|
|
147
|
+
throw new Error('Branch name cannot be empty');
|
|
148
|
+
}
|
|
149
|
+
// We need to import ensureRepository from repository-repository
|
|
150
|
+
// For now, construct paths directly
|
|
151
|
+
const repoRoot = path.join(workdir, org, repo);
|
|
152
|
+
const repositoryPath = path.join(repoRoot, 'repository');
|
|
153
|
+
const folderName = deriveWorktreeFolderName(branchName);
|
|
154
|
+
const targetPath = path.join(repoRoot, folderName);
|
|
155
|
+
try {
|
|
156
|
+
await fs.access(targetPath);
|
|
157
|
+
throw new Error(`Worktree directory already exists at ${targetPath}`);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
const err = error;
|
|
161
|
+
if (!err || err.code !== 'ENOENT') {
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const describeError = (error, fallback = 'Unknown git error') => {
|
|
166
|
+
return extractGitErrorMessage(error, fallback);
|
|
167
|
+
};
|
|
168
|
+
const prog = progress;
|
|
169
|
+
prog?.ensureStep?.('sync-default-branch', 'Sync default branch');
|
|
170
|
+
prog?.ensureStep?.('create-worktree', 'Create worktree');
|
|
171
|
+
prog?.ensureStep?.('run-init-script', 'Run init script');
|
|
172
|
+
prog?.startStep?.('sync-default-branch', {
|
|
173
|
+
label: 'Sync default branch',
|
|
174
|
+
message: 'Preparing repository and syncing default branch.',
|
|
175
|
+
});
|
|
176
|
+
let defaultBranch = '';
|
|
177
|
+
try {
|
|
178
|
+
defaultBranch = await resolveDefaultBranch(repositoryPath, {
|
|
179
|
+
override: defaultBranchOverride,
|
|
180
|
+
});
|
|
181
|
+
if (defaultBranch) {
|
|
182
|
+
prog?.logStep?.('sync-default-branch', `Resolved default branch: ${defaultBranch}`);
|
|
183
|
+
}
|
|
184
|
+
await executeGitCommandInRepo(repositoryPath, ['checkout', defaultBranch]);
|
|
185
|
+
prog?.logStep?.('sync-default-branch', `Checked out default branch ${defaultBranch}.`);
|
|
186
|
+
await executeGitCommandInRepo(repositoryPath, [
|
|
187
|
+
'pull',
|
|
188
|
+
'--ff-only',
|
|
189
|
+
'origin',
|
|
190
|
+
defaultBranch,
|
|
191
|
+
]);
|
|
192
|
+
prog?.completeStep?.('sync-default-branch', {
|
|
193
|
+
label: 'Sync default branch',
|
|
194
|
+
message: `Default branch ${defaultBranch} is up to date.`,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
const message = describeError(error);
|
|
199
|
+
prog?.failStep?.('sync-default-branch', {
|
|
200
|
+
label: 'Sync default branch',
|
|
201
|
+
message,
|
|
202
|
+
});
|
|
203
|
+
throw new Error(`Failed to create worktree: ${message}`);
|
|
204
|
+
}
|
|
205
|
+
prog?.startStep?.('create-worktree', {
|
|
206
|
+
label: 'Create worktree',
|
|
207
|
+
message: `Adding worktree at ${targetPath}`,
|
|
208
|
+
});
|
|
209
|
+
let worktreeAdded = false;
|
|
210
|
+
try {
|
|
211
|
+
const exists = await branchExists(repositoryPath, branchName);
|
|
212
|
+
const args = ['worktree', 'add'];
|
|
213
|
+
if (!exists) {
|
|
214
|
+
args.push('-b', branchName);
|
|
215
|
+
}
|
|
216
|
+
args.push(targetPath);
|
|
217
|
+
if (exists) {
|
|
218
|
+
args.push(branchName);
|
|
219
|
+
}
|
|
220
|
+
await executeGitCommandInRepo(repositoryPath, args);
|
|
221
|
+
worktreeAdded = true;
|
|
222
|
+
prog?.completeStep?.('create-worktree', {
|
|
223
|
+
label: 'Create worktree',
|
|
224
|
+
message: exists
|
|
225
|
+
? `Attached existing branch ${branchName} to ${targetPath}.`
|
|
226
|
+
: `Created new branch ${branchName} at ${targetPath}.`,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
const message = describeError(error);
|
|
231
|
+
prog?.failStep?.('create-worktree', {
|
|
232
|
+
label: 'Create worktree',
|
|
233
|
+
message,
|
|
234
|
+
});
|
|
235
|
+
throw new Error(`Failed to create worktree: ${message}`);
|
|
236
|
+
}
|
|
237
|
+
prog?.startStep?.('run-init-script', {
|
|
238
|
+
label: 'Run init script',
|
|
239
|
+
message: 'Checking for repository init command.',
|
|
240
|
+
});
|
|
241
|
+
try {
|
|
242
|
+
const initResult = await runRepositoryInitCommand(repoRoot, targetPath);
|
|
243
|
+
if (!initResult?.ran) {
|
|
244
|
+
prog?.skipStep?.('run-init-script', {
|
|
245
|
+
label: 'Run init script',
|
|
246
|
+
message: 'No init command configured for this repository.',
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
prog?.completeStep?.('run-init-script', {
|
|
251
|
+
label: 'Run init script',
|
|
252
|
+
message: 'Init command completed successfully.',
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
const message = describeError(error, 'Repository init command failed');
|
|
258
|
+
prog?.failStep?.('run-init-script', {
|
|
259
|
+
label: 'Run init script',
|
|
260
|
+
message,
|
|
261
|
+
});
|
|
262
|
+
if (worktreeAdded) {
|
|
263
|
+
try {
|
|
264
|
+
await executeGitCommandInRepo(repositoryPath, [
|
|
265
|
+
'worktree',
|
|
266
|
+
'remove',
|
|
267
|
+
'--force',
|
|
268
|
+
targetPath,
|
|
269
|
+
]);
|
|
270
|
+
}
|
|
271
|
+
catch (cleanupError) {
|
|
272
|
+
const cleanupErr = cleanupError;
|
|
273
|
+
console.warn(`[agentrix] Failed to clean up worktree at ${targetPath} after init command failure:`, cleanupErr?.message || cleanupError);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
throw new Error(`Failed to create worktree: ${message}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Gets the path to a worktree for a specific branch
|
|
281
|
+
* @param workdir - Work directory root
|
|
282
|
+
* @param org - Organization name
|
|
283
|
+
* @param repo - Repository name
|
|
284
|
+
* @param branch - Branch name
|
|
285
|
+
* @returns Worktree paths
|
|
286
|
+
*/
|
|
287
|
+
export async function getWorktreePath(workdir, org, repo, branch) {
|
|
288
|
+
const repositoryPath = path.join(workdir, org, repo, 'repository');
|
|
289
|
+
const worktrees = await listWorktrees(repositoryPath);
|
|
290
|
+
const match = worktrees.find((item) => item.branch === branch);
|
|
291
|
+
if (!match || !match.path) {
|
|
292
|
+
throw new Error(`Worktree for ${org}/${repo} branch ${branch} not found`);
|
|
293
|
+
}
|
|
294
|
+
return { repositoryPath, worktreePath: match.path };
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Removes a worktree
|
|
298
|
+
* @param workdir - Work directory root
|
|
299
|
+
* @param org - Organization name
|
|
300
|
+
* @param repo - Repository name
|
|
301
|
+
* @param branch - Branch name
|
|
302
|
+
*/
|
|
303
|
+
export async function removeWorktree(workdir, org, repo, branch) {
|
|
304
|
+
const branchName = normalizeBranchName(branch);
|
|
305
|
+
if (!branchName) {
|
|
306
|
+
throw new Error('Branch name cannot be empty');
|
|
307
|
+
}
|
|
308
|
+
if (branchName.toLowerCase() === 'main') {
|
|
309
|
+
throw new Error('Cannot remove the main worktree');
|
|
310
|
+
}
|
|
311
|
+
const repositoryPath = path.join(workdir, org, repo, 'repository');
|
|
312
|
+
const worktrees = await listWorktrees(repositoryPath);
|
|
313
|
+
const entry = worktrees.find((item) => item.branch === branchName);
|
|
314
|
+
if (!entry || !entry.path) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
try {
|
|
318
|
+
await executeGitCommandInRepo(repositoryPath, [
|
|
319
|
+
'worktree',
|
|
320
|
+
'remove',
|
|
321
|
+
'--force',
|
|
322
|
+
entry.path,
|
|
323
|
+
]);
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
const message = extractGitErrorMessage(error);
|
|
327
|
+
throw new Error(`Failed to remove worktree: ${message}`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=worktree-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-repository.js","sourceRoot":"","sources":["../../src/repositories/worktree-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/server/cookies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/server/cookies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AuthManager } from '../types/auth.js';
|
|
2
|
+
import type { RequestContext } from '../types/http.js';
|
|
3
|
+
export interface EventStreamConfig {
|
|
4
|
+
authManager: AuthManager;
|
|
5
|
+
workdir: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createEventStreamHandler({ authManager, workdir }: EventStreamConfig): (context: RequestContext) => Promise<void>;
|
|
8
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/server/events.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+CvD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,iBAAiB,IAQ1C,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAqFhF"}
|