forked from ProverCoderAI/docker-git
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommand-options.ts
More file actions
65 lines (63 loc) · 2.22 KB
/
command-options.ts
File metadata and controls
65 lines (63 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import { type ParseError } from "./domain.js"
// CHANGE: define reusable command option shape for create/clone/auth builders
// WHY: decouple pure command construction from CLI parsing locations
// QUOTE(ТЗ): "В lib ты оставляешь бизнес логику, а все CLI морду хранишь в app"
// REF: user-request-2026-02-02-cli-split
// SOURCE: n/a
// FORMAT THEOREM: forall o: RawOptions -> deterministic(o)
// PURITY: CORE
// EFFECT: Effect<never>
// INVARIANT: all fields are optional and represent raw user intent
// COMPLEXITY: O(1)
export interface RawOptions {
readonly repoUrl?: string
readonly repoRef?: string
readonly targetDir?: string
readonly sshPort?: string
readonly sshUser?: string
readonly containerName?: string
readonly serviceName?: string
readonly volumeName?: string
readonly secretsRoot?: string
readonly authorizedKeysPath?: string
readonly envGlobalPath?: string
readonly envProjectPath?: string
readonly codexAuthPath?: string
readonly codexHome?: string
readonly dockerNetworkMode?: string
readonly dockerSharedNetworkName?: string
readonly enableMcpPlaywright?: boolean
readonly archivePath?: string
readonly scrapMode?: string
readonly wipe?: boolean
readonly label?: string
readonly gitTokenLabel?: string
readonly codexTokenLabel?: string
readonly claudeTokenLabel?: string
readonly token?: string
readonly scopes?: string
readonly message?: string
readonly authWeb?: boolean
readonly outDir?: string
readonly projectDir?: string
readonly lines?: string
readonly includeDefault?: boolean
readonly up?: boolean
readonly openSsh?: boolean
readonly force?: boolean
readonly forceEnv?: boolean
readonly agentClaude?: boolean
readonly agentCodex?: boolean
readonly agentAuto?: boolean
}
// CHANGE: helper type alias for builder signatures that produce parse errors
// WHY: keep error typing consistent without CLI parsing
// QUOTE(ТЗ): "Ошибки типизированы"
// REF: user-request-2026-02-02-cli-split
// SOURCE: n/a
// FORMAT THEOREM: forall e: ParseError -> typed(e)
// PURITY: CORE
// EFFECT: Effect<never>
// INVARIANT: ParseError tags are preserved
// COMPLEXITY: O(1)
export type CommandBuildError = ParseError