winter-super-cli 2026.6.6 → 2026.6.7

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.
@@ -1,4 +1,5 @@
1
1
  import { formatRuntimeEnvironmentSummary, getRuntimeEnvironment } from './runtime-env.js';
2
+ import { getModelBudgetMultiplier } from '../ai/model-capabilities.js';
2
3
 
3
4
  /**
4
5
  * PromptBuilder — Builds system prompts for Winter CLI agents.
@@ -49,26 +50,32 @@ export class PromptBuilder {
49
50
  const sessionContext = this.session?.getContext?.() || {};
50
51
  const environmentSummary = this.tools?.getRuntimeEnvironmentSummary?.() || this._defaultEnvironmentSummary();
51
52
  const requiredLocalResources = this.getRequiredLocalResources();
52
- const projectContextBudget = options.projectContextBudget || 3200;
53
- const compactSystemPrompt = options.compactSystemPrompt || projectContextBudget <= 1600;
53
+ const scale = getModelBudgetMultiplier(options.modelTier);
54
+ const projectContextBudget = options.projectContextBudget || Math.round(3200 * scale);
55
+ const compactSystemPrompt = options.compactSystemPrompt ?? (scale <= 0.75);
56
+ const memoryBudget = Math.round(1200 * scale);
57
+ const planBudget = Math.round(1200 * scale);
58
+ const requiredResourcesBudget = Math.round((compactSystemPrompt ? 1200 : 1600) * scale);
59
+ const workflowBudget = Math.round(900 * scale);
60
+ const blueprintBudget = Math.round(700 * scale);
54
61
 
55
62
  const memoryStr = memories.length > 0
56
- ? this._formatMemories(memories)
63
+ ? this._formatMemories(memories, { maxTotalChars: memoryBudget })
57
64
  : '';
58
65
  const requiredResourcesStr = requiredLocalResources
59
- ? `\n## Required Local Resource Rules\n${this._compactText(requiredLocalResources, 1800, 'required local resources')}`
66
+ ? `\n## Required Local Resource Rules\n${this._compactText(requiredLocalResources, requiredResourcesBudget, 'required local resources')}`
60
67
  : '';
61
68
  const plansStr = plans.length > 0
62
- ? this._formatPlans(plans)
69
+ ? this._formatPlans(plans, { maxTotalChars: planBudget })
63
70
  : '';
64
71
  const skillsStr = Array.isArray(sessionContext.activeSkills) && sessionContext.activeSkills.length > 0
65
72
  ? `\n## Auto-applied Skills\n${sessionContext.activeSkills.slice(0, 12).map(skill => `- ${skill}`).join('\n')}${sessionContext.activeSkills.length > 12 ? '\n- ...' : ''}`
66
73
  : '';
67
74
  const workflowStr = sessionContext.workflowHints
68
- ? `\n## Workflow Auto-Selection\n${this._compactText(sessionContext.workflowHints, 900, 'workflow hints')}`
75
+ ? `\n## Workflow Auto-Selection\n${this._compactText(sessionContext.workflowHints, workflowBudget, 'workflow hints')}`
69
76
  : '';
70
77
  const blueprintStr = sessionContext.workflowBlueprint
71
- ? `\n## Profile Blueprint\n${this._compactText(sessionContext.workflowBlueprint, 700, 'workflow blueprint')}`
78
+ ? `\n## Profile Blueprint\n${this._compactText(sessionContext.workflowBlueprint, blueprintBudget, 'workflow blueprint')}`
72
79
  : '';
73
80
  const startupPlanStr = sessionContext.bootstrapPlan?.title
74
81
  ? `\n## Startup Plan\n- ${sessionContext.bootstrapPlan.title}: ${sessionContext.bootstrapPlan.description}`
@@ -164,12 +171,14 @@ export class PromptBuilder {
164
171
  const plans = this.session?.getPlans?.() || [];
165
172
  const sessionContext = this.session?.getContext?.() || {};
166
173
  const requiredLocalResources = this.getRequiredLocalResources();
174
+ const scale = getModelBudgetMultiplier(this.ai?._modelTier || '');
175
+ const projectContextBudget = Math.round(3200 * (scale || 1));
167
176
 
168
- const memoryStr = memories.length > 0 ? this._formatMemories(memories, { maxTotalChars: 900 }) : '';
177
+ const memoryStr = memories.length > 0 ? this._formatMemories(memories, { maxTotalChars: Math.round(900 * (scale || 1)) }) : '';
169
178
  const requiredResourcesStr = requiredLocalResources
170
- ? `\n## Required Local Resource Rules\n${this._compactText(requiredLocalResources, 1600, 'required local resources')}`
179
+ ? `\n## Required Local Resource Rules\n${this._compactText(requiredLocalResources, Math.round(1600 * (scale || 1)), 'required local resources')}`
171
180
  : '';
172
- const plansStr = plans.length > 0 ? this._formatPlans(plans, { maxTotalChars: 900 }) : '';
181
+ const plansStr = plans.length > 0 ? this._formatPlans(plans, { maxTotalChars: Math.round(900 * (scale || 1)) }) : '';
173
182
  const skillsStr = Array.isArray(sessionContext.activeSkills) && sessionContext.activeSkills.length > 0
174
183
  ? `\n## Auto-applied Skills\n${sessionContext.activeSkills.slice(0, 12).map(skill => `- ${skill}`).join('\n')}${sessionContext.activeSkills.length > 12 ? '\n- ...' : ''}`
175
184
  : '';
@@ -217,7 +226,7 @@ export class PromptBuilder {
217
226
  `Working directory: ${this.projectPath}`,
218
227
  `Current session: ${this.session?.getSessionId?.()?.substring(0, 8) || 'unknown'}`,
219
228
  `${requiredResourcesStr}${memoryStr}${plansStr}${skillsStr}${startupPlanStr}`,
220
- context ? `\n## Project Context\n${this._compactText(context, 3200, 'project context')}` : '',
229
+ context ? `\n## Project Context\n${this._compactText(context, projectContextBudget, 'project context')}` : '',
221
230
  ].join('\n');
222
231
  }
223
232
 
@@ -354,6 +354,9 @@ export async function handleSlashCommand(repl, input) {
354
354
  case '/scorecard':
355
355
  await repl.showCapabilityScorecard();
356
356
  return;
357
+ case '/tui':
358
+ repl.showTuiDashboard();
359
+ return;
357
360
 
358
361
  // Git Auto-Pilot
359
362
  case '/commit':