Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .changeset/default-model-tier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@perstack/core": patch
"@perstack/runtime": patch
"@perstack/tui": patch
"@perstack/react": patch
"@perstack/perstack-toml": patch
"@perstack/skill-manager": patch
"@perstack/log": patch
"@perstack/installer": patch
"@perstack/filesystem-storage": patch
"@perstack/tui-components": patch
---

Add `defaultModelTier` to expert config for provider-aware model selection ("low", "middle", "high")
3 changes: 1 addition & 2 deletions e2e/experts/bundled-base.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
# E2E test configuration for bundled base skill with InMemoryTransport
# Tests that the bundled @perstack/base uses in-memory transport (no process spawn)

model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

# Default bundled base - uses InMemoryTransport
[experts."e2e-bundled-base"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for bundled base with InMemoryTransport"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/cli-commands.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-publish-test"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for CLI publish command validation"
instruction = """
Expand All @@ -19,6 +18,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-cli-simple"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for CLI log command validation"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/continue-resume.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-continue"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for continue functionality"
instruction = """
Expand All @@ -29,6 +28,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion", "think"]

[experts."e2e-resume"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for resume-from functionality"
instruction = """
Expand Down
5 changes: 3 additions & 2 deletions e2e/experts/delegate-chain.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-delegate-chain"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for delegate chain"
instruction = """
Expand All @@ -21,6 +20,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."@e2e-delegate-chain/level1"]
defaultModelTier = "low"
version = "1.0.0"
description = "First level delegate expert"
instruction = """
Expand All @@ -36,6 +36,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."@e2e-delegate-chain/level2"]
defaultModelTier = "low"
version = "1.0.0"
description = "Second level delegate expert"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/error-handling.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-tool-error-recovery"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for tool error recovery"
instruction = """
Expand All @@ -20,6 +19,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion", "readTextFile"]

[experts."e2e-invalid-delegate"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert with nonexistent delegate"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/errors.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-mcp-error"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert with broken MCP skill"
instruction = """
Expand All @@ -24,6 +23,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-invalid-provider"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for invalid provider testing"
instruction = """
Expand Down
3 changes: 1 addition & 2 deletions e2e/experts/global-runtime.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-global-runtime"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for global runtime configuration"
instruction = """
Expand Down
3 changes: 1 addition & 2 deletions e2e/experts/lockfile.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# E2E test configuration for lockfile functionality
# Tests perstack install and lockfile-based execution

model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-lockfile"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for lockfile functionality"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/mixed-tools.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-mixed-tools"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for mixed tool calls (MCP + Delegate + Interactive)"
instruction = """
Expand Down Expand Up @@ -39,6 +38,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion", "think"]

[experts."@e2e-mixed-tools/helper"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test helper expert"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/multi-modal.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-pdf-reader"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for PDF file reading"
instruction = """
Expand All @@ -22,6 +21,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion", "readPdfFile"]

[experts."e2e-image-reader"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for image file reading"
instruction = """
Expand Down
5 changes: 3 additions & 2 deletions e2e/experts/parallel-delegate.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-parallel-delegate"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for parallel delegation"
instruction = """
Expand All @@ -21,6 +20,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion", "think"]

[experts."@e2e-parallel-delegate/math"]
defaultModelTier = "low"
version = "1.0.0"
description = "Math delegate expert"
instruction = """
Expand All @@ -34,6 +34,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."@e2e-parallel-delegate/text"]
defaultModelTier = "low"
version = "1.0.0"
description = "Text processing delegate expert"
instruction = """
Expand Down
3 changes: 1 addition & 2 deletions e2e/experts/parallel-mcp.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

[experts."e2e-parallel-mcp"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for parallel MCP tool calls"
instruction = """
Expand Down
1 change: 1 addition & 0 deletions e2e/experts/providers.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[experts."e2e-providers"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for multi-provider testing"
instruction = """
Expand Down
12 changes: 12 additions & 0 deletions e2e/experts/reasoning-budget.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ envPath = [".env", ".env.local"]
# =============================================================================

[experts."e2e-reasoning-anthropic-minimal"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Anthropic reasoning with minimal budget"
instruction = """
Expand All @@ -22,6 +23,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-anthropic-low"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Anthropic reasoning with low budget"
instruction = """
Expand All @@ -36,6 +38,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-anthropic-medium"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Anthropic reasoning with medium budget"
instruction = """
Expand All @@ -50,6 +53,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-anthropic-high"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Anthropic reasoning with high budget"
instruction = """
Expand All @@ -68,6 +72,7 @@ pick = ["attemptCompletion"]
# =============================================================================

[experts."e2e-reasoning-openai-minimal"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for OpenAI reasoning with minimal budget"
instruction = """
Expand All @@ -82,6 +87,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-openai-low"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for OpenAI reasoning with low budget"
instruction = """
Expand All @@ -96,6 +102,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-openai-medium"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for OpenAI reasoning with medium budget"
instruction = """
Expand All @@ -110,6 +117,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-openai-high"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for OpenAI reasoning with high budget"
instruction = """
Expand All @@ -128,6 +136,7 @@ pick = ["attemptCompletion"]
# =============================================================================

[experts."e2e-reasoning-google-minimal"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Google reasoning with minimal budget"
instruction = """
Expand All @@ -142,6 +151,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-google-low"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Google reasoning with low budget"
instruction = """
Expand All @@ -156,6 +166,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-google-medium"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Google reasoning with medium budget"
instruction = """
Expand All @@ -170,6 +181,7 @@ packageName = "@perstack/base"
pick = ["attemptCompletion"]

[experts."e2e-reasoning-google-high"]
defaultModelTier = "low"
version = "1.0.0"
description = "E2E test expert for Google reasoning with high budget"
instruction = """
Expand Down
4 changes: 2 additions & 2 deletions e2e/experts/runtime-version-future.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
model = "claude-haiku-4-5"

[provider]
providerName = "anthropic"

envPath = [".env", ".env.local"]

# Expert requiring future version (validation failure)
[experts."e2e-runtime-future"]
defaultModelTier = "low"
version = "1.0.0"
minRuntimeVersion = "v99.0"
instruction = "Call attemptCompletion."
Expand All @@ -19,6 +18,7 @@ pick = ["attemptCompletion"]

# Chain with nested future version: root(v1.0) -> nested(v99.0)
[experts."e2e-runtime-chain-future"]
defaultModelTier = "low"
version = "1.0.0"
minRuntimeVersion = "v1.0"
instruction = """
Expand Down
Loading