Agent Primitives /Changes = Reactive advancement

Stop re-querying blind.

Poll a lightweight advancement feed, then query only when a live view has moved. Changes use the connection you already have and turn wasteful polling into a precise signal.

const feed = await laser
  .watch()
  .index("orders_v1")
  .records()

// await the advance, never re-query blind
let changes = await feed.poll()
while (changes.length === 0) {
  await sleep(200)
  changes = await feed.poll()
}
for (const change of changes) {
  console.log(change.rows, "row(s) landed")
}

Primitive guarantees

A durable foundation, not another integration.

01

Advance, then query

Refresh only after the projection reports new work instead of polling the full result set.

02

Lightweight signals

Change records describe progress without duplicating the projection data itself.

03

One connection

Watch and query through the same SDK boundary already used by the application.

Built forLive interfacesCache invalidationReactive pipelines

Explore the system

Eight primitives. One durable history.

Combine transport, prompt assembly, recall, relationships, and live views without stitching together disconnected systems.