flutter_pipwave_ai_agent 1.1.0 copy "flutter_pipwave_ai_agent: ^1.1.0" to clipboard
flutter_pipwave_ai_agent: ^1.1.0 copied to clipboard

Pipwave AI Agent SDK provides a predesigned graphical user interface (GUI) for user to undergo the AI agent process.

example/lib/main.dart

import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_pipwave_ai_agent/flutter_pipwave_ai_agent.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

import 'src/api/init_ai_agent_api.dart';
import 'src/bloc/init_agent/init_agent_bloc.dart';
import 'src/config/init_env.dart';
import 'src/repositories/session_token_repository.dart';
import 'src/ui/screens/home/home_screen.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FlutterPipwaveAiAgent.instance.initialise();

  const env = InitEnv.staging;
  final dio = Dio(BaseOptions(baseUrl: env.baseUrl))
    ..interceptors.add(
      PrettyDioLogger(
        requestHeader: true,
        requestBody: true,
      ),
    );
  final api = InitAiAgentApi(dio, baseUrl: env.baseUrl);
  const storage = FlutterSecureStorage();
  final repository = SessionTokenRepository(storage, api);

  runApp(
    MaterialApp(
      builder: (context, child) => GestureDetector(
        behavior: HitTestBehavior.translucent,
        onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
        child: child,
      ),
      home: BlocProvider<InitAgentBloc>(
        create: (_) => InitAgentBloc(repository),
        child: const HomeScreen(),
      ),
    ),
  );
}