aia 1.1.0 → 2.0.0.0.pre.alpha

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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +5 -1
  3. data/.loki +231 -0
  4. data/.quality/flay_baseline.txt +1 -0
  5. data/.quality/flog_baseline.txt +29 -0
  6. data/.quality/reek_baseline.txt +80 -0
  7. data/.rubocop.yml +116 -0
  8. data/.version +1 -1
  9. data/CHANGELOG.md +266 -42
  10. data/IMPLEMENTATION_PLAN.md +506 -0
  11. data/README.md +266 -238
  12. data/Rakefile +118 -5
  13. data/architecture_review.md +314 -0
  14. data/bin/aia +16 -0
  15. data/docs/AGENTS.md +40 -0
  16. data/docs/advanced-prompting.md +67 -3
  17. data/docs/cli-reference.md +312 -56
  18. data/docs/configuration.md +130 -19
  19. data/docs/contributing.md +56 -2
  20. data/docs/directives-reference.md +593 -78
  21. data/docs/faq.md +85 -3
  22. data/docs/guides/available-models.md +1 -1
  23. data/docs/guides/basic-usage.md +6 -6
  24. data/docs/guides/chat.md +40 -16
  25. data/docs/guides/crew.md +239 -0
  26. data/docs/guides/executable-prompts.md +1 -1
  27. data/docs/guides/index.md +1 -0
  28. data/docs/guides/models.md +15 -0
  29. data/docs/index.md +29 -2
  30. data/docs/installation.md +44 -17
  31. data/docs/mcp-integration.md +40 -0
  32. data/docs/prompt_management.md +85 -86
  33. data/docs/security.md +47 -0
  34. data/docs/special_projects_guide.md +386 -0
  35. data/docs/tools-and-mcp-examples.md +23 -0
  36. data/docs/workflows-and-pipelines.md +84 -7
  37. data/examples/.gitignore +1 -0
  38. data/examples/00_setup_aia.sh +27 -44
  39. data/examples/11_multi_model.sh +4 -14
  40. data/examples/12_token_usage.sh +3 -12
  41. data/examples/18_tools.sh +10 -2
  42. data/examples/22_chat_mode.sh +0 -10
  43. data/examples/23_verify.sh +139 -0
  44. data/examples/24_decompose.sh +139 -0
  45. data/examples/25_spawn.sh +139 -0
  46. data/examples/26_debate.sh +97 -0
  47. data/examples/27_mention_routing.sh +157 -0
  48. data/examples/28_model_switching.sh +106 -0
  49. data/examples/29_agent_harness.sh +177 -0
  50. data/examples/README.md +65 -0
  51. data/examples/advanced_multi_robot_capabilities_without_examples.md +106 -0
  52. data/examples/aia_config.yml +1 -1
  53. data/examples/aia_config_orchestrator.yml +45 -0
  54. data/examples/common.sh +19 -0
  55. data/examples/context/tech_stack.md +2 -2
  56. data/examples/prompts_dir/project_summary +2 -2
  57. data/examples/prompts_dir/roles/orchestrator.md +21 -0
  58. data/examples/requirements/sinatra_taskflow_app.md +139 -0
  59. data/examples/rules/01_classify_ruby.rb +16 -0
  60. data/examples/rules/02_prefer_claude_for_code.rb +19 -0
  61. data/examples/rules/03_gate_prompt_length.rb +19 -0
  62. data/examples/rules/04_tool_selection.rb +41 -0
  63. data/examples/rules/README.md +30 -0
  64. data/examples/run_all.sh +48 -15
  65. data/examples/tools/word_count_tool.rb +1 -1
  66. data/lib/AGENTS.md +57 -0
  67. data/lib/aia/chat_loop.rb +306 -159
  68. data/lib/aia/config/cli_parser.rb +174 -111
  69. data/lib/aia/config/defaults.yml +62 -33
  70. data/lib/aia/config/mcp_parser.rb +39 -46
  71. data/lib/aia/config/model_spec.rb +34 -2
  72. data/lib/aia/config/validator.rb +121 -138
  73. data/lib/aia/config.rb +110 -145
  74. data/lib/aia/content_extractor.rb +153 -0
  75. data/lib/aia/cost_calculator.rb +38 -0
  76. data/lib/aia/crew.rb +164 -0
  77. data/lib/aia/debate_handler.rb +166 -0
  78. data/lib/aia/delegate_handler.rb +112 -0
  79. data/lib/aia/directive.rb +33 -18
  80. data/lib/aia/directive_processor.rb +16 -7
  81. data/lib/aia/directives/configuration_directives.rb +160 -20
  82. data/lib/aia/directives/context_directives.rb +38 -26
  83. data/lib/aia/directives/execution_directives.rb +136 -4
  84. data/lib/aia/directives/model_directives.rb +76 -34
  85. data/lib/aia/directives/trakflow_directives.rb +44 -0
  86. data/lib/aia/directives/utility_directives.rb +203 -6
  87. data/lib/aia/directives/web_and_file_directives.rb +96 -60
  88. data/lib/aia/errors.rb +15 -0
  89. data/lib/aia/fact_asserter.rb +27 -0
  90. data/lib/aia/fzf.rb +9 -31
  91. data/lib/aia/handler_context.rb +17 -0
  92. data/lib/aia/handler_protocol.rb +19 -0
  93. data/lib/aia/history_transfer.rb +55 -0
  94. data/lib/aia/input_collector.rb +3 -3
  95. data/lib/aia/layered_orchestrator.rb +448 -0
  96. data/lib/aia/logger.rb +24 -4
  97. data/lib/aia/mcp_config_normalizer.rb +35 -0
  98. data/lib/aia/mcp_connection_manager.rb +305 -0
  99. data/lib/aia/mcp_discovery.rb +44 -0
  100. data/lib/aia/mcp_grouper.rb +33 -0
  101. data/lib/aia/mcp_utility.rb +57 -0
  102. data/lib/aia/mention_router.rb +260 -0
  103. data/lib/aia/model_alias_registry.rb +97 -0
  104. data/lib/aia/model_switch_handler.rb +100 -0
  105. data/lib/aia/network_builder.rb +155 -0
  106. data/lib/aia/network_memory_manager.rb +55 -0
  107. data/lib/aia/patches/ruby_llm_streaming_error.rb +43 -0
  108. data/lib/aia/patches/ruby_llm_tool_error.rb +96 -0
  109. data/lib/aia/pipeline_orchestrator.rb +262 -0
  110. data/lib/aia/plugin_loader.rb +170 -0
  111. data/lib/aia/plugin_monitor.rb +208 -0
  112. data/lib/aia/prompt_decomposer.rb +157 -0
  113. data/lib/aia/prompt_handler.rb +19 -39
  114. data/lib/aia/robot_builder.rb +51 -0
  115. data/lib/aia/robot_factory.rb +334 -0
  116. data/lib/aia/robot_namer.rb +116 -0
  117. data/lib/aia/session.rb +83 -17
  118. data/lib/aia/session_tracker.rb +209 -0
  119. data/lib/aia/similarity_scorer.rb +39 -0
  120. data/lib/aia/skill_utils.rb +105 -1
  121. data/lib/aia/spawn_handler.rb +129 -0
  122. data/lib/aia/spawn_spec_parser.rb +65 -0
  123. data/lib/aia/special_mode_handler.rb +302 -0
  124. data/lib/aia/startup_coordinator.rb +150 -0
  125. data/lib/aia/streaming_runner.rb +169 -0
  126. data/lib/aia/system_prompt_assembler.rb +88 -0
  127. data/lib/aia/task_coordinator.rb +202 -0
  128. data/lib/aia/task_decomposer.rb +57 -0
  129. data/lib/aia/task_executor.rb +51 -0
  130. data/lib/aia/tfidf_math.rb +27 -0
  131. data/lib/aia/tool_filter/tfidf.rb +116 -0
  132. data/lib/aia/tool_filter/wordnet_expander.rb +127 -0
  133. data/lib/aia/tool_filter.rb +82 -0
  134. data/lib/aia/tool_filter_registry.rb +30 -0
  135. data/lib/aia/tool_filter_strategy.rb +143 -0
  136. data/lib/aia/tool_loader.rb +210 -0
  137. data/lib/aia/tool_utility.rb +30 -0
  138. data/lib/aia/tools/delegate_to_foreman_tool.rb +70 -0
  139. data/lib/aia/tools/recruit_robot_tool.rb +60 -0
  140. data/lib/aia/tools/reskill_robot_tool.rb +44 -0
  141. data/lib/aia/tools/task_board_tool.rb +114 -0
  142. data/lib/aia/trakflow_bridge.rb +173 -0
  143. data/lib/aia/turn_state.rb +94 -0
  144. data/lib/aia/ui_presenter.rb +166 -198
  145. data/lib/aia/utility.rb +134 -87
  146. data/lib/aia/{history_manager.rb → variable_input_collector.rb} +8 -9
  147. data/lib/aia/verification_network.rb +58 -0
  148. data/lib/aia.rb +108 -63
  149. data/mkdocs.yml +1 -0
  150. metadata +179 -56
  151. data/justfile +0 -215
  152. data/lib/aia/adapter/chat_execution.rb +0 -242
  153. data/lib/aia/adapter/error_handler.rb +0 -68
  154. data/lib/aia/adapter/gem_activator.rb +0 -57
  155. data/lib/aia/adapter/mcp_connector.rb +0 -274
  156. data/lib/aia/adapter/modality_handlers.rb +0 -167
  157. data/lib/aia/adapter/model_registry.rb +0 -81
  158. data/lib/aia/adapter/multi_model_chat.rb +0 -218
  159. data/lib/aia/adapter/provider_configurator.rb +0 -59
  160. data/lib/aia/adapter/tool_filter.rb +0 -85
  161. data/lib/aia/adapter/tool_loader.rb +0 -90
  162. data/lib/aia/chat_processor_service.rb +0 -164
  163. data/lib/aia/prompt_pipeline.rb +0 -183
  164. data/lib/aia/ruby_llm_adapter.rb +0 -95
  165. data/lib/extensions/openstruct_merge.rb +0 -48
  166. data/lib/extensions/ruby_llm/.irbrc +0 -56
  167. data/lib/extensions/ruby_llm/modalities.rb +0 -36
  168. data/lib/extensions/ruby_llm/provider_fix.rb +0 -79
  169. data/lib/refinements/string.rb +0 -16
  170. 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.0
4
+ version: 2.0.0.0.pre.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dewayne VanHoozer
@@ -10,7 +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
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '4.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '4.0'
26
+ - !ruby/object:Gem::Dependency
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
14
42
  requirement: !ruby/object:Gem::Requirement
15
43
  requirements:
16
44
  - - ">="
@@ -24,7 +52,21 @@ dependencies:
24
52
  - !ruby/object:Gem::Version
25
53
  version: '0'
26
54
  - !ruby/object:Gem::Dependency
27
- name: async
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
28
70
  requirement: !ruby/object:Gem::Requirement
29
71
  requirements:
30
72
  - - ">="
@@ -38,7 +80,7 @@ dependencies:
38
80
  - !ruby/object:Gem::Version
39
81
  version: '0'
40
82
  - !ruby/object:Gem::Dependency
41
- name: clipboard
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,21 @@ files:
365
421
  - ".better-commits.json"
366
422
  - ".config/tocer/configuration.yml"
367
423
  - ".envrc"
424
+ - ".loki"
425
+ - ".quality/flay_baseline.txt"
426
+ - ".quality/flog_baseline.txt"
427
+ - ".quality/reek_baseline.txt"
428
+ - ".rubocop.yml"
368
429
  - ".version"
369
430
  - CHANGELOG.md
370
431
  - COMMITS.md
432
+ - IMPLEMENTATION_PLAN.md
371
433
  - LICENSE
372
434
  - README.md
373
435
  - Rakefile
436
+ - architecture_review.md
374
437
  - bin/aia
438
+ - docs/AGENTS.md
375
439
  - docs/advanced-prompting.md
376
440
  - docs/assets/images/aia.png
377
441
  - docs/cli-reference.md
@@ -391,6 +455,7 @@ files:
391
455
  - docs/guides/available-models.md
392
456
  - docs/guides/basic-usage.md
393
457
  - docs/guides/chat.md
458
+ - docs/guides/crew.md
394
459
  - docs/guides/executable-prompts.md
395
460
  - docs/guides/first-prompt.md
396
461
  - docs/guides/getting-started.md
@@ -406,6 +471,7 @@ files:
406
471
  - docs/mcp-integration.md
407
472
  - docs/prompt_management.md
408
473
  - docs/security.md
474
+ - docs/special_projects_guide.md
409
475
  - docs/tools-and-mcp-examples.md
410
476
  - docs/workflows-and-pipelines.md
411
477
  - examples/.gitignore
@@ -432,8 +498,17 @@ files:
432
498
  - examples/20_mcp_servers.sh
433
499
  - examples/21_executable_prompts.sh
434
500
  - examples/22_chat_mode.sh
501
+ - examples/23_verify.sh
502
+ - examples/24_decompose.sh
503
+ - examples/25_spawn.sh
504
+ - examples/26_debate.sh
505
+ - examples/27_mention_routing.sh
506
+ - examples/28_model_switching.sh
507
+ - examples/29_agent_harness.sh
435
508
  - examples/README.md
509
+ - examples/advanced_multi_robot_capabilities_without_examples.md
436
510
  - examples/aia_config.yml
511
+ - examples/aia_config_orchestrator.yml
437
512
  - examples/aia_config_with_mcp.yml
438
513
  - examples/common.sh
439
514
  - examples/context/project_goals.md
@@ -461,6 +536,7 @@ files:
461
536
  - examples/prompts_dir/quiz_with_include.md
462
537
  - examples/prompts_dir/require_demo.md
463
538
  - examples/prompts_dir/roles/formal.md
539
+ - examples/prompts_dir/roles/orchestrator.md
464
540
  - examples/prompts_dir/roles/pirate.md
465
541
  - examples/prompts_dir/shell_then_erb.md
466
542
  - examples/prompts_dir/sort_compare.md
@@ -475,58 +551,101 @@ files:
475
551
  - examples/prompts_dir/weather.md
476
552
  - examples/prompts_dir/whats_new.md
477
553
  - examples/prompts_dir/with_timestamp.md
554
+ - examples/requirements/sinatra_taskflow_app.md
555
+ - examples/rules/01_classify_ruby.rb
556
+ - examples/rules/02_prefer_claude_for_code.rb
557
+ - examples/rules/03_gate_prompt_length.rb
558
+ - examples/rules/04_tool_selection.rb
559
+ - examples/rules/README.md
478
560
  - examples/run_all.sh
479
561
  - examples/tools/word_count_tool.rb
480
- - justfile
562
+ - lib/AGENTS.md
481
563
  - 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
564
  - lib/aia/aia_completion.bash
493
565
  - lib/aia/aia_completion.fish
494
566
  - lib/aia/aia_completion.zsh
495
567
  - lib/aia/chat_loop.rb
496
- - lib/aia/chat_processor_service.rb
497
568
  - lib/aia/config.rb
498
569
  - lib/aia/config/cli_parser.rb
499
570
  - lib/aia/config/defaults.yml
500
571
  - lib/aia/config/mcp_parser.rb
501
572
  - lib/aia/config/model_spec.rb
502
573
  - lib/aia/config/validator.rb
574
+ - lib/aia/content_extractor.rb
575
+ - lib/aia/cost_calculator.rb
576
+ - lib/aia/crew.rb
577
+ - lib/aia/debate_handler.rb
578
+ - lib/aia/delegate_handler.rb
503
579
  - lib/aia/directive.rb
504
580
  - lib/aia/directive_processor.rb
505
581
  - lib/aia/directives/configuration_directives.rb
506
582
  - lib/aia/directives/context_directives.rb
507
583
  - lib/aia/directives/execution_directives.rb
508
584
  - lib/aia/directives/model_directives.rb
585
+ - lib/aia/directives/trakflow_directives.rb
509
586
  - lib/aia/directives/utility_directives.rb
510
587
  - lib/aia/directives/web_and_file_directives.rb
511
588
  - lib/aia/errors.rb
589
+ - lib/aia/fact_asserter.rb
512
590
  - lib/aia/fzf.rb
513
- - lib/aia/history_manager.rb
591
+ - lib/aia/handler_context.rb
592
+ - lib/aia/handler_protocol.rb
593
+ - lib/aia/history_transfer.rb
514
594
  - lib/aia/input_collector.rb
595
+ - lib/aia/layered_orchestrator.rb
515
596
  - lib/aia/logger.rb
597
+ - lib/aia/mcp_config_normalizer.rb
598
+ - lib/aia/mcp_connection_manager.rb
599
+ - lib/aia/mcp_discovery.rb
600
+ - lib/aia/mcp_grouper.rb
601
+ - lib/aia/mcp_utility.rb
602
+ - lib/aia/mention_router.rb
603
+ - lib/aia/model_alias_registry.rb
604
+ - lib/aia/model_switch_handler.rb
605
+ - lib/aia/network_builder.rb
606
+ - lib/aia/network_memory_manager.rb
607
+ - lib/aia/patches/ruby_llm_streaming_error.rb
608
+ - lib/aia/patches/ruby_llm_tool_error.rb
609
+ - lib/aia/pipeline_orchestrator.rb
610
+ - lib/aia/plugin_loader.rb
611
+ - lib/aia/plugin_monitor.rb
612
+ - lib/aia/prompt_decomposer.rb
516
613
  - lib/aia/prompt_handler.rb
517
- - lib/aia/prompt_pipeline.rb
518
- - lib/aia/ruby_llm_adapter.rb
614
+ - lib/aia/robot_builder.rb
615
+ - lib/aia/robot_factory.rb
616
+ - lib/aia/robot_namer.rb
519
617
  - lib/aia/session.rb
618
+ - lib/aia/session_tracker.rb
619
+ - lib/aia/similarity_scorer.rb
520
620
  - lib/aia/skill_utils.rb
621
+ - lib/aia/spawn_handler.rb
622
+ - lib/aia/spawn_spec_parser.rb
623
+ - lib/aia/special_mode_handler.rb
624
+ - lib/aia/startup_coordinator.rb
625
+ - lib/aia/streaming_runner.rb
626
+ - lib/aia/system_prompt_assembler.rb
627
+ - lib/aia/task_coordinator.rb
628
+ - lib/aia/task_decomposer.rb
629
+ - lib/aia/task_executor.rb
630
+ - lib/aia/tfidf_math.rb
631
+ - lib/aia/tool_filter.rb
632
+ - lib/aia/tool_filter/tfidf.rb
633
+ - lib/aia/tool_filter/wordnet_expander.rb
634
+ - lib/aia/tool_filter_registry.rb
635
+ - lib/aia/tool_filter_strategy.rb
636
+ - lib/aia/tool_loader.rb
637
+ - lib/aia/tool_utility.rb
638
+ - lib/aia/tools/delegate_to_foreman_tool.rb
639
+ - lib/aia/tools/recruit_robot_tool.rb
640
+ - lib/aia/tools/reskill_robot_tool.rb
641
+ - lib/aia/tools/task_board_tool.rb
642
+ - lib/aia/trakflow_bridge.rb
643
+ - lib/aia/turn_state.rb
521
644
  - lib/aia/ui_presenter.rb
522
645
  - lib/aia/utility.rb
646
+ - lib/aia/variable_input_collector.rb
647
+ - lib/aia/verification_network.rb
523
648
  - 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
649
  - mcp_servers/README.md
531
650
  - mcp_servers/apple-mcp.json
532
651
  - mcp_servers/filesystem.json
@@ -544,10 +663,14 @@ metadata:
544
663
  homepage_uri: https://github.com/MadBomber/aia
545
664
  source_code_uri: https://github.com/MadBomber/aia
546
665
  changelog_uri: https://github.com/MadBomber/aia
666
+ rubygems_mfa_required: 'true'
547
667
  post_install_message: |2+
548
668
 
549
669
  ╔══════════════════════════════════════════════════════════════╗
550
- ║ AIA — AI Assistant v1.0 ║
670
+ ║ AIA — AI Assistant v2.0 ║
671
+ ║ ║
672
+ ║ v2 is powered by robot_lab for robust orchestration ║
673
+ ║ Full CLI backward compatibility with v1 ║
551
674
  ╚══════════════════════════════════════════════════════════════╝
552
675
 
553
676
  Get started: aia --help
@@ -560,14 +683,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
560
683
  requirements:
561
684
  - - ">="
562
685
  - !ruby/object:Gem::Version
563
- version: 3.2.0
686
+ version: 4.0.0
564
687
  required_rubygems_version: !ruby/object:Gem::Requirement
565
688
  requirements:
566
689
  - - ">="
567
690
  - !ruby/object:Gem::Version
568
691
  version: '0'
569
692
  requirements: []
570
- rubygems_version: 4.0.10
693
+ rubygems_version: 4.0.19
571
694
  specification_version: 4
572
695
  summary: Multi-model AI CLI with dynamic prompts, consensus responses, shell & Ruby
573
696
  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
-