Finish budget removal punch-list: pages, dispatch, intent (Sam & Hermes)
- controlplane-pages.ts: remove AGENT_BUDGET_* import, budgetPolicyState(), buildBudgetCard(), budget param from renderTenantHome - channels/telegram.ts: remove dead dispatch entries (resume, policy, budget, budgetreport, usage, budgetreset, rescue) + intent branch - report-intent.ts: remove BUDGET_PATTERNS, 'budget' ReportIntent
This commit is contained in:
parent
47b09b91f2
commit
9286324830
3 changed files with 4 additions and 40 deletions
|
|
@ -362,22 +362,10 @@ export class TelegramChannel implements Channel {
|
|||
if (!chatJid) return;
|
||||
await handleCompactCommand(ctx, chatJid);
|
||||
},
|
||||
resume: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleResumeCommand(ctx, chatJid);
|
||||
},
|
||||
policy: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handlePolicyCommand(ctx, chatJid);
|
||||
},
|
||||
brain: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleBrainCommand(ctx, chatJid);
|
||||
},
|
||||
budget: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleBudgetCommand(ctx, chatJid);
|
||||
},
|
||||
audit: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleAuditCommand(ctx, chatJid);
|
||||
|
|
@ -402,10 +390,6 @@ export class TelegramChannel implements Channel {
|
|||
if (!chatJid) return;
|
||||
await handleTasksCommand(ctx, chatJid);
|
||||
},
|
||||
budgetreport: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleBudgetReportCommand(ctx, chatJid);
|
||||
},
|
||||
testreport: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleTestReportCommand(ctx, chatJid);
|
||||
|
|
@ -422,10 +406,6 @@ export class TelegramChannel implements Channel {
|
|||
if (!chatJid) return;
|
||||
await handleActivationCommand(ctx, chatJid);
|
||||
},
|
||||
usage: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleUsageCommand(ctx, chatJid);
|
||||
},
|
||||
tokens: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleTokensCommand(ctx, chatJid);
|
||||
|
|
@ -438,14 +418,6 @@ export class TelegramChannel implements Channel {
|
|||
if (!chatJid) return;
|
||||
await handleRebootCommand(ctx, chatJid);
|
||||
},
|
||||
budgetreset: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleBudgetResetCommand(ctx, chatJid);
|
||||
},
|
||||
rescue: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleBudgetResetCommand(ctx, chatJid);
|
||||
},
|
||||
clearcooldown: async (ctx, chatJid) => {
|
||||
if (!chatJid) return;
|
||||
await handleClearCooldownCommand(ctx, chatJid);
|
||||
|
|
@ -599,7 +571,6 @@ export class TelegramChannel implements Channel {
|
|||
if (intent === 'disk') await handleDiskCommand(ctx, chatJid);
|
||||
else if (intent === 'publish')
|
||||
await handlePublishReportCommand(ctx, chatJid);
|
||||
else if (intent === 'budget')
|
||||
await handleBudgetReportCommand(ctx, chatJid);
|
||||
else if (intent === 'tasks') await handleTasksCommand(ctx, chatJid);
|
||||
else if (intent === 'tests')
|
||||
|
|
@ -1297,4 +1268,4 @@ registerChannel('telegram', (opts) => {
|
|||
return null;
|
||||
}
|
||||
return new TelegramChannel(TELEGRAM_BOT_TOKEN, opts);
|
||||
});
|
||||
});
|
||||
|
|
@ -4,7 +4,6 @@ import {
|
|||
CMS_WEBROOT,
|
||||
} from './config.js';
|
||||
import { getOperatorDashboardUrl } from './controlplane-links.js';
|
||||
import type { Budget } from './controlplane-db.js';
|
||||
import { escapeHtml } from './controlplane-api-responses.js';
|
||||
import { formatDisplayDate } from './display-date.js';
|
||||
import { platformServiceDomain } from './platform-layout.js';
|
||||
|
|
@ -23,7 +22,6 @@ function formatInteger(value: number): string {
|
|||
return new Intl.NumberFormat('en-US').format(value);
|
||||
}
|
||||
|
||||
function budgetPolicyState(
|
||||
budget: Budget,
|
||||
): 'normal' | 'low_budget' | 'paused' {
|
||||
const remainingPct =
|
||||
|
|
@ -418,8 +416,7 @@ export function renderControlplaneLoginPage(opts: {
|
|||
export function renderTenantHome(
|
||||
registry: ReturnType<typeof loadTenantRegistry>,
|
||||
tenant: ReturnType<typeof loadTenantRegistry>['tenants'][string],
|
||||
budget: Budget | null,
|
||||
): string {
|
||||
): string {
|
||||
const controlplaneHost = registry.platform.internalDomain;
|
||||
const cmsHost = platformServiceDomain('cms', registry.platform.internalBase);
|
||||
const codeHost = platformServiceDomain('git', registry.platform.internalBase);
|
||||
|
|
@ -428,7 +425,6 @@ export function renderTenantHome(
|
|||
const disabledSiteCount = tenant.sites.filter((site) => site.exposure === 'disabled').length;
|
||||
const budgetCard = budget
|
||||
? (() => {
|
||||
const state = budgetPolicyState(budget);
|
||||
const stateClass = state === 'normal' ? 'status' : 'status warn';
|
||||
const resetAt = formatDisplayDate(budget.reset_at, {
|
||||
includeTime: true,
|
||||
|
|
@ -436,7 +432,6 @@ export function renderTenantHome(
|
|||
});
|
||||
return `
|
||||
<section class="card">
|
||||
<h2>LLM Budget</h2>
|
||||
<p><span class="${stateClass}">${escapeHtml(state)}</span></p>
|
||||
<p class="metric">Tenant orchestrator budget for the current daily window.</p>
|
||||
<p><strong>Daily limit:</strong> <code>${escapeHtml(formatInteger(budget.daily_tokens))}</code></p>
|
||||
|
|
@ -447,7 +442,6 @@ export function renderTenantHome(
|
|||
})()
|
||||
: `
|
||||
<section class="card">
|
||||
<h2>LLM Budget</h2>
|
||||
<p><span class="status warn">not configured</span></p>
|
||||
<p>No tenant-scoped orchestrator budget was found for <code>${escapeHtml(tenant.id)}</code> in the controlplane budget table yet.</p>
|
||||
</section>`;
|
||||
|
|
@ -574,4 +568,4 @@ export function renderTenantSite(
|
|||
</section>
|
||||
`,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -167,10 +167,9 @@ export function classifyReportIntent(text: string): ReportIntent {
|
|||
|
||||
if (matchesAny(stripped, DISK_PATTERNS)) return 'disk';
|
||||
if (matchesAny(stripped, PUBLISH_PATTERNS)) return 'publish';
|
||||
if (matchesAny(stripped, BUDGET_PATTERNS)) return 'budget';
|
||||
if (matchesAny(stripped, TEST_PATTERNS)) return 'tests';
|
||||
if (matchesAny(stripped, TASK_PATTERNS)) return 'tasks';
|
||||
if (matchesAny(stripped, STATUS_PATTERNS)) return 'status';
|
||||
if (matchesAny(stripped, SYSTEM_PATTERNS)) return 'system';
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue