
Security News
GPT-6 Astra Attempts Supply Chain Attacks Against Open Source Maintainers in Testing
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.
@synap-core/sdk
Advanced tools
High-level SDK for Synap - Event-sourced personal data platform
pnpm add @synap/sdk
import { SynapSDK } from '@synap/sdk';
// Initialize SDK
const synap = new SynapSDK({
url: 'https://api.synap.app',
apiKey: 'your-api-key'
});
// Create entity (event-sourced)
const { entityId } = await synap.entities.create({
type: 'task',
title: 'Call Marie tomorrow',
metadata: {
dueDate: '2024-12-20',
priority: 'high'
}
});
// Create relationship (event-sourced)
await synap.relations.create(entityId, personId, 'assigned_to');
// Query data (direct reads)
const tasks = await synap.entities.list({ type: 'task' });
const history = await synap.events.getHistory(entityId);
All mutations go through event sourcing:
entities.create/update/delete → events.log → Inngest worker → Databaserelations.create/delete → events.log → Inngest worker → DatabaseAll queries are direct database reads:
entities.get/list/search → Direct queryrelations.get/getRelated → Direct queryevents.getHistory → Direct query// Create
const { entityId } = await synap.entities.create({
type: 'note',
title: 'Meeting Notes',
content: '# Discussion points...'
});
// Update
await synap.entities.update(entityId, {
title: 'Updated Title'
});
// Delete (soft delete)
await synap.entities.delete(entityId);
// Get
const entity = await synap.entities.get(entityId);
// List
const notes = await synap.entities.list({
type: 'note',
limit: 20
});
// Search
const results = await synap.entities.search({
query: 'project planning',
types: ['note', 'task']
});
// Create relationship
await synap.relations.create(
sourceEntityId,
targetEntityId,
'assigned_to'
);
// Get relations
const relations = await synap.relations.get(entityId, {
type: 'assigned_to',
direction: 'both' // 'source' | 'target' | 'both'
});
// Get related entities
const people = await synap.relations.getRelated(taskId, {
type: 'assigned_to',
direction: 'source'
});
// Get statistics
const stats = await synap.relations.getStats(entityId);
// Returns: { total, outgoing, incoming, byType }
// Delete relationship
await synap.relations.delete(relationId);
// Get entity history
const history = await synap.events.getHistory(entityId, {
eventTypes: ['entities.create.validated'],
limit: 100
});
// Get user timeline
const timeline = await synap.events.getTimeline({
limit: 50
});
// Replay events to rebuild state
const state = await synap.events.replay(entityId);
type EntityType =
| 'task'
| 'note'
| 'person'
| 'event'
| 'file';
type RelationType =
| 'assigned_to' // Task → Person
| 'mentions' // Note → Entity
| 'links_to' // Note → Note
| 'parent_of' // Project → Task
| 'relates_to' // Generic
| 'tagged_with' // Entity → Tag
| 'created_by' // Entity → Person
| 'attended_by' // Event → Person
| 'depends_on' // Task → Task
| 'blocks'; // Task → Task
AGPL-3.0
FAQs
Type-safe tRPC client SDK for Synap data pods
The npm package @synap-core/sdk receives a total of 3 weekly downloads. As such, @synap-core/sdk popularity was classified as not popular.
We found that @synap-core/sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.