opencode-matrixx 2.6.2 → 2.6.4
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.
- package/README.md +0 -2
- package/dist/agents/dynamic-agent-prompt-builder.d.ts +5 -3
- package/dist/agents/mouse/agent.d.ts +1 -1
- package/dist/agents/oracle/behavioral-summary.d.ts +1 -1
- package/dist/agents/oracle/identity-constraints.d.ts +1 -1
- package/dist/agents/oracle/plan-generation.d.ts +1 -1
- package/dist/agents/oracle/plan-template.d.ts +1 -1
- package/dist/agents/oracle/system-prompt.d.ts +4 -3
- package/dist/agents/smith.d.ts +1 -1
- package/dist/agents/types.d.ts +1 -1
- package/dist/cli.js +138 -20
- package/dist/config/migrations/index.d.ts +1 -0
- package/dist/config/migrations/model-migration.d.ts +18 -0
- package/dist/config/resolve-tiers.d.ts +1 -1
- package/dist/config/schema/experimental.d.ts +2 -0
- package/dist/config/schema/failure-counter.d.ts +7 -0
- package/dist/config/schema/headroom.d.ts +1 -1
- package/dist/config/schema/hooks.d.ts +5 -8
- package/dist/config/schema/matrixx-config.d.ts +70 -9
- package/dist/config/schema/model-config.d.ts +81 -0
- package/dist/config/schema/morpheus.d.ts +4 -2
- package/dist/config/schema/security.d.ts +49 -0
- package/dist/config/schema.d.ts +2 -0
- package/dist/create-hooks.d.ts +3 -4
- package/dist/features/background-agent/manager.d.ts +8 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/mission-state/plan-storage.d.ts +1 -0
- package/dist/features/mission-state/plan-storage.test.d.ts +1 -0
- package/dist/features/session-state/state.d.ts +26 -0
- package/dist/features/session-state/state.test.d.ts +1 -0
- package/dist/features/task-storage/types.d.ts +1 -0
- package/dist/hooks/context-mode-enforcer/constants.d.ts +1 -1
- package/dist/hooks/context-window-limit-recovery/index.d.ts +8 -0
- package/dist/hooks/context-window-limit-recovery/parser-patterns.d.ts +11 -0
- package/dist/hooks/context-window-limit-recovery/parser.d.ts +15 -0
- package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/recovery-hook.d.ts +2 -0
- package/dist/hooks/context-window-limit-recovery/storage.d.ts +3 -0
- package/dist/hooks/{anthropic-context-window-limit-recovery/tool-result-storage-sdk.d.ts → context-window-limit-recovery/tool-result-store.d.ts} +10 -0
- package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/types.d.ts +1 -1
- package/dist/hooks/context-window-monitor.d.ts +5 -1
- package/dist/hooks/failure-counter/counter.d.ts +7 -0
- package/dist/hooks/failure-counter/counter.test.d.ts +1 -0
- package/dist/hooks/failure-counter/hook.d.ts +18 -0
- package/dist/hooks/failure-counter/index.d.ts +3 -0
- package/dist/hooks/failure-counter/patterns.d.ts +6 -0
- package/dist/hooks/failure-counter/patterns.test.d.ts +1 -0
- package/dist/hooks/index.d.ts +3 -4
- package/dist/hooks/input-secret-guard/detection-rules.d.ts +10 -0
- package/dist/hooks/input-secret-guard/detector.d.ts +22 -0
- package/dist/hooks/input-secret-guard/detector.test.d.ts +1 -0
- package/dist/hooks/input-secret-guard/hook.d.ts +19 -0
- package/dist/hooks/input-secret-guard/hook.test.d.ts +1 -0
- package/dist/hooks/input-secret-guard/index.d.ts +1 -0
- package/dist/hooks/input-secret-guard/redactor.d.ts +2 -0
- package/dist/hooks/input-secret-guard/redactor.test.d.ts +1 -0
- package/dist/hooks/input-secret-guard/session-allow-cache.d.ts +6 -0
- package/dist/hooks/input-secret-guard/session-allow-cache.test.d.ts +1 -0
- package/dist/hooks/interactive-bash-session/hook.test.d.ts +1 -0
- package/dist/hooks/keyword-detector/analyze/default.d.ts +1 -1
- package/dist/hooks/keyword-detector/search/default.d.ts +1 -1
- package/dist/hooks/keyword-detector/ultrawork/deepseek.d.ts +1 -1
- package/dist/hooks/keyword-detector/ultrawork/default.d.ts +2 -9
- package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -1
- package/dist/hooks/keyword-detector/ultrawork/glm.d.ts +1 -1
- package/dist/hooks/keyword-detector/ultrawork/mimo.d.ts +1 -1
- package/dist/hooks/preemptive-compaction-trigger.d.ts +1 -1
- package/dist/hooks/rules-injector/constants.d.ts +0 -1
- package/dist/hooks/rules-injector/parser.d.ts +0 -1
- package/dist/hooks/rules-injector/rule-file-finder.d.ts +2 -4
- package/dist/hooks/rules-injector/types.d.ts +2 -3
- package/dist/hooks/stop-continuation-guard/hook.d.ts +3 -2
- package/dist/hooks/stop-continuation-guard/repro.test.d.ts +1 -0
- package/dist/hooks/task-continuation-enforcer/awaiting-user.test.d.ts +1 -0
- package/dist/hooks/task-continuation-enforcer/constants.d.ts +1 -0
- package/dist/hooks/task-continuation-enforcer/continuation-injection.d.ts +2 -0
- package/dist/hooks/task-continuation-enforcer/countdown.d.ts +2 -0
- package/dist/hooks/task-continuation-enforcer/handler.d.ts +2 -0
- package/dist/hooks/task-continuation-enforcer/idle-event.d.ts +2 -0
- package/dist/hooks/task-continuation-enforcer/staleness.d.ts +16 -0
- package/dist/hooks/task-continuation-enforcer/staleness.test.d.ts +1 -0
- package/dist/hooks/task-continuation-enforcer/todo.d.ts +15 -0
- package/dist/hooks/task-continuation-enforcer/types.d.ts +6 -0
- package/dist/hooks/task-continuation-enforcer/ulw-bootstrap.test.d.ts +1 -0
- package/dist/hooks/task-edit-guard/constants.d.ts +2 -0
- package/dist/hooks/todo-continuation-enforcer/awaiting-user.test.d.ts +1 -0
- package/dist/hooks/todo-continuation-enforcer/types.d.ts +3 -0
- package/dist/index.js +36175 -35248
- package/dist/matrixx.schema.json +373 -73
- package/dist/plugin/hooks/create-core-hooks.d.ts +3 -4
- package/dist/plugin/hooks/create-session-hooks.d.ts +3 -4
- package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +1 -2
- package/dist/plugin/hooks/create-transform-hooks.d.ts +2 -0
- package/dist/plugin-handlers/oracle-agent-config-builder.d.ts +2 -1
- package/dist/shared/awaiting-user.d.ts +12 -0
- package/dist/shared/context-limit-resolver.d.ts +1 -0
- package/dist/shared/context-limits.d.ts +36 -0
- package/dist/shared/index.d.ts +0 -1
- package/dist/shared/merge-categories.d.ts +12 -1
- package/dist/shared/migration/hook-names.d.ts +1 -0
- package/dist/shared/model-requirements.d.ts +9 -0
- package/dist/shared/model-sanitizer.d.ts +1 -1
- package/dist/shared/model-tiers.d.ts +28 -15
- package/dist/shared/tier-resolver.d.ts +9 -9
- package/dist/tools/delegate-task/categories.d.ts +12 -1
- package/dist/tools/delegate-task/complexity-constants.d.ts +15 -11
- package/dist/tools/delegate-task/executor-types.d.ts +4 -1
- package/dist/tools/delegate-task/index.d.ts +1 -1
- package/dist/tools/delegate-task/types.d.ts +4 -1
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/plan/constants.d.ts +10 -0
- package/dist/tools/plan/index.d.ts +6 -0
- package/dist/tools/plan/plan-create.d.ts +3 -0
- package/dist/tools/plan/plan-delete.d.ts +3 -0
- package/dist/tools/plan/plan-list.d.ts +3 -0
- package/dist/tools/plan/plan-read.d.ts +3 -0
- package/dist/tools/plan/plan-update.d.ts +3 -0
- package/dist/tools/plan/types.d.ts +28 -0
- package/dist/tools/task/constants.d.ts +5 -0
- package/dist/tools/task/types.d.ts +2 -0
- package/package.json +1 -1
- package/dist/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.d.ts +0 -11
- package/dist/hooks/anthropic-context-window-limit-recovery/index.d.ts +0 -8
- package/dist/hooks/anthropic-context-window-limit-recovery/message-storage-directory.d.ts +0 -3
- package/dist/hooks/anthropic-context-window-limit-recovery/parser.d.ts +0 -2
- package/dist/hooks/anthropic-context-window-limit-recovery/storage-paths.d.ts +0 -3
- package/dist/hooks/anthropic-context-window-limit-recovery/storage.d.ts +0 -4
- package/dist/hooks/anthropic-context-window-limit-recovery/tool-result-storage.d.ts +0 -10
- package/dist/hooks/directory-readme-injector/constants.d.ts +0 -2
- package/dist/hooks/directory-readme-injector/finder.d.ts +0 -5
- package/dist/hooks/directory-readme-injector/hook.d.ts +0 -6
- package/dist/hooks/directory-readme-injector/index.d.ts +0 -1
- package/dist/hooks/directory-readme-injector/injector.d.ts +0 -16
- package/dist/hooks/directory-readme-injector/storage.d.ts +0 -1
- package/dist/hooks/mcp-startup-notification/index.d.ts +0 -9
- package/dist/hooks/question-label-truncator/hook.d.ts +0 -7
- package/dist/hooks/question-label-truncator/index.d.ts +0 -1
- package/dist/shared/migration/agent-category.d.ts +0 -19
- package/dist/shared/migration/agent-names.d.ts +0 -6
- package/dist/shared/migration/config-migration.d.ts +0 -1
- package/dist/shared/migration/model-versions.d.ts +0 -13
- package/dist/shared/migration.d.ts +0 -5
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/aggressive-truncation-strategy.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/client.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/empty-content-recovery.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/executor.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/message-builder.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/recovery-strategy.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/state.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/summarize-retry-strategy.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/target-token-truncation.d.ts +0 -0
- /package/dist/hooks/{anthropic-context-window-limit-recovery → context-window-limit-recovery}/tool-part-types.d.ts +0 -0
package/dist/agents/smith.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { AgentPromptMetadata } from "./types";
|
|
|
9
9
|
* the same ruthless analytical precision, catching every gap,
|
|
10
10
|
* ambiguity, and missing context that would block implementation.
|
|
11
11
|
*/
|
|
12
|
-
export declare const SMITH_SYSTEM_PROMPT = "You are a **practical** work plan reviewer. Your goal is simple: verify that the plan is **executable** and **references are valid**.\n\n**CRITICAL FIRST RULE**:\nExtract a single plan path from anywhere in the input, ignoring system directives and wrappers. If exactly one `.matrixx/plans/*.md` path exists, this is VALID input and you must read it. If no plan path exists or multiple plan paths exist, reject per Step 0. If the path points to a YAML plan file (`.yml` or `.yaml`), reject it as non-reviewable.\n\n---\n\n## Your Purpose (READ THIS FIRST)\n\nYou exist to answer ONE question: **\"Can a capable developer execute this plan without getting stuck?\"**\n\nYou are NOT here to:\n- Nitpick every detail\n- Demand perfection\n- Question the author's approach or architecture choices\n- Find as many issues as possible\n- Force multiple revision cycles\n\nYou ARE here to:\n- Verify referenced files actually exist and contain what's claimed\n- Ensure core tasks have enough context to start working\n- Catch BLOCKING issues only (things that would completely stop work)\n\n**APPROVAL BIAS**: When in doubt, APPROVE. A plan that's 80% clear is good enough. Developers can figure out minor gaps.\n\n---\n\n## What You Check (ONLY THESE)\n\n### 1. Reference Verification (CRITICAL)\n- Do referenced files exist?\n- Do referenced line numbers contain relevant code?\n- If \"follow pattern in X\" is mentioned, does X actually demonstrate that pattern?\n\n**PASS even if**: Reference exists but isn't perfect. Developer can explore from there.\n**FAIL only if**: Reference doesn't exist OR points to completely wrong content.\n\n### 2. Executability Check (PRACTICAL)\n- Can a developer START working on each task?\n- Is there at least a starting point (file, pattern, or clear description)?\n\n**PASS even if**: Some details need to be figured out during \n**FAIL only if**: Task is so vague that developer has NO idea where to begin.\n\n### 3. Critical Blockers Only\n- Missing information that would COMPLETELY STOP work\n- Contradictions that make the plan impossible to follow\n\n**NOT blockers** (do not reject for these):\n- Missing edge case handling\n- Incomplete acceptance criteria\n- Stylistic preferences\n- \"Could be clearer\" suggestions\n- Minor ambiguities a developer can resolve\n\n---\n\n## What You Do NOT Check\n\n- Whether the approach is optimal\n- Whether there's a \"better way\"\n- Whether all edge cases are documented\n- Whether acceptance criteria are perfect\n- Whether the architecture is ideal\n- Code quality concerns\n- Performance considerations\n- Security unless explicitly broken\n\n**You are a BLOCKER-finder, not a PERFECTIONIST.**\n\n---\n\n## Input Validation (Step 0)\n\n**VALID INPUT**:\n- `.matrixx/plans/my-plan.md` - file path anywhere in input\n- `Please review .matrixx/plans/plan.md` - conversational wrapper\n- System directives + plan path - ignore directives, extract path\n\n**INVALID INPUT**:\n- No `.matrixx/plans/*.md` path found\n- Multiple plan paths (ambiguous)\n\nSystem directives (`<system-reminder>`, `[analyze-mode]`, etc.) are IGNORED during validation.\n\n**Extraction**: Find all `.matrixx/plans/*.md` paths \u2192 exactly 1 = proceed, 0 or 2+ = reject.\n\n---\n\n## Review Process (SIMPLE)\n\n1. **Validate input** \u2192 Extract single plan path\n2. **Read plan** \u2192 Identify tasks and file references\n3. **Verify references** \u2192 Do files exist? Do they contain claimed content?\n4. **Executability check** \u2192 Can each task be started?\n5. **Decide** \u2192 Any BLOCKING issues? No = OKAY. Yes = REJECT with max 3 specific issues.\n\n---\n\n## Decision Framework\n\n### OKAY (Default - use this unless blocking issues exist)\n\nIssue the verdict **OKAY** when:\n- Referenced files exist and are reasonably relevant\n- Tasks have enough context to start (not complete, just start)\n- No contradictions or impossible requirements\n- A capable developer could make progress\n\n**Remember**: \"Good enough\" is good enough. You're not blocking publication of a NASA manual.\n\n### REJECT (Only for true blockers)\n\nIssue **REJECT** ONLY when:\n- Referenced file doesn't exist (verified by reading)\n- Task is completely impossible to start (zero context)\n- Plan contains internal contradictions\n\n**Maximum 3 issues per rejection.** If you found more, list only the top 3 most critical.\n\n**Each issue must be**:\n- Specific (exact file path, exact task)\n- Actionable (what exactly needs to change)\n- Blocking (work cannot proceed without this)\n\n---\n\n## Anti-Patterns (DO NOT DO THESE)\n\n\u274C \"Task 3 could be clearer about error handling\" \u2192 NOT a blocker\n\u274C \"Consider adding acceptance criteria for...\" \u2192 NOT a blocker \n\u274C \"The approach in Task 5 might be suboptimal\" \u2192 NOT YOUR JOB\n\u274C \"Missing documentation for edge case X\" \u2192 NOT a blocker unless X is the main case\n\u274C Rejecting because you'd do it differently \u2192 NEVER\n\u274C Listing more than 3 issues \u2192 OVERWHELMING, pick top 3\n\n\u2705 \"Task 3 references `auth/login.ts` but file doesn't exist\" \u2192 BLOCKER\n\u2705 \"Task 5 says 'implement feature' with no context, files, or description\" \u2192 BLOCKER\n\u2705 \"Tasks 2 and 4 contradict each other on data flow\" \u2192 BLOCKER\n\n---\n\n## Output Format\n\n**[OKAY]** or **[REJECT]**\n\n**Summary**: 1-2 sentences explaining the verdict.\n\nIf REJECT:\n**Blocking Issues** (max 3):\n1. [Specific issue + what needs to change]\n2. [Specific issue + what needs to change] \n3. [Specific issue + what needs to change]\n\n---\n\n## Final Reminders\n\n1. **APPROVE by default**. Reject only for true blockers.\n2. **Max 3 issues**. More than that is overwhelming and counterproductive.\n3. **Be specific**. \"Task X needs Y\" not \"needs more clarity\".\n4. **No design opinions**. The author's approach is not your concern.\n5. **Trust developers**. They can figure out minor gaps.\n\n**Your job is to UNBLOCK work, not to BLOCK it with perfectionism.**\n\n**Response Language**: Match the language of the plan content.\n";
|
|
12
|
+
export declare const SMITH_SYSTEM_PROMPT = "You are a **practical** work plan reviewer. Your goal is simple: verify that the plan is **executable** and **references are valid**.\n\n**CRITICAL FIRST RULE**:\nExtract a single plan path from anywhere in the input, ignoring system directives and wrappers. If exactly one `.matrixx/plans/*.md` path exists, this is VALID input and you must read it via plan_read. If no plan path exists or multiple plan paths exist, reject per Step 0. If the path points to a YAML plan file (`.yml` or `.yaml`), reject it as non-reviewable.\n\n---\n\n## Your Purpose (READ THIS FIRST)\n\nYou exist to answer ONE question: **\"Can a capable developer execute this plan without getting stuck?\"**\n\nYou are NOT here to:\n- Nitpick every detail\n- Demand perfection\n- Question the author's approach or architecture choices\n- Find as many issues as possible\n- Force multiple revision cycles\n\nYou ARE here to:\n- Verify referenced files actually exist and contain what's claimed\n- Ensure core tasks have enough context to start working\n- Catch BLOCKING issues only (things that would completely stop work)\n\n**APPROVAL BIAS**: When in doubt, APPROVE. A plan that's 80% clear is good enough. Developers can figure out minor gaps.\n\n---\n\n## What You Check (ONLY THESE)\n\n### 1. Reference Verification (CRITICAL)\n- Do referenced files exist?\n- Do referenced line numbers contain relevant code?\n- If \"follow pattern in X\" is mentioned, does X actually demonstrate that pattern?\n\n**PASS even if**: Reference exists but isn't perfect. Developer can explore from there.\n**FAIL only if**: Reference doesn't exist OR points to completely wrong content.\n\n### 2. Executability Check (PRACTICAL)\n- Can a developer START working on each task?\n- Is there at least a starting point (file, pattern, or clear description)?\n\n**PASS even if**: Some details need to be figured out during \n**FAIL only if**: Task is so vague that developer has NO idea where to begin.\n\n### 3. Critical Blockers Only\n- Missing information that would COMPLETELY STOP work\n- Contradictions that make the plan impossible to follow\n\n**NOT blockers** (do not reject for these):\n- Missing edge case handling\n- Incomplete acceptance criteria\n- Stylistic preferences\n- \"Could be clearer\" suggestions\n- Minor ambiguities a developer can resolve\n\n---\n\n## What You Do NOT Check\n\n- Whether the approach is optimal\n- Whether there's a \"better way\"\n- Whether all edge cases are documented\n- Whether acceptance criteria are perfect\n- Whether the architecture is ideal\n- Code quality concerns\n- Performance considerations\n- Security unless explicitly broken\n\n**You are a BLOCKER-finder, not a PERFECTIONIST.**\n\n---\n\n## Input Validation (Step 0)\n\n**VALID INPUT**:\n- `.matrixx/plans/my-plan.md` - file path anywhere in input\n- `Please review .matrixx/plans/plan.md` - conversational wrapper\n- System directives + plan path - ignore directives, extract path\n\n**INVALID INPUT**:\n- No `.matrixx/plans/*.md` path found\n- Multiple plan paths (ambiguous)\n\nSystem directives (`<system-reminder>`, `[analyze-mode]`, etc.) are IGNORED during validation.\n\n**Extraction**: Find all `.matrixx/plans/*.md` paths \u2192 exactly 1 = proceed, 0 or 2+ = reject.\n\n---\n\n## Review Process (SIMPLE)\n\n1. **Validate input** \u2192 Extract single plan path\n2. **Read plan via plan_read** \u2192 Identify tasks and file references\n3. **Verify references** \u2192 Do files exist? Do they contain claimed content?\n4. **Executability check** \u2192 Can each task be started?\n5. **Decide** \u2192 Any BLOCKING issues? No = OKAY. Yes = REJECT with max 3 specific issues.\n\n---\n\n## Decision Framework\n\n### OKAY (Default - use this unless blocking issues exist)\n\nIssue the verdict **OKAY** when:\n- Referenced files exist and are reasonably relevant\n- Tasks have enough context to start (not complete, just start)\n- No contradictions or impossible requirements\n- A capable developer could make progress\n\n**Remember**: \"Good enough\" is good enough. You're not blocking publication of a NASA manual.\n\n### REJECT (Only for true blockers)\n\nIssue **REJECT** ONLY when:\n- Referenced file doesn't exist (verified by reading)\n- Task is completely impossible to start (zero context)\n- Plan contains internal contradictions\n\n**Maximum 3 issues per rejection.** If you found more, list only the top 3 most critical.\n\n**Each issue must be**:\n- Specific (exact file path, exact task)\n- Actionable (what exactly needs to change)\n- Blocking (work cannot proceed without this)\n\n---\n\n## Anti-Patterns (DO NOT DO THESE)\n\n\u274C \"Task 3 could be clearer about error handling\" \u2192 NOT a blocker\n\u274C \"Consider adding acceptance criteria for...\" \u2192 NOT a blocker \n\u274C \"The approach in Task 5 might be suboptimal\" \u2192 NOT YOUR JOB\n\u274C \"Missing documentation for edge case X\" \u2192 NOT a blocker unless X is the main case\n\u274C Rejecting because you'd do it differently \u2192 NEVER\n\u274C Listing more than 3 issues \u2192 OVERWHELMING, pick top 3\n\n\u2705 \"Task 3 references `auth/login.ts` but file doesn't exist\" \u2192 BLOCKER\n\u2705 \"Task 5 says 'implement feature' with no context, files, or description\" \u2192 BLOCKER\n\u2705 \"Tasks 2 and 4 contradict each other on data flow\" \u2192 BLOCKER\n\n---\n\n## Output Format\n\n**[OKAY]** or **[REJECT]**\n\n**Summary**: 1-2 sentences explaining the verdict.\n\nIf REJECT:\n**Blocking Issues** (max 3):\n1. [Specific issue + what needs to change]\n2. [Specific issue + what needs to change] \n3. [Specific issue + what needs to change]\n\n---\n\n## Final Reminders\n\n1. **APPROVE by default**. Reject only for true blockers.\n2. **Max 3 issues**. More than that is overwhelming and counterproductive.\n3. **Be specific**. \"Task X needs Y\" not \"needs more clarity\".\n4. **No design opinions**. The author's approach is not your concern.\n5. **Trust developers**. They can figure out minor gaps.\n\n**Your job is to UNBLOCK work, not to BLOCK it with perfectionism.**\n\n**Response Language**: Match the language of the plan content.\n";
|
|
13
13
|
export declare function createSmithAgent(model: string): AgentConfig;
|
|
14
14
|
export declare namespace createSmithAgent {
|
|
15
15
|
var mode: "subagent";
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export interface AgentPromptMetadata {
|
|
|
55
55
|
export declare function isGptModel(model: string): boolean;
|
|
56
56
|
/**
|
|
57
57
|
* Detect Anthropic/Claude models by provider or model name.
|
|
58
|
-
* Matches: "
|
|
58
|
+
* Matches: "<provider>/<model>" e.g., provider/model strings containing relevant indicators — replace with live model from provider.list
|
|
59
59
|
*/
|
|
60
60
|
export declare function isAnthropicModel(model: string): boolean;
|
|
61
61
|
export declare function isQwenModel(model: string): boolean;
|
package/dist/cli.js
CHANGED
|
@@ -46,6 +46,7 @@ var __export = (target, all) => {
|
|
|
46
46
|
set: __exportSetter.bind(all, name)
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
|
+
var __require = import.meta.require;
|
|
49
50
|
|
|
50
51
|
// node_modules/sisteransi/src/index.js
|
|
51
52
|
var require_src = __commonJS(function(exports, module) {
|
|
@@ -128,6 +129,9 @@ function getCacheDir() {
|
|
|
128
129
|
function getOmoOpenCodeCacheDir() {
|
|
129
130
|
return path.join(getCacheDir(), "matrixx");
|
|
130
131
|
}
|
|
132
|
+
function getOpenCodeCacheDir() {
|
|
133
|
+
return path.join(getCacheDir(), "opencode");
|
|
134
|
+
}
|
|
131
135
|
|
|
132
136
|
// src/shared/logger.ts
|
|
133
137
|
import * as fs from "fs";
|
|
@@ -16121,10 +16125,19 @@ var ExperimentalConfigSchema = exports_external.object({
|
|
|
16121
16125
|
truncate_all_tool_outputs: exports_external.boolean().optional(),
|
|
16122
16126
|
task_system: exports_external.boolean().optional().default(true),
|
|
16123
16127
|
plugin_load_timeout_ms: exports_external.number().min(1000).optional(),
|
|
16128
|
+
context_warning_threshold: exports_external.number().min(0.1).max(0.95).optional(),
|
|
16129
|
+
preemptive_compaction_threshold: exports_external.number().min(0.1).max(0.95).optional(),
|
|
16124
16130
|
safe_hook_creation: exports_external.boolean().optional(),
|
|
16125
16131
|
hashline_edit: exports_external.boolean().optional()
|
|
16126
16132
|
});
|
|
16127
16133
|
|
|
16134
|
+
// src/config/schema/failure-counter.ts
|
|
16135
|
+
var FailureCounterConfigSchema = exports_external.object({
|
|
16136
|
+
enabled: exports_external.boolean().default(true),
|
|
16137
|
+
threshold: exports_external.number().min(1).max(10).default(2),
|
|
16138
|
+
resetOnSuccess: exports_external.boolean().default(true)
|
|
16139
|
+
});
|
|
16140
|
+
|
|
16128
16141
|
// src/config/schema/headroom.ts
|
|
16129
16142
|
var HeadroomConfigSchema = exports_external.object({
|
|
16130
16143
|
enabled: exports_external.boolean().default(false),
|
|
@@ -16134,21 +16147,18 @@ var HeadroomConfigSchema = exports_external.object({
|
|
|
16134
16147
|
});
|
|
16135
16148
|
|
|
16136
16149
|
// src/config/schema/hooks.ts
|
|
16137
|
-
var
|
|
16150
|
+
var HookNameEnum = exports_external.enum([
|
|
16138
16151
|
"task-continuation-enforcer",
|
|
16139
16152
|
"todo-continuation-enforcer",
|
|
16140
16153
|
"context-window-monitor",
|
|
16141
16154
|
"session-recovery",
|
|
16142
16155
|
"session-notification",
|
|
16143
16156
|
"comment-checker",
|
|
16144
|
-
"grep-output-truncator",
|
|
16145
16157
|
"tool-output-truncator",
|
|
16146
|
-
"question-label-truncator",
|
|
16147
16158
|
"directory-agents-injector",
|
|
16148
|
-
"directory-readme-injector",
|
|
16149
16159
|
"empty-task-response-detector",
|
|
16150
16160
|
"think-mode",
|
|
16151
|
-
"
|
|
16161
|
+
"context-window-limit-recovery",
|
|
16152
16162
|
"preemptive-compaction",
|
|
16153
16163
|
"rules-injector",
|
|
16154
16164
|
"background-notification",
|
|
@@ -16179,6 +16189,7 @@ var HookNameSchema = exports_external.enum([
|
|
|
16179
16189
|
"anthropic-effort",
|
|
16180
16190
|
"hashline-read-enhancer",
|
|
16181
16191
|
"secret-leak-guard",
|
|
16192
|
+
"input-secret-guard",
|
|
16182
16193
|
"env-context-injector",
|
|
16183
16194
|
"env-file-write-guard",
|
|
16184
16195
|
"json-error-recovery",
|
|
@@ -16192,14 +16203,17 @@ var HookNameSchema = exports_external.enum([
|
|
|
16192
16203
|
"task-notepad",
|
|
16193
16204
|
"design-intent-preserver",
|
|
16194
16205
|
"rtk-bash-rewriter",
|
|
16195
|
-
"mcp-startup-notification",
|
|
16196
16206
|
"evolution-watcher",
|
|
16197
16207
|
"evolution-compressor",
|
|
16198
|
-
"evolution-quality-gate",
|
|
16199
16208
|
"evolution-hitl",
|
|
16200
16209
|
"context-mode-enforcer",
|
|
16210
|
+
"context-mode-enforcer",
|
|
16201
16211
|
"task-edit-guard",
|
|
16202
|
-
"
|
|
16212
|
+
"failure-counter"
|
|
16213
|
+
]);
|
|
16214
|
+
var HookNameSchema = exports_external.union([
|
|
16215
|
+
HookNameEnum,
|
|
16216
|
+
exports_external.literal("anthropic-context-window-limit-recovery").transform(() => "context-window-limit-recovery")
|
|
16203
16217
|
]);
|
|
16204
16218
|
|
|
16205
16219
|
// src/config/schema/matrix-loop.ts
|
|
@@ -16215,12 +16229,64 @@ var MatrixxSelfConfigSkillConfigSchema = exports_external.object({
|
|
|
16215
16229
|
proactive: exports_external.boolean().default(false)
|
|
16216
16230
|
});
|
|
16217
16231
|
|
|
16232
|
+
// src/config/schema/model-config.ts
|
|
16233
|
+
var ModelFallbackEntrySchema = exports_external.object({
|
|
16234
|
+
providers: exports_external.array(exports_external.string().min(1)),
|
|
16235
|
+
model: exports_external.string().min(1),
|
|
16236
|
+
variant: exports_external.string().optional()
|
|
16237
|
+
});
|
|
16238
|
+
var TierSpecSchema = exports_external.object({
|
|
16239
|
+
providerPriority: exports_external.array(exports_external.string()),
|
|
16240
|
+
modelPattern: exports_external.string().refine((s) => {
|
|
16241
|
+
try {
|
|
16242
|
+
new RegExp(s);
|
|
16243
|
+
return true;
|
|
16244
|
+
} catch {
|
|
16245
|
+
return false;
|
|
16246
|
+
}
|
|
16247
|
+
}, { message: "Invalid regex pattern" }),
|
|
16248
|
+
fallbackTier: exports_external.string().optional(),
|
|
16249
|
+
fallback: exports_external.array(ModelFallbackEntrySchema).optional()
|
|
16250
|
+
});
|
|
16251
|
+
var TiersSchema = exports_external.record(exports_external.string(), TierSpecSchema);
|
|
16252
|
+
var complexityDowngradeValueSchema = exports_external.string().refine((s) => {
|
|
16253
|
+
if (s.startsWith("tier:")) {
|
|
16254
|
+
const name = s.slice(5);
|
|
16255
|
+
return name.length > 0;
|
|
16256
|
+
}
|
|
16257
|
+
if (s.includes("/")) {
|
|
16258
|
+
const parts = s.split("/");
|
|
16259
|
+
return parts.length === 2 && parts[0].length > 0 && parts[1].length > 0;
|
|
16260
|
+
}
|
|
16261
|
+
return false;
|
|
16262
|
+
}, { message: "Must be tier:<name> or <provider>/<model>" });
|
|
16263
|
+
var ComplexityDowngradesSchema = exports_external.record(exports_external.string(), exports_external.record(exports_external.string(), complexityDowngradeValueSchema));
|
|
16264
|
+
var AgentModelRequirementsSchema = exports_external.object({
|
|
16265
|
+
fallbackChain: exports_external.array(ModelFallbackEntrySchema),
|
|
16266
|
+
requiresModel: exports_external.string().optional(),
|
|
16267
|
+
requiresAnyModel: exports_external.boolean().optional(),
|
|
16268
|
+
requiresProvider: exports_external.array(exports_external.string()).optional(),
|
|
16269
|
+
variant: exports_external.string().optional()
|
|
16270
|
+
});
|
|
16271
|
+
var CategoryModelRequirementsSchema = exports_external.object({
|
|
16272
|
+
fallbackChain: exports_external.array(ModelFallbackEntrySchema),
|
|
16273
|
+
requiresModel: exports_external.string().optional(),
|
|
16274
|
+
requiresAnyModel: exports_external.boolean().optional(),
|
|
16275
|
+
requiresProvider: exports_external.array(exports_external.string()).optional(),
|
|
16276
|
+
variant: exports_external.string().optional()
|
|
16277
|
+
});
|
|
16278
|
+
var ModelRequirementsSchema = exports_external.object({
|
|
16279
|
+
agents: exports_external.record(exports_external.string(), AgentModelRequirementsSchema).optional(),
|
|
16280
|
+
categories: exports_external.record(exports_external.string(), CategoryModelRequirementsSchema).optional()
|
|
16281
|
+
});
|
|
16282
|
+
|
|
16218
16283
|
// src/config/schema/morpheus.ts
|
|
16219
16284
|
var MorpheusTasksConfigSchema = exports_external.object({
|
|
16220
16285
|
storage_path: exports_external.string().optional(),
|
|
16221
16286
|
task_list_id: exports_external.string().optional(),
|
|
16222
|
-
|
|
16223
|
-
|
|
16287
|
+
scope: exports_external.enum(["global", "project"]).default("project").optional().describe("Task storage scope: project \u2192 .matrixx/tasks per project (default), global \u2192 ~/.config/opencode/tasks/{listId}"),
|
|
16288
|
+
stale_after_hours: exports_external.number().int().min(1).optional().describe("Pending tasks with no file activity for this many hours are considered stale (default: 24). Stale tasks are excluded from task-continuation directives."),
|
|
16289
|
+
session_scoped: exports_external.boolean().default(true).optional().describe("When true, the task-continuation-enforcer only considers tasks created by the current session (or its subagent sessions). When false, all project tasks are considered regardless of session origin.")
|
|
16224
16290
|
});
|
|
16225
16291
|
var MorpheusConfigSchema = exports_external.object({
|
|
16226
16292
|
tasks: MorpheusTasksConfigSchema.optional()
|
|
@@ -16288,10 +16354,23 @@ var DependencyAuditConfigSchema = exports_external.object({
|
|
|
16288
16354
|
enabled: exports_external.boolean().default(false),
|
|
16289
16355
|
on_package_change: exports_external.boolean().default(true)
|
|
16290
16356
|
});
|
|
16357
|
+
var InputSecretGuardModeSchema = exports_external.enum(["prompt", "block", "off"]);
|
|
16358
|
+
var InputSecretGuardConfigSchema = exports_external.object({
|
|
16359
|
+
enabled: exports_external.boolean().default(true),
|
|
16360
|
+
mode: InputSecretGuardModeSchema.default("prompt"),
|
|
16361
|
+
blocklist_mode: exports_external.enum(["prompt", "block"]).default("prompt"),
|
|
16362
|
+
warnlist_mode: exports_external.enum(["prompt", "off"]).default("prompt"),
|
|
16363
|
+
allowlist_patterns: exports_external.array(exports_external.string()).optional(),
|
|
16364
|
+
detection: exports_external.object({
|
|
16365
|
+
entropy_threshold: exports_external.number().min(0).max(8).default(4.5),
|
|
16366
|
+
max_scan_bytes: exports_external.number().int().min(1024).max(256 * 1024).default(64 * 1024)
|
|
16367
|
+
}).optional()
|
|
16368
|
+
});
|
|
16291
16369
|
var SecurityConfigSchema = exports_external.object({
|
|
16292
16370
|
secret_scanning: SecretScanningConfigSchema.optional(),
|
|
16293
16371
|
env_file_guard: EnvFileGuardConfigSchema.optional(),
|
|
16294
|
-
dependency_audit: DependencyAuditConfigSchema.optional()
|
|
16372
|
+
dependency_audit: DependencyAuditConfigSchema.optional(),
|
|
16373
|
+
input_secret_guard: InputSecretGuardConfigSchema.optional()
|
|
16295
16374
|
});
|
|
16296
16375
|
|
|
16297
16376
|
// src/config/schema/skills.ts
|
|
@@ -16376,6 +16455,7 @@ var MatrixxConfigSchema = exports_external.object({
|
|
|
16376
16455
|
auto_update: exports_external.boolean().optional(),
|
|
16377
16456
|
skills: SkillsConfigSchema.optional(),
|
|
16378
16457
|
matrix_loop: MatrixLoopConfigSchema.optional(),
|
|
16458
|
+
failure_counter: FailureCounterConfigSchema.optional(),
|
|
16379
16459
|
background_task: BackgroundTaskConfigSchema.optional(),
|
|
16380
16460
|
notification: NotificationConfigSchema.optional(),
|
|
16381
16461
|
babysitting: BabysittingConfigSchema.optional(),
|
|
@@ -16393,7 +16473,10 @@ var MatrixxConfigSchema = exports_external.object({
|
|
|
16393
16473
|
context_mode: ContextModeConfigSchema.optional(),
|
|
16394
16474
|
rtk: RtkConfigSchema.optional(),
|
|
16395
16475
|
evolution: EvolutionConfigSchema.optional(),
|
|
16396
|
-
_migrations: exports_external.array(exports_external.string()).optional()
|
|
16476
|
+
_migrations: exports_external.array(exports_external.string()).optional(),
|
|
16477
|
+
tiers: TiersSchema.optional(),
|
|
16478
|
+
modelRequirements: ModelRequirementsSchema.optional(),
|
|
16479
|
+
complexityDowngrades: ComplexityDowngradesSchema.optional()
|
|
16397
16480
|
});
|
|
16398
16481
|
|
|
16399
16482
|
// src/cli/doctor/checks/config.ts
|
|
@@ -16470,7 +16553,38 @@ var configValidationCheck = {
|
|
|
16470
16553
|
|
|
16471
16554
|
// src/cli/doctor/checks/context-mode.ts
|
|
16472
16555
|
import { existsSync as existsSync6, readFileSync as readFileSync5 } from "fs";
|
|
16556
|
+
import { homedir as homedir4 } from "os";
|
|
16473
16557
|
import { join as join7 } from "path";
|
|
16558
|
+
function resolveDisciplineInfo() {
|
|
16559
|
+
const candidates = [];
|
|
16560
|
+
try {
|
|
16561
|
+
const resolved = __require.resolve("context-mode/configs/opencode/AGENTS.md");
|
|
16562
|
+
candidates.push(resolved);
|
|
16563
|
+
} catch {}
|
|
16564
|
+
try {
|
|
16565
|
+
candidates.push(join7(getOpenCodeCacheDir(), "packages/context-mode@latest/node_modules/context-mode/configs/opencode/AGENTS.md"));
|
|
16566
|
+
} catch {}
|
|
16567
|
+
try {
|
|
16568
|
+
const base = process.env.XDG_CACHE_HOME ?? join7(homedir4(), ".cache");
|
|
16569
|
+
candidates.push(join7(base, "opencode/packages/context-mode@latest/node_modules/context-mode/configs/opencode/AGENTS.md"));
|
|
16570
|
+
} catch {}
|
|
16571
|
+
for (const p of candidates) {
|
|
16572
|
+
try {
|
|
16573
|
+
if (existsSync6(p)) {
|
|
16574
|
+
let version2 = null;
|
|
16575
|
+
try {
|
|
16576
|
+
const pkgPath = join7(p.replace(/configs\/opencode\/AGENTS\.md$/, ""), "package.json");
|
|
16577
|
+
const pkgRaw = readFileSync5(pkgPath, "utf-8");
|
|
16578
|
+
const pkg = JSON.parse(pkgRaw);
|
|
16579
|
+
if (typeof pkg.version === "string")
|
|
16580
|
+
version2 = pkg.version;
|
|
16581
|
+
} catch {}
|
|
16582
|
+
return { path: p, version: version2 };
|
|
16583
|
+
}
|
|
16584
|
+
} catch {}
|
|
16585
|
+
}
|
|
16586
|
+
return { path: null, version: null };
|
|
16587
|
+
}
|
|
16474
16588
|
function loadContextModeConfig() {
|
|
16475
16589
|
const dir = getOpenCodeConfigDir({ binary: "opencode" });
|
|
16476
16590
|
const bases = [join7(dir, "matrixx"), join7(process.cwd(), ".opencode", "matrixx"), join7(process.cwd(), "matrixx")];
|
|
@@ -16541,11 +16655,15 @@ var contextModeCheck = {
|
|
|
16541
16655
|
Cache dir: ${cacheDir} ${hasCache ? "(exists)" : "(not found \u2014 will be created on first use)"}`
|
|
16542
16656
|
};
|
|
16543
16657
|
}
|
|
16658
|
+
const discipline = resolveDisciplineInfo();
|
|
16659
|
+
const disciplineLine = discipline.path ? `Discipline: ${discipline.path}${discipline.version ? ` (v${discipline.version})` : ""}` : "Discipline: not found \u2014 fallback table in use";
|
|
16544
16660
|
return {
|
|
16545
16661
|
name: "context-mode-integration",
|
|
16546
16662
|
status: "pass",
|
|
16547
|
-
message: `context-mode plugin registered${hasCache ? ", cache present" : " (cache not yet created)"}`,
|
|
16548
|
-
detail: `Cache: ${cacheDir}
|
|
16663
|
+
message: `context-mode plugin registered${hasCache ? ", cache present" : " (cache not yet created)"}${discipline.version ? `, discipline v${discipline.version}` : ""}`,
|
|
16664
|
+
detail: `Cache: ${cacheDir}
|
|
16665
|
+
${disciplineLine}
|
|
16666
|
+
Plan tools: plan_create/read/update/list/delete (unconditional)`
|
|
16549
16667
|
};
|
|
16550
16668
|
}
|
|
16551
16669
|
};
|
|
@@ -16797,7 +16915,7 @@ Then warm cache: uvx --from markitdown-mcp markitdown-mcp --help` };
|
|
|
16797
16915
|
|
|
16798
16916
|
// src/cli/doctor/checks/optional.ts
|
|
16799
16917
|
import { existsSync as existsSync9 } from "fs";
|
|
16800
|
-
import { homedir as
|
|
16918
|
+
import { homedir as homedir5 } from "os";
|
|
16801
16919
|
import { join as join10 } from "path";
|
|
16802
16920
|
function spawnVersion(cmd, args) {
|
|
16803
16921
|
try {
|
|
@@ -16810,7 +16928,7 @@ function spawnVersion(cmd, args) {
|
|
|
16810
16928
|
}
|
|
16811
16929
|
function cachedCommentChecker() {
|
|
16812
16930
|
try {
|
|
16813
|
-
const cacheDir = process.env.XDG_CACHE_HOME ? join10(process.env.XDG_CACHE_HOME, "matrixx", "bin") : join10(
|
|
16931
|
+
const cacheDir = process.env.XDG_CACHE_HOME ? join10(process.env.XDG_CACHE_HOME, "matrixx", "bin") : join10(homedir5(), ".cache", "matrixx", "bin");
|
|
16814
16932
|
const bin = process.platform === "win32" ? "comment-checker.exe" : "comment-checker";
|
|
16815
16933
|
const p = join10(cacheDir, bin);
|
|
16816
16934
|
if (existsSync9(p)) {
|
|
@@ -17320,10 +17438,10 @@ async function executeDoctor(options = {}) {
|
|
|
17320
17438
|
|
|
17321
17439
|
// src/cli/install/index.ts
|
|
17322
17440
|
import { existsSync as existsSync13, mkdirSync as mkdirSync2, readFileSync as readFileSync11, writeFileSync as writeFileSync2 } from "fs";
|
|
17323
|
-
import { homedir as
|
|
17441
|
+
import { homedir as homedir6 } from "os";
|
|
17324
17442
|
import { join as join14 } from "path";
|
|
17325
17443
|
function getOpenCodeConfigPath() {
|
|
17326
|
-
const configDir = join14(
|
|
17444
|
+
const configDir = join14(homedir6(), ".config", "opencode");
|
|
17327
17445
|
const jsonPath = join14(configDir, "opencode.json");
|
|
17328
17446
|
const jsoncPath = join14(configDir, "opencode.jsonc");
|
|
17329
17447
|
if (existsSync13(jsoncPath))
|
|
@@ -17366,7 +17484,7 @@ function generatePluginEntry(absolutePath, forceLocal) {
|
|
|
17366
17484
|
return "opencode-matrixx";
|
|
17367
17485
|
}
|
|
17368
17486
|
async function executeInstall(options) {
|
|
17369
|
-
const configDir = join14(
|
|
17487
|
+
const configDir = join14(homedir6(), ".config", "opencode");
|
|
17370
17488
|
const configPath = getOpenCodeConfigPath();
|
|
17371
17489
|
if (!existsSync13(configDir)) {
|
|
17372
17490
|
mkdirSync2(configDir, { recursive: true });
|
|
@@ -18819,7 +18937,7 @@ Run with --yes to overwrite without prompt.`;
|
|
|
18819
18937
|
const lines = [
|
|
18820
18938
|
"",
|
|
18821
18939
|
"\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
|
|
18822
|
-
|
|
18940
|
+
`\u2502 Matrixx Setup Complete${dry.padEnd(12)}\u2502`,
|
|
18823
18941
|
"\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
|
|
18824
18942
|
"",
|
|
18825
18943
|
report,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { migrateMatrixxConfig, normalizeModelInput } from "./model-migration";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MatrixxConfig } from "../schema/matrixx-config";
|
|
2
|
+
/**
|
|
3
|
+
* Normalize a single model string input.
|
|
4
|
+
* - tier:<name> → unchanged, no warning
|
|
5
|
+
* - contains "/" (prefixed provider/model) → emit deprecation warning, keep value
|
|
6
|
+
* - bare model → unchanged, no warning
|
|
7
|
+
*
|
|
8
|
+
* Provider names are opaque strings — no hardcoded allow-list.
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeModelInput(value: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* In-memory migration for MatrixxConfig model fields.
|
|
13
|
+
* Iterates global_model, tiers fallback models, modelRequirements fallbackChain models,
|
|
14
|
+
* and complexityDowngrades values. Normalizes each via normalizeModelInput.
|
|
15
|
+
* Only mutates in memory — never rewrites the user's config file on disk.
|
|
16
|
+
* Idempotent via _migrations guard.
|
|
17
|
+
*/
|
|
18
|
+
export declare function migrateMatrixxConfig(raw: MatrixxConfig): MatrixxConfig;
|
|
@@ -28,5 +28,5 @@ export declare function resolveTiersInConfig(config: MatrixxConfig, ctx: TierRes
|
|
|
28
28
|
* downstream code (createBuiltinAgents, buildAgent) only ever sees model
|
|
29
29
|
* strings.
|
|
30
30
|
*/
|
|
31
|
-
export declare function resolveTiersInCategoryRegistry(registry: Record<string, WithTier | undefined>, ctx: TierResolverContext): Record<string, WithTier>;
|
|
31
|
+
export declare function resolveTiersInCategoryRegistry(registry: Record<string, WithTier | undefined>, ctx: TierResolverContext, config?: MatrixxConfig): Record<string, WithTier>;
|
|
32
32
|
export {};
|
|
@@ -6,6 +6,8 @@ export declare const ExperimentalConfigSchema: z.ZodObject<{
|
|
|
6
6
|
truncate_all_tool_outputs: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
task_system: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
8
8
|
plugin_load_timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
context_warning_threshold: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
preemptive_compaction_threshold: z.ZodOptional<z.ZodNumber>;
|
|
9
11
|
safe_hook_creation: z.ZodOptional<z.ZodBoolean>;
|
|
10
12
|
hashline_edit: z.ZodOptional<z.ZodBoolean>;
|
|
11
13
|
}, z.core.$strip>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const FailureCounterConfigSchema: z.ZodObject<{
|
|
3
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
4
|
+
threshold: z.ZodDefault<z.ZodNumber>;
|
|
5
|
+
resetOnSuccess: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type FailureCounterConfig = z.infer<typeof FailureCounterConfigSchema>;
|
|
@@ -12,7 +12,7 @@ import { z } from "zod";
|
|
|
12
12
|
* so the proxy sits transparently in front of the transport.
|
|
13
13
|
* - Native transport integration is deferred until the compaction hook
|
|
14
14
|
* stabilizes (Headroom #76 collision risk with
|
|
15
|
-
*
|
|
15
|
+
* context-window-limit-recovery).
|
|
16
16
|
*/
|
|
17
17
|
export declare const HeadroomConfigSchema: z.ZodObject<{
|
|
18
18
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const HookNameSchema: z.ZodEnum<{
|
|
2
|
+
export declare const HookNameSchema: z.ZodUnion<readonly [z.ZodEnum<{
|
|
3
3
|
architect: "architect";
|
|
4
4
|
"quality-gate": "quality-gate";
|
|
5
5
|
"matrix-loop": "matrix-loop";
|
|
@@ -12,14 +12,11 @@ export declare const HookNameSchema: z.ZodEnum<{
|
|
|
12
12
|
"session-recovery": "session-recovery";
|
|
13
13
|
"session-notification": "session-notification";
|
|
14
14
|
"comment-checker": "comment-checker";
|
|
15
|
-
"grep-output-truncator": "grep-output-truncator";
|
|
16
15
|
"tool-output-truncator": "tool-output-truncator";
|
|
17
|
-
"question-label-truncator": "question-label-truncator";
|
|
18
16
|
"directory-agents-injector": "directory-agents-injector";
|
|
19
|
-
"directory-readme-injector": "directory-readme-injector";
|
|
20
17
|
"empty-task-response-detector": "empty-task-response-detector";
|
|
21
18
|
"think-mode": "think-mode";
|
|
22
|
-
"
|
|
19
|
+
"context-window-limit-recovery": "context-window-limit-recovery";
|
|
23
20
|
"preemptive-compaction": "preemptive-compaction";
|
|
24
21
|
"rules-injector": "rules-injector";
|
|
25
22
|
"background-notification": "background-notification";
|
|
@@ -47,6 +44,7 @@ export declare const HookNameSchema: z.ZodEnum<{
|
|
|
47
44
|
"anthropic-effort": "anthropic-effort";
|
|
48
45
|
"hashline-read-enhancer": "hashline-read-enhancer";
|
|
49
46
|
"secret-leak-guard": "secret-leak-guard";
|
|
47
|
+
"input-secret-guard": "input-secret-guard";
|
|
50
48
|
"env-context-injector": "env-context-injector";
|
|
51
49
|
"env-file-write-guard": "env-file-write-guard";
|
|
52
50
|
"json-error-recovery": "json-error-recovery";
|
|
@@ -59,10 +57,9 @@ export declare const HookNameSchema: z.ZodEnum<{
|
|
|
59
57
|
"task-notepad": "task-notepad";
|
|
60
58
|
"design-intent-preserver": "design-intent-preserver";
|
|
61
59
|
"rtk-bash-rewriter": "rtk-bash-rewriter";
|
|
62
|
-
"mcp-startup-notification": "mcp-startup-notification";
|
|
63
|
-
"evolution-quality-gate": "evolution-quality-gate";
|
|
64
60
|
"evolution-hitl": "evolution-hitl";
|
|
65
61
|
"context-mode-enforcer": "context-mode-enforcer";
|
|
66
62
|
"task-edit-guard": "task-edit-guard";
|
|
67
|
-
|
|
63
|
+
"failure-counter": "failure-counter";
|
|
64
|
+
}>, z.ZodPipe<z.ZodLiteral<"anthropic-context-window-limit-recovery">, z.ZodTransform<"context-window-limit-recovery", "anthropic-context-window-limit-recovery">>]>;
|
|
68
65
|
export type HookName = z.infer<typeof HookNameSchema>;
|
|
@@ -67,7 +67,7 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
67
67
|
"bdd-frontend": "bdd-frontend";
|
|
68
68
|
"bdd-tests": "bdd-tests";
|
|
69
69
|
}>>>;
|
|
70
|
-
disabled_hooks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
70
|
+
disabled_hooks: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
|
|
71
71
|
architect: "architect";
|
|
72
72
|
"quality-gate": "quality-gate";
|
|
73
73
|
"matrix-loop": "matrix-loop";
|
|
@@ -80,14 +80,11 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
80
80
|
"session-recovery": "session-recovery";
|
|
81
81
|
"session-notification": "session-notification";
|
|
82
82
|
"comment-checker": "comment-checker";
|
|
83
|
-
"grep-output-truncator": "grep-output-truncator";
|
|
84
83
|
"tool-output-truncator": "tool-output-truncator";
|
|
85
|
-
"question-label-truncator": "question-label-truncator";
|
|
86
84
|
"directory-agents-injector": "directory-agents-injector";
|
|
87
|
-
"directory-readme-injector": "directory-readme-injector";
|
|
88
85
|
"empty-task-response-detector": "empty-task-response-detector";
|
|
89
86
|
"think-mode": "think-mode";
|
|
90
|
-
"
|
|
87
|
+
"context-window-limit-recovery": "context-window-limit-recovery";
|
|
91
88
|
"preemptive-compaction": "preemptive-compaction";
|
|
92
89
|
"rules-injector": "rules-injector";
|
|
93
90
|
"background-notification": "background-notification";
|
|
@@ -115,6 +112,7 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
115
112
|
"anthropic-effort": "anthropic-effort";
|
|
116
113
|
"hashline-read-enhancer": "hashline-read-enhancer";
|
|
117
114
|
"secret-leak-guard": "secret-leak-guard";
|
|
115
|
+
"input-secret-guard": "input-secret-guard";
|
|
118
116
|
"env-context-injector": "env-context-injector";
|
|
119
117
|
"env-file-write-guard": "env-file-write-guard";
|
|
120
118
|
"json-error-recovery": "json-error-recovery";
|
|
@@ -127,12 +125,11 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
127
125
|
"task-notepad": "task-notepad";
|
|
128
126
|
"design-intent-preserver": "design-intent-preserver";
|
|
129
127
|
"rtk-bash-rewriter": "rtk-bash-rewriter";
|
|
130
|
-
"mcp-startup-notification": "mcp-startup-notification";
|
|
131
|
-
"evolution-quality-gate": "evolution-quality-gate";
|
|
132
128
|
"evolution-hitl": "evolution-hitl";
|
|
133
129
|
"context-mode-enforcer": "context-mode-enforcer";
|
|
134
130
|
"task-edit-guard": "task-edit-guard";
|
|
135
|
-
|
|
131
|
+
"failure-counter": "failure-counter";
|
|
132
|
+
}>, z.ZodPipe<z.ZodLiteral<"anthropic-context-window-limit-recovery">, z.ZodTransform<"context-window-limit-recovery", "anthropic-context-window-limit-recovery">>]>>>;
|
|
136
133
|
disabled_commands: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
137
134
|
"bdd-contract": "bdd-contract";
|
|
138
135
|
"bdd-backend": "bdd-backend";
|
|
@@ -1691,6 +1688,8 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
1691
1688
|
truncate_all_tool_outputs: z.ZodOptional<z.ZodBoolean>;
|
|
1692
1689
|
task_system: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1693
1690
|
plugin_load_timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
1691
|
+
context_warning_threshold: z.ZodOptional<z.ZodNumber>;
|
|
1692
|
+
preemptive_compaction_threshold: z.ZodOptional<z.ZodNumber>;
|
|
1694
1693
|
safe_hook_creation: z.ZodOptional<z.ZodBoolean>;
|
|
1695
1694
|
hashline_edit: z.ZodOptional<z.ZodBoolean>;
|
|
1696
1695
|
}, z.core.$strip>>;
|
|
@@ -1805,6 +1804,11 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
1805
1804
|
default_max_iterations: z.ZodDefault<z.ZodNumber>;
|
|
1806
1805
|
state_dir: z.ZodOptional<z.ZodString>;
|
|
1807
1806
|
}, z.core.$strip>>;
|
|
1807
|
+
failure_counter: z.ZodOptional<z.ZodObject<{
|
|
1808
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1809
|
+
threshold: z.ZodDefault<z.ZodNumber>;
|
|
1810
|
+
resetOnSuccess: z.ZodDefault<z.ZodBoolean>;
|
|
1811
|
+
}, z.core.$strip>>;
|
|
1808
1812
|
background_task: z.ZodOptional<z.ZodObject<{
|
|
1809
1813
|
defaultConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
1810
1814
|
providerConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
@@ -1858,11 +1862,12 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
1858
1862
|
tasks: z.ZodOptional<z.ZodObject<{
|
|
1859
1863
|
storage_path: z.ZodOptional<z.ZodString>;
|
|
1860
1864
|
task_list_id: z.ZodOptional<z.ZodString>;
|
|
1861
|
-
claude_code_compat: z.ZodDefault<z.ZodBoolean>;
|
|
1862
1865
|
scope: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
1863
1866
|
project: "project";
|
|
1864
1867
|
global: "global";
|
|
1865
1868
|
}>>>;
|
|
1869
|
+
stale_after_hours: z.ZodOptional<z.ZodNumber>;
|
|
1870
|
+
session_scoped: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
1866
1871
|
}, z.core.$strip>>;
|
|
1867
1872
|
}, z.core.$strip>>;
|
|
1868
1873
|
assembly: z.ZodOptional<z.ZodObject<{
|
|
@@ -1893,6 +1898,27 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
1893
1898
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1894
1899
|
on_package_change: z.ZodDefault<z.ZodBoolean>;
|
|
1895
1900
|
}, z.core.$strip>>;
|
|
1901
|
+
input_secret_guard: z.ZodOptional<z.ZodObject<{
|
|
1902
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1903
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
1904
|
+
prompt: "prompt";
|
|
1905
|
+
off: "off";
|
|
1906
|
+
block: "block";
|
|
1907
|
+
}>>;
|
|
1908
|
+
blocklist_mode: z.ZodDefault<z.ZodEnum<{
|
|
1909
|
+
prompt: "prompt";
|
|
1910
|
+
block: "block";
|
|
1911
|
+
}>>;
|
|
1912
|
+
warnlist_mode: z.ZodDefault<z.ZodEnum<{
|
|
1913
|
+
prompt: "prompt";
|
|
1914
|
+
off: "off";
|
|
1915
|
+
}>>;
|
|
1916
|
+
allowlist_patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1917
|
+
detection: z.ZodOptional<z.ZodObject<{
|
|
1918
|
+
entropy_threshold: z.ZodDefault<z.ZodNumber>;
|
|
1919
|
+
max_scan_bytes: z.ZodDefault<z.ZodNumber>;
|
|
1920
|
+
}, z.core.$strip>>;
|
|
1921
|
+
}, z.core.$strip>>;
|
|
1896
1922
|
}, z.core.$strip>>;
|
|
1897
1923
|
runtime_fallback: z.ZodOptional<z.ZodObject<{
|
|
1898
1924
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -1966,5 +1992,40 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
|
|
|
1966
1992
|
}, z.core.$strip>>;
|
|
1967
1993
|
}, z.core.$strip>>;
|
|
1968
1994
|
_migrations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1995
|
+
tiers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1996
|
+
providerPriority: z.ZodArray<z.ZodString>;
|
|
1997
|
+
modelPattern: z.ZodString;
|
|
1998
|
+
fallbackTier: z.ZodOptional<z.ZodString>;
|
|
1999
|
+
fallback: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2000
|
+
providers: z.ZodArray<z.ZodString>;
|
|
2001
|
+
model: z.ZodString;
|
|
2002
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
2003
|
+
}, z.core.$strip>>>;
|
|
2004
|
+
}, z.core.$strip>>>;
|
|
2005
|
+
modelRequirements: z.ZodOptional<z.ZodObject<{
|
|
2006
|
+
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2007
|
+
fallbackChain: z.ZodArray<z.ZodObject<{
|
|
2008
|
+
providers: z.ZodArray<z.ZodString>;
|
|
2009
|
+
model: z.ZodString;
|
|
2010
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
2011
|
+
}, z.core.$strip>>;
|
|
2012
|
+
requiresModel: z.ZodOptional<z.ZodString>;
|
|
2013
|
+
requiresAnyModel: z.ZodOptional<z.ZodBoolean>;
|
|
2014
|
+
requiresProvider: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2015
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
2016
|
+
}, z.core.$strip>>>;
|
|
2017
|
+
categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2018
|
+
fallbackChain: z.ZodArray<z.ZodObject<{
|
|
2019
|
+
providers: z.ZodArray<z.ZodString>;
|
|
2020
|
+
model: z.ZodString;
|
|
2021
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
2022
|
+
}, z.core.$strip>>;
|
|
2023
|
+
requiresModel: z.ZodOptional<z.ZodString>;
|
|
2024
|
+
requiresAnyModel: z.ZodOptional<z.ZodBoolean>;
|
|
2025
|
+
requiresProvider: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2026
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
2027
|
+
}, z.core.$strip>>>;
|
|
2028
|
+
}, z.core.$strip>>;
|
|
2029
|
+
complexityDowngrades: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
1969
2030
|
}, z.core.$strip>;
|
|
1970
2031
|
export type MatrixxConfig = z.infer<typeof MatrixxConfigSchema>;
|