- 新增代码内业务上下文元数据层(实体字典 + 三大闭环工作流) - 新增 get_business_context / get_entity_schema / get_pending_tasks 运行时工具 - SYSTEM_PROMPT 与技能目录改为先查业务流程/待办再执行 - A2UI 增加 ai_a2ui_submissions 幂等表、表单过期、ui.artifact 事件 - 提交回灌携带 submissionId / fieldErrors / 下一步建议 - 前端 uiArtifacts 归一化与过期表单禁用
147 lines
6.4 KiB
TypeScript
147 lines
6.4 KiB
TypeScript
import { Module, OnModuleInit } from '@nestjs/common';
|
|
import { StudentsModule } from '../students/students.module';
|
|
import { ClassesModule } from '../classes/classes.module';
|
|
import { AttendanceModule } from '../attendance/attendance.module';
|
|
import { RoomsModule } from '../rooms/rooms.module';
|
|
import { BillsModule } from '../bills/bills.module';
|
|
import { DashboardModule } from '../dashboard/dashboard.module';
|
|
import { AgentToolRegistry } from './agent-tool.registry';
|
|
import { AgentToolExecutor } from './agent-tool.executor';
|
|
import { SearchStudentsTool } from './tools/search-students.tool';
|
|
import { GetStudentBasicTool } from './tools/get-student-basic.tool';
|
|
import { AgentBusinessScopeFactory } from './agent-business-scope.factory';
|
|
import { SearchClassesTool } from './tools/search-classes.tool';
|
|
import { GetAttendanceSummaryTool } from './tools/get-attendance-summary.tool';
|
|
import { SearchRoomsTool } from './tools/search-rooms.tool';
|
|
import { GetRoomOccupancySummaryTool } from './tools/get-room-occupancy-summary.tool';
|
|
import { SearchBillsTool } from './tools/search-bills.tool';
|
|
import { GetDashboardStatsTool } from './tools/get-dashboard-stats.tool';
|
|
import { CreateStudentTool } from './tools/create-student.tool';
|
|
import { UpdateStudentsTool } from './tools/update-students.tool';
|
|
import { SearchExamsTool } from './tools/search-exams.tool';
|
|
import { SearchSchedulesTool } from './tools/search-schedules.tool';
|
|
import { SearchDepositsTool } from './tools/search-deposits.tool';
|
|
import { SearchExpensesTool } from './tools/search-expenses.tool';
|
|
import { SearchClassroomsTool } from './tools/search-classrooms.tool';
|
|
import { SearchClassroomRentalsTool } from './tools/search-classroom-rentals.tool';
|
|
import { GetSyncStatusTool } from './tools/get-sync-status.tool';
|
|
import { ExamsModule } from '../exams/exams.module';
|
|
import { SchedulesModule } from '../schedules/schedules.module';
|
|
import { DepositsModule } from '../deposits/deposits.module';
|
|
import { ExpensesModule } from '../expenses/expenses.module';
|
|
import { ClassroomsModule } from '../classrooms/classrooms.module';
|
|
import { ClassroomRentalsModule } from '../classroom-rentals/classroom-rentals.module';
|
|
import { SyncModule } from '../sync/sync.module';
|
|
import { BusinessContextService } from '../agent-context/business-context.service';
|
|
import { PendingTasksService } from '../agent-context/pending-tasks.service';
|
|
import { GetBusinessContextTool, GetEntitySchemaTool } from '../agent-context/get-business-context.tool';
|
|
import { GetPendingTasksTool } from '../agent-context/get-pending-tasks.tool';
|
|
|
|
/**
|
|
* Agent Tools feature module.
|
|
*
|
|
* Provides a provider-neutral tool executor for LLM agent frameworks.
|
|
* SDK consumers interact ONLY with {@link AgentToolExecutor}.
|
|
*
|
|
* `AgentToolRegistry` is an internal provider — it is NOT exported from
|
|
* this module. All tool listing and execution goes through the executor,
|
|
* which enforces double-check authorization, audit logging, and context
|
|
* trust validation.
|
|
*
|
|
* Imports `StudentsModule` for student data access and relies on the
|
|
* globally available `AuthorizationModule` and `OperationLogsModule`.
|
|
*/
|
|
@Module({
|
|
imports: [
|
|
StudentsModule,
|
|
ClassesModule,
|
|
AttendanceModule,
|
|
RoomsModule,
|
|
BillsModule,
|
|
DashboardModule,
|
|
ExamsModule,
|
|
SchedulesModule,
|
|
DepositsModule,
|
|
ExpensesModule,
|
|
ClassroomsModule,
|
|
ClassroomRentalsModule,
|
|
SyncModule,
|
|
],
|
|
providers: [
|
|
AgentToolRegistry,
|
|
AgentToolExecutor,
|
|
BusinessContextService,
|
|
PendingTasksService,
|
|
GetBusinessContextTool,
|
|
GetEntitySchemaTool,
|
|
GetPendingTasksTool,
|
|
SearchStudentsTool,
|
|
GetStudentBasicTool,
|
|
AgentBusinessScopeFactory,
|
|
SearchClassesTool,
|
|
GetAttendanceSummaryTool,
|
|
SearchRoomsTool,
|
|
GetRoomOccupancySummaryTool,
|
|
SearchBillsTool,
|
|
GetDashboardStatsTool,
|
|
CreateStudentTool,
|
|
UpdateStudentsTool,
|
|
SearchExamsTool,
|
|
SearchSchedulesTool,
|
|
SearchDepositsTool,
|
|
SearchExpensesTool,
|
|
SearchClassroomsTool,
|
|
SearchClassroomRentalsTool,
|
|
GetSyncStatusTool,
|
|
],
|
|
exports: [AgentToolExecutor],
|
|
})
|
|
export class AgentToolsModule implements OnModuleInit {
|
|
constructor(
|
|
private readonly registry: AgentToolRegistry,
|
|
private readonly searchTool: SearchStudentsTool,
|
|
private readonly getTool: GetStudentBasicTool,
|
|
private readonly searchClassesTool: SearchClassesTool,
|
|
private readonly attendanceSummaryTool: GetAttendanceSummaryTool,
|
|
private readonly searchRoomsTool: SearchRoomsTool,
|
|
private readonly roomOccupancyTool: GetRoomOccupancySummaryTool,
|
|
private readonly searchBillsTool: SearchBillsTool,
|
|
private readonly dashboardStatsTool: GetDashboardStatsTool,
|
|
private readonly createStudentTool: CreateStudentTool,
|
|
private readonly updateStudentsTool: UpdateStudentsTool,
|
|
private readonly searchExamsTool: SearchExamsTool,
|
|
private readonly searchSchedulesTool: SearchSchedulesTool,
|
|
private readonly searchDepositsTool: SearchDepositsTool,
|
|
private readonly searchExpensesTool: SearchExpensesTool,
|
|
private readonly searchClassroomsTool: SearchClassroomsTool,
|
|
private readonly searchClassroomRentalsTool: SearchClassroomRentalsTool,
|
|
private readonly getSyncStatusTool: GetSyncStatusTool,
|
|
private readonly businessContextTool: GetBusinessContextTool,
|
|
private readonly entitySchemaTool: GetEntitySchemaTool,
|
|
private readonly pendingTasksTool: GetPendingTasksTool,
|
|
) {}
|
|
|
|
onModuleInit(): void {
|
|
this.registry.register(this.businessContextTool);
|
|
this.registry.register(this.entitySchemaTool);
|
|
this.registry.register(this.pendingTasksTool);
|
|
this.registry.register(this.searchTool);
|
|
this.registry.register(this.getTool);
|
|
this.registry.register(this.searchClassesTool);
|
|
this.registry.register(this.attendanceSummaryTool);
|
|
this.registry.register(this.searchRoomsTool);
|
|
this.registry.register(this.roomOccupancyTool);
|
|
this.registry.register(this.searchBillsTool);
|
|
this.registry.register(this.dashboardStatsTool);
|
|
this.registry.register(this.createStudentTool);
|
|
this.registry.register(this.updateStudentsTool);
|
|
this.registry.register(this.searchExamsTool);
|
|
this.registry.register(this.searchSchedulesTool);
|
|
this.registry.register(this.searchDepositsTool);
|
|
this.registry.register(this.searchExpensesTool);
|
|
this.registry.register(this.searchClassroomsTool);
|
|
this.registry.register(this.searchClassroomRentalsTool);
|
|
this.registry.register(this.getSyncStatusTool);
|
|
}
|
|
}
|