taskchef 8.2.2 → 8.3.0
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/.codex-plugin/plugin.json +1 -1
- package/README.md +8 -7
- package/docs/spec.md +13 -1
- package/docs/workflows.md +10 -0
- package/package.json +1 -1
- package/scripts/roles/resolve_roles.py +2 -2
- package/skills/taskchef-delegate/SKILL.md +11 -11
- package/skills/taskchef-delegate/references/model-roles.md +21 -44
- package/skills/taskchef-executor/SKILL.md +34 -0
- package/src/dashboard/dist/app.js +1 -1
- package/src/dashboard/dist/app.js.map +1 -1
- package/src/dashboard/react/components/ModelSettings.tsx +1 -1
- package/src/dashboard.js +1 -1
- package/src/model-roles.js +3 -3
|
@@ -66,7 +66,7 @@ export function ModelSettings() {
|
|
|
66
66
|
setRevision((value) => value + 1);
|
|
67
67
|
}}><IconRefresh className={loading ? 'taskchef-refresh-spinning' : undefined} size={18} stroke={1.8} /></ActionIcon>
|
|
68
68
|
</Group>
|
|
69
|
-
<Text c="dimmed" size="sm">Your models for planning, implementation, and review.</Text>
|
|
69
|
+
<Text c="dimmed" size="sm">Your models for orchestration, planning, implementation, and review.</Text>
|
|
70
70
|
{error && <Alert color="red" role="alert">{error}</Alert>}
|
|
71
71
|
{profile && <>
|
|
72
72
|
{profile.problems.map((problem) => <Alert color="yellow" key={problem}>{problem}</Alert>)}
|
package/src/dashboard.js
CHANGED
|
@@ -1251,7 +1251,7 @@ export async function createDashboardServer({
|
|
|
1251
1251
|
return;
|
|
1252
1252
|
}
|
|
1253
1253
|
|
|
1254
|
-
const settingsMatch = url.pathname.match(/^\/api\/settings\/(planner|implementer|reviewer)$/);
|
|
1254
|
+
const settingsMatch = url.pathname.match(/^\/api\/settings\/(orchestrator|planner|implementer|reviewer)$/);
|
|
1255
1255
|
if (settingsMatch && method === "POST") {
|
|
1256
1256
|
if (request.headers.origin !== allowedOrigin) {
|
|
1257
1257
|
sendJson(response, 403, { code: "invalid_origin", message: "Dashboard origin validation failed." });
|
package/src/model-roles.js
CHANGED
|
@@ -15,11 +15,11 @@ async function hasAgentFiles(directory) {
|
|
|
15
15
|
|
|
16
16
|
function missingRoles() {
|
|
17
17
|
return {
|
|
18
|
-
roles: ['planner', 'implementer', 'reviewer'].map((role) => ({
|
|
18
|
+
roles: ['orchestrator', 'planner', 'implementer', 'reviewer'].map((role) => ({
|
|
19
19
|
role, source: null, effectiveSource: null, model: null, effort: null,
|
|
20
20
|
status: 'missing', availability: 'No role files', problems: [],
|
|
21
21
|
taskOverrides: {}, subagentOverrides: {},
|
|
22
|
-
fallback: role === '
|
|
22
|
+
fallback: role === 'orchestrator' ? 'native new-task default' : 'inherit parent settings',
|
|
23
23
|
})),
|
|
24
24
|
problems: [], catalogSource: null, modelOptions: [],
|
|
25
25
|
precedence: 'explicit user model (and its explicit effort) > personal role > native defaults; explicit effort alone overrides role effort',
|
|
@@ -50,7 +50,7 @@ export async function resolveModelRoles({ run = execFile, env = process.env, inc
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
export async function updateModelRole(role, model, effort, { run = execFile, env = process.env } = {}) {
|
|
53
|
-
const allowedRoles = new Set(['planner', 'implementer', 'reviewer']);
|
|
53
|
+
const allowedRoles = new Set(['orchestrator', 'planner', 'implementer', 'reviewer']);
|
|
54
54
|
if (!allowedRoles.has(role) || typeof model !== 'string' || typeof effort !== 'string') {
|
|
55
55
|
const error = new Error('Invalid model role update.');
|
|
56
56
|
error.code = 'invalid_request';
|