rubyn-code 0.3.0 → 0.5.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.
- checksums.yaml +4 -4
- data/README.md +263 -21
- data/db/migrations/013_add_failed_status_to_tasks.rb +51 -0
- data/lib/rubyn_code/agent/conversation.rb +34 -4
- data/lib/rubyn_code/agent/dynamic_tool_schema.rb +57 -3
- data/lib/rubyn_code/agent/llm_caller.rb +11 -1
- data/lib/rubyn_code/agent/loop.rb +14 -3
- data/lib/rubyn_code/agent/response_modes.rb +2 -1
- data/lib/rubyn_code/agent/system_prompt_builder.rb +49 -4
- data/lib/rubyn_code/agent/tool_processor.rb +25 -3
- data/lib/rubyn_code/auth/key_encryption.rb +118 -0
- data/lib/rubyn_code/auth/token_store.rb +50 -9
- data/lib/rubyn_code/autonomous/daemon.rb +117 -14
- data/lib/rubyn_code/autonomous/idle_poller.rb +0 -20
- data/lib/rubyn_code/autonomous/task_claimer.rb +17 -11
- data/lib/rubyn_code/cli/app.rb +116 -11
- data/lib/rubyn_code/cli/commands/doctor.rb +73 -0
- data/lib/rubyn_code/cli/commands/install_skills.rb +44 -0
- data/lib/rubyn_code/cli/commands/list_skills.rb +149 -0
- data/lib/rubyn_code/cli/commands/mcp.rb +77 -0
- data/lib/rubyn_code/cli/commands/model.rb +32 -2
- data/lib/rubyn_code/cli/commands/provider.rb +124 -0
- data/lib/rubyn_code/cli/commands/remove_skills.rb +35 -0
- data/lib/rubyn_code/cli/commands/skill.rb +54 -3
- data/lib/rubyn_code/cli/commands/skills.rb +104 -0
- data/lib/rubyn_code/cli/daemon_runner.rb +36 -0
- data/lib/rubyn_code/cli/first_run.rb +159 -0
- data/lib/rubyn_code/cli/repl.rb +15 -0
- data/lib/rubyn_code/cli/repl_commands.rb +3 -1
- data/lib/rubyn_code/cli/repl_lifecycle.rb +1 -0
- data/lib/rubyn_code/cli/repl_setup.rb +74 -1
- data/lib/rubyn_code/config/defaults.rb +3 -0
- data/lib/rubyn_code/config/schema.json +49 -0
- data/lib/rubyn_code/config/settings.rb +12 -6
- data/lib/rubyn_code/config/validator.rb +63 -0
- data/lib/rubyn_code/context/context_budget.rb +18 -2
- data/lib/rubyn_code/context/context_collapse.rb +34 -4
- data/lib/rubyn_code/context/manager.rb +37 -3
- data/lib/rubyn_code/context/manual_compact.rb +1 -1
- data/lib/rubyn_code/hooks/registry.rb +4 -0
- data/lib/rubyn_code/ide/adapters/tool_output.rb +330 -0
- data/lib/rubyn_code/ide/client.rb +110 -0
- data/lib/rubyn_code/ide/handlers/accept_edit_handler.rb +35 -0
- data/lib/rubyn_code/ide/handlers/approve_tool_use_handler.rb +34 -0
- data/lib/rubyn_code/ide/handlers/cancel_handler.rb +41 -0
- data/lib/rubyn_code/ide/handlers/config_get_handler.rb +63 -0
- data/lib/rubyn_code/ide/handlers/config_set_handler.rb +86 -0
- data/lib/rubyn_code/ide/handlers/initialize_handler.rb +79 -0
- data/lib/rubyn_code/ide/handlers/models_list_handler.rb +39 -0
- data/lib/rubyn_code/ide/handlers/prompt_handler.rb +218 -0
- data/lib/rubyn_code/ide/handlers/review_handler.rb +127 -0
- data/lib/rubyn_code/ide/handlers/session_fork_handler.rb +49 -0
- data/lib/rubyn_code/ide/handlers/session_list_handler.rb +41 -0
- data/lib/rubyn_code/ide/handlers/session_reset_handler.rb +31 -0
- data/lib/rubyn_code/ide/handlers/session_resume_handler.rb +42 -0
- data/lib/rubyn_code/ide/handlers/shutdown_handler.rb +37 -0
- data/lib/rubyn_code/ide/handlers.rb +76 -0
- data/lib/rubyn_code/ide/protocol.rb +112 -0
- data/lib/rubyn_code/ide/server.rb +186 -0
- data/lib/rubyn_code/index/codebase_index.rb +69 -2
- data/lib/rubyn_code/learning/extractor.rb +4 -2
- data/lib/rubyn_code/llm/adapters/anthropic.rb +6 -2
- data/lib/rubyn_code/llm/adapters/anthropic_compatible.rb +60 -0
- data/lib/rubyn_code/llm/adapters/openai_compatible.rb +6 -2
- data/lib/rubyn_code/llm/client.rb +29 -4
- data/lib/rubyn_code/llm/model_router.rb +2 -1
- data/lib/rubyn_code/mcp/config.rb +2 -1
- data/lib/rubyn_code/mcp/tool_bridge.rb +1 -1
- data/lib/rubyn_code/memory/search.rb +1 -0
- data/lib/rubyn_code/observability/usage_reporter.rb +4 -2
- data/lib/rubyn_code/output/diff_renderer.rb +3 -2
- data/lib/rubyn_code/self_test.rb +316 -0
- data/lib/rubyn_code/skills/auto_suggest.rb +131 -0
- data/lib/rubyn_code/skills/catalog.rb +76 -0
- data/lib/rubyn_code/skills/document.rb +8 -2
- data/lib/rubyn_code/skills/gemfile_parser.rb +40 -0
- data/lib/rubyn_code/skills/loader.rb +43 -0
- data/lib/rubyn_code/skills/matcher.rb +89 -0
- data/lib/rubyn_code/skills/pack_context.rb +163 -0
- data/lib/rubyn_code/skills/pack_installer.rb +194 -0
- data/lib/rubyn_code/skills/pack_manager.rb +230 -0
- data/lib/rubyn_code/skills/registry_autoload.rb +112 -0
- data/lib/rubyn_code/skills/registry_client.rb +241 -0
- data/lib/rubyn_code/tasks/models.rb +1 -0
- data/lib/rubyn_code/tools/base.rb +13 -0
- data/lib/rubyn_code/tools/bash.rb +5 -0
- data/lib/rubyn_code/tools/edit_file.rb +62 -5
- data/lib/rubyn_code/tools/executor.rb +65 -8
- data/lib/rubyn_code/tools/glob.rb +6 -0
- data/lib/rubyn_code/tools/grep.rb +7 -0
- data/lib/rubyn_code/tools/ide_diagnostics.rb +53 -0
- data/lib/rubyn_code/tools/ide_symbols.rb +55 -0
- data/lib/rubyn_code/tools/load_skill.rb +2 -1
- data/lib/rubyn_code/tools/output_compressor.rb +9 -7
- data/lib/rubyn_code/tools/read_file.rb +6 -0
- data/lib/rubyn_code/tools/registry.rb +11 -0
- data/lib/rubyn_code/tools/review_pr.rb +15 -4
- data/lib/rubyn_code/tools/web_search.rb +2 -1
- data/lib/rubyn_code/tools/write_file.rb +17 -0
- data/lib/rubyn_code/version.rb +1 -1
- data/lib/rubyn_code.rb +34 -0
- data/skills/rubyn_self_test.md +88 -1
- metadata +43 -1
data/skills/rubyn_self_test.md
CHANGED
|
@@ -98,11 +98,98 @@ Score: 18/22 (82%) — 4 failures
|
|
|
98
98
|
### 11. Slash Commands (report only — don't execute)
|
|
99
99
|
- Report which slash commands are registered by reading `lib/rubyn_code/cli/commands/registry.rb` or the help output. PASS if at least 15 commands found.
|
|
100
100
|
|
|
101
|
-
### 12.
|
|
101
|
+
### 12. MCP Integration
|
|
102
|
+
- **grep**: Search for `url:.*server_def` in `lib/rubyn_code/mcp/config.rb`. PASS if at least 1 match found (confirms SSE url is extracted — a critical bug was shipped without this).
|
|
103
|
+
- **grep**: Search for `autoload.*Mcp` in `lib/rubyn_code.rb`. PASS if found (confirms `/mcp` command is wired up).
|
|
104
|
+
- **run_specs**: Run `bundle exec rspec spec/rubyn_code/mcp/config_spec.rb --format progress`. PASS if output contains `0 failures`.
|
|
105
|
+
- **bash**: Check if `.rubyn-code/mcp.json` exists in the project root. PASS if exists, SKIP if not (MCP is optional per-project).
|
|
106
|
+
|
|
107
|
+
### 13. GOLEM Autonomous Mode
|
|
108
|
+
- **grep**: Search for `class Daemon` in `lib/rubyn_code/autonomous/daemon.rb`. PASS if found (confirms daemon framework exists).
|
|
109
|
+
- **grep**: Search for `failed\?` in `lib/rubyn_code/tasks/models.rb`. PASS if found (confirms failed task status is available).
|
|
110
|
+
- **grep**: Search for `total_cost` in `lib/rubyn_code/autonomous/daemon.rb`. PASS if at least 2 matches (confirms cost tracking is implemented).
|
|
111
|
+
- **run_specs**: Run `bundle exec rspec spec/rubyn_code/autonomous/daemon_spec.rb --format progress`. PASS if output contains `0 failures` (verifies lifecycle, retries, cost limits, audit trails, concurrent claiming).
|
|
112
|
+
|
|
113
|
+
### 14. Architecture Integrity
|
|
102
114
|
- **grep**: Search for `autoload` in `lib/rubyn_code.rb`. PASS if at least 40 autoload entries found.
|
|
103
115
|
- **glob**: Check that all 16 layer directories exist under `lib/rubyn_code/`. PASS if at least 14 found.
|
|
104
116
|
- **read_file**: Read `lib/rubyn_code.rb` and verify it has modules for Agent, Tools, Context, Skills, Memory, Observability, Learning. PASS if all 7 found.
|
|
105
117
|
|
|
118
|
+
### 15. Skill-Pack Autoload — Live Registry Roundtrip
|
|
119
|
+
|
|
120
|
+
End-to-end exercise of the autoload pipeline against the real registry at `rubyn.ai`: fetch the catalog, install a pack the user does **not** already have, verify it works on disk + in the catalog + through the matcher, then remove it. The user's pre-existing installed packs are not touched.
|
|
121
|
+
|
|
122
|
+
- **Live roundtrip**: `bash` with the script below. PASS if the final line is `ROUNDTRIP: PASS`. SKIP if the final line starts with `SKIP:` (means every registry pack is already installed locally — rare).
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
bundle exec ruby -e '
|
|
126
|
+
require_relative "lib/rubyn_code"
|
|
127
|
+
|
|
128
|
+
client = RubynCode::Skills::RegistryClient.new
|
|
129
|
+
pack_manager = RubynCode::Skills::PackManager.new
|
|
130
|
+
|
|
131
|
+
catalog_packs = client.fetch_catalog[:data] || []
|
|
132
|
+
abort "FAIL: empty registry catalog" if catalog_packs.empty?
|
|
133
|
+
|
|
134
|
+
already_installed = catalog_packs.map { |p| p[:name] || p["name"] }
|
|
135
|
+
.select { |n| pack_manager.installed?(n) }
|
|
136
|
+
target = catalog_packs.find { |p| !already_installed.include?(p[:name] || p["name"]) }
|
|
137
|
+
abort "SKIP: every registry pack is already installed" if target.nil?
|
|
138
|
+
|
|
139
|
+
name = target[:name] || target["name"]
|
|
140
|
+
puts "TEST PACK: #{name}"
|
|
141
|
+
|
|
142
|
+
success = false
|
|
143
|
+
begin
|
|
144
|
+
result = client.fetch_pack(name)
|
|
145
|
+
pack_manager.install(result[:data], etag: result[:etag])
|
|
146
|
+
raise "install did not create directory" unless pack_manager.installed?(name)
|
|
147
|
+
puts "STEP install: PASS"
|
|
148
|
+
|
|
149
|
+
catalog_obj = RubynCode::Skills::Catalog.new(
|
|
150
|
+
File.join(Dir.home, ".rubyn-code", "skill-packs")
|
|
151
|
+
)
|
|
152
|
+
skills = catalog_obj.available.select { |e| e[:path].include?("/#{name}/") }
|
|
153
|
+
raise "catalog sees no skills" if skills.empty?
|
|
154
|
+
raise "no skills have triggers" if skills.none? { |s| !s[:triggers].empty? }
|
|
155
|
+
puts "STEP catalog: PASS (#{skills.size} skills, #{skills.count { |s| !s[:triggers].empty? }} with triggers)"
|
|
156
|
+
|
|
157
|
+
sample = skills.find { |s| !s[:triggers].empty? }
|
|
158
|
+
matcher = RubynCode::Skills::Matcher.new(catalog: catalog_obj)
|
|
159
|
+
hits = matcher.match("question about #{sample[:triggers].first}")
|
|
160
|
+
raise "matcher did not hit on \"#{sample[:triggers].first}\"" if hits.none? { |h| h[:name] == sample[:name] }
|
|
161
|
+
puts "STEP matcher: PASS (hit \"#{sample[:name]}\" via \"#{sample[:triggers].first}\")"
|
|
162
|
+
success = true
|
|
163
|
+
ensure
|
|
164
|
+
pack_manager.remove(name)
|
|
165
|
+
if pack_manager.installed?(name)
|
|
166
|
+
puts "STEP cleanup: FAIL (pack still on disk)"
|
|
167
|
+
else
|
|
168
|
+
puts "STEP cleanup: PASS"
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
puts(success ? "ROUNDTRIP: PASS" : "ROUNDTRIP: FAIL")
|
|
173
|
+
'
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
The script:
|
|
177
|
+
1. Fetches the registry catalog (proves the static API at `rubyn.ai/api/v1/skills/packs.json` is reachable).
|
|
178
|
+
2. Picks the first pack the user does **not** have installed, so we never touch their existing packs.
|
|
179
|
+
3. Installs the pack via `RegistryClient#fetch_pack` + `PackManager#install` — exactly the path the autoload pipeline uses.
|
|
180
|
+
4. Reads the disk back through a fresh `Skills::Catalog` and confirms the new skills are visible with parsed triggers.
|
|
181
|
+
5. Runs `Skills::Matcher#match` against a real trigger from one of the freshly-installed skills, confirming the matcher would have fired in a real session.
|
|
182
|
+
6. Removes the pack in an `ensure` block so a partial failure still leaves the user's system clean.
|
|
183
|
+
|
|
184
|
+
PASS criteria: `STEP install`, `STEP catalog`, `STEP matcher`, and `STEP cleanup` all `PASS`, with a final `ROUNDTRIP: PASS`.
|
|
185
|
+
|
|
186
|
+
- **Live autoload notification (manual verification, not scored)**: This isn't a tool call — it's a hint to surface in the scorecard for the user. Tell them: after the self-test completes, send a follow-up prompt that includes a trigger word from any pack in the registry (e.g. `"explain turbo drive"`). The Rubyn renderer should print:
|
|
187
|
+
```
|
|
188
|
+
📥 Fetching skill pack 'hotwire' from registry…
|
|
189
|
+
📚 Loaded: turbo-drive
|
|
190
|
+
```
|
|
191
|
+
before the next response (the `📥` line appears only if the pack wasn't already installed). Do **not** count this as PASS/FAIL — just mention it in the scorecard so the user can verify the renderer side themselves.
|
|
192
|
+
|
|
106
193
|
## Scoring
|
|
107
194
|
|
|
108
195
|
Count total PASS results out of total tests run. Report the percentage.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubyn-code
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- fadedmaturity
|
|
@@ -183,6 +183,7 @@ files:
|
|
|
183
183
|
- db/migrations/010_create_instincts.sql
|
|
184
184
|
- db/migrations/011_fix_mailbox_messages_columns.rb
|
|
185
185
|
- db/migrations/012_expand_mailbox_message_types.rb
|
|
186
|
+
- db/migrations/013_add_failed_status_to_tasks.rb
|
|
186
187
|
- exe/rubyn-code
|
|
187
188
|
- lib/rubyn_code.rb
|
|
188
189
|
- lib/rubyn_code/agent/RUBYN.md
|
|
@@ -200,6 +201,7 @@ files:
|
|
|
200
201
|
- lib/rubyn_code/agent/tool_processor.rb
|
|
201
202
|
- lib/rubyn_code/agent/usage_tracker.rb
|
|
202
203
|
- lib/rubyn_code/auth/RUBYN.md
|
|
204
|
+
- lib/rubyn_code/auth/key_encryption.rb
|
|
203
205
|
- lib/rubyn_code/auth/oauth.rb
|
|
204
206
|
- lib/rubyn_code/auth/server.rb
|
|
205
207
|
- lib/rubyn_code/auth/token_store.rb
|
|
@@ -224,20 +226,27 @@ files:
|
|
|
224
226
|
- lib/rubyn_code/cli/commands/diff.rb
|
|
225
227
|
- lib/rubyn_code/cli/commands/doctor.rb
|
|
226
228
|
- lib/rubyn_code/cli/commands/help.rb
|
|
229
|
+
- lib/rubyn_code/cli/commands/install_skills.rb
|
|
230
|
+
- lib/rubyn_code/cli/commands/list_skills.rb
|
|
231
|
+
- lib/rubyn_code/cli/commands/mcp.rb
|
|
227
232
|
- lib/rubyn_code/cli/commands/model.rb
|
|
228
233
|
- lib/rubyn_code/cli/commands/new_session.rb
|
|
229
234
|
- lib/rubyn_code/cli/commands/plan.rb
|
|
235
|
+
- lib/rubyn_code/cli/commands/provider.rb
|
|
230
236
|
- lib/rubyn_code/cli/commands/quit.rb
|
|
231
237
|
- lib/rubyn_code/cli/commands/registry.rb
|
|
238
|
+
- lib/rubyn_code/cli/commands/remove_skills.rb
|
|
232
239
|
- lib/rubyn_code/cli/commands/resume.rb
|
|
233
240
|
- lib/rubyn_code/cli/commands/review.rb
|
|
234
241
|
- lib/rubyn_code/cli/commands/skill.rb
|
|
242
|
+
- lib/rubyn_code/cli/commands/skills.rb
|
|
235
243
|
- lib/rubyn_code/cli/commands/spawn.rb
|
|
236
244
|
- lib/rubyn_code/cli/commands/tasks.rb
|
|
237
245
|
- lib/rubyn_code/cli/commands/tokens.rb
|
|
238
246
|
- lib/rubyn_code/cli/commands/undo.rb
|
|
239
247
|
- lib/rubyn_code/cli/commands/version.rb
|
|
240
248
|
- lib/rubyn_code/cli/daemon_runner.rb
|
|
249
|
+
- lib/rubyn_code/cli/first_run.rb
|
|
241
250
|
- lib/rubyn_code/cli/input_handler.rb
|
|
242
251
|
- lib/rubyn_code/cli/renderer.rb
|
|
243
252
|
- lib/rubyn_code/cli/repl.rb
|
|
@@ -252,7 +261,9 @@ files:
|
|
|
252
261
|
- lib/rubyn_code/config/defaults.rb
|
|
253
262
|
- lib/rubyn_code/config/project_config.rb
|
|
254
263
|
- lib/rubyn_code/config/project_profile.rb
|
|
264
|
+
- lib/rubyn_code/config/schema.json
|
|
255
265
|
- lib/rubyn_code/config/settings.rb
|
|
266
|
+
- lib/rubyn_code/config/validator.rb
|
|
256
267
|
- lib/rubyn_code/context/RUBYN.md
|
|
257
268
|
- lib/rubyn_code/context/auto_compact.rb
|
|
258
269
|
- lib/rubyn_code/context/compactor.rb
|
|
@@ -273,6 +284,25 @@ files:
|
|
|
273
284
|
- lib/rubyn_code/hooks/registry.rb
|
|
274
285
|
- lib/rubyn_code/hooks/runner.rb
|
|
275
286
|
- lib/rubyn_code/hooks/user_hooks.rb
|
|
287
|
+
- lib/rubyn_code/ide/adapters/tool_output.rb
|
|
288
|
+
- lib/rubyn_code/ide/client.rb
|
|
289
|
+
- lib/rubyn_code/ide/handlers.rb
|
|
290
|
+
- lib/rubyn_code/ide/handlers/accept_edit_handler.rb
|
|
291
|
+
- lib/rubyn_code/ide/handlers/approve_tool_use_handler.rb
|
|
292
|
+
- lib/rubyn_code/ide/handlers/cancel_handler.rb
|
|
293
|
+
- lib/rubyn_code/ide/handlers/config_get_handler.rb
|
|
294
|
+
- lib/rubyn_code/ide/handlers/config_set_handler.rb
|
|
295
|
+
- lib/rubyn_code/ide/handlers/initialize_handler.rb
|
|
296
|
+
- lib/rubyn_code/ide/handlers/models_list_handler.rb
|
|
297
|
+
- lib/rubyn_code/ide/handlers/prompt_handler.rb
|
|
298
|
+
- lib/rubyn_code/ide/handlers/review_handler.rb
|
|
299
|
+
- lib/rubyn_code/ide/handlers/session_fork_handler.rb
|
|
300
|
+
- lib/rubyn_code/ide/handlers/session_list_handler.rb
|
|
301
|
+
- lib/rubyn_code/ide/handlers/session_reset_handler.rb
|
|
302
|
+
- lib/rubyn_code/ide/handlers/session_resume_handler.rb
|
|
303
|
+
- lib/rubyn_code/ide/handlers/shutdown_handler.rb
|
|
304
|
+
- lib/rubyn_code/ide/protocol.rb
|
|
305
|
+
- lib/rubyn_code/ide/server.rb
|
|
276
306
|
- lib/rubyn_code/index/codebase_index.rb
|
|
277
307
|
- lib/rubyn_code/learning/RUBYN.md
|
|
278
308
|
- lib/rubyn_code/learning/extractor.rb
|
|
@@ -281,6 +311,7 @@ files:
|
|
|
281
311
|
- lib/rubyn_code/learning/shortcut.rb
|
|
282
312
|
- lib/rubyn_code/llm/RUBYN.md
|
|
283
313
|
- lib/rubyn_code/llm/adapters/anthropic.rb
|
|
314
|
+
- lib/rubyn_code/llm/adapters/anthropic_compatible.rb
|
|
284
315
|
- lib/rubyn_code/llm/adapters/anthropic_streaming.rb
|
|
285
316
|
- lib/rubyn_code/llm/adapters/base.rb
|
|
286
317
|
- lib/rubyn_code/llm/adapters/json_parsing.rb
|
|
@@ -324,10 +355,19 @@ files:
|
|
|
324
355
|
- lib/rubyn_code/protocols/interrupt_handler.rb
|
|
325
356
|
- lib/rubyn_code/protocols/plan_approval.rb
|
|
326
357
|
- lib/rubyn_code/protocols/shutdown_handshake.rb
|
|
358
|
+
- lib/rubyn_code/self_test.rb
|
|
327
359
|
- lib/rubyn_code/skills/RUBYN.md
|
|
360
|
+
- lib/rubyn_code/skills/auto_suggest.rb
|
|
328
361
|
- lib/rubyn_code/skills/catalog.rb
|
|
329
362
|
- lib/rubyn_code/skills/document.rb
|
|
363
|
+
- lib/rubyn_code/skills/gemfile_parser.rb
|
|
330
364
|
- lib/rubyn_code/skills/loader.rb
|
|
365
|
+
- lib/rubyn_code/skills/matcher.rb
|
|
366
|
+
- lib/rubyn_code/skills/pack_context.rb
|
|
367
|
+
- lib/rubyn_code/skills/pack_installer.rb
|
|
368
|
+
- lib/rubyn_code/skills/pack_manager.rb
|
|
369
|
+
- lib/rubyn_code/skills/registry_autoload.rb
|
|
370
|
+
- lib/rubyn_code/skills/registry_client.rb
|
|
331
371
|
- lib/rubyn_code/skills/ttl_manager.rb
|
|
332
372
|
- lib/rubyn_code/sub_agents/RUBYN.md
|
|
333
373
|
- lib/rubyn_code/sub_agents/runner.rb
|
|
@@ -358,6 +398,8 @@ files:
|
|
|
358
398
|
- lib/rubyn_code/tools/git_status.rb
|
|
359
399
|
- lib/rubyn_code/tools/glob.rb
|
|
360
400
|
- lib/rubyn_code/tools/grep.rb
|
|
401
|
+
- lib/rubyn_code/tools/ide_diagnostics.rb
|
|
402
|
+
- lib/rubyn_code/tools/ide_symbols.rb
|
|
361
403
|
- lib/rubyn_code/tools/load_skill.rb
|
|
362
404
|
- lib/rubyn_code/tools/memory_search.rb
|
|
363
405
|
- lib/rubyn_code/tools/memory_write.rb
|