-
Notifications
You must be signed in to change notification settings - Fork 2
Add registry-driven Task tool and agent configuration loading #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Changes from all commits
Commits
Show all changes
95 commits
Select commit
Hold shift + click to select a range
1321408
Added: llm-coding-tools-subagents workspace member for agent configur…
Sewer56 d28eed8
Added: permission system and subagent registry for access control
Sewer56 b9305fd
Added: Task Tool for framework-agnostic subagent execution with permi…
Sewer56 1ade901
Changed: Expand preprocess_frontmatter docs with transformation examples
Sewer56 bc11488
Improved: Rewrite the frontmatter code for performance
Sewer56 12e835a
Improved: Optimize frontmatter parsing with in-place body extraction …
Sewer56 bf1dc0d
Changed: Document block_scalar_parts function in frontmatter.rs
Sewer56 3f5fbb0
Reorder: pub should come first in loader.
Sewer56 08fe5ea
Improved: Replace IndexMap with HashMap for better performance where …
Sewer56 a148e83
Added: AGENTS.md at root repo that references inner
Sewer56 4cea382
Changed: Improve backtracking comment in wildcard matching function
Sewer56 b9e064d
Added: AgentLoader builder API for flexible agent configuration loading
Sewer56 eb23a80
Changed: Update docs and add tests for AgentLoader API
Sewer56 fcd987f
Changed: Consolidate agent loading behind AgentLoader
Sewer56 e83ef16
Fixed: Verification scripts failing when invoked from non-project dir…
Sewer56 a98065c
Changed: Refactor AgentLoader to insert into registry immediately
Sewer56 4af147d
Updated: AGENTS.MD to latest 1.1.0
Sewer56 fb230a2
Changed: Refactor task modules to prepare for TaskRunner expansion
Sewer56 c76546f
Changed: Migrate to reloaded-templates-rust:1.1.1
Sewer56 7ab9d07
Rename llm-coding-tools-subagents to llm-coding-tools-agents
Sewer56 bbf90ad
Added: AgentCatalog for config-only agent storage and loading
Sewer56 d37e8af
fix: address CodeRabbit findings
Sewer56 ea1e373
Added: Cloneable tool catalog types for registry-based agent construc…
Sewer56 b4f6bc4
fix: address CodeRabbit review findings
Sewer56 7d536dc
Added: Rig-native AgentRegistry for registry-based task invocation
Sewer56 c50f3f1
Added: serdesAI AgentRegistry for precomputed agent storage and Task …
Sewer56 2eef34f
Update Cargo.lock after indexmap dependency addition
Sewer56 b16fac0
Fixed: Address CodeRabbit review findings
Sewer56 6bc95f1
Changed: Remove legacy Task APIs and migrate to registry-driven Task …
Sewer56 57e1f3d
Added: registry-driven Task tool examples for Rig and SerdesAI framew…
Sewer56 68feb20
Changed: Rename Task examples to "agents" naming with include_str! co…
Sewer56 7427d58
Migrate examples from OpenRouter to OpenAI with synthetic.new endpoint
Sewer56 17158db
Remove rig framework support
Sewer56 dc4f527
Add deprecation notice for rig framework
Sewer56 169d368
Merge remote-tracking branch 'origin/main' into agents-core
Sewer56 653572f
Fix: Format Rust source files
Sewer56 9a9a98c
Added: models.dev catalog crate with bundled snapshot and lookup API
Sewer56 3a9d908
Added: models.dev catalog cache refresh and update pipeline
Sewer56 4f68c61
Added: model_resolver for provider-specific model configuration resol…
Sewer56 afac040
Fixed: Address CodeRabbit review findings
Sewer56 7941de1
Fixes: improve documentation consistency, add API key redaction in De…
Sewer56 4be3541
Updated: AGENTS.md location
Sewer56 817064d
Changed: Replace PathBuf error values with Option<PathBuf> for in-mem…
Sewer56 a51eb78
Changed: Enforce required description field per OpenCode agent spec
Sewer56 a65145d
Remove unused format() method from TaskOutput
Sewer56 cebc73d
Changed: Refactor parser into directory module with dedicated preproc…
Sewer56 111ab31
Changed: Optimize extract_body_inplace to reuse String allocation in-…
Sewer56 1b514bb
Changed: Use indoc! macro for cleaner test multiline strings
Sewer56 27ad82b
Improve: Consolidate empty frontmatter tests
Sewer56 b00b7b0
Changed: Add 30-second timeout to HTTP client in download_and_compress()
Sewer56 c4a494b
Added: Explicit Rust toolchain setup to models-dev-update workflow
Sewer56 56f6bc8
Added: Comment noting unsupported reasoningEffort field in test fixture
Sewer56 f93f2aa
Changed: Align serdesai-agents example API key handling with serdesai…
Sewer56 ca59aeb
Changed: Clarify headless scope and simplify AGENTS project overview
Sewer56 95ccccc
Fixed: Write models.dev.min.json as minified JSON
Sewer56 cc6f536
Added: Include README.md as crate documentation in lib.rs
Sewer56 cc7ca3f
Changed: Implement headless permission contract for agent mode and ta…
Sewer56 91dbbe3
Changed: CodeRabbit CLI review fixes for serdesai and agents crates
Sewer56 52e4ac9
Added: Recursive Task delegation with caller-specific permission eval…
Sewer56 f243e40
Apply CodeRabbit review fixes to recursive task delegation and relate…
Sewer56 c18556b
Changed: Update serdesai README with synthetic API examples and runna…
Sewer56 b5a75a0
Fixed: Format Rust source files in serdesai crate
Sewer56 be15cf0
Removed: Dead `last_prompt()` method from recursive task delegation test
Sewer56 5f795c9
Fixed: Correct misleading comment in depth_2_allow_chain_succeeds test
Sewer56 40d30a8
Changed: Minor fix of agents crate readme.
Sewer56 6563c2a
Refactor: Clean up reused code in registry.rs
Sewer56 3016040
Fixed: Correct doctest in models-dev README to compile properly
Sewer56 07b7d88
Fixed: Incorrect extension in serdesai example
Sewer56 a4897e8
Added: Format remaining files
Sewer56 86ec51b
Updated: Dependencies on agents crate
Sewer56 0427f67
Changed: Move TaskInput and TaskOutput types to llm-coding-tools-core
Sewer56 358eecf
Merge main (bf3a29d): Rename operations to tools
Sewer56 284b847
Changed: Restructure fs module with feature-flagged blocking/tokio im…
Sewer56 7495288
Changed: Move permission module from agents to core crate
Sewer56 f88f98c
Changed: Unify llm-coding-tools-agents README and crate docs
Sewer56 e91df73
Changed: Remove missing_docs lint from all crates
Sewer56 cd690d0
Removed: Re-export of PermissionAction, Rule, and Ruleset from agents…
Sewer56 4546a2e
Removed: Unused Substitute trait from system_prompt module
Sewer56 ab4d2fe
Changed: Restructure core library docs for tools, wrappers, and permi…
Sewer56 79e9fc0
Added: Proper module documentation for config.rs
Sewer56 bad1c62
Changed: Simplify add_directory API by splitting into two methods
Sewer56 801e4d4
Fixed: Prevent duplicate symbol exports when both tokio and blocking …
Sewer56 fb6f0df
Fixed: Lint in recursive_task_delegation_integration.rs
Sewer56 2d96028
Fixed: Remove unnecessary mut from AgentLoader doc example
Sewer56 12a61d5
Changed: Split CI workflow and adopt upstream packages field
Sewer56 622b68d
Changed: Run formatter
Sewer56 b0de206
Changed: Simplify serdesai-agents example and rename agent config
Sewer56 f2fd7c4
Added: Model limit extraction from models.dev snapshots
Sewer56 70d5a59
Added: OpenCode-style position-based delimiter parsing for model specs
Sewer56 9b4c044
Changed: Abstract resolver backend via SharedModelResolver trait object
Sewer56 7de75c4
Fixed: serdesai-agents example missing Task tool permission and API k…
Sewer56 ca57ee6
Merge branch 'main' into task-tool
Sewer56 fa7b2fd
Merge branch 'main' into task-tool
Sewer56 b0b7d21
Merge branch 'main' into task-tool
Sewer56 5397c30
Remove unreferenced duplicate config.rs and error.rs files
Sewer56 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| reloaded-templates-rust:1.0.1 | ||
| reloaded-templates-rust:1.1.1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| name: Update models.dev catalog | ||
|
|
||
| on: | ||
| schedule: | ||
| - cron: "0 9 * * 1" | ||
| workflow_dispatch: | ||
|
|
||
| jobs: | ||
| update-catalog: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
| cache: true | ||
| - name: Run models.dev updater | ||
| working-directory: src | ||
| run: cargo run -p llm-coding-tools-models-dev --bin models-dev-update | ||
| - name: Create pull request | ||
| uses: peter-evans/create-pull-request@v6 | ||
| with: | ||
| title: "chore: update models.dev catalog" | ||
| body: "Automated update of models.dev catalog snapshot." | ||
| commit-message: "chore: update models.dev catalog" | ||
| branch: "automation/models-dev-catalog" | ||
| add-paths: | | ||
| src/llm-coding-tools-models-dev/data/models.dev.min.json |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| @src/AGENTS.md |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| [package] | ||
| name = "llm-coding-tools-models-dev" | ||
| version = "0.1.0" | ||
| edition = "2021" | ||
| description = "Bundled models.dev catalog snapshot and lookup API" | ||
| repository = "https://github.com/Sewer56/llm-coding-tools" | ||
| license = "Apache-2.0" | ||
| readme = "README.md" | ||
| include = ["src/**/*", "data/**/*", "build.rs", "README.md"] | ||
|
|
||
| [dependencies] | ||
| serde = { version = "1.0", features = ["derive"] } | ||
| serde_json = "1.0" | ||
| thiserror = "2.0" | ||
| reqwest = { version = "0.13", default-features = false, features = [ | ||
| "rustls", | ||
| "rustls-native-certs", | ||
| ] } | ||
| tokio = { version = "1.48", features = ["fs", "io-util", "rt", "macros", "sync"] } | ||
| zstd = "0.13" | ||
|
|
||
| [build-dependencies] | ||
| zstd = "0.13" | ||
|
|
||
| [dev-dependencies] | ||
| tokio = { version = "1.48", features = ["rt", "macros", "sync"] } | ||
| tempfile = "3.24" | ||
| wiremock = "0.6" | ||
|
|
||
| [[bin]] | ||
| name = "models-dev-update" | ||
| path = "src/bin/models-dev-update.rs" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| # llm-coding-tools-models-dev | ||
|
|
||
| Bundled models.dev catalog snapshot and lookup API. | ||
|
|
||
| This crate provides a standalone catalog for models.dev provider and model data, with embedded snapshot support and filtering capabilities. | ||
|
|
||
| ## Features | ||
|
|
||
| - Bundled zstd-compressed snapshot (level 22) | ||
| - Load from bundled, cached, or downloaded sources | ||
| - Model → provider index with optional filtering | ||
| - Provider metadata lookup | ||
| - Deterministic JSON output for vendored snapshots | ||
|
|
||
| ## Usage | ||
|
|
||
| ```rust | ||
| # fn main() -> Result<(), Box<dyn std::error::Error>> { | ||
| use llm_coding_tools_models_dev::{CatalogSource, ModelLimits, ModelsDevCatalog}; | ||
| use std::collections::HashSet; | ||
|
|
||
| // Load bundled snapshot | ||
| let (catalog, source) = ModelsDevCatalog::from_bundled()?; | ||
| assert!(matches!(source, CatalogSource::Bundled)); | ||
|
|
||
| // Resolve providers for a model | ||
| let providers = catalog.resolve_provider_for_model("gpt-4o"); | ||
| if let Some(provider_ids) = providers { | ||
| for provider_id in provider_ids { | ||
| if let Some(metadata) = catalog.get_provider(provider_id) { | ||
| println!("Provider: {} - env: {:?}", metadata.id, metadata.env); | ||
| } | ||
| } | ||
| } | ||
|
|
||
| // Optional model-limit lookups | ||
| if let Some(ModelLimits { context, output }) = catalog.get_model_limits("gpt-4o") { | ||
| println!("gpt-4o context={} output={:?}", context, output); | ||
| } | ||
|
|
||
| // Load with model filtering | ||
| let mut filter = HashSet::new(); | ||
| filter.insert("gpt-4o".to_string()); | ||
| let (catalog, _) = ModelsDevCatalog::from_bundled_filtered(&filter)?; | ||
| # Ok(()) | ||
| # } | ||
| ``` | ||
|
|
||
| ## Update Binary | ||
|
|
||
| Regenerate the vendored snapshot from models.dev: | ||
|
|
||
| ```bash | ||
| cargo run -p llm-coding-tools-models-dev --bin models-dev-update | ||
| ``` | ||
|
|
||
| This fetches the latest data from <https://models.dev/api.json> and writes a minimal snapshot to `data/models.dev.min.json`. | ||
|
|
||
| ## License | ||
|
|
||
| Apache-2.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| use std::{env, fs, path::PathBuf}; | ||
| use zstd::bulk::compress; | ||
|
|
||
| fn main() { | ||
| let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR")); | ||
| let input = manifest_dir.join("data/models.dev.min.json"); | ||
| let out_dir = PathBuf::from(env::var("OUT_DIR").expect("OUT_DIR")); | ||
| let output = out_dir.join("models.dev.min.json.zst"); | ||
|
|
||
| let json = fs::read(&input).expect("read models.dev.min.json"); | ||
| let compressed = compress(&json, 22).expect("zstd compress"); | ||
| fs::write(&output, compressed).expect("write models.dev.min.json.zst"); | ||
|
|
||
| println!("cargo:rerun-if-changed={}", input.display()); | ||
| } |
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.