feat(industry): Phase 3 Tauri 行业配置加载 — SaaS API mixin + industryStore + Tauri 命令
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

- 新增 saas-industry.ts mixin: listIndustries/getIndustryFullConfig/getMyIndustries
- 新增 saas-types 行业类型: IndustryInfo/IndustryFullConfig/AccountIndustryItem
- 新增 industryStore.ts: Zustand store + localStorage persist + Rust 注入
- 新增 viking_load_industry_keywords Tauri 命令: 接收 JSON configs → 全局存储
- 前端 bootstrap 后自动拉取行业配置并推送到 ButlerRouter
This commit is contained in:
iven
2026-04-12 17:18:53 +08:00
parent 29fbfbec59
commit b853978771
6 changed files with 310 additions and 0 deletions

View File

@@ -67,6 +67,9 @@ export type {
AgentTemplateAvailable,
AgentTemplateFull,
AgentConfigFromTemplate,
IndustryInfo,
IndustryFullConfig,
AccountIndustryItem,
} from './saas-types';
export { SaaSApiError } from './saas-errors';
@@ -110,6 +113,7 @@ import { installRelayMethods } from './saas-relay';
import { installPromptMethods } from './saas-prompt';
import { installTelemetryMethods } from './saas-telemetry';
import { installBillingMethods } from './saas-billing';
import { installIndustryMethods } from './saas-industry';
export type { UsageIncrementResult } from './saas-billing';
// Re-export billing types for convenience
@@ -443,6 +447,7 @@ installRelayMethods(SaaSClient);
installPromptMethods(SaaSClient);
installTelemetryMethods(SaaSClient);
installBillingMethods(SaaSClient);
installIndustryMethods(SaaSClient);
export { installBillingMethods };
// === API Method Type Declarations ===
@@ -500,6 +505,12 @@ export interface SaaSClient {
getSubscription(): Promise<import('./saas-types').SubscriptionInfo>;
createPayment(data: import('./saas-types').CreatePaymentRequest): Promise<import('./saas-types').PaymentResult>;
getPaymentStatus(paymentId: string): Promise<import('./saas-types').PaymentStatus>;
// --- Industry (saas-industry.ts) ---
listIndustries(opts?: { page?: number; page_size?: number; status?: string }): Promise<import('./saas-types').PaginatedResponse<import('./saas-types').IndustryInfo>>;
getIndustryFullConfig(industryId: string): Promise<import('./saas-types').IndustryFullConfig>;
getMyIndustries(): Promise<import('./saas-types').AccountIndustryItem[]>;
getAccountIndustries(accountId: string): Promise<import('./saas-types').AccountIndustryItem[]>;
}
// === Singleton ===