@shepai/cli 1.2.0 → 1.3.0
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 +29 -12
- package/dist/eslint.config.d.mts +3 -0
- package/dist/eslint.config.d.mts.map +1 -0
- package/dist/eslint.config.mjs +188 -0
- package/dist/src/application/ports/output/index.d.ts +8 -0
- package/dist/src/application/ports/output/index.d.ts.map +1 -0
- package/dist/src/application/ports/output/index.js +7 -0
- package/dist/src/application/ports/output/settings.repository.interface.d.ts +43 -0
- package/dist/src/application/ports/output/settings.repository.interface.d.ts.map +1 -0
- package/dist/src/application/ports/output/settings.repository.interface.js +11 -0
- package/dist/src/application/use-cases/settings/index.d.ts +9 -0
- package/dist/src/application/use-cases/settings/index.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/index.js +8 -0
- package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts +33 -0
- package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/initialize-settings.use-case.js +63 -0
- package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts +33 -0
- package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/load-settings.use-case.js +57 -0
- package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts +33 -0
- package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/update-settings.use-case.js +56 -0
- package/dist/src/domain/factories/index.d.ts +7 -0
- package/dist/src/domain/factories/index.d.ts.map +1 -0
- package/dist/src/domain/factories/index.js +6 -0
- package/dist/src/domain/factories/settings-defaults.factory.d.ts +36 -0
- package/dist/src/domain/factories/settings-defaults.factory.d.ts.map +1 -0
- package/dist/src/domain/factories/settings-defaults.factory.js +81 -0
- package/dist/src/domain/generated/output.d.ts +717 -0
- package/dist/src/domain/generated/output.d.ts.map +1 -0
- package/dist/src/domain/generated/output.js +93 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/infrastructure/di/container.d.ts +27 -0
- package/dist/src/infrastructure/di/container.d.ts.map +1 -0
- package/dist/src/infrastructure/di/container.js +53 -0
- package/dist/src/infrastructure/persistence/sqlite/connection.d.ts +39 -0
- package/dist/src/infrastructure/persistence/sqlite/connection.d.ts.map +1 -0
- package/dist/src/infrastructure/persistence/sqlite/connection.js +76 -0
- package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +50 -0
- package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -0
- package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +80 -0
- package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts +31 -0
- package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -0
- package/dist/src/infrastructure/persistence/sqlite/migrations.js +66 -0
- package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts +40 -0
- package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -0
- package/dist/src/infrastructure/repositories/sqlite-settings.repository.js +123 -0
- package/dist/src/infrastructure/services/filesystem/shep-directory.service.d.ts +41 -0
- package/dist/src/infrastructure/services/filesystem/shep-directory.service.d.ts.map +1 -0
- package/dist/src/infrastructure/services/filesystem/shep-directory.service.js +64 -0
- package/dist/src/infrastructure/services/settings.service.d.ts +50 -0
- package/dist/src/infrastructure/services/settings.service.d.ts.map +1 -0
- package/dist/src/infrastructure/services/settings.service.js +67 -0
- package/dist/src/infrastructure/services/version.service.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/version.command.d.ts.map +1 -0
- package/dist/{presentation → src/presentation}/cli/index.d.ts +1 -1
- package/dist/src/presentation/cli/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/index.js +86 -0
- package/dist/src/presentation/cli/ui/colors.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/formatters.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/messages.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/symbols.d.ts.map +1 -0
- package/dist/src/presentation/web/app/layout.d.ts +7 -0
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -0
- package/dist/src/presentation/web/app/layout.js +21 -0
- package/dist/src/presentation/web/app/not-found.d.ts +2 -0
- package/dist/src/presentation/web/app/not-found.d.ts.map +1 -0
- package/dist/src/presentation/web/app/not-found.js +4 -0
- package/dist/src/presentation/web/app/page.d.ts +2 -0
- package/dist/src/presentation/web/app/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/page.js +6 -0
- package/dist/src/presentation/web/app/version/page.d.ts +2 -0
- package/dist/src/presentation/web/app/version/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/version/page.js +16 -0
- package/dist/src/presentation/web/components/features/index.d.ts +2 -0
- package/dist/src/presentation/web/components/features/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/index.js +2 -0
- package/dist/src/presentation/web/components/features/theme-toggle/index.d.ts +2 -0
- package/dist/src/presentation/web/components/features/theme-toggle/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/index.js +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.d.ts +2 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.js +19 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.d.ts +8 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.js +17 -0
- package/dist/src/presentation/web/components/ui/accordion.d.ts +8 -0
- package/dist/src/presentation/web/components/ui/accordion.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/accordion.js +14 -0
- package/dist/src/presentation/web/components/ui/accordion.stories.d.ts +29 -0
- package/dist/src/presentation/web/components/ui/accordion.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/accordion.stories.js +35 -0
- package/dist/src/presentation/web/components/ui/alert.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/alert.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/alert.js +22 -0
- package/dist/src/presentation/web/components/ui/alert.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/alert.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/alert.stories.js +30 -0
- package/dist/src/presentation/web/components/ui/badge.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/badge.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/badge.js +20 -0
- package/dist/src/presentation/web/components/ui/badge.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/ui/badge.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/badge.stories.js +44 -0
- package/dist/src/presentation/web/components/ui/button.d.ts +12 -0
- package/dist/src/presentation/web/components/ui/button.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/button.js +33 -0
- package/dist/src/presentation/web/components/ui/button.stories.d.ts +17 -0
- package/dist/src/presentation/web/components/ui/button.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/button.stories.js +84 -0
- package/dist/src/presentation/web/components/ui/card.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/card.js +16 -0
- package/dist/src/presentation/web/components/ui/card.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/card.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/card.stories.js +24 -0
- package/dist/src/presentation/web/components/ui/dialog.d.ts +20 -0
- package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/dialog.js +23 -0
- package/dist/src/presentation/web/components/ui/dialog.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/dialog.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/dialog.stories.js +23 -0
- package/dist/src/presentation/web/components/ui/index.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/index.js +14 -0
- package/dist/src/presentation/web/components/ui/input.d.ts +4 -0
- package/dist/src/presentation/web/components/ui/input.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/input.js +8 -0
- package/dist/src/presentation/web/components/ui/input.stories.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/input.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/input.stories.js +55 -0
- package/dist/src/presentation/web/components/ui/label.d.ts +6 -0
- package/dist/src/presentation/web/components/ui/label.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/label.js +10 -0
- package/dist/src/presentation/web/components/ui/label.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/label.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/label.stories.js +23 -0
- package/dist/src/presentation/web/components/ui/popover.d.ts +8 -0
- package/dist/src/presentation/web/components/ui/popover.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/popover.js +11 -0
- package/dist/src/presentation/web/components/ui/popover.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/popover.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/popover.stories.js +26 -0
- package/dist/src/presentation/web/components/ui/select.d.ts +14 -0
- package/dist/src/presentation/web/components/ui/select.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/select.js +26 -0
- package/dist/src/presentation/web/components/ui/select.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/select.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/select.stories.js +23 -0
- package/dist/src/presentation/web/components/ui/sonner.d.ts +5 -0
- package/dist/src/presentation/web/components/ui/sonner.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/sonner.js +14 -0
- package/dist/src/presentation/web/components/ui/sonner.stories.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/sonner.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/sonner.stories.js +51 -0
- package/dist/src/presentation/web/components/ui/tabs.d.ts +8 -0
- package/dist/src/presentation/web/components/ui/tabs.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/tabs.js +13 -0
- package/dist/src/presentation/web/components/ui/tabs.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/tabs.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/tabs.stories.js +23 -0
- package/dist/src/presentation/web/eslint.config.d.mts +3 -0
- package/dist/src/presentation/web/eslint.config.d.mts.map +1 -0
- package/dist/src/presentation/web/eslint.config.mjs +15 -0
- package/dist/src/presentation/web/hooks/useTheme.d.ts +12 -0
- package/dist/src/presentation/web/hooks/useTheme.d.ts.map +1 -0
- package/dist/src/presentation/web/hooks/useTheme.js +73 -0
- package/dist/src/presentation/web/lib/utils.d.ts +11 -0
- package/dist/src/presentation/web/lib/utils.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/utils.js +13 -0
- package/dist/src/presentation/web/next.config.d.ts +4 -0
- package/dist/src/presentation/web/next.config.d.ts.map +1 -0
- package/dist/src/presentation/web/next.config.js +9 -0
- package/dist/src/presentation/web/postcss.config.d.mts +4 -0
- package/dist/src/presentation/web/postcss.config.d.mts.map +1 -0
- package/dist/src/presentation/web/postcss.config.mjs +8 -0
- package/dist/src/presentation/web/types/theme.d.ts +12 -0
- package/dist/src/presentation/web/types/theme.d.ts.map +1 -0
- package/dist/src/presentation/web/types/theme.js +5 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +60 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/infrastructure/services/version.service.d.ts.map +0 -1
- package/dist/presentation/cli/commands/version.command.d.ts.map +0 -1
- package/dist/presentation/cli/index.d.ts.map +0 -1
- package/dist/presentation/cli/index.js +0 -48
- package/dist/presentation/cli/ui/colors.d.ts.map +0 -1
- package/dist/presentation/cli/ui/formatters.d.ts.map +0 -1
- package/dist/presentation/cli/ui/index.d.ts.map +0 -1
- package/dist/presentation/cli/ui/messages.d.ts.map +0 -1
- package/dist/presentation/cli/ui/symbols.d.ts.map +0 -1
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
- /package/dist/{index.js → src/index.js} +0 -0
- /package/dist/{infrastructure → src/infrastructure}/services/version.service.d.ts +0 -0
- /package/dist/{infrastructure → src/infrastructure}/services/version.service.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/commands/version.command.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/commands/version.command.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/colors.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/colors.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/formatters.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/formatters.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/index.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/index.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/messages.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/messages.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/symbols.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/symbols.js +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update Settings Use Case
|
|
3
|
+
*
|
|
4
|
+
* Updates existing settings in the database.
|
|
5
|
+
* Validates input and persists changes.
|
|
6
|
+
*
|
|
7
|
+
* Business Rules:
|
|
8
|
+
* - Settings must exist before updating
|
|
9
|
+
* - All fields are updatable
|
|
10
|
+
* - Returns updated settings after persistence
|
|
11
|
+
*/
|
|
12
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
13
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
|
+
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;
|
|
16
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
+
};
|
|
18
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
20
|
+
};
|
|
21
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
22
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
23
|
+
};
|
|
24
|
+
import { injectable, inject } from 'tsyringe';
|
|
25
|
+
/**
|
|
26
|
+
* Use case for updating existing settings.
|
|
27
|
+
*
|
|
28
|
+
* Algorithm:
|
|
29
|
+
* 1. Receive updated settings
|
|
30
|
+
* 2. Persist to repository
|
|
31
|
+
* 3. Return updated settings
|
|
32
|
+
*/
|
|
33
|
+
let UpdateSettingsUseCase = class UpdateSettingsUseCase {
|
|
34
|
+
settingsRepository;
|
|
35
|
+
constructor(settingsRepository) {
|
|
36
|
+
this.settingsRepository = settingsRepository;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Execute the update settings use case.
|
|
40
|
+
*
|
|
41
|
+
* @param settings - The updated settings to persist
|
|
42
|
+
* @returns The updated Settings
|
|
43
|
+
*/
|
|
44
|
+
async execute(settings) {
|
|
45
|
+
// Persist updated settings
|
|
46
|
+
await this.settingsRepository.update(settings);
|
|
47
|
+
// Return the updated settings
|
|
48
|
+
return settings;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
UpdateSettingsUseCase = __decorate([
|
|
52
|
+
injectable(),
|
|
53
|
+
__param(0, inject('ISettingsRepository')),
|
|
54
|
+
__metadata("design:paramtypes", [Object])
|
|
55
|
+
], UpdateSettingsUseCase);
|
|
56
|
+
export { UpdateSettingsUseCase };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/factories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Defaults Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory function for creating Settings entities with sensible defaults
|
|
5
|
+
* matching the TypeSpec model specification.
|
|
6
|
+
*
|
|
7
|
+
* This factory ensures:
|
|
8
|
+
* - All model agents default to claude-sonnet-4-5
|
|
9
|
+
* - User profile fields are optional (empty object)
|
|
10
|
+
* - Editor defaults to vscode, shell to bash
|
|
11
|
+
* - Auto-update enabled, log level set to info
|
|
12
|
+
* - Unique IDs and timestamps generated for each instance
|
|
13
|
+
*/
|
|
14
|
+
import type { Settings } from '../generated/output.js';
|
|
15
|
+
/**
|
|
16
|
+
* Creates a Settings entity with sensible defaults.
|
|
17
|
+
*
|
|
18
|
+
* Default values match the TypeSpec model specification:
|
|
19
|
+
* - All AI models: claude-sonnet-4-5
|
|
20
|
+
* - Editor: vscode
|
|
21
|
+
* - Shell: bash
|
|
22
|
+
* - Auto-update: enabled
|
|
23
|
+
* - Log level: info
|
|
24
|
+
* - User profile: empty (all fields optional)
|
|
25
|
+
*
|
|
26
|
+
* @returns Settings entity with default values
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const settings = createDefaultSettings();
|
|
31
|
+
* console.log(settings.models.analyze); // "claude-sonnet-4-5"
|
|
32
|
+
* console.log(settings.environment.defaultEditor); // "vscode"
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function createDefaultSettings(): Settings;
|
|
36
|
+
//# sourceMappingURL=settings-defaults.factory.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Defaults Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory function for creating Settings entities with sensible defaults
|
|
5
|
+
* matching the TypeSpec model specification.
|
|
6
|
+
*
|
|
7
|
+
* This factory ensures:
|
|
8
|
+
* - All model agents default to claude-sonnet-4-5
|
|
9
|
+
* - User profile fields are optional (empty object)
|
|
10
|
+
* - Editor defaults to vscode, shell to bash
|
|
11
|
+
* - Auto-update enabled, log level set to info
|
|
12
|
+
* - Unique IDs and timestamps generated for each instance
|
|
13
|
+
*/
|
|
14
|
+
import { randomUUID } from 'node:crypto';
|
|
15
|
+
/**
|
|
16
|
+
* Default AI model for all SDLC agents.
|
|
17
|
+
* Provides balanced performance and cost for all workflow stages.
|
|
18
|
+
*/
|
|
19
|
+
const DEFAULT_MODEL = 'claude-sonnet-4-5';
|
|
20
|
+
/**
|
|
21
|
+
* Default code editor preference.
|
|
22
|
+
* Most widely used editor in the development community.
|
|
23
|
+
*/
|
|
24
|
+
const DEFAULT_EDITOR = 'vscode';
|
|
25
|
+
/**
|
|
26
|
+
* Default shell preference.
|
|
27
|
+
* Most common shell across Unix-like systems.
|
|
28
|
+
*/
|
|
29
|
+
const DEFAULT_SHELL = 'bash';
|
|
30
|
+
/**
|
|
31
|
+
* Default log level for CLI output.
|
|
32
|
+
* Provides informational messages without overwhelming verbosity.
|
|
33
|
+
*/
|
|
34
|
+
const DEFAULT_LOG_LEVEL = 'info';
|
|
35
|
+
/**
|
|
36
|
+
* Creates a Settings entity with sensible defaults.
|
|
37
|
+
*
|
|
38
|
+
* Default values match the TypeSpec model specification:
|
|
39
|
+
* - All AI models: claude-sonnet-4-5
|
|
40
|
+
* - Editor: vscode
|
|
41
|
+
* - Shell: bash
|
|
42
|
+
* - Auto-update: enabled
|
|
43
|
+
* - Log level: info
|
|
44
|
+
* - User profile: empty (all fields optional)
|
|
45
|
+
*
|
|
46
|
+
* @returns Settings entity with default values
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const settings = createDefaultSettings();
|
|
51
|
+
* console.log(settings.models.analyze); // "claude-sonnet-4-5"
|
|
52
|
+
* console.log(settings.environment.defaultEditor); // "vscode"
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function createDefaultSettings() {
|
|
56
|
+
const now = new Date();
|
|
57
|
+
const models = {
|
|
58
|
+
analyze: DEFAULT_MODEL,
|
|
59
|
+
requirements: DEFAULT_MODEL,
|
|
60
|
+
plan: DEFAULT_MODEL,
|
|
61
|
+
implement: DEFAULT_MODEL,
|
|
62
|
+
};
|
|
63
|
+
const user = {};
|
|
64
|
+
const environment = {
|
|
65
|
+
defaultEditor: DEFAULT_EDITOR,
|
|
66
|
+
shellPreference: DEFAULT_SHELL,
|
|
67
|
+
};
|
|
68
|
+
const system = {
|
|
69
|
+
autoUpdate: true,
|
|
70
|
+
logLevel: DEFAULT_LOG_LEVEL,
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
id: randomUUID(),
|
|
74
|
+
models,
|
|
75
|
+
user,
|
|
76
|
+
environment,
|
|
77
|
+
system,
|
|
78
|
+
createdAt: now,
|
|
79
|
+
updatedAt: now,
|
|
80
|
+
};
|
|
81
|
+
}
|