@vpxa/aikit 0.1.248 → 0.1.249
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/package.json
CHANGED
|
@@ -7,6 +7,7 @@ function e(e){return e&&e[0].toLowerCase()+e.slice(1)}function t(e){return!e||e.
|
|
|
7
7
|
`)).join(`
|
|
8
8
|
`).trimEnd()}function o(e){return[[`Session Start`,e.sessionStart],[`Before Code Change`,e.beforeCodeChange],[`Before Commit`,e.beforeCommit],[`Session End`,e.sessionEnd]].map(([e,t])=>{let n=(t?.actions||[]).map(e=>`- \`${e}\``);return[`### ${e}`,``,...n,``].join(`
|
|
9
9
|
`)}).join(`
|
|
10
|
-
`).trimEnd()}function s(e,t){let n=[];
|
|
11
|
-
`)}
|
|
12
|
-
`)}`}function l({
|
|
10
|
+
`).trimEnd()}function s(e,t){if(!e)return null;let n=typeof e==`function`?e(t):e[t];return n?typeof n==`string`?n:n.primary||n.model||null:null}function c(e,t){let n=!!t,r=[];for(let[i,a]of Object.entries(e))if(a.variants)for(let[e,o]of Object.entries(a.variants)){let c=`${i}-${e}`,l=[`| **${c}** | ${o.description} |`];n&&l.push(` ${s(t,c)||`—`} |`),l.push(` ${a.category||`—`} |`),r.push(l.join(``))}else{let e=[`| **${i}** | ${a.description} |`];n&&e.push(` ${s(t,i)||`—`} |`),e.push(` ${a.category||`—`} |`),r.push(e.join(``))}return n?`| Agent | Purpose | Model | Category |\n|-------|---------|-------|----------|\n${r.join(`
|
|
11
|
+
`)}`:`| Agent | Purpose | Category |\n|-------|---------|----------|\n${r.join(`
|
|
12
|
+
`)}`}function l(e){let t=[];for(let[n,r]of Object.entries(e)){if(n===`Orchestrator`)continue;let e=r.compactRole||r.description;if(r.variants){let i=Object.keys(r.variants);t.push(`| **${n}-${i.join(`/`)}** | ${e} |`)}else t.push(`| **${n}** | ${e} |`)}return`| Agent | Role |\n|-------|------|\n${t.join(`
|
|
13
|
+
`)}`}function u({serverName:e,mcpEntry:t,configKey:n,extraServerFields:r}){let i={...t};return r&&Object.assign(i,r),JSON.stringify({[n]:{[e]:i}},null,2)}export{n as buildAgentPrompt,c as buildAgentTable,l as buildCompactAgentTable,o as buildHooksSection,r as buildInlineAgentSection,u as buildMcpConfigJson,i as buildPromptFile,a as buildPromptSections,t as buildSkillsSection,e as lowerFirst};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{HOOKS as n}from"../definitions/hooks.mjs";import{MCP_SERVER_ENTRY as r,SERVER_NAME as i}from"../definitions/mcp.mjs";import{
|
|
1
|
+
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{HOOKS as n}from"../definitions/hooks.mjs";import{MCP_SERVER_ENTRY as r,SERVER_NAME as i}from"../definitions/mcp.mjs";import{getPlatformPrimaryModelMap as a}from"../definitions/models.mjs";import{PROMPTS as o}from"../definitions/prompts.mjs";import{AIKIT_INSTALL_HINT_SECTION as s,PLATFORM_OUTPUT_RULES_SECTION as c,PROTOCOLS as l}from"../definitions/protocols.mjs";import{AIKIT_TOOLS as u,CLAUDE_CODE_TOOL_MAP as d,IDE_CAPABILITIES as f}from"../definitions/tools.mjs";import{buildAgentTable as p,buildCompactAgentTable as m,buildHooksSection as h,buildMcpConfigJson as g,buildSkillsSection as _,lowerFirst as v}from"./_shared.mjs";import{generateHooks as y}from"./hooks.mjs";const b=[`## Flows`,``,"This project uses aikit's pluggable flow system. Check flow status with the `flow` MCP tool.","If a flow is active, follow the current step's skill instructions. Advance with `flow({ action: 'step', advance: 'next' })`.","Use `flow({ action: 'list' })` to see available flows and `flow({ action: 'start', name, topic })` to begin one."].join(`
|
|
2
2
|
`),x=[`## Flows`,``,"This project uses aikit's pluggable flow system. Check flow status with the `flow` MCP tool.","If a flow is active, follow the current step's skill instructions. Advance with `flow({ action: 'step', advance: 'next' })`.","Use `flow({ action: 'list' })` to see available flows and `flow({ action: 'start', name, topic })` to begin one."].join(`
|
|
3
3
|
`),S=[`## Flows`,``,"This project uses aikit's pluggable flow system. Use `flow({ action: 'status' })` to check if a flow is active.",`If dispatched as part of a flow, your work contributes to the current step. Do NOT advance or manage the flow — the Orchestrator handles flow lifecycle.`].join(`
|
|
4
4
|
`);function C(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/[^a-zA-Z0-9]+/g,`-`).replace(/^-+|-+$/g,``).toLowerCase()}function w(e){return`"${String(e).replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`}function T(e){let t=(f[e]||[]).flatMap(e=>d[e]||[]),n=u.map(e=>`mcp__aikit__${e}`);return[...new Set([...t,...n])].sort((e,t)=>e.localeCompare(t))}function E(e,t){let n=[];return n.push(`# aikit ${e}`),n.push(``),t.description&&(n.push(`> ${t.description}`),n.push(``)),n.push(t.content.trim()),n.push(``),n.join(`
|
|
5
5
|
`)}function D(e,n){let r=t[e];return typeof r==`function`?r(n):r||``}function O(e){let t=[];e.extraBody&&t.push(e.extraBody),e.sharedBase&&l[e.sharedBase]&&t.push(l[e.sharedBase]);for(let n of e.sharedProtocols||[])l[n]&&t.push(l[n]);return t}function k(){let t=[];for(let[n,r]of Object.entries(e)){if(r.variants){for(let[e,i]of Object.entries(r.variants))t.push({name:`${n}-${e}`,description:i.description||r.description});continue}t.push({name:n,description:r.description})}return t}function A(e){return k().map(({name:t,description:n})=>`- \`${e}/${t}.md\` — ${n}`).join(`
|
|
6
|
-
`)}function j(t=p(e,a)){return[`# aikit — Claude Code Agents`,``,c,``,s,``,`## MCP Server`,``,"Server name: `aikit`","Configured in `.mcp.json` (already done if scaffold was deployed).",``,`## Agents`,``,t,``,`## Agent Files`,``,A(`.claude/agents`),``,`## Commands`,``,"Slash commands live under `.claude/commands/`.",``,`## Session Protocol`,``,h(n),``].join(`
|
|
6
|
+
`)}function j(t=p(e,a(`claude-code`))){return[`# aikit — Claude Code Agents`,``,c,``,s,``,`## MCP Server`,``,"Server name: `aikit`","Configured in `.mcp.json` (already done if scaffold was deployed).",``,`## Agents`,``,t,``,`## Agent Files`,``,A(`.claude/agents`),``,`## Commands`,``,"Slash commands live under `.claude/commands/`.",``,`## Session Protocol`,``,h(n),``].join(`
|
|
7
7
|
`)}function M(){return[`# aikit — Claude Code Instructions`,``,"Detailed workspace instructions live in `AGENTS.md`.","Full sub-agent instructions live in `.claude/agents/`.","Slash commands live in `.claude/commands/`.","MCP server config lives in `.mcp.json`.",``,"Start with `AGENTS.md`, then open the specific sub-agent file you want to use.",``,c,``,s,``].join(`
|
|
8
8
|
`)}function N(e,t,n,r){let i=T(t.toolRole),a=O(t),o=_(t.skills),s=e===`Orchestrator`?[b,x]:[S],c=[n,...a,t.bodyAddendum,o,...s].filter(Boolean).join(`
|
|
9
9
|
|
|
10
10
|
`).trim(),l=t.identity?`You are the **${e}**${t.identity}`:`You are the **${e}**, ${v(t.description)}.`,u=[`---`,`name: ${C(e)}`,`description: ${w(t.description)}`,`allowedTools:`,...i.map(e=>` - ${e}`),`---`,``,`# ${e} - ${t.title||e}`,``,l];return c&&u.push(``,c),u.push(``),u.join(`
|
|
11
|
-
`)}function P(){let t=[],n=p(e,a),s=m(e);t.push({path:`.mcp.json`,content:`${g({serverName:i,mcpEntry:r,configKey:`mcpServers`})}\n`}),t.push({path:`CLAUDE.md`,content:M()}),t.push({path:`AGENTS.md`,content:j(n)});let c=y(`claude`,`~/.copilot/hooks/scripts`);t.push(...c.map(e=>({path:e.path,content:e.content})));for(let[e,n]of Object.entries(o))t.push({path:`.claude/commands/aikit-${e}.md`,content:E(e,n)});for(let[r,i]of Object.entries(e)){let e=D(r,s);if(i.variants){for(let[a,o]of Object.entries(i.variants)){let s=`${r}-${a}`;t.push({path:`.claude/agents/${s}.md`,content:N(s,{...i,description:o.description||i.description,identity:o.identity,bodyAddendum:o.bodyAddendum},e,n)})}continue}t.push({path:`.claude/agents/${r}.md`,content:N(r,i,e,n)})}return t}export{b as CLAUDE_FLOWS_SECTION,x as CLAUDE_ORCHESTRATOR_FLOW_ROUTING_SECTION,P as generateClaudeCode};
|
|
11
|
+
`)}function P(){let t=[],n=p(e,a(`claude-code`)),s=m(e);t.push({path:`.mcp.json`,content:`${g({serverName:i,mcpEntry:r,configKey:`mcpServers`})}\n`}),t.push({path:`CLAUDE.md`,content:M()}),t.push({path:`AGENTS.md`,content:j(n)});let c=y(`claude`,`~/.copilot/hooks/scripts`);t.push(...c.map(e=>({path:e.path,content:e.content})));for(let[e,n]of Object.entries(o))t.push({path:`.claude/commands/aikit-${e}.md`,content:E(e,n)});for(let[r,i]of Object.entries(e)){let e=D(r,s);if(i.variants){for(let[a,o]of Object.entries(i.variants)){let s=`${r}-${a}`;t.push({path:`.claude/agents/${s}.md`,content:N(s,{...i,description:o.description||i.description,identity:o.identity,bodyAddendum:o.bodyAddendum},e,n)})}continue}t.push({path:`.claude/agents/${r}.md`,content:N(r,i,e,n)})}return t}export{b as CLAUDE_FLOWS_SECTION,x as CLAUDE_ORCHESTRATOR_FLOW_ROUTING_SECTION,P as generateClaudeCode};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{
|
|
2
|
-
`)}function
|
|
3
|
-
|
|
1
|
+
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{MCP_SERVER_ENTRY as n,SERVER_NAME as r}from"../definitions/mcp.mjs";import{getAgentModelConfig as i}from"../definitions/models.mjs";import{PROTOCOLS as a}from"../definitions/protocols.mjs";import{buildCompactAgentTable as o,buildSkillsSection as s,lowerFirst as c}from"./_shared.mjs";function l(e,t){let n=t.args.map(e=>JSON.stringify(e)).join(`, `);return`[mcp_servers.${e}]\ncommand = ${JSON.stringify(t.command)}\nargs = [${n}]\n`}function u(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/[^a-zA-Z0-9]+/g,`-`).replace(/^-+|-+$/g,``).toLowerCase()}function d(e){return JSON.stringify(String(e))}function f(e){let t=String(e).replace(/\r\n/g,`
|
|
2
|
+
`).trim();return t?`"""\n${t}\n"""`:`""`}function p(e,n){let r=t[e];return typeof r==`function`?r(n):r||``}function m(e){let t=[];e.extraBody&&t.push(e.extraBody),e.sharedBase&&a[e.sharedBase]&&t.push(a[e.sharedBase]);for(let n of e.sharedProtocols||[])a[n]&&t.push(a[n]);return t}function h({name:e,description:t,identity:n,body:r,skills:i,additionalSections:a}){return[n?`You are the **${e}**${n}`:`You are the **${e}**, ${c(t)}.`,r,...a||[],s(i)].filter(Boolean).join(`
|
|
3
|
+
|
|
4
|
+
`).trim()}function g({name:e,description:t,developerInstructions:n,modelConfig:r}){let i=[`name = ${d(e)}`,`description = ${d(t)}`];return r?.primary&&i.push(`model = ${d(r.primary)}`),r?.reasoningEffort&&i.push(`model_reasoning_effort = ${d(r.reasoningEffort)}`),i.push(`developer_instructions = ${f(n)}`,``),i.join(`
|
|
5
|
+
`)}function _(){let t=[],n=o(e);for(let[r,a]of Object.entries(e)){let e=p(r,n),o=m(a);if(a.variants){for(let[n,s]of Object.entries(a.variants)){let c=`${r}-${n}`,l=u(c),d=s.description||a.description;t.push({path:`.codex/agents/${l}.toml`,content:g({name:l,description:d,modelConfig:i(`codex`,c),developerInstructions:h({name:c,description:d,identity:s.identity,body:e,skills:a.skills,additionalSections:[...o,s.bodyAddendum].filter(Boolean)})})})}continue}let s=u(r);t.push({path:`.codex/agents/${s}.toml`,content:g({name:s,description:a.description,modelConfig:i(`codex`,r),developerInstructions:h({name:r,description:a.description,identity:a.identity,body:e,skills:a.skills,additionalSections:o})})})}return t}function v(){return[{path:`.codex/config.toml`,content:l(r,n)},..._()]}export{v as generateCodex};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{
|
|
2
|
-
`),
|
|
3
|
-
`);function
|
|
4
|
-
`)}`}function
|
|
5
|
-
`)}`:``,
|
|
6
|
-
description: '${
|
|
7
|
-
${
|
|
1
|
+
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{VARIANT_GROUPS as n,getFallbackAgentModels as r,getPrimaryAgentModel as i}from"../definitions/models.mjs";import{PROMPTS as a}from"../definitions/prompts.mjs";import{AIKIT_INSTALL_HINT_SECTION as o,PLATFORM_OUTPUT_RULES_SECTION as s,PROTOCOLS as c,TEMPLATES as l}from"../definitions/protocols.mjs";import{IDE_CAPABILITIES as u}from"../definitions/tools.mjs";import{buildCompactAgentTable as d}from"./_shared.mjs";import{generateHooks as f,getHookScriptFiles as p}from"./hooks.mjs";const m={terminal:`execute/runInTerminal`,problems:`read/problems`,readFile:`read/readFile`,lastCommand:`read/terminalLastCommand`,subagent:`agent/runSubagent`,createFile:`edit/createFile`,editFiles:`edit/editFiles`,rename:`edit/rename`,createDirectory:`edit/createDirectory`,search:`search/changes, search/codebase, search/usages`,web:`web/fetch, web/githubRepo`,todo:`todo`,memory:`vscode/memory`,newWorkspace:`vscode/newWorkspace`,reviewPlan:`vscode/reviewPlan`,askQuestions:`vscode/askQuestions`,resolveMemoryFileUri:`vscode/resolveMemoryFileUri`,runCommand:`vscode/runCommand`,switchAgent:`vscode/switchAgent`,killTerminal:`execute/killTerminal`,createTask:`execute/createAndRunTask`,terminalSel:`read/terminalSelection`,fileSearch:`search/fileSearch`,listDir:`search/listDirectory`,textSearch:`search/textSearch`,searchSubagent:`search/searchSubagent`};function h(e){return`[${[...(u[e]||[]).map(e=>m[e]).filter(Boolean),`aikit/*`].join(`, `)}]`}function g(e){let t=r(`copilot`,e);return t.length===0?`Auto (copilot)`:t[0]||`Auto (copilot)`}const _=[`## Flows`,``,"This project uses aikit's pluggable flow system. Check flow status with the `flow` MCP tool.","If a flow is active, follow the current step's skill instructions. Advance with `flow({ action: 'step', advance: 'next' })`.","Use `flow({ action: 'list' })` to see available flows and `flow({ action: 'start', name, topic })` to begin one."].join(`
|
|
2
|
+
`),v=[`## Flows`,``,"This project uses aikit's pluggable flow system. Use `flow({ action: 'status' })` to check if a flow is active.",`If dispatched as part of a flow, your work contributes to the current step. Do NOT advance or manage the flow — the Orchestrator handles flow lifecycle.`].join(`
|
|
3
|
+
`);function y(){let t=[];for(let[r,a]of Object.entries(e))if(a.variants)for(let e of n[r]||[]){let n=`${r}-${e}`,o=i(`copilot`,n,`Unknown`),s=(a.variants[e]||{}).description||a.description;t.push(`| **${n}** | ${s} | ${o} | ${a.category} |`)}else{let e=i(`copilot`,r,`Unknown`);t.push(`| **${r}** | ${a.description} | ${e} | ${a.category} |`)}return`| Agent | Purpose | Model | Category |\n|-------|---------|-------|----------|\n${t.join(`
|
|
4
|
+
`)}`}function b(e,t,r){let i=`${e}-${t}`,a=r.variants[t]||{},o=g(i),s=a.description||r.description,l=a.identity||(t===n[e]?.[0]?`, the primary ${e} agent.`:`, a variant of ${e}. Same responsibilities, different model perspective.`),u=r.sharedBase&&c[r.sharedBase]?`\n\n${c[r.sharedBase]}`:``,d=r.extraBody?`\n\n${r.extraBody}`:``,f=a.bodyAddendum?`\n\n${a.bodyAddendum}`:``,p=(r.sharedProtocols||[]).map(e=>c[e]?`\n\n${c[e]}`:``).join(``),m=r.skills?.length?`\n\n## Skills (load on demand)\n\n| Skill | When to load |\n|-------|--------------|\n${r.skills.map(([e,t])=>`| ${e} | ${t} |`).join(`
|
|
5
|
+
`)}`:``,_=r.title||e;return`---
|
|
6
|
+
description: '${s}'
|
|
7
|
+
${r.argumentHint?`argument-hint: "${r.argumentHint}"\n`:``}tools: ${h(r.toolRole)}
|
|
8
8
|
model: ${o}
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# ${i} - ${
|
|
11
|
+
# ${i} - ${_}
|
|
12
12
|
|
|
13
13
|
You are **${i}**${l}${d}
|
|
14
|
-
${u}${p}${f}${
|
|
14
|
+
${u}${p}${f}${m}
|
|
15
15
|
|
|
16
|
-
${
|
|
17
|
-
`}function
|
|
16
|
+
${v}
|
|
17
|
+
`}function x(n,r){let i=g(n),a=typeof t[n]==`function`?t[n](d(e)):t[n]||``,o=r.sharedBase&&c[r.sharedBase]?`\n\n${c[r.sharedBase]}`:``,s=(r.sharedProtocols||[]).map(e=>c[e]?`\n\n${c[e]}`:``).join(``),l=r.title||n,u=r.skills?.length?`\n## Skills (load on demand)\n\n| Skill | When to load |\n|-------|--------------|\n${r.skills.map(([e,t])=>`| ${e} | ${t} |`).join(`
|
|
18
18
|
`)}\n`:``;return`---
|
|
19
19
|
description: '${r.description}'
|
|
20
|
-
${r.argumentHint?`argument-hint: "${r.argumentHint}"\n`:``}tools: ${
|
|
20
|
+
${r.argumentHint?`argument-hint: "${r.argumentHint}"\n`:``}tools: ${h(r.toolRole)}
|
|
21
21
|
model: ${i}
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -25,28 +25,28 @@ model: ${i}
|
|
|
25
25
|
|
|
26
26
|
You are the **${n}**, ${r.description.toLowerCase().replace(/^./,e=>e.toLowerCase())}
|
|
27
27
|
|
|
28
|
-
${a}${o}${
|
|
28
|
+
${a}${o}${s}${u}
|
|
29
29
|
|
|
30
|
-
${n===`Orchestrator`?
|
|
31
|
-
`}function
|
|
30
|
+
${n===`Orchestrator`?_:v}
|
|
31
|
+
`}function S(e,t){return`---
|
|
32
32
|
description: "${t.description}"
|
|
33
33
|
agent: "${t.agent}"
|
|
34
34
|
---
|
|
35
35
|
|
|
36
36
|
${t.content}
|
|
37
|
-
`}function
|
|
37
|
+
`}function C(){return`# Agents
|
|
38
38
|
|
|
39
39
|
This directory contains AI agent definitions generated by \`@vpxa/aikit init\`.
|
|
40
40
|
|
|
41
41
|
## Agent Roster
|
|
42
42
|
|
|
43
|
-
${
|
|
43
|
+
${y()}
|
|
44
44
|
|
|
45
45
|
## Multi-Model Pattern
|
|
46
46
|
|
|
47
47
|
Variant agents (Researcher-Alpha/Beta/Gamma/Delta, Code-Reviewer-Alpha/Beta, Architect-Reviewer-Alpha/Beta) share the same methodology via files in \`_shared/\`. They differ only in which LLM model backs them — enabling multi-model decision analysis and dual-review workflows.
|
|
48
48
|
|
|
49
|
-
**Agent names are model-agnostic.** The model
|
|
49
|
+
**Agent names are model-agnostic.** The backing model can vary by platform in \`scaffold/definitions/models.mjs\` without renaming any agent files.
|
|
50
50
|
|
|
51
51
|
## Structure
|
|
52
52
|
|
|
@@ -73,5 +73,5 @@ To regenerate after changing models or agent definitions:
|
|
|
73
73
|
cd knowledge-base
|
|
74
74
|
node scaffold/generate.mjs
|
|
75
75
|
\`\`\`
|
|
76
|
-
`}function
|
|
77
|
-
`)}function
|
|
76
|
+
`}function w(){return[`# aikit — Copilot Instructions`,``,s,``,o,``].join(`
|
|
77
|
+
`)}function T(){let t=[];if(p().length===0)throw Error(`Executable hooks are not configured.`);t.push({path:`copilot-instructions.md`,content:w()});for(let[r,i]of Object.entries(e))if(i.variants)for(let e of n[r]||[])t.push({path:`agents/${r}-${e}.agent.md`,content:b(r,e,i)});else t.push({path:`agents/${r}.agent.md`,content:x(r,i)});for(let[e,n]of Object.entries(c))t.push({path:`agents/_shared/${e}.md`,content:`${n}\n`});for(let[e,n]of Object.entries(l))t.push({path:`agents/templates/${e}.md`,content:`${n}\n`});t.push({path:`agents/README.md`,content:C()});for(let[e,n]of Object.entries(a))t.push({path:`prompts/aikit-${e}.prompt.md`,content:S(e,n)});let r=f(`copilot`,`~/.copilot/hooks/scripts`);return t.push(...r.map(e=>({path:`hooks/${e.path}`,content:e.content}))),t}export{T as generateCopilot};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={Orchestrator:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Planner:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`Claude Opus 4.6 (copilot)`,`Auto (copilot)`],Implementer:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Frontend:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Debugger:[`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Claude Opus 4.6 (copilot)`,`Auto (copilot)`],Refactor:[`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Security:[`GPT-5.4 (copilot)`,`Claude Opus 4.6 (copilot)`,`Auto (copilot)`],Documenter:[`GPT-5.4 mini (copilot)`,`GPT-5 mini (copilot)`,`Auto (copilot)`],Explorer:[`GPT-5 mini (copilot)`,`Gemini 3 Flash (Preview) (copilot)`,`Auto (copilot)`],"Researcher-Alpha":[`Claude Opus 4.6 (copilot)`,`Auto (copilot)`],"Researcher-Beta":[`Claude Sonnet 4.6 (copilot)`,`Auto (copilot)`],"Researcher-Gamma":[`GPT-5.4 (copilot)`,`Auto (copilot)`],"Researcher-Delta":[`Gemini 3.5 Flash (copilot)`,`Auto (copilot)`],"Code-Reviewer-Alpha":[`GPT-5.4 (copilot)`,`Auto (copilot)`],"Code-Reviewer-Beta":[`Claude Opus 4.6 (copilot)`,`Auto (copilot)`],"Architect-Reviewer-Alpha":[`GPT-5.4 (copilot)`,`Auto (copilot)`],"Architect-Reviewer-Beta":[`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]},t=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,
|
|
1
|
+
const e={copilot:{Orchestrator:{primary:`GPT-5.4 mini (copilot)`,fallbacks:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`]},Planner:{primary:`GPT-5.4 mini (copilot)`,fallbacks:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]},Implementer:{primary:`GPT-5.4 mini (copilot)`,fallbacks:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`]},Frontend:{primary:`GPT-5.4 mini (copilot)`,fallbacks:[`GPT-5.4 mini (copilot)`,`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`]},Debugger:{primary:`GPT-5.4 (copilot)`,fallbacks:[`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]},Refactor:{primary:`GPT-5.4 (copilot)`,fallbacks:[`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`]},Security:{primary:`GPT-5.4 (copilot)`,fallbacks:[`GPT-5.4 (copilot)`,`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]},Documenter:{primary:`GPT-5.4 mini (copilot)`,fallbacks:[`GPT-5.4 mini (copilot)`,`GPT-5 mini (copilot)`,`Auto (copilot)`]},Explorer:{primary:`GPT-5 mini (copilot)`,fallbacks:[`GPT-5 mini (copilot)`,`Gemini 3 Flash (Preview) (copilot)`,`Auto (copilot)`]},"Researcher-Alpha":{primary:`Claude Opus 4.6 (copilot)`,fallbacks:[`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]},"Researcher-Beta":{primary:`Claude Sonnet 4.6 (copilot)`,fallbacks:[`Claude Sonnet 4.6 (copilot)`,`Auto (copilot)`]},"Researcher-Gamma":{primary:`GPT-5.4 (copilot)`,fallbacks:[`GPT-5.4 (copilot)`,`Auto (copilot)`]},"Researcher-Delta":{primary:`Gemini 3.5 Flash (copilot)`,fallbacks:[`Gemini 3.5 Flash (copilot)`,`Auto (copilot)`]},"Code-Reviewer-Alpha":{primary:`GPT-5.4 (copilot)`,fallbacks:[`GPT-5.4 (copilot)`,`Auto (copilot)`]},"Code-Reviewer-Beta":{primary:`Claude Opus 4.6 (copilot)`,fallbacks:[`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]},"Architect-Reviewer-Alpha":{primary:`GPT-5.4 (copilot)`,fallbacks:[`GPT-5.4 (copilot)`,`Auto (copilot)`]},"Architect-Reviewer-Beta":{primary:`Claude Opus 4.6 (copilot)`,fallbacks:[`Claude Opus 4.6 (copilot)`,`Auto (copilot)`]}},"claude-code":{Orchestrator:{primary:`Claude Sonnet 4.6`},Planner:{primary:`Claude Opus 4.6`},Implementer:{primary:`Claude Sonnet 4.6`},Frontend:{primary:`Claude Sonnet 4.6`},Debugger:{primary:`Claude Opus 4.6`},Refactor:{primary:`Claude Sonnet 4.6`},Security:{primary:`Claude Opus 4.6`},Documenter:{primary:`Claude Sonnet 4.6`},Explorer:{primary:`Claude Sonnet 4.6`},"Researcher-Alpha":{primary:`Claude Opus 4.6`},"Researcher-Beta":{primary:`Claude Sonnet 4.6`},"Researcher-Gamma":{primary:`Claude Opus 4.6`},"Researcher-Delta":{primary:`Claude Sonnet 4.6`},"Code-Reviewer-Alpha":{primary:`Claude Opus 4.6`},"Code-Reviewer-Beta":{primary:`Claude Sonnet 4.6`},"Architect-Reviewer-Alpha":{primary:`Claude Opus 4.6`},"Architect-Reviewer-Beta":{primary:`Claude Sonnet 4.6`}},codex:{Orchestrator:{primary:`gpt-5.4-mini`,reasoningEffort:`high`},Planner:{primary:`gpt-5.4`,reasoningEffort:`high`},Implementer:{primary:`gpt-5.3-codex`,reasoningEffort:`high`},Frontend:{primary:`gpt-5.4`,reasoningEffort:`high`},Debugger:{primary:`gpt-5.3-codex`,reasoningEffort:`high`},Refactor:{primary:`gpt-5.3-codex`,reasoningEffort:`high`},Security:{primary:`gpt-5.4`,reasoningEffort:`high`},Documenter:{primary:`gpt-5.4-mini`,reasoningEffort:`high`},Explorer:{primary:`gpt-5.4-mini`,reasoningEffort:`high`},"Researcher-Alpha":{primary:`gpt-5.4`,reasoningEffort:`high`},"Researcher-Beta":{primary:`gpt-5.3-codex`,reasoningEffort:`high`},"Researcher-Gamma":{primary:`gpt-5.4-mini`,reasoningEffort:`high`},"Researcher-Delta":{primary:`gpt-5.4`,reasoningEffort:`high`},"Code-Reviewer-Alpha":{primary:`gpt-5.4`,reasoningEffort:`high`},"Code-Reviewer-Beta":{primary:`gpt-5.3-codex`,reasoningEffort:`high`},"Architect-Reviewer-Alpha":{primary:`gpt-5.4`,reasoningEffort:`high`},"Architect-Reviewer-Beta":{primary:`gpt-5.3-codex`,reasoningEffort:`high`}}};function t(t,n){return e[t]?.[n]||null}function n(e,n,r=null){return t(e,n)?.primary||r}function r(e,n){return t(e,n)?.fallbacks||[]}function i(t){return Object.fromEntries(Object.entries(e[t]||{}).map(([e,t])=>[e,t.primary]))}const a={Researcher:[`Alpha`,`Beta`,`Gamma`,`Delta`],"Code-Reviewer":[`Alpha`,`Beta`],"Architect-Reviewer":[`Alpha`,`Beta`]},o={Researcher:`Alpha`,"Code-Reviewer":`Alpha`,"Architect-Reviewer":`Alpha`};export{e as PLATFORM_AGENT_MODELS,o as PRIMARY_VARIANT,a as VARIANT_GROUPS,t as getAgentModelConfig,r as getFallbackAgentModels,i as getPlatformPrimaryModelMap,n as getPrimaryAgentModel};
|