@vpxa/aikit 0.1.215 → 0.1.216

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vpxa/aikit",
3
- "version": "0.1.215",
3
+ "version": "0.1.216",
4
4
  "type": "module",
5
5
  "description": "Local-first AI developer toolkit — knowledge base, code analysis, context management, and developer tools for LLM agents",
6
6
  "license": "MIT",
@@ -11,6 +11,16 @@ import{postTaskLesson as e,preTaskKnowledgeRecall as t}from"./protocols.mjs";con
11
11
 
12
12
  > **HARD RULE (Orchestrator):** When gathering context yourself, use \`search\`/\`file_summary\`/\`compact\`/\`digest\`, NOT \`read_file\`/\`grep_search\`. Use \`check({})\`/\`test_run({})\`, NOT \`run_in_terminal\` for tsc/lint/test.
13
13
 
14
+ ## Output Rules (HARD RULE)
15
+
16
+ Follow the **Presentation Priority** (1st Interactive → 2nd Inline Visual → 3rd Plain Text). Orchestrator-specific:
17
+ - 1-3 sentence status updates between batches → plain text (Priority 3)
18
+ - Task plans, batch results, verdicts, progress → ALWAYS \`present\` with template (Priority 1)
19
+ - Summaries, reports, evidence maps → \`present\` inline visual (Priority 2)
20
+ - NEVER output a markdown table — \`present\` can always render it better
21
+ - Add \`actions\` for 🛑 MANDATORY STOP gates (triggers browser transport)
22
+ - CLI mode: same \`present\` surface
23
+
14
24
  ## Agent Arsenal
15
25
 
16
26
  ${e}
@@ -112,11 +122,11 @@ import{postTaskLesson as e,preTaskKnowledgeRecall as t}from"./protocols.mjs";con
112
122
 
113
123
  **Decomposition output format:** Batch N (parallel): Task: [agent] → [files] — [goal]
114
124
 
115
- **Task Plan Visualization:** After decomposition, present with \`task-plan@1\`:
125
+ **Task Plan Visualization (HARD RULE):** ALWAYS use \`present\` with \`task-plan@1\` template after decomposition. NEVER render task plans as markdown tables — they lose interactivity and status tracking.
116
126
  \`\`\`
117
127
  present({ schemaVersion: 1, title: "Task Plan: <feature>", template: "task-plan@1", data: { title: "<feature>", phases: [{ id: "phase-1", label: "Phase 1: <name>", batches: [{ id: "batch-1", order: 1, parallel: true, tasks: [{ id: "t1", title: "<task>", agent: "<Agent>", files: ["<path>"], status: "pending" }] }] }] } })
118
128
  \`\`\`
119
- Use \`task-plan-static@1\` for inline rendering without browser.
129
+ Fallback: \`task-plan-static@1\` ONLY if \`present\` tool call fails.
120
130
 
121
131
  **Subagent prompt template:**
122
132
  1. **Scope** — exact files + boundary
@@ -184,14 +194,6 @@ import{postTaskLesson as e,preTaskKnowledgeRecall as t}from"./protocols.mjs";con
184
194
  - \`check({})\` + \`test_run({})\` ONCE after all batches — never per-batch, never via terminal
185
195
  - **Receipt consumption:** After \`evidence_map({ action: "gate" })\`, check all receipts have tool-verified evidence.
186
196
 
187
- ## Output Rules
188
-
189
- - Terse: 1-3 sentence updates
190
- - Batch summary = bullets for status + files + decisions
191
- - Structured data >3 rows, plans, charts, tables, graphs → \`present\`
192
- - Short confirmations/questions → normal chat
193
- - CLI mode: same \`present\` surface; add \`actions\` only when needed
194
-
195
197
  ## Subagent Output Relay
196
198
 
197
199
  Subagent \`present\` calls are invisible. Always tell subagents: no \`present\`.
@@ -1 +1 @@
1
- const e={Orchestrator:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Planner:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Implementer:[`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Frontend:[`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Debugger:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Refactor:[`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Security:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Documenter:[`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`Auto (copilot)`],Explorer:[`Gemini 3 Flash (Preview) (copilot)`,`Claude Haiku 4.5 (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.1 Pro (Preview) (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,(Array.isArray(t)?t[0]:t)?.replace(/ \(copilot\)$/,``)||`Auto`])),n={Researcher:[`Alpha`,`Beta`,`Gamma`,`Delta`],"Code-Reviewer":[`Alpha`,`Beta`],"Architect-Reviewer":[`Alpha`,`Beta`]},r={Researcher:`Alpha`,"Code-Reviewer":`Alpha`,"Architect-Reviewer":`Alpha`};export{t as CLAUDE_MODELS,e as COPILOT_MODELS,r as PRIMARY_VARIANT,n as VARIANT_GROUPS};
1
+ const e={Orchestrator:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Planner:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Implementer:[`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Frontend:[`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Debugger:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Refactor:[`GPT-5.4 (copilot)`,`GPT-5.3-Codex (copilot)`,`Auto (copilot)`],Security:[`Claude Opus 4.6 (copilot)`,`GPT-5.4 (copilot)`,`Auto (copilot)`],Documenter:[`GPT-5.4 (copilot)`,`Gemini 3.1 Pro (Preview) (copilot)`,`Auto (copilot)`],Explorer:[`Claude Haiku 4.5 (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.1 Pro (Preview) (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,(Array.isArray(t)?t[0]:t)?.replace(/ \(copilot\)$/,``)||`Auto`])),n={Researcher:[`Alpha`,`Beta`,`Gamma`,`Delta`],"Code-Reviewer":[`Alpha`,`Beta`],"Architect-Reviewer":[`Alpha`,`Beta`]},r={Researcher:`Alpha`,"Code-Reviewer":`Alpha`,"Architect-Reviewer":`Alpha`};export{t as CLAUDE_MODELS,e as COPILOT_MODELS,r as PRIMARY_VARIANT,n as VARIANT_GROUPS};
@@ -354,16 +354,21 @@ Verify each before returning handoff:
354
354
 
355
355
  ## User Interaction Rules
356
356
 
357
- When you need user input or explanation:
357
+ **Presentation Priority (HARD RULE applies to ALL output):**
358
358
 
359
- | Situation | Method | Details |
360
- |-----------|--------|---------|
361
- | Simple explanation + question | **Elicitation** | Text-only explanation, then ask via elicitation fields |
362
- | Rich content explanation + question | **Structured text + Elicitation** | Explain with concise markdown/plain text, then ask via elicitation fields |
363
- | Complex visual explanation | **Structured text + Elicitation** | Summarize key comparisons/findings in text for later Orchestrator render |
364
- | **CLI mode** (any rich content) | **Structured text + Elicitation** | Keep output text-only; user-facing render belongs to Orchestrator or another non-code agent |
359
+ | Priority | Transport | When to use | Example |
360
+ |----------|-----------|-------------|---------|
361
+ | **1st Interactive** | Browser (\`present\` with \`actions[]\` or template) | Plans, decisions needing approval, comparisons, status boards, any data >3 rows | \`present({ ..., template: "task-plan@1", actions: [...] })\` |
362
+ | **2nd Inline Visual** | MCP App (\`present\` without actions) | Reports, summaries, diagrams, progress updates, any structured content | \`present({ ..., blocks: [...] })\` |
363
+ | **3rd Plain Text** | Markdown in chat | Short confirmations (≤3 sentences), simple questions, status one-liners | "Done. 3 files updated." |
365
364
 
366
- Use concise structured text. Prefer simplest method. Keep code-agent output text-only.
365
+ **Rules:**
366
+ - NEVER use plain text when data fits a \`present\` template or has >3 structured items
367
+ - NEVER render tables as markdown when \`present\` can show them interactively
368
+ - Use registered templates when data matches: \`task-plan@1\`, \`report@1\`, \`status-board@1\`, \`timeline@1\`, \`kanban@1\`, \`data-table@1\`, \`checklist@1\`
369
+ - Add \`actions[]\` when user input/approval is needed (triggers browser transport automatically)
370
+ - Elicitation fields for free-form text input alongside any \`present\` call
371
+ - Code-agent subagents: text-only output (Orchestrator renders visually on their behalf)
367
372
 
368
373
  ${e(`<PROFILE>`)}
369
374