{ pkgs, ... }: let configDir = "$HOME/.config/aichat"; config = '' clients: - type: ollama api_base: https://ollama.giugl.io models: - name: mistral:7b-instruct-v0.3-fp16 max_input_tokens: 32000 max_output_tokens: 8192 - name: llama3:8b-instruct-fp16 max_input_tokens: 8192 max_output_tokens: 8192 - name: phi3:14b-medium-4k-instruct-q8_0 max_input_tokens: 128000 max_output_tokens: 8192 - name: pino-coder max_input_tokens: 28000 max_output_tokens: 8192 - type: openai api_key: null api_base: https://api.openai.com/v1 ''; roles = '' - name: commitmessage prompt: |- Your task is to generate a commit message for a given git diff. The commit message should follow the Conventional Commits specification, which includes a type, optional scope, and a brief description. The message should be concise, unambiguous, and capture the technical details of the changes made. Commit Convention Format: (): [optional body] [optional footer(s)] Common types include: - feat: A new feature - fix: A bug fix - docs: Documentation changes - style: Code style/formatting changes (not affecting code logic) - refactor: Code changes that neither fix a bug nor add a feature - test: Adding or modifying tests - chore: Changes to build process or auxiliary tools - perf: Performance improvements Here are some examples of well-formatted commit messages: ### INPUT : diff --git a/src/utils/date-formatter.js b/src/utils/date-formatter.js index 2345678..3456789 100644 --- a/src/utils/date-formatter.js +++ b/src/utils/date-formatter.js @@ -5,7 +5,7 @@ export function formatDate(date) { const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); - return `$${year}-$${month}-$${day}`; + return `$${year}/$${month}/$${day}`; } ### OUTPUT: fix(date-formatter): modified `formatDate()` to use '/' instead of '-' as the separator ### INPUT: diff --git a/src/app.js b/src/app.js index 83d2e7a..b6a1c3f 100644 --- a/src/app.js +++ b/src/app.js @@ -10,6 +10,10 @@ function initialize() { setupEventListeners(); } +// TODO: add other listeners +// https://github.com/user/project/issue/123 +function setupEventListeners() { + document.getElementById('submit').addEventListener('click', handleSubmit); + document.getElementById('reset').addEventListener('click', handleReset); +} + function handleSubmit(event) { event.preventDefault(); const data = new FormData(event.target); @@ -20,6 +24,10 @@ function handleSubmit(event) { console.log('Form submitted:', data); } +function handleReset(event) { + event.preventDefault(); + event.target.form.reset(); + console.log('Form reset'); } ### OUTPUT: feat(app): implement form event listeners - Added `setupEventListeners()` to handle form interactions - Implemented `handleReset()` for form reset functionality - Added event listeners for submit and reset buttons - Track TODO comment for future listener additions (https://github.com/user/project/issue/123) ### INPUT: diff --git a/pkg/database/client.go b/pkg/database/client.go index 003740f..6fc4861 100644 --- a/pkg/database/client.go +++ b/pkg/database/client.go @@ -24,9 +24,12 @@ var ErrNilDatabaseClient = errors.New("database client is nil after setup") // InitDB initializes the database with the given application name and optional dbpath for SQLite. func InitDB(appName string, dbpath ...string) error { - cfg := config.New() + var ( + psqlReadReplica string + err error + ) - var err error + cfg := config.New() // Set up a new logger with your required configuration. newLogger := logger.New( @@ -38,9 +41,8 @@ func InitDB(appName string, dbpath ...string) error { }, ) - // Load PostgreSQL configurations - var psqlReadReplica string psqlSource, err := cfg.Load(config.PSQL.String()) + if err != nil { log.Println("PSQL not set, using SQLite instead.") } else { ### OUTPUT: style(database/client): group together `psqlReadReplica` and `err` in function's prologue ### INPUT: diff --git a/pkg/khttp/client.go b/pkg/khttp/client.go index a53064c..3aff938 100644 --- a/pkg/khttp/client.go +++ b/pkg/khttp/client.go @@ -11,14 +11,17 @@ import ( "github.pie.apple.com/kerosene/Core/structs" ) +// TODO: https://github.pie.apple.com/Kerosene/Core/issues/43 +// feat: Centralise and remove over use of os.Environment const ( - // Environment variables and file names. authFilesDirEnvVar = "WHISPER_AUTH_FILES_DIR" keyName = "decrypted_key.pem" certName = "cert.pem" ) // Error for missing environment variable. +// TODO: refactor: move errors into centralized errors.go files +// https://github.pie.apple.com/Kerosene/Core/issues/57 var errMissingEnvironmentVariable = fmt.Errorf("%s environment variable is not set", authFilesDirEnvVar) // AuthConfig holds authentication file paths. @@ -31,9 +34,11 @@ type AuthConfig struct { // NewAuthConfig creates an AuthConfig from environment variables. func NewAuthConfig() (*AuthConfig, error) { dir := os.Getenv(authFilesDirEnvVar) + if dir == "" { return nil, errMissingEnvironmentVariable } + return &AuthConfig{ Dir: dir, CertFile: filepath.Join(dir, certName), @@ -211,7 +216,7 @@ func setupMTLSOnlyTransport(certData string, keyData string) (*http.Transport, e // Make scheme and Auth Type separate and load from DB. func parseProxyURL(scheme string, routing structs.Routing) (*url.URL, error) { - return url.Parse(fmt.Sprintf("%s://%s:%s", scheme, routing.Proxy, routing.Port)) + return url.Parse(fmt.Sprintf("%s://%s:%d", scheme, routing.Proxy, routing.Port)) } // loadX509KeyPair loads an X509 key pair from the specified cert and key files. ### OUTPUT: fix/refactor(khttp/client): use correct format specifier for and add TODOs - Parsed proxy URL using `fmt.Sprintf()` with correct format specifier for port - Added TODOs to centralize errors and remove overuse of `os.Environment` (#43, #57) - name: createpr prompt: |- You are an AI language model tasked with generating a comprehensive Pull Request (PR) description. Your goal is to create a clear and informative PR description that summarizes the changes and highlights any important details or considerations. You are given a git diff and a list of commits - use this context to generate the PR message. # Requirements for the PR Description: 1. **Title:** Provide a concise and descriptive title for the PR. 2. **Summary:** Summarize the overall purpose and scope of the changes. 3. **Details of Changes:** Describe the key changes made, referencing specific files or functions if necessary. 4. **Impact:** Discuss any potential impact on the system, including backward compatibility, performance implications, and any new dependencies. ### INPUT: ``` diff --git a/src/app.js b/src/app.js index 83d2e7a..b6a1c3f 100644 --- a/src/app.js +++ b/src/app.js @@ -10,6 +10,10 @@ function initialize() { setupEventListeners(); } +// TODO: add other listeners +// https://github.com/user/project/issue/123 +function setupEventListeners() { + document.getElementById('submit').addEventListener('click', handleSubmit); + document.getElementById('reset').addEventListener('click', handleReset); +} + function handleSubmit(event) { event.preventDefault(); const data = new FormData(event.target); @@ -20,6 +24,10 @@ function handleSubmit(event) { console.log('Form submitted:', data); } +function handleReset(event) { + event.preventDefault(); + event.target.form.reset(); + console.log('Form reset'); } ``` ### OUTPUT: **Title:** feat(app): add event listeners for submit and reset buttons **Summary:** This PR adds event listeners for the submit and reset buttons in the application. It introduces a new function to set up these event listeners and implements a handler for the reset button. **Details of Changes:** 1. **src/app.js:** - Added a new function `setupEventListeners` to attach click event listeners to the submit and reset buttons. - Implemented the `handleReset` function to reset the form and log the reset action. - Included a TODO comment to add other listeners, referencing issue [#123](https://github.com/user/project/issue/123). **Impact:** - **Backward Compatibility:** The changes are backward compatible. - **Performance Implications:** Minimal performance impact due to the addition of event listeners. - **New Dependencies:** No new dependencies introduced. ''; in { home = { sessionVariables = { AICHAT_CONFIG_DIR = configDir; }; packages = [ pkgs.unstablePkgs.aichat ]; file.".config/aichat/config.yaml".text = config; file.".config/aichat/roles.yaml".text = roles; }; }