@focusd/api
v1.0.8
Published
Focusd API client library
Readme
@focusd/api
Focusd API client library with protobuf definitions and TypeScript types.
Installation
npm install @focusd/apiUsage
TypeScript/JavaScript - Import custom types
import { Session, Application, Classification, AuthProvider } from '@focusd/api';
// Create a session
const session: Session = {
name: "Work Session",
duration: { seconds: 3600, nanos: 0 },
started_at: { seconds: Date.now() / 1000, nanos: 0 }
};
// Create an application
const app: Application = {
name: "VS Code",
title: "Visual Studio Code",
bundle_id: "com.microsoft.VSCode",
url: "file:///path/to/project",
classification: Classification.CLASSIFICATION_PRODUCTIVITY,
categories: ["development", "coding"]
};Import protobuf-generated types (advanced)
// API types only
import { AskLLMRequest, AskLLMResponse } from '@focusd/api/api';
// Engine types only
import { Session, Application, EngineService } from '@focusd/api/engine';Available Types
Custom TypeScript Types
Session- Focus session with optional id, timestamps, and durationApplication- Application information with classification and categoriesClassification- Application classification enum (NEUTRAL, PRODUCTIVITY, DISTRUCTION)AuthProvider- Authentication provider enum (GITHUB, GOOGLE, APPLE)FocusStartRequest- Start focus session requestFocusStartResponse- Start focus session responseFocusCheckRequest- Check focus status requestFocusCheckResponse- Check focus status responseFocusStatusResponse- Focus status responseAuthStartRequest- Start auth requestAuthRedirectURLRequest- Auth redirect requestAuthRedirectURLResponse- Auth redirect response
Protobuf-Generated Types (Advanced)
AskLLMRequest- Request for LLM queriesAskLLMResponse- Response from LLM queriesAuthRedirectURLRequest- Authentication redirect requestAuthRedirectURLResponse- Authentication redirect responseLLMProviderType- LLM provider type enumAPIService- API service definitionEngineService- Engine service definition
