aia 0.9.9 → 0.9.11
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/.version +1 -1
- data/CHANGELOG.md +14 -2
- data/COMMITS.md +1 -9
- data/README.md +19 -5
- data/justfile +3 -25
- data/lib/aia/directive_processor.rb +3 -2
- data/main.just +3 -25
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a34bf2866403e69478bb78e4bbb058b25d4997d7c08518434c881122ec545320
|
4
|
+
data.tar.gz: 2d070d34381d69a46f097ce91a296c1c1c13c9b88e97fe2b770f3e82bce94854
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4739a6f3cdb1bdd8ffbbb7c50a9c9b5ab4ba9efd85785f4cbc0bb9dde0f9e9b997d6f7b5ed803d58b51a51360ed8b29900874508c086d53dd5132d82e8fbd395
|
7
|
+
data.tar.gz: de057ce93495a66aac57d531a47bf49c492cb20f043df7afc1ba35270420e2c852998022e10c8dcea386496d24bfc16eeeb9e184edec86b75e79253f40f8f16a
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.11
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,20 @@
|
|
1
1
|
# Changelog
|
2
2
|
## [Unreleased]
|
3
3
|
|
4
|
-
### [0.9.
|
4
|
+
### [0.9.12] WIP
|
5
|
+
- TODO: focus on log file consistency using Logger
|
6
|
+
|
7
|
+
## Released
|
8
|
+
|
9
|
+
### [0.9.11] 2025-07-31
|
10
|
+
- added a cost per 1 million input tokens to available_models query output
|
11
|
+
- updated ruby_llm to version 1.4.0
|
12
|
+
- updated all other gem dependencies to their latest versions
|
13
|
+
|
14
|
+
### [0.9.10] 2025-07-18
|
15
|
+
- updated ruby_llm-mcp to version 0.6.1 which solves problems with MCP tools not being installed
|
16
|
+
|
17
|
+
### [0.9.9] 2025-07-10
|
5
18
|
- refactored the Session and Config classes into more testable method_missing
|
6
19
|
- updated the test suire for both the Session and Config classes
|
7
20
|
- added support for MCP servers coming into AIA via the shared_tools gem
|
@@ -11,7 +24,6 @@
|
|
11
24
|
- //model directive now dumps full model details
|
12
25
|
- //available_models now has context window size and capabilities for each model returned
|
13
26
|
|
14
|
-
## Released
|
15
27
|
|
16
28
|
### [0.9.8] 2025-06-25
|
17
29
|
- fixing an issue with pipelined prompts
|
data/COMMITS.md
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
<!-- ~/COMMITS.md gem install aigcm -->
|
2
2
|
|
3
|
-
The JIRA ticket reference should be the first thing mentioned in the commit message.
|
4
|
-
It is useually the basename of the repository root. The repository root is
|
5
|
-
found in the system environment variable $RR.
|
6
|
-
|
7
3
|
A Git commit message includes:
|
8
4
|
|
9
|
-
1. **Subject line**:
|
5
|
+
1. **Subject line**: is 50 characters or less, imperative mood.
|
10
6
|
- Example: `Fix bug in user login`
|
11
7
|
|
12
8
|
2. **Body** (optional): Explain the "why" and "how", wrapped at 72 characters.
|
@@ -17,7 +13,3 @@ A Git commit message includes:
|
|
17
13
|
</example>
|
18
14
|
|
19
15
|
The body should also include bullet points for each change made.
|
20
|
-
|
21
|
-
3. **Footer** (optional): Reference issues or breaking changes.
|
22
|
-
<example> Closes #123 </example>
|
23
|
-
<example> BREAKING CHANGE: API changed </example>
|
data/README.md
CHANGED
@@ -6,9 +6,15 @@
|
|
6
6
|
|
7
7
|
AIA is a command-line utility that facilitates interaction with AI models through dynamic prompt management. It automates the management of pre-compositional prompts and executes generative AI commands with enhanced features including embedded directives, shell integration, embedded Ruby, history management, interactive chat, and prompt workflows.
|
8
8
|
|
9
|
-
AIA leverages the
|
9
|
+
AIA leverages the following Ruby gems:
|
10
10
|
|
11
|
-
**
|
11
|
+
- **[prompt_manager](https://github.com/madbomber/prompt_manager)** to manage prompts,
|
12
|
+
- **[ruby_llm](https://rubyllm.com)** to access LLM providers,
|
13
|
+
- **[ruby_llm-mcp](https://www.rubyllm-mcp.com)** for Model Context Protocol (MCP) support,
|
14
|
+
- and can use the **[shared_tools gem](https://github.com/madbomber/shared_tools)** which provides a collection of common ready-to-use MCP clients and functions for use with LLMs that support tools.
|
15
|
+
|
16
|
+
**Wiki**: [Checkout the AIA Wiki](https://github.com/MadBomber/aia/wiki)<br />
|
17
|
+
**BLOG**: [Series on AIA](https://madbomber.github.io/blog/engineering/AIA-Philosophy/)
|
12
18
|
|
13
19
|
## Quick Start
|
14
20
|
|
@@ -74,6 +80,7 @@ AIA leverages the [prompt_manager gem](https://github.com/madbomber/prompt_manag
|
|
74
80
|
- [Prompt Directives](#prompt-directives)
|
75
81
|
- [Configuration Directive Examples](#configuration-directive-examples)
|
76
82
|
- [Dynamic Content Examples](#dynamic-content-examples)
|
83
|
+
- [Custom Directive Examples](#custom-directive-examples)
|
77
84
|
- [Shell Integration](#shell-integration)
|
78
85
|
- [Embedded Ruby (ERB)](#embedded-ruby-erb)
|
79
86
|
- [Prompt Sequences](#prompt-sequences)
|
@@ -112,6 +119,7 @@ AIA leverages the [prompt_manager gem](https://github.com/madbomber/prompt_manag
|
|
112
119
|
- [Areas for Improvement](#areas-for-improvement)
|
113
120
|
- [Roadmap](#roadmap)
|
114
121
|
- [License](#license)
|
122
|
+
- [Articles on AIA](#articles-on-aia)
|
115
123
|
|
116
124
|
<!-- Tocer[finish]: Auto-generated, don't remove. -->
|
117
125
|
|
@@ -849,11 +857,17 @@ rake test
|
|
849
857
|
## Roadmap
|
850
858
|
|
851
859
|
- **Enhanced Search**: Restore full-text search within prompt files
|
852
|
-
- **Model Context Protocol**: Continue integration with ruby_llm gem
|
853
860
|
- **UI Improvements**: Better configuration management for fzf and rg tools
|
854
|
-
- **
|
855
|
-
- **Security**: Enhanced sandboxing for shell command execution
|
861
|
+
- **Logging**: Enhanced logging using Ruby Logger class; integration with RubyLLM and RubyLLM::MCP logging
|
856
862
|
|
857
863
|
## License
|
858
864
|
|
859
865
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
866
|
+
|
867
|
+
## Articles on AIA
|
868
|
+
|
869
|
+
1. [The Philosophy of Prompt-Driven Development with AIA](https://madbomber.github.io/blog/engineering/AIA-Philosophy/)
|
870
|
+
2. [Mastering AIA's Batch Mode: From Simple Questions to Complex Workflows](https://madbomber.github.io/blog/engineering/AIA-Batch-Mode/)
|
871
|
+
3. [Building AI Workflows: AIA's Prompt Sequencing and Pipelines](https://madbomber.github.io/blog/engineering/AIA-Workflows/)
|
872
|
+
4. [Interactive AI Sessions: Mastering AIA's Chat Mode](https://madbomber.github.io/blog/engineering/AIA-Chat-Mode/)
|
873
|
+
5. [From Dynamic Prompts to Advanced Tool Integration](https://madbomber.github.io/blog/engineering/AIA-Advanced-Tool-Integration/)
|
data/justfile
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
# aia/main.just
|
2
2
|
#
|
3
|
-
# Support man pages with ...
|
4
|
-
# gem install kramdown-man versionaire
|
5
|
-
#
|
6
3
|
|
7
4
|
RR := env_var('RR')
|
8
5
|
version_filepath := env_var('RR') + "/.version"
|
9
|
-
man_filepath := env_var('RR') + "/man/aia.1.md"
|
10
6
|
|
11
7
|
# with ~/.justfile
|
12
8
|
|
@@ -135,7 +131,7 @@ module_git := "/Users/dewayne/just_modules/git.just"
|
|
135
131
|
|
136
132
|
|
137
133
|
# Install Locally
|
138
|
-
install: update_toc_in_readmen
|
134
|
+
install: update_toc_in_readmen flay
|
139
135
|
rake install
|
140
136
|
|
141
137
|
|
@@ -144,10 +140,6 @@ update_toc_in_readmen:
|
|
144
140
|
rake toc
|
145
141
|
|
146
142
|
|
147
|
-
# Preview man page
|
148
|
-
preview_man_page:
|
149
|
-
kramdown-man {{RR}}/man/aia.1.md
|
150
|
-
|
151
143
|
# Static Code Check
|
152
144
|
flay: coverage
|
153
145
|
flay {{RR}}
|
@@ -161,20 +153,10 @@ coverage: test
|
|
161
153
|
# Run Unit Tests
|
162
154
|
test:
|
163
155
|
rake test
|
164
|
-
|
165
|
-
|
166
|
-
# View man page
|
167
|
-
view_man_page: create_man_page
|
168
|
-
man {{RR}}/man/aia.1
|
169
|
-
|
170
|
-
|
171
|
-
# Create man page
|
172
|
-
create_man_page:
|
173
|
-
rake man
|
174
156
|
|
175
157
|
|
176
158
|
# Generate the Documentation
|
177
|
-
gen_doc:
|
159
|
+
gen_doc: update_toc_in_readmen
|
178
160
|
|
179
161
|
|
180
162
|
##########################################
|
@@ -206,11 +188,7 @@ alias inc := bump
|
|
206
188
|
File.open("{{version_filepath}}", 'w')
|
207
189
|
.write(new_version.to_s + "\n")
|
208
190
|
#
|
209
|
-
|
210
|
-
#
|
211
|
-
File.write({{man_filepath}}, content)
|
212
|
-
#
|
213
|
-
`git add {{version_filepath}} {{man_filepath}}`
|
191
|
+
`git add {{version_filepath}}`
|
214
192
|
|
215
193
|
|
216
194
|
# Module repo
|
@@ -347,7 +347,7 @@ module AIA
|
|
347
347
|
puts header + ':'
|
348
348
|
puts
|
349
349
|
|
350
|
-
q1 = query.select{|q| q.include?('_to_')}.map{|q| ':'==q[0] ? q[1...] : q}
|
350
|
+
q1 = query.select{|q| q.include?('_to_')} # SMELL: ?? .map{|q| ':'==q[0] ? q[1...] : q}
|
351
351
|
q2 = query.reject{|q| q.include?('_to_')}
|
352
352
|
|
353
353
|
counter = 0
|
@@ -358,7 +358,8 @@ module AIA
|
|
358
358
|
inputs = llm.modalities.input.join(',')
|
359
359
|
outputs = llm.modalities.output.join(',')
|
360
360
|
mode = "#{inputs} to #{outputs}"
|
361
|
-
|
361
|
+
in_1m = llm.pricing.text_tokens.standard.to_h[:input_per_million]
|
362
|
+
entry = "- #{llm.id} (#{llm.provider}) in: $#{in_1m} cw: #{cw} mode: #{mode} caps: #{caps}"
|
362
363
|
|
363
364
|
if query.nil? || query.empty?
|
364
365
|
counter += 1
|
data/main.just
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
# aia/main.just
|
2
2
|
#
|
3
|
-
# Support man pages with ...
|
4
|
-
# gem install kramdown-man versionaire
|
5
|
-
#
|
6
3
|
|
7
4
|
RR := env_var('RR')
|
8
5
|
version_filepath := env_var('RR') + "/.version"
|
9
|
-
man_filepath := env_var('RR') + "/man/aia.1.md"
|
10
6
|
|
11
7
|
with ~/.justfile
|
12
8
|
|
@@ -20,7 +16,7 @@ module git /Users/dewayne/just_modules/git.just
|
|
20
16
|
|
21
17
|
|
22
18
|
# Install Locally
|
23
|
-
install: update_toc_in_readmen
|
19
|
+
install: update_toc_in_readmen flay
|
24
20
|
rake install
|
25
21
|
|
26
22
|
|
@@ -29,10 +25,6 @@ update_toc_in_readmen:
|
|
29
25
|
rake toc
|
30
26
|
|
31
27
|
|
32
|
-
# Preview man page
|
33
|
-
preview_man_page:
|
34
|
-
kramdown-man {{RR}}/man/aia.1.md
|
35
|
-
|
36
28
|
# Static Code Check
|
37
29
|
flay: coverage
|
38
30
|
flay {{RR}}
|
@@ -46,20 +38,10 @@ coverage: test
|
|
46
38
|
# Run Unit Tests
|
47
39
|
test:
|
48
40
|
rake test
|
49
|
-
|
50
|
-
|
51
|
-
# View man page
|
52
|
-
view_man_page: create_man_page
|
53
|
-
man {{RR}}/man/aia.1
|
54
|
-
|
55
|
-
|
56
|
-
# Create man page
|
57
|
-
create_man_page:
|
58
|
-
rake man
|
59
41
|
|
60
42
|
|
61
43
|
# Generate the Documentation
|
62
|
-
gen_doc:
|
44
|
+
gen_doc: update_toc_in_readmen
|
63
45
|
|
64
46
|
|
65
47
|
##########################################
|
@@ -91,8 +73,4 @@ alias inc := bump
|
|
91
73
|
File.open("{{version_filepath}}", 'w')
|
92
74
|
.write(new_version.to_s + "\n")
|
93
75
|
#
|
94
|
-
|
95
|
-
#
|
96
|
-
File.write({{man_filepath}}, content)
|
97
|
-
#
|
98
|
-
`git add {{version_filepath}} {{man_filepath}}`
|
76
|
+
`git add {{version_filepath}}`
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dewayne VanHoozer
|
@@ -85,14 +85,14 @@ dependencies:
|
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
88
|
+
version: 0.6.1
|
89
89
|
type: :runtime
|
90
90
|
prerelease: false
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
95
|
+
version: 0.6.1
|
96
96
|
- !ruby/object:Gem::Dependency
|
97
97
|
name: reline
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -391,7 +391,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
391
|
- !ruby/object:Gem::Version
|
392
392
|
version: '0'
|
393
393
|
requirements: []
|
394
|
-
rubygems_version: 3.
|
394
|
+
rubygems_version: 3.7.1
|
395
395
|
specification_version: 4
|
396
396
|
summary: 'AI Assistant: dynamic prompts, shell & Ruby integration, and seamless chat
|
397
397
|
workflows.'
|