scout-ai 1.1.8 → 1.2.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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.vimproject +45 -65
  3. data/README.md +91 -61
  4. data/VERSION +1 -1
  5. data/bin/scout-ai +2 -2
  6. data/doc/Agent.md +245 -167
  7. data/doc/Chat.md +372 -172
  8. data/doc/LLM.md +274 -380
  9. data/lib/scout/llm/agent/chat.rb +7 -1
  10. data/lib/scout/llm/agent/delegate.rb +86 -0
  11. data/lib/scout/llm/agent.rb +113 -32
  12. data/lib/scout/llm/ask.rb +16 -29
  13. data/lib/scout/llm/backends/anthropic.rb +78 -117
  14. data/lib/scout/llm/backends/default.rb +558 -0
  15. data/lib/scout/llm/backends/ollama.rb +93 -94
  16. data/lib/scout/llm/backends/openai.rb +82 -103
  17. data/lib/scout/llm/backends/openwebui.rb +54 -114
  18. data/lib/scout/llm/backends/responses.rb +15 -329
  19. data/lib/scout/llm/backends/vllm.rb +27 -0
  20. data/lib/scout/llm/chat/annotation.rb +35 -0
  21. data/lib/scout/llm/chat/parse.rb +12 -8
  22. data/lib/scout/llm/chat/process/clear.rb +4 -3
  23. data/lib/scout/llm/chat/process/meta.rb +43 -0
  24. data/lib/scout/llm/chat/process/tools.rb +47 -7
  25. data/lib/scout/llm/chat/process.rb +1 -0
  26. data/lib/scout/llm/chat.rb +3 -3
  27. data/lib/scout/llm/embed.rb +3 -0
  28. data/lib/scout/llm/rag.rb +9 -0
  29. data/lib/scout/llm/tools/call.rb +57 -17
  30. data/lib/scout/llm/tools/knowledge_base.rb +11 -5
  31. data/lib/scout/llm/tools/workflow.rb +9 -7
  32. data/lib/scout/llm/tools.rb +22 -125
  33. data/lib/scout-ai.rb +2 -0
  34. data/scout-ai.gemspec +6 -3
  35. data/scout_commands/agent/ask +12 -38
  36. data/scout_commands/llm/ask +10 -3
  37. data/test/scout/llm/agent/test_chat.rb +1 -1
  38. data/test/scout/llm/backends/test_anthropic.rb +2 -2
  39. data/test/scout/llm/backends/test_ollama.rb +7 -7
  40. data/test/scout/llm/backends/test_openai.rb +8 -8
  41. data/test/scout/llm/backends/test_openwebui.rb +0 -1
  42. data/test/scout/llm/backends/test_responses.rb +1 -2
  43. data/test/scout/llm/test_agent.rb +20 -2
  44. data/test/scout/llm/test_rag.rb +25 -0
  45. data/test/test_helper.rb +10 -0
  46. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6c4a5eda08ca50c1353e6b36d41bc0b5c8ac1c6a58d40b48f23f005c8566c84
4
- data.tar.gz: e61823c2c1344aaab60ed78504db4edbfa3776442436da2e58399619407159f0
3
+ metadata.gz: a95a3c664d483df9e6c5d968822ac358e74215770e7387186f5de12ac72cedeb
4
+ data.tar.gz: 55e9c02ef0d7794ba797c4fe9c1fdc023c0b08d32178386d53eabcdcb317a0b9
5
5
  SHA512:
6
- metadata.gz: 75a8092ba29b8d75a141c0abff7d519e91f140e56b0220ba4a59512fcc9172aa13b9b068face217f418ec2afc3ef4f0377dac4e0d124b6399bc033b9d2a0bf6f
7
- data.tar.gz: 1aac91f51c220a78c5f1a4d3aa77a7ccf07d7a8929f20a869ec702e67deff7d43a18d8c19913005b99dace1666a73715ee0fa9cafbfacccfb78f2ed60493482d
6
+ metadata.gz: 5252115360b664c8353c05f417b62992bc2970fd04cf1c77281c6eb0ebb185d58ce8b4f3909729b00b7d8b205bf09eb2ccf6ee530044393cf5139b0b44e54f16
7
+ data.tar.gz: 59358958fdae5ed1aac9edcffde28ffc21bd348ffd589d467be59a005b4dd2c2e942981399f412c710eec630e748a9a2438273cb2a569aa09c17388bc2e25927
data/.vimproject CHANGED
@@ -1,28 +1,6 @@
1
1
  scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.txt *.conf" {
2
- Rakefile
3
2
  README.md
4
- LICENSE.txt
5
- bin=bin filter="*"{
6
- scout-ai
7
- }
8
3
  chats=chats filter="*"{
9
- agent_doc
10
-
11
- tool_oeu
12
-
13
- multi_agent.rb
14
-
15
- network
16
-
17
- intro
18
-
19
- dev
20
-
21
- inline_task
22
-
23
- inline_task.rb
24
-
25
- course
26
4
  system=system{
27
5
  scout-ai
28
6
  }
@@ -32,26 +10,6 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
32
10
  model
33
11
  model.analysis
34
12
  }
35
- develop=develop{
36
- causalLM
37
- chat
38
- digest
39
- finetuning
40
- json_format
41
- model
42
- rf
43
- training=training{
44
- basics
45
- data.tmp
46
- intro
47
- python
48
- data=data{
49
- main
50
- next_token
51
- test.rb
52
- }
53
- }
54
- }
55
13
  refactor=refactor{
56
14
  chat
57
15
  }
@@ -75,12 +33,21 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
75
33
  cmd
76
34
  web
77
35
  }
78
- }
79
- doc=doc filter="*"{
80
- Agent.md
81
- Chat.md
82
- LLM.md
83
- Model.md
36
+
37
+ develop=develop{
38
+ training=training{
39
+ data=data{
40
+ }
41
+ }
42
+
43
+ scout-ai
44
+ agent
45
+ }
46
+
47
+ log_reponse
48
+ test_log_resonse
49
+
50
+ test_prompt.rb
84
51
  }
85
52
  lib=lib {
86
53
  scout-ai.rb
@@ -92,13 +59,6 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
92
59
  }
93
60
  llm=llm{
94
61
  utils.rb
95
- tools.rb
96
- tools=tools{
97
- mcp.rb
98
- workflow.rb
99
- knowledge_base.rb
100
- call.rb
101
- }
102
62
  chat.rb
103
63
  chat=chat{
104
64
  annotation.rb
@@ -109,16 +69,29 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
109
69
  files.rb
110
70
  clear.rb
111
71
  options.rb
72
+ meta.rb
112
73
  }
113
74
  }
75
+ tools.rb
76
+ tools=tools{
77
+ mcp.rb
78
+ workflow.rb
79
+ knowledge_base.rb
80
+ call.rb
81
+ }
114
82
 
115
83
  backends=backends{
116
- openai.rb
84
+ default.rb
85
+
117
86
  responses.rb
118
- anthropic.rb
87
+ openai.rb
119
88
  ollama.rb
120
- bedrock.rb
89
+ anthropic.rb
90
+ vllm.rb
91
+
121
92
  openwebui.rb
93
+
94
+ bedrock.rb
122
95
  huggingface.rb
123
96
  relay.rb
124
97
  }
@@ -183,6 +156,18 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
183
156
  }
184
157
  }
185
158
  }
159
+ share=share{
160
+ server=server files="*"{
161
+ chat.html
162
+ chat.js
163
+ }
164
+ }
165
+ doc=doc filter="*"{
166
+ Agent.md
167
+ Chat.md
168
+ LLM.md
169
+ Model.md
170
+ }
186
171
  test=test {
187
172
  data=data filter="*"{
188
173
  person=person{
@@ -194,7 +179,8 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
194
179
  }
195
180
  test_helper.rb
196
181
  }
197
- data=data filter="*"{
182
+ bin=bin filter="*"{
183
+ scout-ai
198
184
  }
199
185
  scout_commands=scout_commands filter="*"{
200
186
  documenter
@@ -209,10 +195,4 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
209
195
  kb
210
196
  }
211
197
  }
212
- share=share{
213
- server=server files="*"{
214
- chat.html
215
- chat.js
216
- }
217
- }
218
198
  }
data/README.md CHANGED
@@ -22,8 +22,8 @@ Scout originates from the Rbbt ecosystem (bioinformatics workflows). Numerous en
22
22
 
23
23
  The sections below summarize the main components (LLM, Chat, Agent, Model), quick starts, and the command‑line interface. For full APIs, see the doc/ directory.
24
24
 
25
- - doc/LLM.md — multi‑backend LLM orchestration, tool calling, embeddings
26
- - doc/Chat.md — conversation builder/serializer
25
+ - doc/LLM.md — multi‑backend LLM orchestration, tool calling, endpoints, CLI
26
+ - doc/Chat.md — chat files: roles/options, compilation pipeline, persistence
27
27
  - doc/Agent.md — stateful agents wired to Workflows and KnowledgeBases
28
28
  - doc/Model.md — model wrappers (ScoutModel, Python/Torch/Hugging Face)
29
29
 
@@ -37,9 +37,10 @@ Scout is a Ruby framework. Add scout-ai (and the other packages you need) to you
37
37
  - Python 3 (installed and visible in PATH)
38
38
  - pycall gem (Ruby ↔ Python bridge)
39
39
  - Python packages: torch, transformers, numpy, pandas (as needed)
40
- - For OpenAI or similar backends: set API keys in environment or config (see LLM backend docs)
40
+ - For OpenAI/Anthropic/etc backends: set API keys in environment or config (see `doc/LLM.md`)
41
41
 
42
42
  Typical Gemfile fragment:
43
+
43
44
  ```ruby
44
45
  gem 'scout-essentials', git: 'https://github.com/mikisvaz/scout-essentials'
45
46
  gem 'scout-gear', git: 'https://github.com/mikisvaz/scout-gear'
@@ -47,26 +48,64 @@ gem 'scout-rig', git: 'https://github.com/mikisvaz/scout-rig'
47
48
  gem 'scout-ai', git: 'https://github.com/mikisvaz/scout-ai'
48
49
  ```
49
50
 
50
- Backends and endpoints can be configured under Scout.etc.AI/<endpoint>.yaml (merged into asks), or via environment variables per backend (see doc/LLM.md).
51
+ ### Endpoints (recommended)
52
+
53
+ Backends and endpoints can be configured via:
54
+
55
+ - per-endpoint YAML files (recommended): `~/.scout/etc/AI/<endpoint>`
56
+ - environment variables per backend (see `doc/LLM.md`)
57
+
58
+ Most teams create a few named endpoints (e.g. `nano`, `deep`, `ollama`) and then reference them with:
59
+
60
+ - Ruby: `endpoint: :nano`
61
+ - CLI: `-e nano`
51
62
 
52
63
 
53
64
  ## Quick starts
54
65
 
66
+ ### Configure an endpoint (once)
67
+
68
+ Create `~/.scout/etc/AI/nano`:
69
+
70
+ ```yaml
71
+ backend: responses
72
+ model: gpt-5-nano
73
+ ```
74
+
75
+ Or a higher-effort endpoint `~/.scout/etc/AI/deep`:
76
+
77
+ ```yaml
78
+ backend: responses
79
+ model: gpt-5
80
+ reasoning_effort: high
81
+ text_verbosity: high
82
+ ```
83
+
84
+ Keys beyond `backend/url/model` are passed through to the backend.
85
+
55
86
  ### Ask a model
56
87
 
88
+ Ruby:
89
+
57
90
  ```ruby
58
91
  require 'scout-ai'
59
- answer = LLM.ask "What is the capital of France?", backend: :openai, model: "gpt-4.1-mini"
92
+ answer = LLM.ask "What is the capital of France?", endpoint: :nano
60
93
  puts answer
61
94
  ```
62
95
 
96
+ CLI:
97
+
98
+ ```bash
99
+ scout-ai llm ask -e nano "What is the capital of France?"
100
+ ```
101
+
63
102
  Chat builder:
64
103
 
65
104
  ```ruby
66
105
  chat = Chat.setup []
67
106
  chat.system "You are a terse assistant"
68
107
  chat.user "List three colors"
69
- puts chat.ask
108
+ puts chat.ask(endpoint: :nano)
70
109
  ```
71
110
 
72
111
  ### Tool calling with a Workflow
@@ -83,11 +122,13 @@ m = Module.new do
83
122
  input :name, :string
84
123
  input :age, :integer
85
124
  input :gender, :select, nil, select_options: %w(male female)
86
- task :person => :yaml do inputs.to_hash end
125
+ task :person => :yaml do
126
+ inputs.to_hash
127
+ end
87
128
  end
88
129
 
89
130
  puts LLM.workflow_ask(m, "Register Eduard Smith, a 25 yo male, using a tool call",
90
- backend: 'ollama', model: 'llama3')
131
+ endpoint: :nano)
91
132
  ```
92
133
 
93
134
  ### Stateful agent with a KnowledgeBase
@@ -102,15 +143,17 @@ TmpFile.with_dir do |dir|
102
143
  undirected: true, source: "=>Alias", target: "=>Alias"
103
144
  kb.register :parents, datafile_test(:person).parents
104
145
 
105
- agent = LLM::Agent.new knowledge_base: kb
106
- puts agent.ask "Who is Miki's brother in law?"
146
+ agent = LLM::Agent.new(knowledge_base: kb, endpoint: :nano)
147
+ agent.start
148
+ agent.user "Who is Miki's brother in law?"
149
+ puts agent.chat
107
150
  end
108
151
  ```
109
152
 
110
153
  ### Structured iteration
111
154
 
112
155
  ```ruby
113
- agent = LLM::Agent.new
156
+ agent = LLM::Agent.new(endpoint: :nano)
114
157
  agent.iterate("List three steps to bake bread") { |step| puts "- #{step}" }
115
158
 
116
159
  agent.iterate_dictionary("Give capital cities for FR, ES, IT") do |country, capital|
@@ -148,33 +191,28 @@ end
148
191
 
149
192
  A compact, multi‑backend layer to ask LLMs, wire function‑calling tools, parse/print chats, and compute embeddings.
150
193
 
151
- - ask(question, options={}, &block) — normalize a question to messages (LLM.chat), merge endpoint/model/format, run backend, and return assistant output (or messages with return_messages: true)
152
- - Backends: OpenAI‑style, Responses (multimodal, JSON schema), Ollama, OpenWebUI, AWS Bedrock, and a simple Relay
153
- - Tools: export Workflow tasks (LLM.workflow_tools) and KnowledgeBase lookups; tool calls are handled via a block
154
- - Embeddings and a tiny RAG helper
155
- - Chat/print pipeline: imports, clean, tasks/jobs as function calls, files/directories as tagged content
156
- - Configuration: endpoint defaults in Scout.etc.AI/endpoint.yaml are merged into options automatically
194
+ - `LLM.ask(question, options={}, &block)`compile `question` via `LLM.chat`, merge endpoint/model/format options, call backend
195
+ - Backends: Responses, OpenAI, Anthropic, Ollama, vLLM, OpenWebUI, AWS Bedrock, Relay
196
+ - Tools: export Workflow tasks and KnowledgeBase databases as function tools
197
+ - Chat compilation pipeline: imports, clear/skip, tasks/jobs, files/directories
198
+ - Endpoint configuration: `~/.scout/etc/AI/<endpoint>`
157
199
 
158
200
  ### Chat (doc/Chat.md)
159
201
 
160
- A lightweight builder over an Array of {role:, content:} messages with helpers:
202
+ Chat is both:
161
203
 
162
- - user/system/assistant, file/directory tagging, import/continue
163
- - tool/workflow task declarations, jobs/inline jobs
164
- - association declarations (KnowledgeBase)
165
- - option, endpoint, model, format (including JSON schema requests)
166
- - ask, chat, json/json_format, print/save/write/write_answer, branch/shed
204
+ - a builder over an Array of `{role:, content:}` messages
205
+ - a stable on-disk “chat file” format used by the CLI
167
206
 
168
- Use Chat to author “chat files” on disk or build conversations programmatically.
207
+ See `doc/Chat.md` for the full list of special roles (options, tools, imports, files, tasks, MCP, KB).
169
208
 
170
209
  ### Agent (doc/Agent.md)
171
210
 
172
- A thin orchestrator around Chat and LLM that keeps state and injects tools:
211
+ An Agent is a stateful wrapper around Chat and LLM:
173
212
 
174
- - Maintains a live conversation (start_chat, start, current_chat)
175
- - Auto‑exports Workflow tasks and a KnowledgeBase traversal tool
176
- - ask/chat/json/iterate helpers; structured iteration over lists/dictionaries
177
- - load_from_path(dir) — bootstrap from a directory containing workflow.rb, knowledge_base, start_chat
213
+ - maintains a current conversation (`start_chat`, `start`, `current_chat`)
214
+ - auto-exports Workflow tasks and KnowledgeBase databases as tools
215
+ - provides `chat/json/json_format/iterate` helpers
178
216
 
179
217
  ### Model (doc/Model.md)
180
218
 
@@ -188,11 +226,6 @@ A composable framework to wrap models with a consistent API:
188
226
  - CausalModel — chat/causal generation (supports apply_chat_template)
189
227
  - NextTokenModel — simple next‑token fine‑tuning loop
190
228
 
191
- Pattern:
192
- - Keep feature extraction separate from evaluation
193
- - Use eval_list to batch large tables
194
- - Persist directory state and behavior to reuse
195
-
196
229
 
197
230
  ## Example: ExTRI2 workflow (models in practice)
198
231
 
@@ -203,47 +236,50 @@ The ExTRI2 Workflow (Rbbt‑Workflows) uses HuggingfaceModel to score TRI senten
203
236
  - Adds fields “Valid score” and “Valid” to the TSV
204
237
  - Runs a second SequenceClassification model to produce “MoR” and “MoR scores”
205
238
 
206
- See workflows/ExTRI2/workflow.rb in that repository for the full implementation.
239
+ See workflow.rb in that repository for the full implementation. http://github.com/Rbbt-Workflows/ExTRI2
207
240
 
208
241
 
209
242
  ## Command‑Line Interface
210
243
 
211
- The bin/scout dispatcher locates scripts under scout_commands across installed packages and workflows using the Path subsystem. Resolution works by adding terms until a file is found to execute:
244
+ The bin/scout dispatcher locates scripts under scout_commands across installed packages and workflows using the Path subsystem.
245
+
246
+ You can run it as:
212
247
 
213
- - If the fragment maps to a directory, a listing of available subcommands is shown
214
- - Scripts can be nested arbitrarily (e.g., agent/kb)
215
- - Other packages or workflows can define their own scripts under share/scout_commands, and bin/scout will find them
248
+ - `scout ...` (the standard Scout CLI), or
249
+ - `scout-ai ...` (a thin wrapper that loads Scout with `scout-ai` available)
216
250
 
217
251
  ### scout llm …
218
252
 
219
253
  Ask an LLM, manage chat files, run a minimal web UI, or process queued requests. Scripts live under scout_commands/llm.
220
254
 
221
255
  - Ask
222
- - scout llm ask [options] [question]
256
+ - `scout llm ask [options] [question]`
257
+ - `scout-ai llm ask [options] [question]`
223
258
  - -t|--template <file_or_key> — load a prompt template; substitutes “???” or appends
224
259
  - -c|--chat <chat_file> — load/extend a conversation (appends the reply)
225
260
  - -i|--inline <file> — answer “# ask: …” directives inline in a source file
226
261
  - -f|--file <file> — prepend file content or substitute where “...” appears
227
- - -m|--model, -e|--endpoint, -b|--backend — select backend/model; merged with Scout.etc.AI
262
+ - -m|--model, -e|--endpoint, -b|--backend — select backend/model; merged with endpoint configs
228
263
  - -d|--dry_run — expand and print the conversation (no ask)
229
264
 
230
265
  - Relay processor (for the Relay backend)
231
- - scout llm process [directory] — watches a queue directory and answers ask JSONs
266
+ - `scout llm process [directory]` — watches a queue directory and answers ask JSONs
232
267
 
233
268
  - Web UI server
234
- - scout llm server — static chat UI over ./chats with a small JSON API
269
+ - `scout llm server` — static chat UI over ./chats with a small JSON API
235
270
 
236
271
  - Templates
237
- - scout llm template — list installed prompt templates (Scout.questions)
272
+ - `scout llm template` — list installed prompt templates (Scout.questions)
238
273
 
239
- Run scout llm alone to see available subcommands. If you target a directory (e.g., “scout llm”), a help‑like listing is printed.
274
+ Run `scout llm` alone to see available subcommands.
240
275
 
241
276
  ### scout agent …
242
277
 
243
278
  Stateful agents with Workflow and KnowledgeBase tooled up. Scripts live under scout_commands/agent.
244
279
 
245
280
  - Ask via an Agent
246
- - scout agent ask [options] [agent_name] [question]
281
+ - `scout agent ask [options] [agent_name] [question]`
282
+ - `scout-ai agent ask [options] [agent_name] [question]`
247
283
  - -l|--log <level> — set log severity
248
284
  - -t|--template <file_or_key>
249
285
  - -c|--chat <chat_file>
@@ -253,31 +289,25 @@ Stateful agents with Workflow and KnowledgeBase tooled up. Scripts live under sc
253
289
  - agent_name resolves via Scout.workflows[agent_name] (a workflow) or Scout.chats[agent_name] (an agent directory with workflow.rb/knowledge_base/start_chat)
254
290
 
255
291
  - KnowledgeBase passthrough
256
- - scout agent kb <agent_name> <kb subcommand...>
257
- - Loads the agent’s knowledge base and forwards to “scout kb …” (see scout-gear doc/KnowledgeBase.md for kb CLI)
292
+ - `scout agent kb <agent_name> <kb subcommand...>`
258
293
 
259
- As with other Scout CLIs, if you target a directory of commands (e.g., “scout agent”), bin/scout will show the subcommand listing.
260
-
261
- Note: Workflows also have extensive CLI commands (scout workflow …) for job execution, provenance, orchestration, and queue processing. When you integrate models inside tasks, you drive them through the workflow CLI (see scout-gear doc/Workflow.md).
294
+ Note: Workflows also have extensive CLI commands (`scout workflow …`) for job execution, provenance, orchestration, and queue processing.
262
295
 
263
296
 
264
297
  ## Configuration, persistence and reproducibility
265
298
 
266
- - Endpoint presets: place YAML under Scout.etc.AI/<endpoint>.yaml to preconfigure URLs, models, headers, etc.; CLI options and chat inline options override defaults
299
+ - Endpoint presets: place YAML under `~/.scout/etc/AI/<endpoint>` to preconfigure url/model/backend and backend-specific knobs
267
300
  - Tool calling: Workflow tasks are exported as JSON schemas per backend; results are serialized back to the model as tool replies
268
- - Caching: LLM.ask persists responses (by default) using Persist.persist; disable with persist: false
269
- - Models: pass a directory to persist options/behavior/state (Torch/HF use state files or save_pretrained directories); save/restore to reuse
270
- - Chats: save printable conversations with Chat#save; reuse with “scout llm ask -c <file>”
271
-
272
- For Python models, ensure scout-rig (ScoutPython) is installed and Python packages are present. See doc/Python.md in scout-rig for details.
301
+ - Caching: `LLM.ask` persists responses (by default) using `Persist.persist`; disable with `persist: false`
302
+ - Chats: save printable conversations with Chat#save; reuse with `scout-ai llm ask -c <file>`
273
303
 
274
304
 
275
305
  ## Where to go next
276
306
 
277
307
  - Explore the API docs shipped in this repository:
278
- - doc/LLM.md — orchestration, backends, tools, CLI
279
- - doc/Chat.md — conversation DSL and file format
280
- - doc/Agent.md — stateful agents, Workflow/KB wiring, iterate helpers
308
+ - doc/LLM.md — orchestration, endpoints, backends, tools, CLI
309
+ - doc/Chat.md — chat files: roles/options and compilation behavior
310
+ - doc/Agent.md — stateful agents, Workflow/KB wiring, delegation, iterate helpers
281
311
  - doc/Model.md — model wrappers; ScoutModel, Python/Torch/Hugging Face
282
312
 
283
313
  - Browse real‑world workflows (including ExTRI2) in Rbbt‑Workflows:
@@ -293,4 +323,4 @@ For Python models, ensure scout-rig (ScoutPython) is installed and Python packag
293
323
 
294
324
  ## License and contributions
295
325
 
296
- Issues and PRs are welcome across the Scout repositories. Please open tickets in the relevant package (e.g., scout-ai for LLM/Agent/Model topics).
326
+ Issues and PRs are welcome across the Scout repositories. Please open tickets in the relevant package (e.g., scout-ai for LLM/Agent/Model topics).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.8
1
+ 1.2.0
data/bin/scout-ai CHANGED
@@ -6,8 +6,8 @@ if _i = ARGV.index("--log")
6
6
  require 'scout/log'
7
7
  log = ARGV[_i+1]
8
8
  Log.severity = log.to_i
9
- ARGV.delete "--log"
10
- ARGV.delete log
9
+ ARGV.delete_at _i + 1
10
+ ARGV.delete_at _i
11
11
  end
12
12
 
13
13
  dev_dir = nil