field-service-agent
Version:
Field Service AI Agent - NPM package for integrating AI-powered field service management into mobile apps
77 lines • 2.34 kB
TypeScript
import { FieldServiceSDK } from 'field-service-sdk/dist/src/sdk';
export interface FieldServiceAgentConfig {
sdk: FieldServiceSDK;
language?: string;
voiceName?: string;
timezone?: string;
enableDebugLogging?: boolean;
googlePlacesApiKey?: string;
onNavigationRequest?: (action: NavigationAction) => void;
onCommunicationRequest?: (action: CommunicationAction) => void;
}
export type ActionType = 'navigation' | 'communication' | 'data_operation';
export interface NavigationAction {
type: 'navigation';
screen: 'job_details' | 'client_details' | 'invoice_details' | 'estimate_details' | 'calendar_daily' | 'calendar_weekly' | 'dashboard' | 'clients_list' | 'jobs_list';
params: {
id?: string;
clientId?: string;
jobId?: string;
invoiceId?: string;
estimateId?: string;
[key: string]: any;
};
}
export interface CommunicationAction {
type: 'communication';
method: 'call' | 'sms' | 'email' | 'navigation';
recipient: {
id: string;
name: string;
phone?: string;
email?: string;
address?: string;
};
content?: {
subject?: string;
body?: string;
attachmentUrl?: string;
};
navigationApp?: 'waze' | 'google_maps' | 'apple_maps';
}
export interface DataOperationResult {
type: 'data_operation';
operation: string;
success: boolean;
data?: any;
error?: string;
}
export interface FunctionResponse {
success: boolean;
message: string;
data?: any;
action?: NavigationAction | CommunicationAction;
requiresUserAction?: boolean;
followUpQuestion?: boolean;
navigationActions?: any[];
}
export interface AgentResponse {
audioContent?: string;
success: boolean;
message: string;
result?: FunctionResponse;
error?: string;
debugInfo?: any;
followUpQuestion?: boolean;
transcribedText?: string;
navigationActions?: any[];
}
export type { AgentContext, ChatGPTFunction } from './agent/types';
export interface ConversationMessage {
role: 'user' | 'assistant';
content: string;
timestamp: Date;
}
export type NavigationCallback = (action: NavigationAction) => void;
export type CommunicationCallback = (action: CommunicationAction) => void;
//# sourceMappingURL=types.d.ts.map