Aippy Runtime SDK - Runtime SDK for Aippy projects
Runtime SDK for Aippy projects providing device functionality, platform detection, and utility functions.
``bash`
npm install @aippy/runtime
`typescript
import { AippyConfig, mergeConfig } from '@aippy/runtime/core';
const config = mergeConfig({
debug: true,
apiBaseUrl: 'https://api.example.com'
});
`
`typescript
import { camera, geolocation, sensors, fileSystem } from '@aippy/runtime/device';
// Camera
const stream = await camera.getStream();
const photo = await camera.capturePhoto({ quality: 'high' });
// Geolocation
const position = await geolocation.getCurrentPosition();
const watchId = geolocation.watchPosition((pos) => {
console.log('Position:', pos);
});
// Sensors
const orientation = await sensors.getOrientation();
const cleanup = sensors.watchOrientation((data) => {
console.log('Orientation:', data);
});
// File System
const files = await fileSystem.openFile({ multiple: true });
await fileSystem.saveFile(blob, 'filename.txt');
`
`typescript
import { platform, performanceMonitor, pwa } from '@aippy/runtime/utils';
// Platform detection
const info = platform.getPlatformInfo();
const capabilities = platform.getCapabilities();
// Performance monitoring
const metrics = await performanceMonitor.getCoreWebVitals();
const timing = performanceMonitor.getNavigationTiming();
// PWA utilities
const pwaInfo = pwa.getPWAInfo();
await pwa.registerServiceWorker('/sw.js');
await pwa.sendNotification('Hello!');
`
`typescript
import { patchAudioContext } from '@aippy/runtime/audio';
// Create and patch AudioContext to bypass iOS silent mode
const ctx = new AudioContext();
const patchedCtx = patchAudioContext(ctx);
// Unlock audio on user interaction (required on iOS)
button.onclick = async () => {
await patchedCtx.unlock();
// Use native Web Audio API as normal
const osc = patchedCtx.createOscillator();
osc.connect(patchedCtx.destination);
osc.start();
osc.stop(patchedCtx.currentTime + 1);
};
`
`typescript
// Default base URL: https://api.aippy.dev/api/aisdk/v1
import { streamText, experimental_generateImage as generateImage } from 'ai';
import { aippyAIProvider } from '@aippy/runtime/ai';
// Create provider (reads from env vars automatically)
const provider = aippyAIProvider();
// Or override with config
// const provider = aippyAIProvider({ baseUrl: '...', userToken: '...' });
// Streaming text generation (uses Vercel AI SDK)
const result = await streamText({
model: provider('gpt'),
prompt: 'Write a haiku about TypeScript.',
});
for await (const chunk of result.textStream) {
console.log(chunk);
}
// Image generation
const image = await generateImage({
model: provider.image('dall-e-3'),
prompt: 'A sunset over mountains',
});
console.log(image.image?.base64);
`
- @aippy/runtime/core - Core types and configuration@aippy/runtime/device
- - Device APIs (camera, geolocation, sensors, file system)@aippy/runtime/utils
- - Platform detection, performance monitoring, PWA utilities@aippy/runtime/audio
- - iOS-compatible Web Audio API wrapper@aippy/runtime/ai
- - AI SDK adapter wrapping ai package, routes through backend proxy
This package is published to the npm public registry. The build process ensures that only compiled JavaScript files and TypeScript declarations are included in the published package - no source code is exposed.
- Compiles TypeScript to JavaScript
- Generates TypeScript declaration files
- Removes source maps to protect source code
- Only includes dist/ directory and README.md in the published package
`bashInstall dependencies
pnpm install
- Homepage: https://aippy.ai
- Support: Discord Community
UNLICENSED - This is a proprietary SDK. All rights reserved.