Commit Graph
41 Commits
Author SHA1 Message Date
Evan c192f493b4 fix: route providers through correct APIs (#39)
Providers with known public APIs use their official endpoints:
- meta-llama → api.llama.com/v1
- microsoft → models.inference.ai.azure.com (GitHub Models)
- ibm-granite → us-south.ml.cloud.ibm.com/ml/v1 (watsonx)
- tencent → api.hunyuan.cloud.tencent.com/v1
- morph → api.morphllm.com/v1

16 remaining providers without known public APIs route through
OpenRouter (base_url = openrouter.ai/api/v1, OPENROUTER_API_KEY).

sync-pricing.py updated with PROVIDER_API mapping.
2026-04-02 23:55:42 +08:00
Evan aa5822992a fix: route OpenRouter-only providers through OpenRouter API (#38)
Providers without their own public API now use OpenRouter as their
base_url with OPENROUTER_API_KEY, making them testable and usable
when the user has an OpenRouter key configured.

- 20 OpenRouter-only providers: set base_url to openrouter.ai/api/v1
- morph: set correct official API (api.morphllm.com/v1)
- sync-pricing.py: default to OpenRouter routing for new providers
2026-04-02 23:41:25 +08:00
Evan 2fa48bfdcb fix: clean up OpenRouter-generated provider configs (#37)
- Merge unique models from duplicate providers into their hand-written
  counterparts and remove the duplicates:
  - alibaba (tongyi-deepresearch) → qwen
  - amazon (nova-2-lite, nova-micro, nova-premier) → bedrock
  - bytedance (ui-tars) → volcengine
  - nvidia (nemotron-3-nano, nemotron-3-super, etc.) → nvidia-nim
  - rekaai (reka-flash-3) → reka
- Set correct official API base_url for providers with public APIs:
  arcee-ai, inception, morph, reka, upstage
- Set key_required=false for 20 providers only accessible through
  hosting platforms (no public API)
- Update sync-pricing.py with SKIP_DUPLICATES, PROVIDER_API mapping,
  and default key_required=false for future auto-generated providers
2026-04-02 23:30:56 +08:00
Evan 05bdf02169 feat(workflows): expand template library from 9 to 22 + multiline string cleanup (#36)
* feat(workflows): add 13 workflow templates across engineering, business, and productivity

Engineering:
- bug-triage: reproduce path → root cause → fix plan
- api-design: resource model → endpoints → OpenAPI spec
- incident-postmortem: timeline → RCA → full postmortem report
- test-generation: code analysis → edge cases → full test suite
- refactor-plan: smell analysis → prioritised opportunities → migration plan

Business:
- competitor-analysis: profiles → SWOT → strategy report
- product-spec: problem definition → user stories → full PRD
- market-research: landscape → segments → research report

Productivity/Thinking:
- meeting-summary: raw notes → structured summary → follow-up email
- decision-matrix: criteria → weighted scoring → recommendation memo
- learning-plan: gap analysis → roadmap → week-1 day-by-day plan
- job-application: job analysis → tailored resume → cover letter → interview prep
- blog-post: research → outline → draft → SEO optimisation

Closes #1912 on librefang/librefang

* fix(workflows): overhaul existing 9 templates

- data-pipeline: redesigned — original 'extract from URL' step was
  broken (LLMs cannot fetch URLs); replaced with paste-data approach
  (profile → clean_transform → analyse) with analysis_goal parameter
- translate-polish: added target_language and register parameters;
  added back-translation step for accuracy verification
- weekly-report: added team/audience parameters, richer extraction
  step, added Metrics and Notes sections
- content-pipeline: added audience/tone parameters, added outline step
  between research and writing
- content-review: fix category 'content' → 'creation'
- customer-support: fix category 'support' → 'business'

* style(workflows): convert all prompt_template strings to TOML multiline syntax

Replace \n escape sequences with real newlines using triple-quote
multiline strings ("""...""") across all 22 workflow templates.
No content changes — formatting only.

* style(hands): replace \n escape in reddit writer format example with multiline code block
2026-04-01 18:21:09 +08:00
Evan ae5d97dc7e feat: convert schema.toml to machine-parseable format (#30)
* feat: convert schema.toml to machine-parseable format

Replace comment-based documentation format with structured TOML that
can be deserialized into the RegistrySchema Rust type. All 6 content
types (provider, agent, hand, integration, skill, plugin) preserved
with every field, description, enum option, and nested section.

* fix: format options arrays in schema.toml for taplo compliance
2026-04-01 00:15:10 +08:00
Evan 26f7ea98f7 fix: download taplo 0.10.0 directly instead of using broken action (#34)
* fix: add shell execution rules to collector hand system prompt

* fix: use latest taplo instead of hardcoded version

* fix: use uncenter/setup-taplo action with latest version

* fix: download taplo 0.10.0 directly instead of using broken action
2026-03-31 23:46:36 +08:00
Evan f23af64eea fix: download taplo 0.10.0 directly instead of using broken action (#35) 2026-03-31 23:41:44 +08:00
Evan 78960471cc fix: use uncenter/setup-taplo action with latest version (#33)
* fix: add shell execution rules to collector hand system prompt

* fix: use latest taplo instead of hardcoded version

* fix: use uncenter/setup-taplo action with latest version
2026-03-31 23:31:37 +08:00
Evan fc37ce253b fix: correct invalid tier "free" and teams-mcp id with version (#29)
- Replace tier "free" with "fast" (valid tiers: frontier/smart/balanced/fast/local)
- Remove version suffix from teams-mcp integration id field
- Update sync-pricing.py to not generate invalid tier values
2026-03-25 23:49:39 +09:00
Evan 553ecc6947 feat: add pricing sync script and update model prices from OpenRouter (#27)
* fix: pin npm package versions in MCP integration templates

Prevent supply chain attacks by pinning exact versions instead of
using unpinned `npx -y @package` which pulls latest on every run.

23 of 25 integrations pinned. sqlite-mcp and aws skipped (packages
not found on npm registry).

* fix: use stable azure/mcp version instead of beta

* feat: add pricing sync script and update model prices from OpenRouter API

- scripts/sync-pricing.py fetches real-time pricing from OpenRouter
- Updated 64 price fields across 13 provider files
- Run periodically or in CI to keep prices current
2026-03-25 23:43:13 +09:00
Evan a00e813bdf feat: add 22 mainstream models to nvidia-nim provider catalog (#26)
Add model entries for the most popular models available on NVIDIA NIM:
- NVIDIA: Nemotron Ultra 253B, Super 49B, 70B, Mini 4B
- Meta: Llama 4 Maverick/Scout, Llama 3.3 70B, 3.1 405B/8B, 3.2 Vision
- Mistral: Large 3 675B, Small 3.1 24B, Mixtral 8x22B
- DeepSeek: V3.2, R1 Distill 32B
- Qwen: 3.5 397B, 2.5 Coder 32B, QWQ 32B
- Google: Gemma 3 27B
- Microsoft: Phi-4 Multimodal, Phi-4 Mini

Refs librefang/librefang#1621
2026-03-25 23:36:00 +09:00
Evan c25a321e88 fix: pin npm package versions in MCP integration templates (#25)
* fix: pin npm package versions in MCP integration templates

Prevent supply chain attacks by pinning exact versions instead of
using unpinned `npx -y @package` which pulls latest on every run.

23 of 25 integrations pinned. sqlite-mcp and aws skipped (packages
not found on npm registry).

* fix: use stable azure/mcp version instead of beta
2026-03-25 22:27:42 +09:00
Evan d012a4a26d feat: add tags = ["popular"] to top hands and channels (#24) 2026-03-25 13:31:13 +09:00
Evan 1e8f75b120 feat: add Chinese (zh) i18n for all hand agents (#23)
Add [i18n.zh.agents.*] sections to all 15 HAND.toml files,
providing Chinese translations for agent names and descriptions.

Total: 51 agent translations across 15 hands.
2026-03-25 12:44:20 +09:00
Evan 9b24879c4f feat: add i18n descriptions to all hands and channels (#22)
Add [i18n.zh], [i18n.zh-TW], [i18n.ja], [i18n.ko], [i18n.de], [i18n.es]
sections with translated descriptions to:
- 15 Hand TOML files (hands/*/HAND.toml)
- 44 Channel TOML files (channels/*.toml)

This enables the website to display localized Hand and Channel descriptions
based on the user's selected language.
2026-03-25 12:25:57 +09:00
Evan 644213eef6 feat: add channels directory with 44 channel adapter definitions (#21)
* feat: add channels directory with 44 channel adapter definitions

Add TOML definitions for all 44 channel adapters supported by LibreFang,
matching the adapters in librefang-channels crate source code.

Each channel file includes: id, name, description, category, icon,
protocol, and metadata (url, docs).

Categories: messaging, social, enterprise, developer, iot, email.

Also adds channels template at templates/channel.toml.

* fix: format templates/channel.toml with taplo
2026-03-25 11:30:10 +09:00
Evan 1440059e99 fix: add shell execution rules to collector hand system prompt (#20) 2026-03-25 02:39:39 +09:00
Evan 492faabd57 feat: update minimax default to M2.7, add zh i18n to workflow templates (#19)
- aliases: minimax default → MiniMax-M2.7, minimax-highspeed → MiniMax-M2.7-highspeed
- workflow templates: add [i18n.zh] section with Chinese name/description
2026-03-24 13:00:20 +09:00
Evan 733c35df5b fix: add missing tools to hello-world and test-engineer templates
- hello-world: add file_write (LLM needs it for writing files)
- test-engineer: add web_fetch, web_search (needed for researching test patterns)
2026-03-23 14:42:25 +00:00
Evan 9bcbe04d08 feat: add media_capabilities to provider definitions (#18) 2026-03-23 14:13:13 +09:00
Evan ecc5215cae feat(hands): add Creator Hand for media generation (#17) 2026-03-23 14:09:51 +09:00
Evan 945bbbd763 chore(hands): bump all HAND.toml versions to 1.1.0 (#16)
* chore(hands): bump all HAND.toml versions to 1.1.0

Triggers version-aware sync in librefang runtime (librefang/librefang#1530).
Previously sync_subdirs() skipped existing hands regardless of version.
With the runtime fix, bumping from 1.0.0 → 1.1.0 ensures users get
updated hand definitions on next registry sync.

* chore: fix taplo formatting for 4 agent.toml files

* fix(hands): fix invalid install fields in analytics and browser

- analytics: `linux` → `linux_apt`/`linux_dnf`/`linux_pacman` (parser
  only recognizes platform-specific variants, not generic `linux`)
- analytics: remove `pip = "python3 --version"` (version check, not
  an install command)
- browser: remove `pip = "python3 --version"` (same issue)

* fix: enrich sub-agent prompts and add missing requires across all hands

- analytics: fix linux → linux_apt/dnf/pacman, remove invalid pip check,
  enrich analyst and modeler sub-agent prompts
- apitester: add [[requires]] for curl
- browser: remove invalid pip check, enrich researcher and extractor prompts
- clip: enrich editor and transcriber sub-agent prompts
- collector: enrich scout, scholar, and localizer sub-agent prompts
- devops: add [[requires]] for curl, git, docker (optional), GITHUB_TOKEN
  (optional), enrich sub-agent prompts
- lead: enrich outreach, recruiter, and messenger sub-agent prompts
- linkedin: enrich content and researcher sub-agent prompts
- predictor: enrich orchestrator, planner, and modeler sub-agent prompts
- reddit: enrich monitor and composer sub-agent prompts
- strategist: enrich architect, counsel, and analyst sub-agent prompts
- trader: enrich accountant and researcher sub-agent prompts
- twitter: enrich curator and composer sub-agent prompts
2026-03-23 11:21:29 +09:00
Evan d778da72a2 fix(validate): check for [agents] instead of [agent] in HAND.toml (#15)
* fix(validate): check for [agents] instead of [agent] in HAND.toml

All 14 hands use [agents.main] (plural) for multi-agent config,
but the validator was checking for [agent] (singular), causing
all hands to fail validation.

* fix(routing): resolve 19 routing alias collisions

Agent is a sub-unit of hand, so hands take priority for routing.
Remove conflicting aliases from agent side when hand already owns them.

- analyst: remove data analysis, analyze data, dashboard (owned by hand/analytics)
- data-scientist: remove statistical analysis, forecast, prediction (owned by hand/analytics, hand/predictor)
- sales-assistant: remove prospecting, sales, pipeline (owned by hand/lead, hand/devops)
- devops-lead: remove incident response, kubernetes, terraform (owned by hand/devops)
- researcher: remove deep research, research, literature review (owned by hand/researcher)
- academic-researcher: remove literature review, systematic review (owned by hand/researcher)
- social-media: remove duplicate content calendar from weak_aliases
- hand/collector: remove competitive analysis (owned by hand/strategist)
2026-03-23 09:41:29 +09:00
Evan 31776736d0 Merge pull request #14 from librefang/feature/muti-agent-hand
feat: muti agent hand
2026-03-23 02:41:38 +09:00
Evan Hu 506a201329 feat: muti agent hand 2026-03-23 02:41:02 +09:00
Evan 8190e06091 Merge pull request #13 from librefang/fix/resolve-merge-conflict-markers
fix(hands): resolve merge conflict markers left by PR #12
2026-03-23 01:25:35 +09:00
Evan 3e57ce4743 Merge pull request #12 from librefang/feat/improve-social-hands
feat(hands): improve linkedin, reddit, and twitter hands
2026-03-23 00:51:41 +09:00
Evan de939b80d0 Merge pull request #11 from librefang/feat/hands-i18n-and-content-enhancement
feat(hands): i18n fixes, SKILL.md enhancements, and README overhaul
2026-03-23 00:51:08 +09:00
Evan 6e48be1e31 feat: add workflow templates (#9)
9 bundled workflow templates:
- data-pipeline: ETL extract/transform/validate
- content-review: multi-agent draft/quality/accuracy/edit
- customer-support: tiered triage/response/escalation
- code-review: parallel correctness+security+style analysis
- research: research/fact-check/summarize
- content-pipeline: research → write → edit article creation
- translate-polish: auto-detect language, translate, review
- brainstorm: ideation → evaluation → action plan
- weekly-report: raw notes → organized → polished report
2026-03-22 12:37:04 +09:00
Evan 31f17ba369 feat: add Qwen International provider with regional endpoints (#8)
* feat: add Qwen International and US provider catalogs

* refactor: merge qwen-us into qwen-intl with regions support

* refactor: merge regional providers into single files with regions

Merge qwen-intl.toml into qwen.toml with [provider.regions] for
intl (Singapore) and us (Virginia) endpoints.

Merge minimax-cn.toml into minimax.toml with [provider.regions.china]
including separate api_key_env for China endpoint.

Uses new RegionConfig table format instead of simple string URLs.
2026-03-21 17:23:14 +09:00
Evan 078218c70f feat: add Gemini CLI, Codex CLI, and Aider provider catalogs (#7)
- gemini-cli: Google Gemini CLI (gemini-2.5-pro, gemini-2.5-flash)
- codex-cli: OpenAI Codex CLI (o4-mini, o3, gpt-4.1)
- aider: Aider AI coding assistant (sonnet, gpt-4o)
2026-03-21 07:14:18 +09:00
Evan d1cab3e33a feat: context engine plugins, scaffolding, and pricing fixes (#6)
* feat: add 4 context engine plugins

- topic-memory: keyword clustering for topic-aware memory recall
- episodic-memory: conversation segmentation and cross-session recall
- user-profile: persistent user profiling from conversation patterns
- context-decay: time-based memory decay with reinforcement dynamics

All plugins use the ingest/after_turn hook protocol with stdin/stdout JSON.

* chore: add plugin scaffolding, update docs and templates

- Add plugin.toml template with {{NAME}} placeholder
- Add new-plugin Makefile target with hooks/ scaffolding
- Update plugins/README.md with all 10 plugins
- Update README.md stats (10 plugins, 220+ models)
- Add Plugin checkbox and checklist to PR template
- Add Plugin to issue template content type dropdown
- Fix CONTRIBUTING.md: last_verified is recommended, not required

* fix: correct model pricing and remove deprecated entries

- openrouter/gemma-2-9b-it: fix pricing from 0.0 to 0.03/0.09 per M tokens
  (free variant correctly stays at 0.0)
- github-copilot: remove deprecated copilot/gpt-4 model entry
  (GPT-4 retired in favor of GPT-4o for Copilot)

* docs: annotate kimi-coding as membership-gated

Kimi Code CLI uses quota-based membership model (not per-token billing).
Free tier has limited weekly requests; underlying model is K2.5.
Pricing kept at 0.0 consistent with other subscription providers
(chatgpt, github-copilot) but with explanatory comments.

* style: fix trailing newline in github-copilot.toml

* fix: correct Moonshot/Kimi model pricing from official sources

All 5 models had incorrect pricing:
- moonshot-v1-8k: 0.10/0.10 → 0.20/2.00
- moonshot-v1-32k: 0.30/0.30 → 1.00/3.00
- moonshot-v1-128k: 0.80/0.80 → 2.00/5.00
- kimi-k2: 2.00/8.00 → 0.60/2.50
- kimi-k2.5: 2.00/8.00 → 0.45/2.20

Sources: platform.moonshot.ai/docs/pricing/chat, costgoat.com, getmaxim.ai

* feat: add MiniMax M2.7 and M2.7-highspeed models

Released 2026-03-18, MiniMax's latest flagship text model.
10B activated params, 200K context, 128K output, tool use, streaming.
Pricing: $0.30/$1.20 per M tokens (input/output).

Added to both international (minimax.io) and China (minimaxi.com) providers.
2026-03-21 03:36:32 +09:00
EvanandClaude Opus 4.6 8f2244eb6f chore: remove router agent (#5)
* chore: remove router agent

builtin:router has been replaced by LLM intent routing in the kernel.
Assistant is now the sole entry point — see librefang/librefang#1336.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style: format all TOML files with taplo

Fix CI taplo format check by running `taplo fmt` on all 132 TOML files.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 03:26:11 +09:00
Evan HuandClaude Opus 4.6 ba27d7c095 feat: update Volcengine with Doubao Seed 2.0 and 1.8 models (#4)
- Add Doubao Seed 2.0 Pro (frontier, 256K context, 128K output)
- Add Doubao Seed 2.0 Code
- Add Doubao Seed 1.8 (multimodal agent model with vision)
- Add Doubao Seed 1.6 Vision
- Update existing 2.0 Lite/Mini with correct specs (256K/128K, vision)
- Update global alias "doubao" to point to 2.0 Pro

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 19:20:42 +09:00
Evan HuandClaude Opus 4.6 3aa662bd6d feat: add Z.AI chat models + 5 new providers (#3)
* feat: add Z.AI chat models (GLM-5, GLM-4.7)

Sync with librefang/librefang#409 — add the two Z.AI chat models
to the standalone model catalog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add 5 new providers (Stepfun, SiliconFlow, Baichuan, NVIDIA NIM, Writer)

- Stepfun (阶跃星辰): step-3.5-flash, step-3, step-2-mini, step-1o-turbo-vision
- SiliconFlow (硅基流动): inference platform, models discovered at runtime
- Baichuan (百川): Baichuan-4, Baichuan-3 Turbo 128K
- NVIDIA NIM: inference platform, models discovered at runtime
- Writer: Palmyra X5, X4, Med, Fin
- Add global aliases for stepfun, baichuan, writer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:07:07 +09:00
Evan Hu 360f964a1c Merge pull request #2 from librefang/codex/add-qwen-code-provider
feat: add qwen-code provider
2026-03-16 03:48:18 +09:00
Evan Hu 51307696fa Merge pull request #1 from librefang/feat/add-stepfun-free-model
feat: add StepFun Step 3.5 Flash free model
2026-03-14 14:35:19 +09:00
Evan 21f59f0ab8 ci: upgrade to Node.js 24 compatible action versions 2026-03-14 11:58:15 +09:00
Evan a8b180ac95 ci: add GitHub Actions workflow for catalog validation 2026-03-14 11:57:24 +09:00
Evan 9c336d2ab4 docs: remove Chinese sections, English only 2026-03-14 11:53:45 +09:00
Evan 21c82e335c feat: initial model catalog with 196 models across 39 providers
Community-maintained TOML catalog for LibreFang. New models can be added
via PR without requiring a LibreFang binary release.

Includes validation script, bilingual docs, and GitHub templates.
2026-03-14 11:52:10 +09:00