scout-ai 1.2.5 → 2.1.0

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 (166) hide show
  1. checksums.yaml +4 -4
  2. data/.vimproject +114 -29
  3. data/README.md +171 -320
  4. data/Rakefile +17 -1
  5. data/VERSION +1 -1
  6. data/doc/Improvements.md +325 -0
  7. data/doc/StartHere.md +110 -0
  8. data/doc/developer/Architecture.md +126 -0
  9. data/doc/developer/Backends.md +199 -0
  10. data/doc/developer/ChatLifecycle.md +183 -0
  11. data/doc/developer/DelegationInternals.md +295 -0
  12. data/doc/developer/DesignPrinciples.md +245 -0
  13. data/doc/developer/PromptProcessing.md +292 -0
  14. data/doc/developer/Provenance.md +327 -0
  15. data/doc/user/BuildingAgents.md +345 -0
  16. data/doc/user/Cookbook.md +333 -0
  17. data/doc/user/CoreConcepts.md +181 -0
  18. data/doc/user/Delegation.md +191 -0
  19. data/doc/user/GettingStarted.md +159 -0
  20. data/doc/user/ManagingContext.md +163 -0
  21. data/doc/user/MultiAgentWorkflows.md +256 -0
  22. data/doc/user/Python.md +159 -0
  23. data/doc/user/RunningInference.md +200 -0
  24. data/doc/user/ToolCalling.md +193 -0
  25. data/doc/user/WritingChats.md +197 -0
  26. data/lib/scout/llm/agent/attach.rb +68 -0
  27. data/lib/scout/llm/agent/chat.rb +62 -12
  28. data/lib/scout/llm/agent/delegate.rb +274 -65
  29. data/lib/scout/llm/agent/iterate.rb +2 -2
  30. data/lib/scout/llm/agent/save.rb +273 -0
  31. data/lib/scout/llm/agent/workflow.rb +165 -0
  32. data/lib/scout/llm/agent.rb +94 -61
  33. data/lib/scout/llm/ask.rb +43 -14
  34. data/lib/scout/llm/backends/anthropic.rb +9 -1
  35. data/lib/scout/llm/backends/bedrock.rb +15 -3
  36. data/lib/scout/llm/backends/default.rb +137 -91
  37. data/lib/scout/llm/backends/glm.rb +58 -0
  38. data/lib/scout/llm/backends/huggingface.rb +13 -1
  39. data/lib/scout/llm/backends/ollama.rb +13 -0
  40. data/lib/scout/llm/backends/openwebui.rb +8 -3
  41. data/lib/scout/llm/chat/agent_meta.rb +264 -0
  42. data/lib/scout/llm/chat/annotation.rb +37 -14
  43. data/lib/scout/llm/chat/parse.rb +28 -6
  44. data/lib/scout/llm/chat/persist.rb +25 -0
  45. data/lib/scout/llm/chat/process/clear.rb +19 -1
  46. data/lib/scout/llm/chat/process/files.rb +16 -1
  47. data/lib/scout/llm/chat/process/meta.rb +422 -32
  48. data/lib/scout/llm/chat/process/options.rb +21 -1
  49. data/lib/scout/llm/chat/process/tools.rb +51 -17
  50. data/lib/scout/llm/chat/process.rb +4 -0
  51. data/lib/scout/llm/chat/prompt/shorten_tools.rb +125 -0
  52. data/lib/scout/llm/chat/prompt/shorten_tools_epoch.rb +365 -0
  53. data/lib/scout/llm/chat/prompt.rb +48 -0
  54. data/lib/scout/llm/chat/provenance.rb +834 -0
  55. data/lib/scout/llm/chat/tool_calls.rb +76 -0
  56. data/lib/scout/llm/chat.rb +18 -2
  57. data/lib/scout/llm/embed.rb +8 -3
  58. data/lib/scout/llm/image.rb +86 -0
  59. data/lib/scout/llm/rag.rb +3 -3
  60. data/lib/scout/llm/tools/call.rb +159 -10
  61. data/lib/scout/llm/tools/knowledge_base.rb +1 -1
  62. data/lib/scout/llm/tools/workflow.rb +13 -5
  63. data/lib/scout-ai.rb +1 -0
  64. data/research/ChatAnalyst-required-changes.md +167 -0
  65. data/research/agent-delegation-analysis.md +810 -0
  66. data/research/agent-meta-provenance-integration-plan.md +622 -0
  67. data/research/agent-workflow-analysis.md +1120 -0
  68. data/research/backends-analysis.md +836 -0
  69. data/research/chat-core-analysis.md +946 -0
  70. data/research/chatanalyst-provenance/00-baseline.md +30 -0
  71. data/research/chatanalyst-provenance/01-repo-map.md +60 -0
  72. data/research/chatanalyst-provenance/02-event-reconstruction.md +55 -0
  73. data/research/chatanalyst-provenance/03-duplication-evidence.md +45 -0
  74. data/research/chatanalyst-provenance/04-tooling-root-cause.md +57 -0
  75. data/research/chatanalyst-provenance/05-fix-plan.md +46 -0
  76. data/research/chatanalyst-provenance/07-critic-review.md +25 -0
  77. data/research/chatanalyst-provenance/final-report.md +45 -0
  78. data/research/chatanalyst-provenance/resumption.md +37 -0
  79. data/research/coding-philosophy-analysis.md +928 -0
  80. data/research/commands-analysis.md +947 -0
  81. data/research/multi-agent-patterns-analysis.md +853 -0
  82. data/research/prompt-strategies-analysis.md +630 -0
  83. data/research/prov-verbosity-fix-notes.md +77 -0
  84. data/research/provenance-analysis.md +469 -0
  85. data/research/provenance-continuation-accounting.md +255 -0
  86. data/research/provenance-navigation-design.md +640 -0
  87. data/research/synthesis-report.md +487 -0
  88. data/research/tools-system-analysis.md +779 -0
  89. data/scout-ai.gemspec +99 -13
  90. data/scout_commands/agent/ask +13 -3
  91. data/scout_commands/agent/kb +2 -0
  92. data/scout_commands/llm/ask +11 -4
  93. data/scout_commands/llm/md +76 -0
  94. data/scout_commands/llm/prov +702 -0
  95. data/scout_commands/llm/word +71 -0
  96. data/share/word/reference.docx +0 -0
  97. data/test/etc/AI/mock.yaml +11 -0
  98. data/test/fixtures/backends/anthropic.json +19 -0
  99. data/test/fixtures/backends/anthropic_tool_use.json +24 -0
  100. data/test/fixtures/backends/bedrock.json +8 -0
  101. data/test/fixtures/backends/bedrock_embedding.json +3 -0
  102. data/test/fixtures/backends/bedrock_tool_use.json +17 -0
  103. data/test/fixtures/backends/ollama.json +16 -0
  104. data/test/fixtures/backends/ollama_tool_call.json +27 -0
  105. data/test/fixtures/backends/openai_chat.json +21 -0
  106. data/test/fixtures/backends/openai_chat_tool_call.json +31 -0
  107. data/test/fixtures/backends/responses.json +33 -0
  108. data/test/fixtures/backends/responses_tool_call.json +28 -0
  109. data/test/integration/README.md +32 -0
  110. data/test/integration/scout/llm/backends/test_endpoints.rb +34 -0
  111. data/test/integration/scout/llm/backends/test_openwebui.rb +61 -0
  112. data/test/integration/scout/llm/backends/test_relay.rb +52 -0
  113. data/test/integration/scout/llm/test_infrastructure.rb +74 -0
  114. data/test/{scout → integration/scout}/llm/test_mcp.rb +1 -1
  115. data/test/integration/scout/llm/tools/test_mcp.rb +42 -0
  116. data/test/integration/scout/model/test_base.rb +91 -0
  117. data/test/scout/llm/agent/test_chat.rb +8 -2
  118. data/test/scout/llm/agent/test_save.rb +413 -0
  119. data/test/scout/llm/agent/test_workflow.rb +110 -0
  120. data/test/scout/llm/backends/test_anthropic.rb +93 -10
  121. data/test/scout/llm/backends/test_bedrock.rb +118 -2
  122. data/test/scout/llm/backends/test_ollama.rb +70 -20
  123. data/test/scout/llm/backends/test_openwebui.rb +42 -40
  124. data/test/scout/llm/backends/test_relay.rb +4 -2
  125. data/test/scout/llm/chat/agent_meta_fixtures.rb +217 -0
  126. data/test/scout/llm/chat/process/test_meta.rb +518 -0
  127. data/test/scout/llm/chat/process/test_normalize_usage.rb +183 -0
  128. data/test/scout/llm/chat/test_agent_meta.rb +357 -0
  129. data/test/scout/llm/chat/test_agent_meta_provenance.rb +600 -0
  130. data/test/scout/llm/chat/test_agent_meta_tokens.rb +648 -0
  131. data/test/scout/llm/chat/test_parse.rb +70 -15
  132. data/test/scout/llm/chat/test_prov_cli.rb +674 -0
  133. data/test/scout/llm/chat/test_provenance.rb +240 -0
  134. data/test/scout/llm/chat/test_tool_calls.rb +38 -0
  135. data/test/scout/llm/test_agent.rb +13 -36
  136. data/test/scout/llm/test_ask.rb +75 -52
  137. data/test/scout/llm/test_chat.rb +107 -13
  138. data/test/scout/llm/test_embed.rb +48 -0
  139. data/test/scout/llm/test_rag.rb +23 -16
  140. data/test/scout/llm/test_tools.rb +12 -1
  141. data/test/scout/llm/tools/test_knowledge_base.rb +0 -1
  142. data/test/scout/llm/tools/test_mcp.rb +5 -3
  143. data/test/scout/llm/tools/test_workflow.rb +23 -2
  144. data/test/scout/model/python/huggingface/causal/test_next_token.rb +11 -5
  145. data/test/scout/model/python/huggingface/test_causal.rb +9 -3
  146. data/test/scout/model/python/huggingface/test_classification.rb +11 -2
  147. data/test/scout/model/python/test_torch.rb +2 -0
  148. data/test/scout/model/python/torch/test_helpers.rb +4 -0
  149. data/test/scout/model/test_base.rb +4 -2
  150. data/test/support/availability.rb +231 -0
  151. data/test/support/fake_clients.rb +138 -0
  152. data/test/support/fixtures.rb +21 -0
  153. data/test/support/infrastructure_probes.rb +136 -0
  154. data/test/support/mock_backend.rb +215 -0
  155. data/test/test_helper.rb +32 -2
  156. metadata +98 -12
  157. data/doc/Agent.md +0 -354
  158. data/doc/Chat.md +0 -481
  159. data/doc/LLM.md +0 -356
  160. data/doc/PythonAgentTasks.md +0 -333
  161. data/doc/RAG.md +0 -129
  162. data/doc/USER_GUIDE.md +0 -572
  163. data/scout_commands/documenter +0 -148
  164. data/test/scout/llm/backends/test_openai.rb +0 -192
  165. data/test/scout/llm/backends/test_responses.rb +0 -238
  166. data/test/scout/llm/test_parse.rb +0 -98
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 742a8e82560504d53d300b55cbd7ea21f3d982cf07ff46ec168554f5c4b4ee09
4
- data.tar.gz: 30fe40bbc93cf1e163ca1cd200e3343015bbfb3cccae47809c49543ea887dca9
3
+ metadata.gz: d4c45ad3bd7a6219e9fe1e4e0611391f5751f7e3faa253f8db9b132ecc2e6bae
4
+ data.tar.gz: 7068ae89ef507efa50eadf36d9b563b7a596fda8b31bd29cd3f3f6c21c40aba3
5
5
  SHA512:
6
- metadata.gz: b0125103d3908fca79bef75d8855f385069d795c9c43cac21556b1a5aa3b03fe2c3f0022ded325df97006f0b1248869796fc51a226a60ef4b5e68fd126a67282
7
- data.tar.gz: 05ed5d8a131d6ad65abd05b50eeda6b9d39686e77f417bc8690554ecb6ed4abd4c5229deba592ce7d0114a78985ba17ed73958164b8f6cbb3cea60ad71cc54f4
6
+ metadata.gz: bb97d4db5f611da3302ccbecc5d1e567d50fe1fe96916150fb5b4445d5e74f887c8f68e35e1b0111667705491a0359802304ee99090b05cbde4401834c538657
7
+ data.tar.gz: 6877551eda1ebf3d916bc2b1f14347d3323410ee832e62838b11f137c3b5cdc86aaff4d41c01c546997312a387e7ec2d333bc85dde2fa586ec72201fc34221c9
data/.vimproject CHANGED
@@ -27,7 +27,11 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
27
27
 
28
28
  save_reponse
29
29
 
30
+ tokens
31
+ patch
30
32
  relay
33
+
34
+ cpus.rb
31
35
  }
32
36
  web=web{
33
37
  chat
@@ -57,11 +61,11 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
57
61
  }
58
62
  }
59
63
  }
64
+ save_locations
65
+ provenance_cortex
60
66
 
61
- huggingface
62
-
63
- test_huggingface
64
67
 
68
+ test_abort
65
69
  }
66
70
  lib=lib {
67
71
  scout-ai.rb
@@ -72,56 +76,62 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
72
76
  entity.rb
73
77
  }
74
78
  llm=llm{
79
+ ask.rb
80
+ embed.rb
81
+ image.rb
82
+ mcp.rb
83
+ rag.rb
75
84
  utils.rb
76
85
  chat.rb
77
86
  chat=chat{
78
87
  annotation.rb
79
88
  parse.rb
89
+ persist.rb
80
90
  process.rb
91
+ provenance.rb
92
+ tool_calls.rb
93
+ prompt.rb
94
+ prompt=prompt{
95
+ shorten_tools.rb
96
+ shorten_tools_epoch.rb
97
+ }
81
98
  process=process{
82
- tools.rb
83
- files.rb
84
99
  clear.rb
85
- options.rb
100
+ files.rb
86
101
  meta.rb
102
+ options.rb
103
+ tools.rb
87
104
  }
88
105
  }
89
106
  tools.rb
90
107
  tools=tools{
108
+ call.rb
109
+ knowledge_base.rb
91
110
  mcp.rb
92
111
  workflow.rb
93
- knowledge_base.rb
94
- call.rb
95
112
  }
96
-
97
113
  backends=backends{
98
114
  default.rb
99
115
 
100
- responses.rb
101
- openai.rb
102
- ollama.rb
116
+ glm.rb
103
117
  anthropic.rb
104
- vllm.rb
118
+ bedrock.rb
105
119
  huggingface.rb
120
+ ollama.rb
121
+ openai.rb
106
122
  openwebui.rb
107
-
108
- bedrock.rb
109
123
  relay.rb
124
+ responses.rb
125
+ vllm.rb
110
126
  }
111
-
112
- ask.rb
113
-
114
- embed.rb
115
-
116
- rag.rb
117
-
118
- mcp.rb
119
-
120
127
  agent.rb
121
128
  agent=agent{
122
129
  chat.rb
123
- iterate.rb
124
130
  delegate.rb
131
+ attach.rb
132
+ iterate.rb
133
+ save.rb
134
+ workflow.rb
125
135
  }
126
136
  }
127
137
  model=model{
@@ -180,10 +190,44 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
180
190
  }
181
191
  }
182
192
  doc=doc filter="*"{
183
- Agent.md
184
- Chat.md
185
- LLM.md
186
193
  Model.md
194
+ Improvements.md
195
+ StartHere.md
196
+ user=user{
197
+ BuildingAgents.md
198
+ Cookbook.md
199
+ CoreConcepts.md
200
+ Delegation.md
201
+ GettingStarted.md
202
+ ManagingContext.md
203
+ MultiAgentWorkflows.md
204
+ Python.md
205
+ RunningInference.md
206
+ ToolCalling.md
207
+ WritingChats.md
208
+ }
209
+ developer=developer{
210
+ Architecture.md
211
+ Backends.md
212
+ ChatLifecycle.md
213
+ DelegationInternals.md
214
+ DesignPrinciples.md
215
+ PromptProcessing.md
216
+ Provenance.md
217
+ }
218
+ }
219
+ research=research filter="*"{
220
+ agent-delegation-analysis.md
221
+ agent-workflow-analysis.md
222
+ backends-analysis.md
223
+ chat-core-analysis.md
224
+ coding-philosophy-analysis.md
225
+ commands-analysis.md
226
+ multi-agent-patterns-analysis.md
227
+ prompt-strategies-analysis.md
228
+ provenance-analysis.md
229
+ synthesis-report.md
230
+ tools-system-analysis.md
187
231
  }
188
232
  test=test {
189
233
  data=data filter="*"{
@@ -194,13 +238,50 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
194
238
  parents
195
239
  }
196
240
  }
241
+ scout=scout{
242
+ llm=llm{
243
+ test_agent.rb
244
+ test_ask.rb
245
+ test_chat.rb
246
+ test_embed.rb
247
+ test_mcp.rb
248
+ test_parse.rb
249
+ test_rag.rb
250
+ test_tools.rb
251
+ test_utils.rb
252
+ chat=chat{
253
+ test_parse.rb
254
+ test_process.rb
255
+ process=process{
256
+ test_meta.rb
257
+ test_normalize_usage.rb
258
+ }
259
+ }
260
+ backends=backends{
261
+ test_anthropic.rb
262
+ test_bedrock.rb
263
+ test_huggingface.rb
264
+ test_ollama.rb
265
+ test_openai.rb
266
+ test_openwebui.rb
267
+ test_relay.rb
268
+ test_responses.rb
269
+ }
270
+ }
271
+ }
272
+ support=support{
273
+ availability.rb
274
+ fake_clients.rb
275
+ fixtures.rb
276
+ infrastructure_probes.rb
277
+ mock_backend.rb
278
+ }
197
279
  test_helper.rb
198
280
  }
199
281
  bin=bin filter="*"{
200
282
  scout-ai
201
283
  }
202
284
  scout_commands=scout_commands filter="*"{
203
- documenter
204
285
  llm=llm{
205
286
  ask
206
287
  json
@@ -208,6 +289,10 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
208
289
  process
209
290
  process_queries
210
291
  server
292
+ word
293
+ md
294
+ info
295
+ prov
211
296
  }
212
297
  agent=agent{
213
298
  ask