@aimform/core
v0.3.1
Published
Aimform Core — trust-boundary primitives: property-level permissions, change events, and adapter interfaces for the Aimform platform.
Maintainers
Readme
@aimform/core
Trust-boundary primitives — adapter interfaces, permission resolution, change events, and
createAimform().
Install
npm install @aimform/coreUsage
import { createAimform } from "@aimform/core";
// Default — everything via api.aimform.com
const aimform = createAimform({ apiKey: "af_xxx" });
// BYO database
import { D1DatabaseAdapter } from "@aimform/core/adapters";
const aimform = createAimform({
apiKey: "af_xxx",
providers: { database: new D1DatabaseAdapter(env.DB) },
});Database, storage, cache
await aimform.database.query("SELECT * FROM organizations WHERE plan_tier = ?1", ["paid"]);
await aimform.storage.put("reports/q4.pdf", fileBuffer);
await aimform.cache.set("session:abc", { userId: "u1" }, 3600);
await aimform.embeddings.embed("What is Aimform?");Permissions
import { resolveFieldAccess } from "@aimform/core";
const result = await resolveFieldAccess(
{ profileId: "p1", orgId: "o1", role: "admin" },
"entity", ["title", "status"],
{ spaceId: "s1", entityId: "e1" }, database,
);Events, shares
await aimform.events.emit({ orgId: "o1", entityType: "page", entityId: "e1", action: "created", actorProfileId: "p1", actorType: "human" });
const link = await aimform.shares.create({ resourceType: "space", resourceId: "s1", access: "read", createdByProfileId: "p1" });→ createAimform docs → Permission resolution docs → Adapters docs → AimformClient docs
Package ecosystem
import { Auth, Profiles } from "@aimform/auth";
import { Spaces, Entities } from "@aimform/spaces";
import { Search } from "@aimform/search";
import { Compute } from "@aimform/compute";
// All share the same config pattern
const auth = new Auth({ database: db });
const spaces = new Spaces({ database: db });
const search = new Search({ database: db });
const compute = new Compute({ database: db });