intentic
Download the app
Download the app
The workspace

Diffs

Both sides of a changed document as text, for the files a line diff cannot show

What a diff's two sides are when they are not lines of text. A document, spreadsheet, presentation or notebook that changed is rendered to markdown on both sides — the same reading an agent gets instead of the bytes — so the change shows as tracked changes rather than two downloads. The side on disk reuses the shadow the sandbox already keeps; a past version is rendered from its bytes and kept by content hash, so the same version is never rendered twice. A side nothing can read answers with the reason instead. The bytes themselves are not here: that route streams a body and so sits outside this contract.

GET/diff/derivedBoth sides of a document's diff, as text

A document, spreadsheet, presentation or notebook that changed, both versions rendered to markdown the way an agent reads them, so the change can be shown as tracked changes instead of two downloads. The side on disk reuses the shadow the sandbox already keeps; a past version is rendered from its bytes and kept by content hash, so the same version is never rendered twice. A side nothing can read says why.

What you send

FieldTypeWhere
sourcerequired"working" | "agent" | "commit" | "checkpoint"query
repoWhich repository: "root" for the workspace…stringquery
sideWhich git side the row came…"staged" | "unstaged" | "conflicted"query
pathrequiredThe file, relative to the repo…stringquery
agentThe conversation whose work is under…stringquery
shaThe commit, compared against its first…stringquery
snapshotWhich saved pointstringquery
scopeWhich part of the workspace the…stringquery

What comes back

FieldType
beforeThe file as it was, rendered…object
when present is trueshape
contentThe side as markdownstring
deriverWhich reader made this text, with…string
notesEvery cap and degradation the conversion…string[]
truncatedThe rendering was longer than this…boolean
when present is falseshape
reasonWhy this side has no text:…string
afterThe file as it is now,…object
when present is trueshape
contentThe side as markdownstring
deriverWhich reader made this text, with…string
notesEvery cap and degradation the conversion…string[]
truncatedThe rendering was longer than this…boolean
when present is falseshape
reasonWhy this side has no text:…string
Try itanswered in this tab
curl
curl "$SANDBOX/diff/derived?source=working&path=src%2Fapp.ts" \
  -H "x-intentic-control: $INTENTIC_TOKEN"
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.diff.derived({
  "source": "working",
  "path": "src/app.ts"
});
More in The workspace

Type to search every page, in the docs and the API reference.