aia 0.5.0 → 0.5.2
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.
- checksums.yaml +4 -4
- data/.semver +1 -1
- data/CHANGELOG.md +9 -0
- data/README.md +7 -6
- data/justfile +12 -0
- data/lib/aia/aia_completion.bash +2 -2
- data/lib/aia/aia_completion.fish +4 -4
- data/lib/aia/aia_completion.zsh +2 -2
- data/lib/aia/cli.rb +2 -2
- data/lib/aia/main.rb +12 -1
- data/lib/aia/prompt.rb +6 -1
- data/lib/aia.rb +0 -1
- data/main.just +1 -0
- data/man/aia.1 +1 -1
- data/man/aia.1.md +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35bff72b31591194079e96f6e1dfab9dc76db90fda1f635e962377aeb77b5662
|
4
|
+
data.tar.gz: 60704012ba00cca73bdb6bb344a4207df189b97b5dc2d686a53215836c5d27d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7b3f5bb0bee380f3863bfe80599e8898e16143587d374db27f99d27a718433d9e6869da1a8f44207016185c0b28935b5c5edbaf45d939992ad58ecd65a68fa9
|
7
|
+
data.tar.gz: 3f4fd8f0707e55cfc2147090d55ff4c865eba8c14bb22bb07831b3e46653530c9800a8d69f148e978bcb763a91d47ac3b58c1f2ab19e387019d6537b9446059e
|
data/.semver
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
## [Unreleased]
|
2
|
+
|
3
|
+
## [0.5.2] 2024-01-13
|
4
|
+
- wrap response when its going to the terminal
|
5
|
+
|
6
|
+
## [0.5.1] 2024-01-12
|
7
|
+
- removed a wicked puts "loaded" statement
|
8
|
+
- fixed missed code when the options were changed to --out_file and --log_file
|
9
|
+
- fixed completion functions by updating $PROMPT_DIR to $AIA_PROMPTS_DIR to match the documentation.
|
10
|
+
|
2
11
|
## [0.5.0] 2024-01-05
|
3
12
|
- breaking changes:
|
4
13
|
- changed `--config` to `--config_file`
|
data/README.md
CHANGED
@@ -107,7 +107,8 @@ OPTIONS
|
|
107
107
|
Invokes an editor on the prompt file. You can make changes to the prompt file,
|
108
108
|
save it and the newly saved prompt will be processed by the backend.
|
109
109
|
|
110
|
-
--shell
|
110
|
+
--shell
|
111
|
+
This option tells aia to replace references to system environment variables in
|
111
112
|
the prompt with the value of the envar. envars are like $HOME and ${HOME} in
|
112
113
|
this example their occurance will be replaced by the value of ENV[‘HOME’].
|
113
114
|
Also the dynamic shell command in the pattern $(shell command) will be executed
|
@@ -138,7 +139,7 @@ OPTIONS
|
|
138
139
|
-b, --[no]-backend LLM TOOL
|
139
140
|
Specify the backend prompt resolver - default is mods
|
140
141
|
|
141
|
-
-c, --
|
142
|
+
-c, --config_file PATH_TO_CONFIG_FILE
|
142
143
|
Load Config File - default is nil
|
143
144
|
|
144
145
|
-d, --debug
|
@@ -153,7 +154,7 @@ OPTIONS
|
|
153
154
|
-h, --help
|
154
155
|
Show Usage - default is false
|
155
156
|
|
156
|
-
-l, --[no]-
|
157
|
+
-l, --[no]-log_file PATH_TO_LOG_FILE
|
157
158
|
Log FILEPATH - default is $HOME/.prompts/prompts.log
|
158
159
|
|
159
160
|
-m, --[no]-markdown
|
@@ -208,9 +209,9 @@ OpenAI ACCOUNT IS REQUIRED
|
|
208
209
|
|
209
210
|
USAGE NOTES
|
210
211
|
aia is designed for flexibility, allowing users to pass prompt ids and context files
|
211
|
-
as arguments. Some options change the behavior of the output, such as
|
212
|
-
specifying a file or --no-out_file for disabling file output in favor of standard
|
213
|
-
(STDPIT).
|
212
|
+
as arguments. Some options change the behavior of the output, such as --out_file for
|
213
|
+
specifying a file or --no-out_file for disabling file output in favor of standard
|
214
|
+
output (STDPIT).
|
214
215
|
|
215
216
|
The --completion option displays a script that enables prompt ID auto-completion for
|
216
217
|
bash, zsh, or fish shells. It’s crucial to integrate the script into the shell’s
|
data/justfile
CHANGED
@@ -69,6 +69,11 @@ project := "`basename $RR`"
|
|
69
69
|
backup_envrc.rb
|
70
70
|
|
71
71
|
|
72
|
+
# Delete all mods saved conversations
|
73
|
+
mods_delete_all:
|
74
|
+
mods -l | awk '{print $1}' | xargs -I {} mods -d {}
|
75
|
+
|
76
|
+
|
72
77
|
#################################################
|
73
78
|
## Private recipes
|
74
79
|
|
@@ -107,6 +112,7 @@ project := "`basename $RR`"
|
|
107
112
|
module_repo := "/Users/dewayne/sandbox/git_repos/repo.just"
|
108
113
|
module_gem := "/Users/dewayne/sandbox/git_repos/gem.just"
|
109
114
|
module_version := "/Users/dewayne/just_modules/version.just"
|
115
|
+
module_git := "/Users/dewayne/just_modules/git.just"
|
110
116
|
|
111
117
|
|
112
118
|
# Install Locally
|
@@ -180,3 +186,9 @@ alias inc := bump
|
|
180
186
|
@version what='' args='':
|
181
187
|
just -d . -f {{module_version}} {{what}} {{args}}
|
182
188
|
|
189
|
+
|
190
|
+
|
191
|
+
# Module git
|
192
|
+
@git what='' args='':
|
193
|
+
just -d . -f {{module_git}} {{what}} {{args}}
|
194
|
+
|
data/lib/aia/aia_completion.bash
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# the bash shell
|
4
4
|
#
|
5
5
|
# This script assumes that the system environment
|
6
|
-
# variable
|
6
|
+
# variable AIA_PROMPTS_DIR has been set correctly
|
7
7
|
|
8
8
|
_aia_completion() {
|
9
9
|
# The current word being completed
|
@@ -18,7 +18,7 @@ _aia_completion() {
|
|
18
18
|
# Check if we are currently completing the option that requires prompt IDs
|
19
19
|
if [[ "$prev_word" == "aia" ]]; then
|
20
20
|
# Change directory to the prompts directory
|
21
|
-
cd "$
|
21
|
+
cd "$AIA_PROMPTS_DIR" || return
|
22
22
|
|
23
23
|
# Generate a list of relative paths from the ~/.prompts directory (without .txt extension)
|
24
24
|
local files=($(find . -name "*.txt" -type f | sed 's|^\./||' | sed 's/\.txt$//'))
|
data/lib/aia/aia_completion.fish
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# Setup a prompt completion for use with the fish shell
|
3
3
|
#
|
4
4
|
# This script assumes that the system environment
|
5
|
-
# variable
|
5
|
+
# variable AIA_PROMPTS_DIR has been set correctly
|
6
6
|
|
7
7
|
function __fish_aia_complete
|
8
8
|
# Get the command line and current token
|
@@ -12,9 +12,9 @@ function __fish_aia_complete
|
|
12
12
|
# Check if we are currently completing the option that requires prompt IDs
|
13
13
|
if set -q cmd_line[2]
|
14
14
|
# Change directory to the prompts directory
|
15
|
-
if test -d $
|
16
|
-
pushd $
|
17
|
-
# Generate completions based on .txt files in the
|
15
|
+
if test -d $AIA_PROMPTS_DIR
|
16
|
+
pushd $AIA_PROMPTS_DIR
|
17
|
+
# Generate completions based on .txt files in the AIA_PROMPTS_DIR directory
|
18
18
|
for file in (find . -name "*.txt" -type f)
|
19
19
|
set file (string replace -r '\.txt$' '' -- $file)
|
20
20
|
set file (string replace -r '^\./' '' -- $file)
|
data/lib/aia/aia_completion.zsh
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# the zsh shell
|
4
4
|
#
|
5
5
|
# This script assumes that the system environment
|
6
|
-
# variable
|
6
|
+
# variable AIA_PROMPTS_DIR has been set correctly
|
7
7
|
|
8
8
|
_aia_completion() {
|
9
9
|
# The current word being completed
|
@@ -18,7 +18,7 @@ _aia_completion() {
|
|
18
18
|
# Check if we are currently completing the option that requires prompt IDs
|
19
19
|
if [[ "$prev_word" == "aia" ]]; then
|
20
20
|
# Change directory to the prompts directory
|
21
|
-
cd "$
|
21
|
+
cd "$AIA_PROMPTS_DIR" || return
|
22
22
|
|
23
23
|
# Generate a list of relative paths from the ~/.prompts directory (without .txt extension)
|
24
24
|
local files=($(find . -name "*.txt" -type f | sed 's|^\./||' | sed 's/\.txt$//'))
|
data/lib/aia/cli.rb
CHANGED
@@ -143,7 +143,7 @@ class AIA::Cli
|
|
143
143
|
config_file:[nil, "-c --config_file"],
|
144
144
|
prompts_dir:["~/.prompts", "-p --prompts"],
|
145
145
|
out_file: [STDOUT, "-o --out_file --no-out_file"],
|
146
|
-
log_file: ["~/.prompts/_prompts.log", "-l --
|
146
|
+
log_file: ["~/.prompts/_prompts.log", "-l --log_file --no-log_file"],
|
147
147
|
#
|
148
148
|
backend: ['mods', "-b --be --backend --no-backend"],
|
149
149
|
}
|
@@ -236,7 +236,7 @@ class AIA::Cli
|
|
236
236
|
arguments.slice!(index,1)
|
237
237
|
else
|
238
238
|
if switch.include?('-no-')
|
239
|
-
AIA.config[option_sym] = switch.include?('
|
239
|
+
AIA.config[option_sym] = switch.include?('out_file') ? STDOUT : nil
|
240
240
|
arguments.slice!(index,1)
|
241
241
|
else
|
242
242
|
AIA.config[option_sym] = arguments[index + 1]
|
data/lib/aia/main.rb
CHANGED
@@ -56,6 +56,11 @@ class AIA::Main
|
|
56
56
|
|
57
57
|
# Function to prompt the user with a question using reline
|
58
58
|
def ask_question_with_reline(prompt)
|
59
|
+
if prompt.start_with?("\n")
|
60
|
+
puts
|
61
|
+
prompt = prompt[1..]
|
62
|
+
end
|
63
|
+
|
59
64
|
answer = Reline.readline(prompt)
|
60
65
|
Reline::HISTORY.push(answer) unless answer.nil? || Reline::HISTORY.to_a.include?(answer)
|
61
66
|
answer
|
@@ -109,6 +114,12 @@ class AIA::Main
|
|
109
114
|
|
110
115
|
result = backend.run
|
111
116
|
|
117
|
+
if STDOUT == AIA.config.out_file
|
118
|
+
result = result.wrap(indent: 2)
|
119
|
+
end
|
120
|
+
|
121
|
+
# TODO: consider using glow to render markdown to
|
122
|
+
# terminal `brew install glow`
|
112
123
|
AIA.config.out_file.write result
|
113
124
|
|
114
125
|
logger.prompt_result(@prompt, result)
|
@@ -139,7 +150,7 @@ class AIA::Main
|
|
139
150
|
|
140
151
|
speak response
|
141
152
|
|
142
|
-
puts "\nResponse
|
153
|
+
puts "\nResponse:\n#{response.wrap(indent: 2)}"
|
143
154
|
logger.info "Response: #{backend.run}"
|
144
155
|
|
145
156
|
# TODO: Allow user to enter a directive; loop
|
data/lib/aia/prompt.rb
CHANGED
@@ -150,6 +150,11 @@ class AIA::Prompt
|
|
150
150
|
|
151
151
|
# Function to prompt the user with a question using reline
|
152
152
|
def ask_question_with_reline(prompt)
|
153
|
+
if prompt.start_with?("\n")
|
154
|
+
puts
|
155
|
+
prompt = prompt[1..]
|
156
|
+
end
|
157
|
+
|
153
158
|
answer = Reline.readline(prompt)
|
154
159
|
Reline::HISTORY.push(answer) unless answer.nil? || Reline::HISTORY.to_a.include?(answer)
|
155
160
|
answer
|
@@ -178,7 +183,7 @@ class AIA::Prompt
|
|
178
183
|
if default&.empty?
|
179
184
|
user_prompt = "\n-=> "
|
180
185
|
else
|
181
|
-
user_prompt = "\n(#{default}) -=>"
|
186
|
+
user_prompt = "\n(#{default}) -=> "
|
182
187
|
end
|
183
188
|
|
184
189
|
a_string = ask_question_with_reline(user_prompt)
|
data/lib/aia.rb
CHANGED
data/main.just
CHANGED
@@ -14,6 +14,7 @@ with ~/.justfile
|
|
14
14
|
module repo /Users/dewayne/sandbox/git_repos/repo.just
|
15
15
|
module gem /Users/dewayne/sandbox/git_repos/gem.just
|
16
16
|
module version /Users/dewayne/just_modules/version.just
|
17
|
+
module git /Users/dewayne/just_modules/git.just
|
17
18
|
|
18
19
|
|
19
20
|
# Install Locally
|
data/man/aia.1
CHANGED
@@ -68,7 +68,7 @@ Use Fuzzy Matching when searching for a prompt \- default is false
|
|
68
68
|
\fB\-h\fR, \fB\-\-help\fR
|
69
69
|
Show Usage \- default is false
|
70
70
|
.TP
|
71
|
-
\fB\-l\fR, \fB\-\-\[lB]no\[rB]\-log\fR \fIPATH\[ru]TO\[ru]LOG\[ru]FILE\fP
|
71
|
+
\fB\-l\fR, \fB\-\-\[lB]no\[rB]\-log\[ru]file\fR \fIPATH\[ru]TO\[ru]LOG\[ru]FILE\fP
|
72
72
|
Log FILEPATH \- default is \[Do]HOME\[sl]\.prompts\[sl]prompts\.log
|
73
73
|
.TP
|
74
74
|
\fB\-m\fR, \fB\-\-\[lB]no\[rB]\-markdown\fR
|
data/man/aia.1.md
CHANGED
@@ -73,7 +73,7 @@ The aia command-line tool is an interface for interacting with an AI model backe
|
|
73
73
|
`-h`, `--help`
|
74
74
|
: Show Usage - default is false
|
75
75
|
|
76
|
-
`-l`, `--[no]-
|
76
|
+
`-l`, `--[no]-log_file` *PATH_TO_LOG_FILE*
|
77
77
|
: Log FILEPATH - default is $HOME/.prompts/prompts.log
|
78
78
|
|
79
79
|
`-m`, `--[no]-markdown`
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dewayne VanHoozer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|