Skip to content
Open
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
5 changes: 4 additions & 1 deletion packages/matrix/src/vendor/agents.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Domain, ModelName, PermissionMode } from "./matrix";
import type { Domain, EffortLevel, ModelName, PermissionMode } from "./matrix";
import type { PluginSkillRef, Skill, SkillId } from "./skills";
import type { AgentName } from "./generated/source-types";

Expand Down Expand Up @@ -29,6 +29,8 @@ export type BaseAgentFields = {
/** Brief description for Task tool */
description: string;
model?: ModelName;
/** Reasoning effort. Emitted into compiled frontmatter only when set — there is no default. */
effort?: EffortLevel;
tools: string[];
disallowedTools?: string[];
permissionMode?: PermissionMode;
Expand Down Expand Up @@ -79,6 +81,7 @@ export type AgentFrontmatter = {
disallowedTools?: string;
/** Use "inherit" to use parent model */
model?: ModelName;
effort?: EffortLevel;
permissionMode?: PermissionMode;
/** Skill names that are preloaded for this agent */
skills?: SkillId[];
Expand Down
12 changes: 10 additions & 2 deletions packages/matrix/src/vendor/config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { AgentName } from "./agents";
import type { BoundSkill, Domain } from "./matrix";
import type { BoundSkill, Domain, EffortLevel, ModelName } from "./matrix";
import type { SkillId, SkillReference } from "./skills";
import type { StackAgentConfig } from "./stacks";

Expand Down Expand Up @@ -37,12 +37,20 @@ export type SkillConfig = {
export type AgentScopeConfig = {
name: AgentName;
scope: SkillScope;
/** Overrides the model from the agent's own metadata. Absent means "keep the metadata default". */
model?: ModelName;
/** Overrides the reasoning effort from the agent's own metadata. */
effort?: EffortLevel;
excluded?: boolean;
};

/** Agent configuration for compilation - contains skills for a specific agent */
export type CompileAgentConfig = {
skills?: SkillReference[];
/** Config-level model override, preferred over the agent definition's own value. */
model?: ModelName;
/** Config-level effort override, preferred over the agent definition's own value. */
effort?: EffortLevel;
};

/** Compile configuration derived from stack (agents to compile from keys of `agents`) */
Expand Down Expand Up @@ -88,7 +96,7 @@ export type ProjectConfig = {
* Resolved stack configuration with agent->skill mappings.
* Keys are agent IDs, values are category->SkillAssignment[] mappings.
* Values are normalized to SkillAssignment[] at load time (same as stacks.ts).
* Generated during `agentsinc init` when a stack is selected.
* Generated during `npx agents-inc init` when a stack is selected.
*/
stack?: Record<string, StackAgentConfig>;

Expand Down
6 changes: 5 additions & 1 deletion packages/matrix/src/vendor/matrix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,13 @@ export { CATEGORIES, DOMAINS } from "./generated/source-types";
import type { Category, Domain } from "./generated/source-types";

/** Claude model selectors for agent configuration */
export const MODEL_NAMES = ["sonnet", "opus", "haiku", "inherit"] as const;
export const MODEL_NAMES = ["sonnet", "opus", "haiku", "fable", "inherit"] as const;
export type ModelName = (typeof MODEL_NAMES)[number];

/** Reasoning effort levels for agent configuration */
export const EFFORT_NAMES = ["low", "medium", "high", "xhigh", "max"] as const;
export type EffortLevel = (typeof EFFORT_NAMES)[number];

/** Agent permission modes for Claude Code tool access */
export const PERMISSION_MODES = [
"default",
Expand Down