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