aia 1.1.1 → 2.0.0.0.pre.beta2

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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +9 -1
  3. data/.loki +11 -0
  4. data/.reek.yml +160 -0
  5. data/.rubocop.yml +116 -0
  6. data/.rubocop_strict.yml +15 -0
  7. data/.version +1 -1
  8. data/CHANGELOG.md +269 -55
  9. data/IMPLEMENTATION_PLAN.md +506 -0
  10. data/README.md +267 -239
  11. data/Rakefile +5 -5
  12. data/_typos.toml +10 -0
  13. data/aia.gemspec +92 -0
  14. data/architecture_review.md +314 -0
  15. data/bin/aia +16 -0
  16. data/config/aia.yml +13 -0
  17. data/docs/AGENTS.md +40 -0
  18. data/docs/advanced-prompting.md +67 -3
  19. data/docs/cli-reference.md +312 -56
  20. data/docs/configuration.md +130 -19
  21. data/docs/contributing.md +56 -2
  22. data/docs/directives-reference.md +593 -78
  23. data/docs/faq.md +85 -3
  24. data/docs/guides/available-models.md +1 -1
  25. data/docs/guides/basic-usage.md +6 -6
  26. data/docs/guides/chat.md +40 -16
  27. data/docs/guides/crew.md +239 -0
  28. data/docs/guides/executable-prompts.md +1 -1
  29. data/docs/guides/index.md +1 -0
  30. data/docs/guides/models.md +15 -0
  31. data/docs/index.md +29 -2
  32. data/docs/installation.md +44 -17
  33. data/docs/mcp-integration.md +40 -0
  34. data/docs/prompt_management.md +85 -86
  35. data/docs/security.md +47 -0
  36. data/docs/special_projects_guide.md +386 -0
  37. data/docs/tools-and-mcp-examples.md +23 -0
  38. data/docs/workflows-and-pipelines.md +84 -7
  39. data/examples/.gitignore +1 -0
  40. data/examples/00_setup_aia.sh +27 -44
  41. data/examples/11_multi_model.sh +4 -14
  42. data/examples/12_token_usage.sh +3 -12
  43. data/examples/18_tools.sh +10 -2
  44. data/examples/22_chat_mode.sh +0 -10
  45. data/examples/23_verify.sh +139 -0
  46. data/examples/24_decompose.sh +139 -0
  47. data/examples/25_spawn.sh +139 -0
  48. data/examples/26_debate.sh +97 -0
  49. data/examples/27_mention_routing.sh +157 -0
  50. data/examples/28_model_switching.sh +106 -0
  51. data/examples/29_agent_harness.sh +177 -0
  52. data/examples/README.md +65 -0
  53. data/examples/advanced_multi_robot_capabilities_without_examples.md +106 -0
  54. data/examples/aia_config.yml +1 -1
  55. data/examples/aia_config_orchestrator.yml +45 -0
  56. data/examples/common.sh +18 -6
  57. data/examples/context/tech_stack.md +2 -2
  58. data/examples/prompts_dir/roles/orchestrator.md +21 -0
  59. data/examples/requirements/sinatra_taskflow_app.md +139 -0
  60. data/examples/rules/01_classify_ruby.rb +16 -0
  61. data/examples/rules/02_prefer_claude_for_code.rb +19 -0
  62. data/examples/rules/03_gate_prompt_length.rb +19 -0
  63. data/examples/rules/04_tool_selection.rb +41 -0
  64. data/examples/rules/README.md +30 -0
  65. data/examples/run_all.sh +48 -15
  66. data/examples/tools/word_count_tool.rb +1 -1
  67. data/lib/AGENTS.md +57 -0
  68. data/lib/aia/chat_loop.rb +263 -167
  69. data/lib/aia/config/cli_parser.rb +217 -145
  70. data/lib/aia/config/defaults.yml +62 -33
  71. data/lib/aia/config/mcp_parser.rb +52 -51
  72. data/lib/aia/config/model_spec.rb +34 -2
  73. data/lib/aia/config/validator.rb +171 -216
  74. data/lib/aia/config.rb +111 -145
  75. data/lib/aia/content_extractor.rb +155 -0
  76. data/lib/aia/cost_calculator.rb +39 -0
  77. data/lib/aia/crew.rb +164 -0
  78. data/lib/aia/debate_handler.rb +174 -0
  79. data/lib/aia/delegate_handler.rb +116 -0
  80. data/lib/aia/directive.rb +43 -26
  81. data/lib/aia/directive_processor.rb +16 -7
  82. data/lib/aia/directives/configuration_directives.rb +214 -60
  83. data/lib/aia/directives/context_directives.rb +67 -52
  84. data/lib/aia/directives/execution_directives.rb +141 -4
  85. data/lib/aia/directives/model_directives.rb +163 -141
  86. data/lib/aia/directives/trakflow_directives.rb +62 -0
  87. data/lib/aia/directives/utility_directives.rb +227 -30
  88. data/lib/aia/directives/web_and_file_directives.rb +126 -77
  89. data/lib/aia/errors.rb +15 -0
  90. data/lib/aia/fact_asserter.rb +27 -0
  91. data/lib/aia/fzf.rb +9 -31
  92. data/lib/aia/handler_context.rb +17 -0
  93. data/lib/aia/handler_protocol.rb +19 -0
  94. data/lib/aia/history_transfer.rb +55 -0
  95. data/lib/aia/input_collector.rb +3 -3
  96. data/lib/aia/layered_orchestrator.rb +471 -0
  97. data/lib/aia/logger.rb +45 -25
  98. data/lib/aia/mcp_config_normalizer.rb +35 -0
  99. data/lib/aia/mcp_connection_manager.rb +315 -0
  100. data/lib/aia/mcp_discovery.rb +44 -0
  101. data/lib/aia/mcp_grouper.rb +33 -0
  102. data/lib/aia/mcp_server_config.rb +30 -0
  103. data/lib/aia/mcp_utility.rb +60 -0
  104. data/lib/aia/mention_router.rb +217 -0
  105. data/lib/aia/model_alias_registry.rb +97 -0
  106. data/lib/aia/model_switch_handler.rb +100 -0
  107. data/lib/aia/network_builder.rb +160 -0
  108. data/lib/aia/network_memory_manager.rb +55 -0
  109. data/lib/aia/patches/ruby_llm_streaming_error.rb +43 -0
  110. data/lib/aia/patches/ruby_llm_tool_error.rb +96 -0
  111. data/lib/aia/pipeline_orchestrator.rb +272 -0
  112. data/lib/aia/plugin_loader.rb +170 -0
  113. data/lib/aia/plugin_monitor.rb +211 -0
  114. data/lib/aia/prompt_decomposer.rb +159 -0
  115. data/lib/aia/prompt_handler.rb +56 -82
  116. data/lib/aia/robot_builder.rb +51 -0
  117. data/lib/aia/robot_factory.rb +338 -0
  118. data/lib/aia/robot_namer.rb +110 -0
  119. data/lib/aia/session.rb +87 -17
  120. data/lib/aia/session_tracker.rb +207 -0
  121. data/lib/aia/similarity_scorer.rb +41 -0
  122. data/lib/aia/skill_utils.rb +105 -1
  123. data/lib/aia/spawn_handler.rb +129 -0
  124. data/lib/aia/spawn_spec_parser.rb +65 -0
  125. data/lib/aia/special_mode_handler.rb +322 -0
  126. data/lib/aia/speech.rb +67 -0
  127. data/lib/aia/startup_coordinator.rb +151 -0
  128. data/lib/aia/streaming_runner.rb +172 -0
  129. data/lib/aia/system_prompt_assembler.rb +92 -0
  130. data/lib/aia/task_coordinator.rb +207 -0
  131. data/lib/aia/task_decomposer.rb +57 -0
  132. data/lib/aia/task_executor.rb +51 -0
  133. data/lib/aia/tfidf_math.rb +27 -0
  134. data/lib/aia/timing.rb +15 -0
  135. data/lib/aia/tool_filter/tfidf.rb +116 -0
  136. data/lib/aia/tool_filter/wordnet_expander.rb +127 -0
  137. data/lib/aia/tool_filter.rb +83 -0
  138. data/lib/aia/tool_filter_registry.rb +30 -0
  139. data/lib/aia/tool_filter_strategy.rb +146 -0
  140. data/lib/aia/tool_introspection.rb +17 -0
  141. data/lib/aia/tool_loader.rb +216 -0
  142. data/lib/aia/tool_utility.rb +30 -0
  143. data/lib/aia/tools/delegate_to_foreman_tool.rb +70 -0
  144. data/lib/aia/tools/recruit_robot_tool.rb +60 -0
  145. data/lib/aia/tools/reskill_robot_tool.rb +44 -0
  146. data/lib/aia/tools/task_board_tool.rb +115 -0
  147. data/lib/aia/trakflow_bridge.rb +175 -0
  148. data/lib/aia/turn_state.rb +95 -0
  149. data/lib/aia/ui_presenter.rb +182 -206
  150. data/lib/aia/utility.rb +136 -87
  151. data/lib/aia/{history_manager.rb → variable_input_collector.rb} +9 -9
  152. data/lib/aia/verification_network.rb +57 -0
  153. data/lib/aia.rb +124 -63
  154. data/mkdocs.yml +1 -0
  155. metadata +187 -58
  156. data/justfile +0 -215
  157. data/lib/aia/adapter/chat_execution.rb +0 -242
  158. data/lib/aia/adapter/error_handler.rb +0 -68
  159. data/lib/aia/adapter/gem_activator.rb +0 -57
  160. data/lib/aia/adapter/mcp_connector.rb +0 -274
  161. data/lib/aia/adapter/modality_handlers.rb +0 -167
  162. data/lib/aia/adapter/model_registry.rb +0 -81
  163. data/lib/aia/adapter/multi_model_chat.rb +0 -218
  164. data/lib/aia/adapter/provider_configurator.rb +0 -59
  165. data/lib/aia/adapter/tool_filter.rb +0 -85
  166. data/lib/aia/adapter/tool_loader.rb +0 -90
  167. data/lib/aia/chat_processor_service.rb +0 -178
  168. data/lib/aia/prompt_pipeline.rb +0 -183
  169. data/lib/aia/ruby_llm_adapter.rb +0 -95
  170. data/lib/extensions/openstruct_merge.rb +0 -48
  171. data/lib/extensions/ruby_llm/.irbrc +0 -56
  172. data/lib/extensions/ruby_llm/modalities.rb +0 -36
  173. data/lib/extensions/ruby_llm/provider_fix.rb +0 -79
  174. data/lib/refinements/string.rb +0 -16
  175. data/main.just +0 -76
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: 1.1.1
4
+ version: 2.0.0.0.pre.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dewayne VanHoozer
@@ -10,21 +10,35 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: amazing_print
13
+ name: bigdecimal
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '0'
18
+ version: '4.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '0'
25
+ version: '4.0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: async
27
+ name: robot_lab
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.2'
40
+ - !ruby/object:Gem::Dependency
41
+ name: myway_config
28
42
  requirement: !ruby/object:Gem::Requirement
29
43
  requirements:
30
44
  - - ">="
@@ -38,7 +52,35 @@ dependencies:
38
52
  - !ruby/object:Gem::Version
39
53
  version: '0'
40
54
  - !ruby/object:Gem::Dependency
41
- name: clipboard
55
+ name: prompt_manager
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 1.0.2
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 1.0.2
68
+ - !ruby/object:Gem::Dependency
69
+ name: lumberjack
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.1'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.1'
82
+ - !ruby/object:Gem::Dependency
83
+ name: activesupport
42
84
  requirement: !ruby/object:Gem::Requirement
43
85
  requirements:
44
86
  - - ">="
@@ -52,7 +94,7 @@ dependencies:
52
94
  - !ruby/object:Gem::Version
53
95
  version: '0'
54
96
  - !ruby/object:Gem::Dependency
55
- name: faraday
97
+ name: simple_flow
56
98
  requirement: !ruby/object:Gem::Requirement
57
99
  requirements:
58
100
  - - ">="
@@ -66,7 +108,7 @@ dependencies:
66
108
  - !ruby/object:Gem::Version
67
109
  version: '0'
68
110
  - !ruby/object:Gem::Dependency
69
- name: lumberjack
111
+ name: trak_flow
70
112
  requirement: !ruby/object:Gem::Requirement
71
113
  requirements:
72
114
  - - ">="
@@ -80,7 +122,7 @@ dependencies:
80
122
  - !ruby/object:Gem::Version
81
123
  version: '0'
82
124
  - !ruby/object:Gem::Dependency
83
- name: myway_config
125
+ name: reline
84
126
  requirement: !ruby/object:Gem::Requirement
85
127
  requirements:
86
128
  - - ">="
@@ -94,21 +136,21 @@ dependencies:
94
136
  - !ruby/object:Gem::Version
95
137
  version: '0'
96
138
  - !ruby/object:Gem::Dependency
97
- name: prompt_manager
139
+ name: tty-screen
98
140
  requirement: !ruby/object:Gem::Requirement
99
141
  requirements:
100
- - - "~>"
142
+ - - ">="
101
143
  - !ruby/object:Gem::Version
102
- version: 1.0.2
144
+ version: '0'
103
145
  type: :runtime
104
146
  prerelease: false
105
147
  version_requirements: !ruby/object:Gem::Requirement
106
148
  requirements:
107
- - - "~>"
149
+ - - ">="
108
150
  - !ruby/object:Gem::Version
109
- version: 1.0.2
151
+ version: '0'
110
152
  - !ruby/object:Gem::Dependency
111
- name: reline
153
+ name: tty-spinner
112
154
  requirement: !ruby/object:Gem::Requirement
113
155
  requirements:
114
156
  - - ">="
@@ -122,35 +164,35 @@ dependencies:
122
164
  - !ruby/object:Gem::Version
123
165
  version: '0'
124
166
  - !ruby/object:Gem::Dependency
125
- name: ruby_llm
167
+ name: tty-table
126
168
  requirement: !ruby/object:Gem::Requirement
127
169
  requirements:
128
170
  - - "~>"
129
171
  - !ruby/object:Gem::Version
130
- version: '1.12'
172
+ version: '0.12'
131
173
  type: :runtime
132
174
  prerelease: false
133
175
  version_requirements: !ruby/object:Gem::Requirement
134
176
  requirements:
135
177
  - - "~>"
136
178
  - !ruby/object:Gem::Version
137
- version: '1.12'
179
+ version: '0.12'
138
180
  - !ruby/object:Gem::Dependency
139
- name: ruby_llm-mcp
181
+ name: classifier
140
182
  requirement: !ruby/object:Gem::Requirement
141
183
  requirements:
142
184
  - - "~>"
143
185
  - !ruby/object:Gem::Version
144
- version: '0.8'
186
+ version: '2.3'
145
187
  type: :runtime
146
188
  prerelease: false
147
189
  version_requirements: !ruby/object:Gem::Requirement
148
190
  requirements:
149
191
  - - "~>"
150
192
  - !ruby/object:Gem::Version
151
- version: '0.8'
193
+ version: '2.3'
152
194
  - !ruby/object:Gem::Dependency
153
- name: shellwords
195
+ name: word_wrapper
154
196
  requirement: !ruby/object:Gem::Requirement
155
197
  requirements:
156
198
  - - ">="
@@ -164,7 +206,7 @@ dependencies:
164
206
  - !ruby/object:Gem::Version
165
207
  version: '0'
166
208
  - !ruby/object:Gem::Dependency
167
- name: simple_flow
209
+ name: amazing_print
168
210
  requirement: !ruby/object:Gem::Requirement
169
211
  requirements:
170
212
  - - ">="
@@ -178,7 +220,7 @@ dependencies:
178
220
  - !ruby/object:Gem::Version
179
221
  version: '0'
180
222
  - !ruby/object:Gem::Dependency
181
- name: tty-screen
223
+ name: clipboard
182
224
  requirement: !ruby/object:Gem::Requirement
183
225
  requirements:
184
226
  - - ">="
@@ -192,7 +234,7 @@ dependencies:
192
234
  - !ruby/object:Gem::Version
193
235
  version: '0'
194
236
  - !ruby/object:Gem::Dependency
195
- name: tty-spinner
237
+ name: faraday
196
238
  requirement: !ruby/object:Gem::Requirement
197
239
  requirements:
198
240
  - - ">="
@@ -206,7 +248,21 @@ dependencies:
206
248
  - !ruby/object:Gem::Version
207
249
  version: '0'
208
250
  - !ruby/object:Gem::Dependency
209
- name: word_wrapper
251
+ name: listen
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
257
+ type: :runtime
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ - !ruby/object:Gem::Dependency
265
+ name: shellwords
210
266
  requirement: !ruby/object:Gem::Requirement
211
267
  requirements:
212
268
  - - ">="
@@ -345,14 +401,14 @@ dependencies:
345
401
  - - ">="
346
402
  - !ruby/object:Gem::Version
347
403
  version: '0'
348
- description: 'AIA is a revolutionary CLI console application that brings multi-model
349
- AI capabilities to your command line, supporting 20+ providers including OpenAI,
350
- Anthropic, and Google. Run multiple AI models simultaneously for comparison, get
351
- consensus responses from collaborative AI teams, or compare individual outputs side-by-side.
352
- With dynamic prompt management, embedded directives, shell and Ruby integration,
353
- interactive chats, and comprehensive history tracking, AIA transforms how you interact
354
- with AI. Perfect for developers and AI enthusiasts who want to harness the collective
355
- intelligence of multiple AI models from a single, powerful interface.
404
+ description: 'AIA is a powerful CLI console application that brings multi-model AI
405
+ capabilities to your command line, supporting 20+ providers including OpenAI, Anthropic,
406
+ and Google. Built on robot_lab for robust robot orchestration, AIA v2 provides a
407
+ thin CLI shell over a rich execution engine. Run multiple AI models simultaneously
408
+ for comparison, get consensus responses from collaborative AI teams, or compare
409
+ individual outputs side-by-side. With dynamic prompt management, embedded directives,
410
+ shell and Ruby integration, interactive chats, and comprehensive history tracking,
411
+ AIA transforms how you interact with AI.
356
412
 
357
413
  '
358
414
  email:
@@ -365,13 +421,23 @@ files:
365
421
  - ".better-commits.json"
366
422
  - ".config/tocer/configuration.yml"
367
423
  - ".envrc"
424
+ - ".loki"
425
+ - ".reek.yml"
426
+ - ".rubocop.yml"
427
+ - ".rubocop_strict.yml"
368
428
  - ".version"
369
429
  - CHANGELOG.md
370
430
  - COMMITS.md
431
+ - IMPLEMENTATION_PLAN.md
371
432
  - LICENSE
372
433
  - README.md
373
434
  - Rakefile
435
+ - _typos.toml
436
+ - aia.gemspec
437
+ - architecture_review.md
374
438
  - bin/aia
439
+ - config/aia.yml
440
+ - docs/AGENTS.md
375
441
  - docs/advanced-prompting.md
376
442
  - docs/assets/images/aia.png
377
443
  - docs/cli-reference.md
@@ -391,6 +457,7 @@ files:
391
457
  - docs/guides/available-models.md
392
458
  - docs/guides/basic-usage.md
393
459
  - docs/guides/chat.md
460
+ - docs/guides/crew.md
394
461
  - docs/guides/executable-prompts.md
395
462
  - docs/guides/first-prompt.md
396
463
  - docs/guides/getting-started.md
@@ -406,6 +473,7 @@ files:
406
473
  - docs/mcp-integration.md
407
474
  - docs/prompt_management.md
408
475
  - docs/security.md
476
+ - docs/special_projects_guide.md
409
477
  - docs/tools-and-mcp-examples.md
410
478
  - docs/workflows-and-pipelines.md
411
479
  - examples/.gitignore
@@ -432,8 +500,17 @@ files:
432
500
  - examples/20_mcp_servers.sh
433
501
  - examples/21_executable_prompts.sh
434
502
  - examples/22_chat_mode.sh
503
+ - examples/23_verify.sh
504
+ - examples/24_decompose.sh
505
+ - examples/25_spawn.sh
506
+ - examples/26_debate.sh
507
+ - examples/27_mention_routing.sh
508
+ - examples/28_model_switching.sh
509
+ - examples/29_agent_harness.sh
435
510
  - examples/README.md
511
+ - examples/advanced_multi_robot_capabilities_without_examples.md
436
512
  - examples/aia_config.yml
513
+ - examples/aia_config_orchestrator.yml
437
514
  - examples/aia_config_with_mcp.yml
438
515
  - examples/common.sh
439
516
  - examples/context/project_goals.md
@@ -461,6 +538,7 @@ files:
461
538
  - examples/prompts_dir/quiz_with_include.md
462
539
  - examples/prompts_dir/require_demo.md
463
540
  - examples/prompts_dir/roles/formal.md
541
+ - examples/prompts_dir/roles/orchestrator.md
464
542
  - examples/prompts_dir/roles/pirate.md
465
543
  - examples/prompts_dir/shell_then_erb.md
466
544
  - examples/prompts_dir/sort_compare.md
@@ -475,58 +553,105 @@ files:
475
553
  - examples/prompts_dir/weather.md
476
554
  - examples/prompts_dir/whats_new.md
477
555
  - examples/prompts_dir/with_timestamp.md
556
+ - examples/requirements/sinatra_taskflow_app.md
557
+ - examples/rules/01_classify_ruby.rb
558
+ - examples/rules/02_prefer_claude_for_code.rb
559
+ - examples/rules/03_gate_prompt_length.rb
560
+ - examples/rules/04_tool_selection.rb
561
+ - examples/rules/README.md
478
562
  - examples/run_all.sh
479
563
  - examples/tools/word_count_tool.rb
480
- - justfile
564
+ - lib/AGENTS.md
481
565
  - lib/aia.rb
482
- - lib/aia/adapter/chat_execution.rb
483
- - lib/aia/adapter/error_handler.rb
484
- - lib/aia/adapter/gem_activator.rb
485
- - lib/aia/adapter/mcp_connector.rb
486
- - lib/aia/adapter/modality_handlers.rb
487
- - lib/aia/adapter/model_registry.rb
488
- - lib/aia/adapter/multi_model_chat.rb
489
- - lib/aia/adapter/provider_configurator.rb
490
- - lib/aia/adapter/tool_filter.rb
491
- - lib/aia/adapter/tool_loader.rb
492
566
  - lib/aia/aia_completion.bash
493
567
  - lib/aia/aia_completion.fish
494
568
  - lib/aia/aia_completion.zsh
495
569
  - lib/aia/chat_loop.rb
496
- - lib/aia/chat_processor_service.rb
497
570
  - lib/aia/config.rb
498
571
  - lib/aia/config/cli_parser.rb
499
572
  - lib/aia/config/defaults.yml
500
573
  - lib/aia/config/mcp_parser.rb
501
574
  - lib/aia/config/model_spec.rb
502
575
  - lib/aia/config/validator.rb
576
+ - lib/aia/content_extractor.rb
577
+ - lib/aia/cost_calculator.rb
578
+ - lib/aia/crew.rb
579
+ - lib/aia/debate_handler.rb
580
+ - lib/aia/delegate_handler.rb
503
581
  - lib/aia/directive.rb
504
582
  - lib/aia/directive_processor.rb
505
583
  - lib/aia/directives/configuration_directives.rb
506
584
  - lib/aia/directives/context_directives.rb
507
585
  - lib/aia/directives/execution_directives.rb
508
586
  - lib/aia/directives/model_directives.rb
587
+ - lib/aia/directives/trakflow_directives.rb
509
588
  - lib/aia/directives/utility_directives.rb
510
589
  - lib/aia/directives/web_and_file_directives.rb
511
590
  - lib/aia/errors.rb
591
+ - lib/aia/fact_asserter.rb
512
592
  - lib/aia/fzf.rb
513
- - lib/aia/history_manager.rb
593
+ - lib/aia/handler_context.rb
594
+ - lib/aia/handler_protocol.rb
595
+ - lib/aia/history_transfer.rb
514
596
  - lib/aia/input_collector.rb
597
+ - lib/aia/layered_orchestrator.rb
515
598
  - lib/aia/logger.rb
599
+ - lib/aia/mcp_config_normalizer.rb
600
+ - lib/aia/mcp_connection_manager.rb
601
+ - lib/aia/mcp_discovery.rb
602
+ - lib/aia/mcp_grouper.rb
603
+ - lib/aia/mcp_server_config.rb
604
+ - lib/aia/mcp_utility.rb
605
+ - lib/aia/mention_router.rb
606
+ - lib/aia/model_alias_registry.rb
607
+ - lib/aia/model_switch_handler.rb
608
+ - lib/aia/network_builder.rb
609
+ - lib/aia/network_memory_manager.rb
610
+ - lib/aia/patches/ruby_llm_streaming_error.rb
611
+ - lib/aia/patches/ruby_llm_tool_error.rb
612
+ - lib/aia/pipeline_orchestrator.rb
613
+ - lib/aia/plugin_loader.rb
614
+ - lib/aia/plugin_monitor.rb
615
+ - lib/aia/prompt_decomposer.rb
516
616
  - lib/aia/prompt_handler.rb
517
- - lib/aia/prompt_pipeline.rb
518
- - lib/aia/ruby_llm_adapter.rb
617
+ - lib/aia/robot_builder.rb
618
+ - lib/aia/robot_factory.rb
619
+ - lib/aia/robot_namer.rb
519
620
  - lib/aia/session.rb
621
+ - lib/aia/session_tracker.rb
622
+ - lib/aia/similarity_scorer.rb
520
623
  - lib/aia/skill_utils.rb
624
+ - lib/aia/spawn_handler.rb
625
+ - lib/aia/spawn_spec_parser.rb
626
+ - lib/aia/special_mode_handler.rb
627
+ - lib/aia/speech.rb
628
+ - lib/aia/startup_coordinator.rb
629
+ - lib/aia/streaming_runner.rb
630
+ - lib/aia/system_prompt_assembler.rb
631
+ - lib/aia/task_coordinator.rb
632
+ - lib/aia/task_decomposer.rb
633
+ - lib/aia/task_executor.rb
634
+ - lib/aia/tfidf_math.rb
635
+ - lib/aia/timing.rb
636
+ - lib/aia/tool_filter.rb
637
+ - lib/aia/tool_filter/tfidf.rb
638
+ - lib/aia/tool_filter/wordnet_expander.rb
639
+ - lib/aia/tool_filter_registry.rb
640
+ - lib/aia/tool_filter_strategy.rb
641
+ - lib/aia/tool_introspection.rb
642
+ - lib/aia/tool_loader.rb
643
+ - lib/aia/tool_utility.rb
644
+ - lib/aia/tools/delegate_to_foreman_tool.rb
645
+ - lib/aia/tools/recruit_robot_tool.rb
646
+ - lib/aia/tools/reskill_robot_tool.rb
647
+ - lib/aia/tools/task_board_tool.rb
648
+ - lib/aia/trakflow_bridge.rb
649
+ - lib/aia/turn_state.rb
521
650
  - lib/aia/ui_presenter.rb
522
651
  - lib/aia/utility.rb
652
+ - lib/aia/variable_input_collector.rb
653
+ - lib/aia/verification_network.rb
523
654
  - lib/aia/version.rb
524
- - lib/extensions/openstruct_merge.rb
525
- - lib/extensions/ruby_llm/.irbrc
526
- - lib/extensions/ruby_llm/modalities.rb
527
- - lib/extensions/ruby_llm/provider_fix.rb
528
- - lib/refinements/string.rb
529
- - main.just
530
655
  - mcp_servers/README.md
531
656
  - mcp_servers/apple-mcp.json
532
657
  - mcp_servers/filesystem.json
@@ -544,10 +669,14 @@ metadata:
544
669
  homepage_uri: https://github.com/MadBomber/aia
545
670
  source_code_uri: https://github.com/MadBomber/aia
546
671
  changelog_uri: https://github.com/MadBomber/aia
672
+ rubygems_mfa_required: 'true'
547
673
  post_install_message: |2+
548
674
 
549
675
  ╔══════════════════════════════════════════════════════════════╗
550
- ║ AIA — AI Assistant v1.0 ║
676
+ ║ AIA — AI Assistant v2.0 ║
677
+ ║ ║
678
+ ║ v2 is powered by robot_lab for robust orchestration ║
679
+ ║ Full CLI backward compatibility with v1 ║
551
680
  ╚══════════════════════════════════════════════════════════════╝
552
681
 
553
682
  Get started: aia --help
@@ -560,14 +689,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
560
689
  requirements:
561
690
  - - ">="
562
691
  - !ruby/object:Gem::Version
563
- version: 3.2.0
692
+ version: 4.0.0
564
693
  required_rubygems_version: !ruby/object:Gem::Requirement
565
694
  requirements:
566
695
  - - ">="
567
696
  - !ruby/object:Gem::Version
568
697
  version: '0'
569
698
  requirements: []
570
- rubygems_version: 4.0.10
699
+ rubygems_version: 4.0.20
571
700
  specification_version: 4
572
701
  summary: Multi-model AI CLI with dynamic prompts, consensus responses, shell & Ruby
573
702
  integration, and seamless chat workflows.
data/justfile DELETED
@@ -1,215 +0,0 @@
1
- # aia/main.just
2
- #
3
-
4
- RR := env_var('RR')
5
- version_filepath := env_var('RR') + "/.version"
6
-
7
- # with ~/.justfile
8
-
9
- # >>> /Users/dewayne/.justfile
10
- # ~/.justfile
11
- # brew install just
12
- # gem install justprep OR brew install justprep for the Crystal version
13
- # alias jj='justprep && just'
14
- #
15
- # See: https://cheatography.com/linux-china/cheat-sheets/justfile/
16
- #
17
-
18
- # high-level just directives
19
-
20
- set fallback # search up for recipe name if not found locally.
21
-
22
- set positional-arguments := true
23
- set allow-duplicate-recipes := true
24
- set allow-duplicate-variables := true
25
- set dotenv-load := false
26
-
27
- # my common variables
28
-
29
- pwd := env_var('PWD')
30
-
31
- me := justfile()
32
-
33
- home := env_var('HOME')
34
- downloads_dir := env_var('HOME') + "/Downloads/"
35
- documents_dir := env_var('HOME') + "/Documents/"
36
-
37
- backup_dir := env_var('JUST_BACKUP_DIR')
38
- backup_file := trim_start_match(me, home)
39
- my_backup := backup_dir + backup_file
40
- project := "`basename $RR`"
41
-
42
-
43
- # List available recipes
44
- @list:
45
- echo
46
- echo "Available Recipes at"
47
- echo "$PWD"
48
- echo "are:"
49
- echo
50
- just -l --list-prefix 'jj ' --list-heading ''
51
- echo
52
- echo "jj <module_name> to see sub-tasks"
53
- echo
54
-
55
-
56
- # Show help/usage for "just" command
57
- @help: list
58
- just --help
59
-
60
-
61
- # Backup .envrc & *.just files
62
- @backup_support_files: _backup_all_just_files _backup_all_envrc_files
63
-
64
-
65
- # Backup all changed just files to $JUST_BACKUP_DIR
66
- @_backup_all_just_files:
67
- backup_just.rb
68
-
69
-
70
- # backup all changed envrc files to ENVRC_BACKUP_DIR
71
- @_backup_all_envrc_files:
72
- backup_envrc.rb
73
-
74
-
75
- # Delete all mods saved conversations
76
- mods_delete_all:
77
- mods -l | awk '{print $1}' | xargs -I {} mods -d {}
78
-
79
-
80
- #############################################
81
- ## iTerm2-related
82
-
83
- # Fix half-duplex terminal
84
- fix:
85
- stty sane
86
-
87
-
88
- # Clear the scroll-back buffer
89
- @clear_buffer:
90
- printf "\e[3J"
91
-
92
- #################################################
93
- ## Private recipes
94
-
95
- # Show private recipes
96
- @show_private: # Show private recipes
97
- grep -B 1 "^[@]_" {{justfile()}}
98
-
99
-
100
- # Show the differences between this justfile and is last backup
101
- @_just_diff_my_backup:
102
- # echo "me -=> {{me}}"
103
- # echo "home -=> {{home}}"
104
- # echo "backup_file -=> {{backup_file}}"
105
- # echo "my_backup -=> {{my_backup}}"
106
-
107
- @diff {{me}} {{my_backup}}
108
-
109
-
110
- # Replace current justfile with most recent backup
111
- @_just_restore_me_from_backup:
112
- echo
113
- echo "Do this because I will not ..."
114
- echo
115
- echo "cp -f {{my_backup}} {{me}}"
116
- echo
117
-
118
-
119
- # Edit the $JUSTPREP_FILENAME_IN file
120
- @_just_edit_me:
121
- $EDITOR {{me}}
122
- # <<< /Users/dewayne/.justfile
123
-
124
- # FIXME: justprep module process still has an issue with ~ and $HOME
125
- # FIXME: justprep does not like more than one space between module name and path.
126
-
127
- module_repo := "/Users/dewayne/sandbox/git_repos/repo.just"
128
- module_gem := "/Users/dewayne/sandbox/git_repos/gem.just"
129
- module_version := "/Users/dewayne/just_modules/version_versionaire.just"
130
- module_git := "/Users/dewayne/just_modules/git.just"
131
-
132
-
133
- # Install Locally
134
- install: update_toc_in_readmen flay
135
- rake install
136
-
137
-
138
- # Create the TOC
139
- update_toc_in_readmen:
140
- rake toc
141
-
142
-
143
- # Static Code Check
144
- flay: coverage
145
- flay {{RR}}
146
-
147
-
148
- # View coverage report
149
- coverage: test
150
- open {{RR}}/coverage/index.html
151
-
152
-
153
- # Run Unit Tests
154
- test:
155
- rake test
156
-
157
-
158
- # Generate the Documentation
159
- gen_doc: update_toc_in_readmen
160
-
161
-
162
- ##########################################
163
-
164
- # Tag the current commit, push it, then bump the version
165
- tag_push_and_bump: tag push bump
166
-
167
-
168
- # Create a git tag for the current version
169
- tag:
170
- git tag v`head -1 {{version_filepath}}`
171
-
172
- # Push the git current working directory and all tags
173
- push:
174
- git push
175
- git push origin --tags
176
-
177
-
178
- alias inc := bump
179
-
180
- # Increment version's level: major.minor.patch
181
- @bump level='patch':
182
- #!/usr/bin/env ruby
183
- require 'versionaire'
184
- old_version = Versionaire::Version File.read("{{version_filepath}}").strip
185
- level = "{{level}}".to_sym
186
- new_version = old_version.bump level
187
- puts "Bumping #{level}: #{old_version} to #{new_version}"
188
- File.open("{{version_filepath}}", 'w')
189
- .write(new_version.to_s + "\n")
190
- #
191
- `git add {{version_filepath}}`
192
-
193
-
194
- # Module repo
195
- @repo what='' args='':
196
- just -d . -f {{module_repo}} {{what}} {{args}}
197
-
198
-
199
-
200
- # Module gem
201
- @gem what='' args='':
202
- just -d . -f {{module_gem}} {{what}} {{args}}
203
-
204
-
205
-
206
- # Module version
207
- @version what='' args='':
208
- just -d . -f {{module_version}} {{what}} {{args}}
209
-
210
-
211
-
212
- # Module git
213
- @git what='' args='':
214
- just -d . -f {{module_git}} {{what}} {{args}}
215
-