@vpxa/aikit 0.1.281 → 0.1.282
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 +1 -1
- package/scaffold/dist/adapters/claude-code.mjs +1 -1
- package/scaffold/dist/adapters/codex.mjs +1 -1
- package/scaffold/dist/adapters/copilot.mjs +1 -1
- package/scaffold/dist/adapters/flows.mjs +1 -1
- package/scaffold/dist/adapters/gemini.mjs +1 -1
- package/scaffold/dist/adapters/hooks.mjs +1 -1
- package/scaffold/dist/adapters/intellij.mjs +1 -1
- package/scaffold/dist/adapters/opencode.mjs +1 -1
- package/scaffold/dist/adapters/skills.mjs +1 -1
- package/scaffold/dist/adapters/zed.mjs +1 -1
- package/scaffold/dist/definitions/bodies.mjs +1 -1
- package/scaffold/dist/definitions/protocols.mjs +1 -1
- package/scaffold/dist/definitions/skills/c4-architecture.mjs +1 -1
- package/scaffold/dist/definitions/skills/index.mjs +1 -1
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
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(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
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
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
3
|
|
|
4
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(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
1
|
+
import{AGENTS as e}from"../definitions/agents.mjs";import{AGENT_BODIES as t}from"../definitions/bodies.mjs";import{VARIANT_GROUPS as n,getPrimaryAgentModel as r}from"../definitions/models.mjs";import{PROMPTS as i}from"../definitions/prompts.mjs";import{AIKIT_INSTALL_HINT_SECTION as a,PLATFORM_OUTPUT_RULES_SECTION as o,PROTOCOLS as s,TEMPLATES as c}from"../definitions/protocols.mjs";import{IDE_CAPABILITIES as l}from"../definitions/tools.mjs";import{buildCompactAgentTable as u}from"./_shared.mjs";import{generateHooks as d,getHookScriptFiles as f}from"./hooks.mjs";import{generateForbiddenTable as p}from"../definitions/policies.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`[${[...(l[e]||[]).map(e=>m[e]).filter(Boolean),`aikit/*`].join(`, `)}]`}function g(e){return r(`copilot`,e,`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
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
3
|
`);function y(){let t=[];for(let[i,a]of Object.entries(e))if(a.variants)for(let e of n[i]||[]){let n=`${i}-${e}`,o=r(`copilot`,n,`Unknown`),s=(a.variants[e]||{}).description||a.description;t.push(`| **${n}** | ${s} | ${o} | ${a.category} |`)}else{let e=r(`copilot`,i,`Unknown`);t.push(`| **${i}** | ${a.description} | ${e} | ${a.category} |`)}return`| Agent | Purpose | Model | Category |\n|-------|---------|-------|----------|\n${t.join(`
|
|
4
4
|
`)}`}function b(e,t,r){let i=`${e}-${t}`,a=r.variants[t]||{},o=g(i),c=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&&s[r.sharedBase]?`\n\n${s[r.sharedBase]}`:``,d=r.extraBody?`\n\n${r.extraBody}`:``,f=a.bodyAddendum?`\n\n${a.bodyAddendum}`:``,p=(r.sharedProtocols||[]).map(e=>s[e]?`\n\n${s[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(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{FLOWS as e}from"
|
|
1
|
+
import{FLOWS as e}from"../definitions/flows.mjs";function t(){let t=[];for(let[n,r]of Object.entries(e))for(let{file:e,content:i}of r)t.push({path:`${n}/${e}`,content:i});return t}export{t as generateFlows};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
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{PROMPTS as a}from"../definitions/prompts.mjs";import{PROTOCOLS as o}from"../definitions/protocols.mjs";import{buildAgentTable as s,buildCompactAgentTable as c,buildHooksSection as l,buildMcpConfigJson as u,buildPromptSections as d,buildSkillsSection as f,lowerFirst as p}from"./_shared.mjs";const m=[`## 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
|
`),h=[`## 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
3
|
`);function g(e,n){let r=t[e];return typeof r==`function`?r(n):r||``}function _(e){let t=[];e.extraBody&&t.push(e.extraBody),e.sharedBase&&o[e.sharedBase]&&t.push(o[e.sharedBase]);for(let n of e.sharedProtocols||[])o[n]&&t.push(o[n]);return t}function v(){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 y(e){return v().map(({name:t,description:n})=>`- \`${e}/${t}.md\` — ${n}`).join(`
|
|
4
4
|
`)}function b(e,t,n){let r=_(t),i=f(t.skills),a=e===`Orchestrator`?m:h,o=[n,...r,t.bodyAddendum,i,a].filter(Boolean).join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EXEC_HOOKS as e,HOOK_EVENTS as t,HOOK_TOOL_MATCHERS as n}from"
|
|
1
|
+
import{EXEC_HOOKS as e,HOOK_EVENTS as t,HOOK_TOOL_MATCHERS as n}from"../definitions/exec-hooks.mjs";const r={PreCompact:3e3,PostToolUse:3e3},i={copilot:`hooks.json`,claude:`hooks-settings.json`,copilotCli:`hooks.json`};function a(e,t){return(e.matcher||[]).flatMap(e=>{let r=n[e];if(!r)throw Error(`Unknown hook matcher: ${e}`);return r[t]||[]})}function o(e,t,n,i){let o=`${n}/${e.script}`;return a(e,i),i===`copilot`?{event:t,steps:[{type:`command`,command:`node`,args:[o],timeout:r[e.event]||5e3}]}:i===`claude`?{type:`command`,command:`node ${o}`}:{command:`node`,args:[o]}}function s(n,r){if(n===`copilot`){let a=Object.values(e).map(e=>{let i=t[e.event]?.[n];if(!i)throw Error(`Unsupported hook event ${e.event} for ${n}`);return o(e,i,r,n)});return[{path:i[n],content:JSON.stringify({hooks:a},null,2)}]}let a={};for(let i of Object.values(e)){let e=t[i.event]?.[n];if(!e)throw Error(`Unsupported hook event ${i.event} for ${n}`);a[e]||=[],a[e].push(o(i,e,r,n))}return[{path:i[n],content:JSON.stringify({hooks:a},null,2)}]}function c(){return[`_runtime.mjs`,...Object.values(e).map(e=>e.script)]}export{s as generateHooks,c as getHookScriptFiles};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
1
|
+
import{AGENTS as e}from"../definitions/agents.mjs";import{MCP_SERVER_ENTRY as t,SERVER_NAME as n}from"../definitions/mcp.mjs";import{PROMPTS as r}from"../definitions/prompts.mjs";import{buildMcpConfigJson as i,buildPromptFile as a,lowerFirst as o}from"./_shared.mjs";function s(e){return e?.length?[`## Skills`,``,`| Skill | When to load |`,`|-------|--------------|`,...e.map(([e,t])=>`| ${e} | ${t} |`),``]:[]}function c(e,t,n,r,i){let a=[`# ${e} - ${t||e}`,``,`> ${n}`,``,`You are the **${e}**, ${o(n)}.`,``];return i&&a.push(i.trim(),``),a.push(...s(r)),a.join(`
|
|
2
2
|
`)}function l(){let o=[];o.push({path:`mcp.json`,content:`${i({serverName:n,mcpEntry:t,configKey:`mcpServers`})}\n`});for(let[e,t]of Object.entries(r))o.push({path:`.aiassistant/prompts/aikit-${e}.md`,content:a({title:`aikit ${e}`,content:[`> ${t.description}`,``,t.content.trim(),``].join(`
|
|
3
3
|
`)})});for(let[t,n]of Object.entries(e)){if(n.variants){for(let[e,r]of Object.entries(n.variants)){let i=`${t}-${e}`,a=r.description||n.description;o.push({path:`.aiassistant/prompts/agent-${i}.md`,content:c(i,n.title,a,n.skills,r.bodyAddendum)})}continue}o.push({path:`.aiassistant/prompts/agent-${t}.md`,content:c(t,n.title,n.description,n.skills)})}return o}export{l as generateIntelliJ};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
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{PROMPTS as a}from"../definitions/prompts.mjs";import{PROTOCOLS as o}from"../definitions/protocols.mjs";import{buildAgentTable as s,buildCompactAgentTable as c,buildHooksSection as l,buildPromptSections as u,buildSkillsSection as d,lowerFirst as f}from"./_shared.mjs";const p=[`## 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
|
`),m=[`## 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
3
|
`);function h(e,n){let r=t[e];return typeof r==`function`?r(n):r||``}function g(e){let t=[];e.extraBody&&t.push(e.extraBody),e.sharedBase&&o[e.sharedBase]&&t.push(o[e.sharedBase]);for(let n of e.sharedProtocols||[])o[n]&&t.push(o[n]);return t}function _(){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 v(e){return _().map(({name:t,description:n})=>`- \`${e}/${t}.md\` — ${n}`).join(`
|
|
4
4
|
`)}const y={orchestrator:{edit:`allow`,bash:`allow`},planner:{edit:`allow`,bash:`allow`},codeAgent:{edit:`allow`,bash:`allow`},refactor:{edit:`allow`,bash:`allow`},debugger:{edit:`allow`,bash:`allow`},security:{edit:`allow`,bash:`allow`},documenter:{edit:`allow`,bash:`deny`},explorer:{edit:`deny`,bash:`deny`},researcher:{edit:`deny`,bash:`deny`},reviewer:{edit:`deny`,bash:`deny`}};function b(e){let t=e.category===`orchestration`&&e.title===`The Master Conductor`?`primary`:`subagent`,n=y[e.toolRole]||{edit:`deny`,bash:`deny`},r=[`---`,`description: ${e.description}`,`mode: ${t}`,`permission:`];for(let[e,t]of Object.entries(n))r.push(` ${e}: ${t}`);return r.push(`---`),r.join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SKILLS as e}from"
|
|
1
|
+
import{SKILLS as e}from"../definitions/skills/index.mjs";import{ALL_BLOCK_DOCS as t,BLOCK_DOCS_BY_SKILL as n,BLOCK_TYPE_LIST as r}from"../generated/block-docs.mjs";const i={bySkill:n,all:t,typeList:r};function a(){let t=[];for(let[n,r]of Object.entries(e)){let e=typeof r==`function`?r({blockDocs:i}):r;for(let{file:r,content:i}of e)t.push({path:`${n}/${r}`,content:i})}return t}export{a as generateSkills};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AGENTS as e}from"
|
|
1
|
+
import{AGENTS as e}from"../definitions/agents.mjs";import{MCP_SERVER_ENTRY as t,SERVER_NAME as n}from"../definitions/mcp.mjs";import{PROMPTS as r}from"../definitions/prompts.mjs";import{buildAgentPrompt as i,buildMcpConfigJson as a,buildPromptFile as o}from"./_shared.mjs";function s(){let s=[];s.push({path:`.zed/settings.json`,content:`${a({serverName:n,mcpEntry:t,configKey:`context_servers`})}\n`});for(let[e,t]of Object.entries(r))s.push({path:`.zed/prompts/aikit-${e}.md`,content:o({title:`aikit ${e}`,content:[`> ${t.description}`,``,t.content.trim(),``].join(`
|
|
2
2
|
`)})});for(let[t,n]of Object.entries(e)){let e=n.title||t;if(n.variants){for(let[r,a]of Object.entries(n.variants)){let o=`${t}-${r}`,c=a.description||n.description;s.push({path:`.zed/prompts/agent-${o}.md`,content:i({name:o,title:e,description:c,skills:n.skills,bodyAddendum:a.bodyAddendum})})}continue}s.push({path:`.zed/prompts/agent-${t}.md`,content:i({name:t,title:e,description:n.description,skills:n.skills})})}return s}export{s as generateZed};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{postTaskLesson as e,preTaskKnowledgeRecall as t}from"
|
|
1
|
+
import{postTaskLesson as e,preTaskKnowledgeRecall as t}from"./protocols.mjs";const n=()=>``,r={Orchestrator:e=>`You orchestrate full lifecycle: **planning → implementation → review → recovery → commit**. You own contract: what, order, owner. \`multi-agents-development\` owns decomposition, dispatch, review craft. **Load that skill before delegation.**
|
|
2
2
|
|
|
3
3
|
## Critical Rules
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{INJECT_VIEWER_SCRIPT as e}from"
|
|
1
|
+
import{INJECT_VIEWER_SCRIPT as e}from"./_shared-viewer-inject.mjs";function t(){return[{file:`references/c4-syntax.md`,content:`# C4 Mermaid Quick Reference
|
|
2
2
|
|
|
3
3
|
Use this as a syntax reminder, not a full encyclopedia.
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"
|
|
1
|
+
import e from"./adr-skill.mjs";import t from"./aikit.mjs";import n from"./brainstorming.mjs";import r from"./browser-use.mjs";import i from"./c4-architecture.mjs";import a from"./docs.mjs";import o from"./frontend-design.mjs";import s from"./lesson-learned.mjs";import c from"./multi-agents-development.mjs";import l from"./present.mjs";import u from"./react.mjs";import d from"./repo-access.mjs";import f from"./requirements-clarity.mjs";import p from"./session-handoff.mjs";import m from"./typescript.mjs";const h={"adr-skill":e,aikit:t,brainstorming:n,"c4-architecture":i,docs:a,"frontend-design":o,"lesson-learned":s,"multi-agents-development":c,present:l,react:u,"repo-access":d,"requirements-clarity":f,"session-handoff":p,typescript:m,"browser-use":r};export{h as SKILLS};
|