@shepai/cli 1.5.0 → 1.6.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.
Files changed (110) hide show
  1. package/README.md +1 -1
  2. package/dist/src/application/ports/output/agent-validator.interface.d.ts +37 -0
  3. package/dist/src/application/ports/output/agent-validator.interface.d.ts.map +1 -0
  4. package/dist/src/application/ports/output/agent-validator.interface.js +11 -0
  5. package/dist/src/application/ports/output/index.d.ts +1 -0
  6. package/dist/src/application/ports/output/index.d.ts.map +1 -1
  7. package/dist/src/application/use-cases/agents/configure-agent.use-case.d.ts +47 -0
  8. package/dist/src/application/use-cases/agents/configure-agent.use-case.d.ts.map +1 -0
  9. package/dist/src/application/use-cases/agents/configure-agent.use-case.js +82 -0
  10. package/dist/src/application/use-cases/agents/validate-agent-auth.use-case.d.ts +31 -0
  11. package/dist/src/application/use-cases/agents/validate-agent-auth.use-case.d.ts.map +1 -0
  12. package/dist/src/application/use-cases/agents/validate-agent-auth.use-case.js +51 -0
  13. package/dist/src/domain/factories/settings-defaults.factory.d.ts +1 -0
  14. package/dist/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  15. package/dist/src/domain/factories/settings-defaults.factory.js +17 -0
  16. package/dist/src/domain/generated/output.d.ts +32 -0
  17. package/dist/src/domain/generated/output.d.ts.map +1 -1
  18. package/dist/src/domain/generated/output.js +13 -0
  19. package/dist/src/infrastructure/di/container.d.ts.map +1 -1
  20. package/dist/src/infrastructure/di/container.js +12 -0
  21. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -0
  22. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  23. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +10 -0
  24. package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  25. package/dist/src/infrastructure/persistence/sqlite/migrations.js +4 -1
  26. package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  27. package/dist/src/infrastructure/repositories/sqlite-settings.repository.js +11 -6
  28. package/dist/src/infrastructure/services/agents/agent-validator.service.d.ts +43 -0
  29. package/dist/src/infrastructure/services/agents/agent-validator.service.d.ts.map +1 -0
  30. package/dist/src/infrastructure/services/agents/agent-validator.service.js +62 -0
  31. package/dist/src/presentation/cli/commands/settings/agent.command.d.ts +16 -0
  32. package/dist/src/presentation/cli/commands/settings/agent.command.d.ts.map +1 -0
  33. package/dist/src/presentation/cli/commands/settings/agent.command.js +75 -0
  34. package/dist/src/presentation/cli/commands/settings/index.d.ts +1 -0
  35. package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
  36. package/dist/src/presentation/cli/commands/settings/index.js +4 -1
  37. package/dist/src/presentation/cli/commands/settings/show.command.d.ts.map +1 -1
  38. package/dist/src/presentation/cli/commands/settings/show.command.js +16 -18
  39. package/dist/src/presentation/cli/ui/index.d.ts +1 -1
  40. package/dist/src/presentation/cli/ui/index.d.ts.map +1 -1
  41. package/dist/src/presentation/cli/ui/output.d.ts +5 -4
  42. package/dist/src/presentation/cli/ui/output.d.ts.map +1 -1
  43. package/dist/src/presentation/cli/ui/output.js +6 -7
  44. package/dist/src/presentation/cli/ui/tables.d.ts +10 -5
  45. package/dist/src/presentation/cli/ui/tables.d.ts.map +1 -1
  46. package/dist/src/presentation/cli/ui/tables.js +62 -17
  47. package/dist/src/presentation/tui/index.d.ts +3 -0
  48. package/dist/src/presentation/tui/index.d.ts.map +1 -0
  49. package/dist/src/presentation/tui/index.js +2 -0
  50. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +48 -0
  51. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -0
  52. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +47 -0
  53. package/dist/src/presentation/tui/prompts/auth-method.prompt.d.ts +36 -0
  54. package/dist/src/presentation/tui/prompts/auth-method.prompt.d.ts.map +1 -0
  55. package/dist/src/presentation/tui/prompts/auth-method.prompt.js +32 -0
  56. package/dist/src/presentation/tui/themes/shep.theme.d.ts +23 -0
  57. package/dist/src/presentation/tui/themes/shep.theme.d.ts.map +1 -0
  58. package/dist/src/presentation/tui/themes/shep.theme.js +23 -0
  59. package/dist/src/presentation/tui/wizards/agent-config.wizard.d.ts +27 -0
  60. package/dist/src/presentation/tui/wizards/agent-config.wizard.d.ts.map +1 -0
  61. package/dist/src/presentation/tui/wizards/agent-config.wizard.js +38 -0
  62. package/dist/src/presentation/web/components/ui/button.d.ts +1 -1
  63. package/dist/tsconfig.build.tsbuildinfo +1 -1
  64. package/package.json +3 -2
  65. package/web/.next/BUILD_ID +1 -1
  66. package/web/.next/build-manifest.json +2 -2
  67. package/web/.next/cache/.previewinfo +1 -1
  68. package/web/.next/cache/.rscinfo +1 -1
  69. package/web/.next/cache/config.json +3 -3
  70. package/web/.next/fallback-build-manifest.json +2 -2
  71. package/web/.next/prerender-manifest.json +3 -3
  72. package/web/.next/server/app/_global-error.html +2 -2
  73. package/web/.next/server/app/_global-error.rsc +1 -1
  74. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  75. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  76. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  77. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  78. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  79. package/web/.next/server/app/_not-found.html +2 -2
  80. package/web/.next/server/app/_not-found.rsc +1 -1
  81. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  82. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  83. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  84. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  85. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  86. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  87. package/web/.next/server/app/index.html +2 -2
  88. package/web/.next/server/app/index.rsc +1 -1
  89. package/web/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  90. package/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
  91. package/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  92. package/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
  93. package/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  94. package/web/.next/server/app/version.html +2 -2
  95. package/web/.next/server/app/version.rsc +1 -1
  96. package/web/.next/server/app/version.segments/_full.segment.rsc +1 -1
  97. package/web/.next/server/app/version.segments/_head.segment.rsc +1 -1
  98. package/web/.next/server/app/version.segments/_index.segment.rsc +1 -1
  99. package/web/.next/server/app/version.segments/_tree.segment.rsc +1 -1
  100. package/web/.next/server/app/version.segments/version/__PAGE__.segment.rsc +1 -1
  101. package/web/.next/server/app/version.segments/version.segment.rsc +1 -1
  102. package/web/.next/server/pages/404.html +2 -2
  103. package/web/.next/server/pages/500.html +2 -2
  104. package/web/.next/server/server-reference-manifest.js +1 -1
  105. package/web/.next/server/server-reference-manifest.json +1 -1
  106. package/web/.next/trace +1 -1
  107. package/web/.next/trace-build +1 -1
  108. /package/web/.next/static/{Z9XCmAv7-DjAFCpNEPaUt → tXmFlRBlP8T8QaqOrcoHM}/_buildManifest.js +0 -0
  109. /package/web/.next/static/{Z9XCmAv7-DjAFCpNEPaUt → tXmFlRBlP8T8QaqOrcoHM}/_clientMiddlewareManifest.json +0 -0
  110. /package/web/.next/static/{Z9XCmAv7-DjAFCpNEPaUt → tXmFlRBlP8T8QaqOrcoHM}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -147,7 +147,7 @@ Uses **Repository Pattern** with SQLite:
147
147
  | Language | TypeScript |
148
148
  | Package Manager | pnpm |
149
149
  | CLI Framework | Commander |
150
- | TUI Framework | [OpenTUI](https://opentui.com/) |
150
+ | TUI Framework | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js) |
151
151
  | Web UI | Next.js 16 + React 19 + shadcn/ui ([@shepai/web](./src/presentation/web/)) |
152
152
  | Design System | Storybook |
153
153
  | Build Tool | Vite |
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Agent Validator Interface
3
+ *
4
+ * Output port for checking AI agent tool availability.
5
+ * Infrastructure layer provides concrete implementations.
6
+ *
7
+ * Following Clean Architecture:
8
+ * - Domain and Application layers depend on this interface
9
+ * - Infrastructure layer provides concrete implementations
10
+ */
11
+ import type { AgentType } from '../../../domain/generated/output.js';
12
+ /**
13
+ * Result of an agent availability check.
14
+ */
15
+ export interface AgentValidationResult {
16
+ available: boolean;
17
+ version?: string;
18
+ error?: string;
19
+ }
20
+ /**
21
+ * Port interface for validating agent tool availability.
22
+ *
23
+ * Implementations must:
24
+ * - Check if the specified agent binary is available on the system
25
+ * - Return version information when available
26
+ * - Return descriptive error messages when unavailable
27
+ */
28
+ export interface IAgentValidator {
29
+ /**
30
+ * Check if the specified agent tool is available on the system.
31
+ *
32
+ * @param agentType - The agent type to check
33
+ * @returns Validation result with availability status
34
+ */
35
+ isAvailable(agentType: AgentType): Promise<AgentValidationResult>;
36
+ }
37
+ //# sourceMappingURL=agent-validator.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-validator.interface.d.ts","sourceRoot":"","sources":["../../../../../src/application/ports/output/agent-validator.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnE"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Agent Validator Interface
3
+ *
4
+ * Output port for checking AI agent tool availability.
5
+ * Infrastructure layer provides concrete implementations.
6
+ *
7
+ * Following Clean Architecture:
8
+ * - Domain and Application layers depend on this interface
9
+ * - Infrastructure layer provides concrete implementations
10
+ */
11
+ export {};
@@ -5,4 +5,5 @@
5
5
  * Infrastructure layer provides concrete implementations.
6
6
  */
7
7
  export type { ISettingsRepository } from './settings.repository.interface.js';
8
+ export type { IAgentValidator, AgentValidationResult } from './agent-validator.interface.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Configure Agent Use Case
3
+ *
4
+ * Configures the AI coding agent for the Shep platform.
5
+ * Validates agent availability before persisting configuration.
6
+ *
7
+ * Business Rules:
8
+ * - Agent binary must be available on the system before configuring
9
+ * - Settings must exist before updating (must initialize first)
10
+ * - Token is optional and only included when provided
11
+ * - Returns updated settings after persistence
12
+ */
13
+ import type { Settings, AgentType, AgentAuthMethod } from '../../../domain/generated/output.js';
14
+ import type { ISettingsRepository } from '../../ports/output/settings.repository.interface.js';
15
+ import type { IAgentValidator } from '../../ports/output/agent-validator.interface.js';
16
+ /**
17
+ * Input for configuring an AI coding agent.
18
+ */
19
+ export interface ConfigureAgentInput {
20
+ type: AgentType;
21
+ authMethod: AgentAuthMethod;
22
+ token?: string;
23
+ }
24
+ /**
25
+ * Use case for configuring the AI coding agent.
26
+ *
27
+ * Algorithm:
28
+ * 1. Validate agent binary is available on the system
29
+ * 2. Load current settings from repository
30
+ * 3. Update agent configuration
31
+ * 4. Persist updated settings
32
+ * 5. Return updated settings
33
+ */
34
+ export declare class ConfigureAgentUseCase {
35
+ private readonly settingsRepository;
36
+ private readonly agentValidator;
37
+ constructor(settingsRepository: ISettingsRepository, agentValidator: IAgentValidator);
38
+ /**
39
+ * Execute the configure agent use case.
40
+ *
41
+ * @param input - Agent configuration input
42
+ * @returns Updated Settings with new agent configuration
43
+ * @throws Error if agent is not available or settings not initialized
44
+ */
45
+ execute(input: ConfigureAgentInput): Promise<Settings>;
46
+ }
47
+ //# sourceMappingURL=configure-agent.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-agent.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/application/use-cases/agents/configure-agent.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAFd,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,eAAe;IAGlD;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;CA+B7D"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Configure Agent Use Case
3
+ *
4
+ * Configures the AI coding agent for the Shep platform.
5
+ * Validates agent availability before persisting configuration.
6
+ *
7
+ * Business Rules:
8
+ * - Agent binary must be available on the system before configuring
9
+ * - Settings must exist before updating (must initialize first)
10
+ * - Token is optional and only included when provided
11
+ * - Returns updated settings after persistence
12
+ */
13
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
19
+ var __metadata = (this && this.__metadata) || function (k, v) {
20
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
21
+ };
22
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
23
+ return function (target, key) { decorator(target, key, paramIndex); }
24
+ };
25
+ import { injectable, inject } from 'tsyringe';
26
+ /**
27
+ * Use case for configuring the AI coding agent.
28
+ *
29
+ * Algorithm:
30
+ * 1. Validate agent binary is available on the system
31
+ * 2. Load current settings from repository
32
+ * 3. Update agent configuration
33
+ * 4. Persist updated settings
34
+ * 5. Return updated settings
35
+ */
36
+ let ConfigureAgentUseCase = class ConfigureAgentUseCase {
37
+ settingsRepository;
38
+ agentValidator;
39
+ constructor(settingsRepository, agentValidator) {
40
+ this.settingsRepository = settingsRepository;
41
+ this.agentValidator = agentValidator;
42
+ }
43
+ /**
44
+ * Execute the configure agent use case.
45
+ *
46
+ * @param input - Agent configuration input
47
+ * @returns Updated Settings with new agent configuration
48
+ * @throws Error if agent is not available or settings not initialized
49
+ */
50
+ async execute(input) {
51
+ // 1. Validate agent is available
52
+ const validation = await this.agentValidator.isAvailable(input.type);
53
+ if (!validation.available) {
54
+ throw new Error(`Agent "${input.type}" is not available: ${validation.error ?? 'binary not found'}`);
55
+ }
56
+ // 2. Load current settings
57
+ const settings = await this.settingsRepository.load();
58
+ if (!settings) {
59
+ throw new Error('Settings not found. Please run initialization first.');
60
+ }
61
+ // 3. Update agent config
62
+ const updatedSettings = {
63
+ ...settings,
64
+ agent: {
65
+ type: input.type,
66
+ authMethod: input.authMethod,
67
+ ...(input.token !== undefined && { token: input.token }),
68
+ },
69
+ updatedAt: new Date(),
70
+ };
71
+ // 4. Persist
72
+ await this.settingsRepository.update(updatedSettings);
73
+ return updatedSettings;
74
+ }
75
+ };
76
+ ConfigureAgentUseCase = __decorate([
77
+ injectable(),
78
+ __param(0, inject('ISettingsRepository')),
79
+ __param(1, inject('IAgentValidator')),
80
+ __metadata("design:paramtypes", [Object, Object])
81
+ ], ConfigureAgentUseCase);
82
+ export { ConfigureAgentUseCase };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Validate Agent Auth Use Case
3
+ *
4
+ * Validates that an AI coding agent is available and properly configured.
5
+ * Delegates to the IAgentValidator port for actual system checks.
6
+ *
7
+ * Business Rules:
8
+ * - Checks agent binary availability on the system
9
+ * - Returns validation result with version or error details
10
+ */
11
+ import type { AgentType } from '../../../domain/generated/output.js';
12
+ import type { IAgentValidator, AgentValidationResult } from '../../ports/output/agent-validator.interface.js';
13
+ /**
14
+ * Use case for validating agent availability.
15
+ *
16
+ * Algorithm:
17
+ * 1. Delegate to IAgentValidator to check binary availability
18
+ * 2. Return validation result
19
+ */
20
+ export declare class ValidateAgentAuthUseCase {
21
+ private readonly agentValidator;
22
+ constructor(agentValidator: IAgentValidator);
23
+ /**
24
+ * Execute the validate agent auth use case.
25
+ *
26
+ * @param agentType - The agent type to validate
27
+ * @returns Validation result with availability status
28
+ */
29
+ execute(agentType: AgentType): Promise<AgentValidationResult>;
30
+ }
31
+ //# sourceMappingURL=validate-agent-auth.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-agent-auth.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/application/use-cases/agents/validate-agent-auth.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,iDAAiD,CAAC;AAEzD;;;;;;GAMG;AACH,qBACa,wBAAwB;IAGjC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,eAAe;IAGlD;;;;;OAKG;IACG,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAGpE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Validate Agent Auth Use Case
3
+ *
4
+ * Validates that an AI coding agent is available and properly configured.
5
+ * Delegates to the IAgentValidator port for actual system checks.
6
+ *
7
+ * Business Rules:
8
+ * - Checks agent binary availability on the system
9
+ * - Returns validation result with version or error details
10
+ */
11
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
12
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
16
+ };
17
+ var __metadata = (this && this.__metadata) || function (k, v) {
18
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
19
+ };
20
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
21
+ return function (target, key) { decorator(target, key, paramIndex); }
22
+ };
23
+ import { injectable, inject } from 'tsyringe';
24
+ /**
25
+ * Use case for validating agent availability.
26
+ *
27
+ * Algorithm:
28
+ * 1. Delegate to IAgentValidator to check binary availability
29
+ * 2. Return validation result
30
+ */
31
+ let ValidateAgentAuthUseCase = class ValidateAgentAuthUseCase {
32
+ agentValidator;
33
+ constructor(agentValidator) {
34
+ this.agentValidator = agentValidator;
35
+ }
36
+ /**
37
+ * Execute the validate agent auth use case.
38
+ *
39
+ * @param agentType - The agent type to validate
40
+ * @returns Validation result with availability status
41
+ */
42
+ async execute(agentType) {
43
+ return this.agentValidator.isAvailable(agentType);
44
+ }
45
+ };
46
+ ValidateAgentAuthUseCase = __decorate([
47
+ injectable(),
48
+ __param(0, inject('IAgentValidator')),
49
+ __metadata("design:paramtypes", [Object])
50
+ ], ValidateAgentAuthUseCase);
51
+ export { ValidateAgentAuthUseCase };
@@ -22,6 +22,7 @@ import type { Settings } from '../generated/output.js';
22
22
  * - Auto-update: enabled
23
23
  * - Log level: info
24
24
  * - User profile: empty (all fields optional)
25
+ * - Agent: Claude Code with session auth
25
26
  *
26
27
  * @returns Settings entity with default values
27
28
  *
@@ -1 +1 @@
1
- {"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,wBAAwB,CAAC;AA0BhC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CA+BhD"}
1
+ {"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,wBAAwB,CAAC;AAuChC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAqChD"}
@@ -12,6 +12,7 @@
12
12
  * - Unique IDs and timestamps generated for each instance
13
13
  */
14
14
  import { randomUUID } from 'node:crypto';
15
+ import { AgentType, AgentAuthMethod } from '../generated/output.js';
15
16
  /**
16
17
  * Default AI model for all SDLC agents.
17
18
  * Provides balanced performance and cost for all workflow stages.
@@ -32,6 +33,16 @@ const DEFAULT_SHELL = 'bash';
32
33
  * Provides informational messages without overwhelming verbosity.
33
34
  */
34
35
  const DEFAULT_LOG_LEVEL = 'info';
36
+ /**
37
+ * Default AI coding agent.
38
+ * Claude Code is the only currently supported agent.
39
+ */
40
+ const DEFAULT_AGENT_TYPE = AgentType.ClaudeCode;
41
+ /**
42
+ * Default agent authentication method.
43
+ * Session auth uses the agent's built-in authentication.
44
+ */
45
+ const DEFAULT_AUTH_METHOD = AgentAuthMethod.Session;
35
46
  /**
36
47
  * Creates a Settings entity with sensible defaults.
37
48
  *
@@ -42,6 +53,7 @@ const DEFAULT_LOG_LEVEL = 'info';
42
53
  * - Auto-update: enabled
43
54
  * - Log level: info
44
55
  * - User profile: empty (all fields optional)
56
+ * - Agent: Claude Code with session auth
45
57
  *
46
58
  * @returns Settings entity with default values
47
59
  *
@@ -69,12 +81,17 @@ export function createDefaultSettings() {
69
81
  autoUpdate: true,
70
82
  logLevel: DEFAULT_LOG_LEVEL,
71
83
  };
84
+ const agent = {
85
+ type: DEFAULT_AGENT_TYPE,
86
+ authMethod: DEFAULT_AUTH_METHOD,
87
+ };
72
88
  return {
73
89
  id: randomUUID(),
74
90
  models,
75
91
  user,
76
92
  environment,
77
93
  system,
94
+ agent,
78
95
  createdAt: now,
79
96
  updatedAt: now,
80
97
  };
@@ -292,6 +292,34 @@ export type SystemConfig = {
292
292
  */
293
293
  logLevel: string;
294
294
  };
295
+ export declare enum AgentType {
296
+ ClaudeCode = "claude-code",
297
+ GeminiCli = "gemini-cli",
298
+ Aider = "aider",
299
+ Continue = "continue",
300
+ Cursor = "cursor"
301
+ }
302
+ export declare enum AgentAuthMethod {
303
+ Session = "session",
304
+ Token = "token"
305
+ }
306
+ /**
307
+ * AI coding agent configuration
308
+ */
309
+ export type AgentConfig = {
310
+ /**
311
+ * Selected AI coding agent
312
+ */
313
+ type: AgentType;
314
+ /**
315
+ * Authentication method for the agent
316
+ */
317
+ authMethod: AgentAuthMethod;
318
+ /**
319
+ * API token for token-based auth (optional)
320
+ */
321
+ token?: string;
322
+ };
295
323
  /**
296
324
  * Global Shep platform settings (singleton)
297
325
  */
@@ -312,6 +340,10 @@ export type Settings = BaseEntity & {
312
340
  * System-level parameters
313
341
  */
314
342
  system: SystemConfig;
343
+ /**
344
+ * AI coding agent selection and authentication
345
+ */
346
+ agent: AgentConfig;
315
347
  };
316
348
  export declare enum TaskState {
317
349
  Todo = "Todo",
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/domain/generated/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/domain/generated/output.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,19 @@ export var ResearchState;
34
34
  ResearchState["Running"] = "Running";
35
35
  ResearchState["Finished"] = "Finished";
36
36
  })(ResearchState || (ResearchState = {}));
37
+ export var AgentType;
38
+ (function (AgentType) {
39
+ AgentType["ClaudeCode"] = "claude-code";
40
+ AgentType["GeminiCli"] = "gemini-cli";
41
+ AgentType["Aider"] = "aider";
42
+ AgentType["Continue"] = "continue";
43
+ AgentType["Cursor"] = "cursor";
44
+ })(AgentType || (AgentType = {}));
45
+ export var AgentAuthMethod;
46
+ (function (AgentAuthMethod) {
47
+ AgentAuthMethod["Session"] = "session";
48
+ AgentAuthMethod["Token"] = "token";
49
+ })(AgentAuthMethod || (AgentAuthMethod = {}));
37
50
  export var TaskState;
38
51
  (function (TaskState) {
39
52
  TaskState["Todo"] = "Todo";
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAgBrC;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAwBrE;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAwBrC;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAgCrE;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -13,10 +13,15 @@
13
13
  import 'reflect-metadata';
14
14
  import { container } from 'tsyringe';
15
15
  import { SQLiteSettingsRepository } from '../repositories/sqlite-settings.repository.js';
16
+ import { AgentValidatorService } from '../services/agents/agent-validator.service.js';
17
+ import { promisify } from 'node:util';
18
+ import { execFile } from 'node:child_process';
16
19
  // Use cases
17
20
  import { InitializeSettingsUseCase } from '../../application/use-cases/settings/initialize-settings.use-case.js';
18
21
  import { LoadSettingsUseCase } from '../../application/use-cases/settings/load-settings.use-case.js';
19
22
  import { UpdateSettingsUseCase } from '../../application/use-cases/settings/update-settings.use-case.js';
23
+ import { ConfigureAgentUseCase } from '../../application/use-cases/agents/configure-agent.use-case.js';
24
+ import { ValidateAgentAuthUseCase } from '../../application/use-cases/agents/validate-agent-auth.use-case.js';
20
25
  // Database connection
21
26
  import { getSQLiteConnection } from '../persistence/sqlite/connection.js';
22
27
  import { runSQLiteMigrations } from '../persistence/sqlite/migrations.js';
@@ -40,10 +45,17 @@ export async function initializeContainer() {
40
45
  return new SQLiteSettingsRepository(database);
41
46
  },
42
47
  });
48
+ // Register validators
49
+ const execFileAsync = promisify(execFile);
50
+ container.register('IAgentValidator', {
51
+ useFactory: () => new AgentValidatorService(execFileAsync),
52
+ });
43
53
  // Register use cases (singletons for performance)
44
54
  container.registerSingleton(InitializeSettingsUseCase);
45
55
  container.registerSingleton(LoadSettingsUseCase);
46
56
  container.registerSingleton(UpdateSettingsUseCase);
57
+ container.registerSingleton(ConfigureAgentUseCase);
58
+ container.registerSingleton(ValidateAgentAuthUseCase);
47
59
  return container;
48
60
  }
49
61
  /**
@@ -30,6 +30,9 @@ export interface SettingsRow {
30
30
  env_shell_preference: string;
31
31
  sys_auto_update: number;
32
32
  sys_log_level: string;
33
+ agent_type: string;
34
+ agent_auth_method: string;
35
+ agent_token: string | null;
33
36
  }
34
37
  /**
35
38
  * Maps Settings domain object to database row.
@@ -1 +1 @@
1
- {"version":3,"file":"settings.mapper.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/persistence/sqlite/mappers/settings.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IAGxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CA4B1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ,CAkCvD"}
1
+ {"version":3,"file":"settings.mapper.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/persistence/sqlite/mappers/settings.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAGvE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IAGxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAiC1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ,CAyCvD"}
@@ -38,6 +38,10 @@ export function toDatabase(settings) {
38
38
  // SystemConfig
39
39
  sys_auto_update: settings.system.autoUpdate ? 1 : 0,
40
40
  sys_log_level: settings.system.logLevel,
41
+ // AgentConfig (optional token → NULL)
42
+ agent_type: settings.agent.type,
43
+ agent_auth_method: settings.agent.authMethod,
44
+ agent_token: settings.agent.token ?? null,
41
45
  };
42
46
  }
43
47
  /**
@@ -76,5 +80,11 @@ export function fromDatabase(row) {
76
80
  autoUpdate: row.sys_auto_update === 1,
77
81
  logLevel: row.sys_log_level,
78
82
  },
83
+ // AgentConfig (NULL → undefined for optional token)
84
+ agent: {
85
+ type: row.agent_type,
86
+ authMethod: row.agent_auth_method,
87
+ ...(row.agent_token !== null && { token: row.agent_token }),
88
+ },
79
89
  };
80
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/persistence/sqlite/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AA2B3C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9E"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/persistence/sqlite/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AA8B3C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9E"}
@@ -24,7 +24,10 @@ const MIGRATIONS_DIR = join(__dirname, 'migrations');
24
24
  /**
25
25
  * List of all migrations in order.
26
26
  */
27
- const MIGRATIONS = [{ version: 1, filename: '001_create_settings_table.sql' }];
27
+ const MIGRATIONS = [
28
+ { version: 1, filename: '001_create_settings_table.sql' },
29
+ { version: 2, filename: '002_add_agent_config.sql' },
30
+ ];
28
31
  /**
29
32
  * Runs all pending database migrations.
30
33
  * Safe to call multiple times (idempotent).
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-settings.repository.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/repositories/sqlite-settings.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iEAAiE,CAAC;AAC3G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOjE;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBtC;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAqChD"}
1
+ {"version":3,"file":"sqlite-settings.repository.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/repositories/sqlite-settings.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iEAAiE,CAAC;AAC3G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOjE;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCnD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBtC;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAwChD"}
@@ -47,13 +47,15 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
47
47
  model_analyze, model_requirements, model_plan, model_implement,
48
48
  user_name, user_email, user_github_username,
49
49
  env_default_editor, env_shell_preference,
50
- sys_auto_update, sys_log_level
50
+ sys_auto_update, sys_log_level,
51
+ agent_type, agent_auth_method, agent_token
51
52
  ) VALUES (
52
53
  @id, @created_at, @updated_at,
53
54
  @model_analyze, @model_requirements, @model_plan, @model_implement,
54
55
  @user_name, @user_email, @user_github_username,
55
56
  @env_default_editor, @env_shell_preference,
56
- @sys_auto_update, @sys_log_level
57
+ @sys_auto_update, @sys_log_level,
58
+ @agent_type, @agent_auth_method, @agent_token
57
59
  )
58
60
  `);
59
61
  // Execute with named parameters (safe from SQL injection)
@@ -65,10 +67,10 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
65
67
  * @returns The existing Settings or null if not initialized
66
68
  */
67
69
  async load() {
68
- // Prepare SELECT statement
69
- const stmt = this.db.prepare('SELECT * FROM settings WHERE id = ?');
70
+ // Query the singleton row (table enforces at most one row)
71
+ const stmt = this.db.prepare('SELECT * FROM settings LIMIT 1');
70
72
  // Execute query
71
- const row = stmt.get('singleton');
73
+ const row = stmt.get();
72
74
  // Return null if not found
73
75
  if (!row) {
74
76
  return null;
@@ -105,7 +107,10 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
105
107
  env_default_editor = @env_default_editor,
106
108
  env_shell_preference = @env_shell_preference,
107
109
  sys_auto_update = @sys_auto_update,
108
- sys_log_level = @sys_log_level
110
+ sys_log_level = @sys_log_level,
111
+ agent_type = @agent_type,
112
+ agent_auth_method = @agent_auth_method,
113
+ agent_token = @agent_token
109
114
  WHERE id = @id
110
115
  `);
111
116
  // Execute with named parameters (safe from SQL injection)