Skip to main content

llmsurgery

Install

pip install llmsurgery

What’s here

Dialogs are LLM conversations kept as Jupyter notebooks: notes, runnable code with outputs, and prompt/reply pairs in one editable, diffable document. This library is the data model and surgery toolkit for them, extracted from Solveit, which subclasses these types to build its live environment:

  • llmsurgery.dialog: Message, Dialog, and Attachment — a message carries exactly what the ipynb spec provides (content, output, type, id, attachments) plus a verbatim metadata dict, so host annotations round-trip untouched; hosts declare their own fields via meta_attrs and inject their subclasses through msg_cls and read_ipynb(cls=).
  • llmsurgery.ipynb: reading and writing dialogs as .ipynb files.
  • llmsurgery.hist: converting dialogs to LLM chat history, including recovering tool calls from replies as structured messages. Rendering defaults are deliberately unopinionated (bare prompts, pass-through media, verbatim latex); hosts install their policies as class members (prompt_txt, prep_img, media_extra, ai_renderers, UNSUPPORTED_MSG).
  • llmsurgery.ant: Claude Code session transcripts: read, write, search, curate, and build them from dialogs, so claude --resume opens an authored conversation.
  • llmsurgery.oai: Codex threads: drive codex app-server to inject authored histories, ready for codex resume.

Documentation: https://AnswerDotAI.github.io/llmsurgery/

The theory

A dialog is a conversation between a human, an AI, and an interpreter. Each message type addresses one of them and expects a certain kind of answer:

  • A prompt asks the AI a question and holds its reply.
  • A code message gives the interpreter source and holds its outputs.
  • A note is read by everyone and answered by nobody.
  • A raw message addresses no one. It is inert matter the conversation carries along.

A reply may itself contain runnable code with results, so a whole dialog can live inside one message. reply2dlg opens a reply up as a dialog and dlg2reply puts it back.

Dialogs and Jupyter notebooks both serialize to the ipynb format, but they are not the same thing. A notebook has cells. A dialog has messages. Messages add prompts, which notebooks cannot express, and they make structure explicit that notebooks leave implicit. A heading opens a section that runs to the next heading of the same level. An export directive marks the code that belongs to a module. The shared file format means the same tools read both. The word tells you which layer you are on. File-level tools such as fastcore.nbio and exhash speak of cells and notebooks. Everything in this library speaks of messages and dialogs.

The Dialog is the center of the library. Everything else is a projection of it. A storage projection must preserve everything that means something. What it does not understand it carries verbatim in metadata, and what is broken it heals rather than rejects. A transmission projection normalizes on purpose, and what it drops is written into its contract. A display projection only goes one way. The rule is to convert in, edit at the center, and project out. The function names say the same thing. Every converter has dlg on exactly one side.

projection contract in out
ipynb file storage, pragmatically lossless read_ipynb write_ipynb
Claude Code session storage sess2dlg dlg2sess
Codex thread storage (write-only so far) dlg2thread
fastllm chat (Msg/Part) transmission, normalizing chat2dlg dlg2chat
fastllm hist (live call input) transmission, one-way dlg2hist
a prompt’s reply self-similar reply2dlg dlg2reply
XML views display, one-way view_dlg, msg2xml

The session codecs route through chat on their way to the wire: ant’s dlg2msgs and oai’s dlg2items are each denorm_msgs(dlg2chat(...)).

The section title comes from Peter Naur’s essay Programming as Theory Building. A program is the theory its builders hold, and the source alone does not carry it. The builders here include AI models whose memory is wiped between sessions. The theory must live in artifacts like this page, or it dies at every compaction.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llmsurgery-0.0.2.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmsurgery-0.0.2-py3-none-any.whl (43.2 kB view details)

Uploaded Python 3

File details

Details for the file llmsurgery-0.0.2.tar.gz.

File metadata

  • Download URL: llmsurgery-0.0.2.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for llmsurgery-0.0.2.tar.gz
Algorithm Hash digest
SHA256 5b26ad3d6f0df2f9340ba3fd29d29d3f037a0b7c63234ae43e10497685c9f6fa
MD5 562d98bdf57a9079946ad047b0b04f1a
BLAKE2b-256 e82f125db88ca6843091fbd4e62c5323f6b7ec9def6115fa1513b05356157ab0

See more details on using hashes here.

File details

Details for the file llmsurgery-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: llmsurgery-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 43.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for llmsurgery-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 139347f4ff3154dd2791f1c970ac4dd38b8466d7c674c300eb98803a5223cf44
MD5 0307fab2a071ddb3c9aae14325ad8430
BLAKE2b-256 2a9f588c71a36a3e60747471f853268144b07384bd9be2dfbab994f5f2d26b96

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

This release

0.0.2 This release

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page