@earendil-works/pi-durable 0.99.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +557 -46
- package/dist/entries.d.ts +20 -2
- package/dist/entries.d.ts.map +1 -1
- package/dist/entries.js +14 -1
- package/dist/entries.js.map +1 -1
- package/dist/env/index.d.ts +18 -38
- package/dist/env/index.d.ts.map +1 -1
- package/dist/env/index.js +2 -0
- package/dist/env/index.js.map +1 -1
- package/dist/env/node.d.ts +2 -0
- package/dist/env/node.d.ts.map +1 -1
- package/dist/env/node.js +53 -58
- package/dist/env/node.js.map +1 -1
- package/dist/harness/agent.d.ts +31 -0
- package/dist/harness/agent.d.ts.map +1 -0
- package/dist/harness/agent.js +209 -0
- package/dist/harness/agent.js.map +1 -0
- package/dist/harness/compaction.d.ts +56 -0
- package/dist/harness/compaction.d.ts.map +1 -0
- package/dist/harness/compaction.js +382 -0
- package/dist/harness/compaction.js.map +1 -0
- package/dist/harness/context.d.ts +8 -0
- package/dist/harness/context.d.ts.map +1 -1
- package/dist/harness/context.js +32 -21
- package/dist/harness/context.js.map +1 -1
- package/dist/harness/define.d.ts +18 -0
- package/dist/harness/define.d.ts.map +1 -0
- package/dist/harness/define.js +25 -0
- package/dist/harness/define.js.map +1 -0
- package/dist/harness/events.d.ts +166 -0
- package/dist/harness/events.d.ts.map +1 -0
- package/dist/harness/events.js +319 -0
- package/dist/harness/events.js.map +1 -0
- package/dist/harness/generation.d.ts +36 -7
- package/dist/harness/generation.d.ts.map +1 -1
- package/dist/harness/generation.js +356 -82
- package/dist/harness/generation.js.map +1 -1
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/harness.js +141 -106
- package/dist/harness/harness.js.map +1 -1
- package/dist/harness/inbox.d.ts +59 -0
- package/dist/harness/inbox.d.ts.map +1 -0
- package/dist/harness/inbox.js +97 -0
- package/dist/harness/inbox.js.map +1 -0
- package/dist/harness/json.d.ts +10 -0
- package/dist/harness/json.d.ts.map +1 -0
- package/dist/harness/json.js +33 -0
- package/dist/harness/json.js.map +1 -0
- package/dist/harness/live.d.ts +66 -7
- package/dist/harness/live.d.ts.map +1 -1
- package/dist/harness/live.js +71 -7
- package/dist/harness/live.js.map +1 -1
- package/dist/harness/output.d.ts +62 -0
- package/dist/harness/output.d.ts.map +1 -0
- package/dist/harness/output.js +261 -0
- package/dist/harness/output.js.map +1 -0
- package/dist/harness/prompt.d.ts +9 -6
- package/dist/harness/prompt.d.ts.map +1 -1
- package/dist/harness/prompt.js +57 -14
- package/dist/harness/prompt.js.map +1 -1
- package/dist/harness/registry.d.ts +2 -3
- package/dist/harness/registry.d.ts.map +1 -1
- package/dist/harness/registry.js +69 -277
- package/dist/harness/registry.js.map +1 -1
- package/dist/harness/scheduler.d.ts +42 -12
- package/dist/harness/scheduler.d.ts.map +1 -1
- package/dist/harness/scheduler.js +649 -75
- package/dist/harness/scheduler.js.map +1 -1
- package/dist/harness/submissions.d.ts +14 -9
- package/dist/harness/submissions.d.ts.map +1 -1
- package/dist/harness/submissions.js +76 -34
- package/dist/harness/submissions.js.map +1 -1
- package/dist/harness/task-graph.d.ts +49 -0
- package/dist/harness/task-graph.d.ts.map +1 -0
- package/dist/harness/task-graph.js +163 -0
- package/dist/harness/task-graph.js.map +1 -0
- package/dist/harness/tool.d.ts +36 -0
- package/dist/harness/tool.d.ts.map +1 -0
- package/dist/harness/tool.js +415 -0
- package/dist/harness/tool.js.map +1 -0
- package/dist/harness/types.d.ts +330 -125
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/usage.d.ts +18 -0
- package/dist/harness/usage.d.ts.map +1 -0
- package/dist/harness/usage.js +57 -0
- package/dist/harness/usage.js.map +1 -0
- package/dist/harness/view.d.ts +43 -0
- package/dist/harness/view.d.ts.map +1 -0
- package/dist/harness/view.js +189 -0
- package/dist/harness/view.js.map +1 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/session/observation.d.ts +18 -11
- package/dist/session/observation.d.ts.map +1 -1
- package/dist/session/observation.js +24 -13
- package/dist/session/observation.js.map +1 -1
- package/dist/session/session.d.ts +10 -1
- package/dist/session/session.d.ts.map +1 -1
- package/dist/session/session.js +23 -5
- package/dist/session/session.js.map +1 -1
- package/dist/session/transaction.d.ts +12 -3
- package/dist/session/transaction.d.ts.map +1 -1
- package/dist/session/transaction.js +90 -31
- package/dist/session/transaction.js.map +1 -1
- package/dist/storage/jsonl/storage.d.ts +22 -2
- package/dist/storage/jsonl/storage.d.ts.map +1 -1
- package/dist/storage/jsonl/storage.js +1 -1
- package/dist/storage/jsonl/storage.js.map +1 -1
- package/dist/storage/memory.js +1 -1
- package/dist/storage/memory.js.map +1 -1
- package/dist/storage/sqlite/database.d.ts +26 -19
- package/dist/storage/sqlite/database.d.ts.map +1 -1
- package/dist/storage/sqlite/database.js.map +1 -1
- package/dist/storage/sqlite/index.d.ts +1 -1
- package/dist/storage/sqlite/index.d.ts.map +1 -1
- package/dist/storage/sqlite/index.js.map +1 -1
- package/dist/storage/sqlite/migrations.js +7 -7
- package/dist/storage/sqlite/migrations.js.map +1 -1
- package/dist/storage/sqlite/node.d.ts +23 -7
- package/dist/storage/sqlite/node.d.ts.map +1 -1
- package/dist/storage/sqlite/node.js +129 -47
- package/dist/storage/sqlite/node.js.map +1 -1
- package/dist/storage/sqlite/storage.d.ts +12 -0
- package/dist/storage/sqlite/storage.d.ts.map +1 -1
- package/dist/storage/sqlite/storage.js +121 -129
- package/dist/storage/sqlite/storage.js.map +1 -1
- package/dist/testing/storage-benchmark.d.ts.map +1 -1
- package/dist/testing/storage-benchmark.js +0 -1
- package/dist/testing/storage-benchmark.js.map +1 -1
- package/dist/testing/storage-conformance.d.ts.map +1 -1
- package/dist/testing/storage-conformance.js +34 -2
- package/dist/testing/storage-conformance.js.map +1 -1
- package/dist/tools/bash.d.ts +28 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +70 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit-diff.d.ts +89 -0
- package/dist/tools/edit-diff.d.ts.map +1 -0
- package/dist/tools/edit-diff.js +386 -0
- package/dist/tools/edit-diff.js.map +1 -0
- package/dist/tools/edit.d.ts +18 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +117 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/env.d.ts +5 -0
- package/dist/tools/env.d.ts.map +1 -0
- package/dist/tools/env.js +7 -0
- package/dist/tools/env.js.map +1 -0
- package/dist/tools/file-mutation-queue.d.ts +9 -0
- package/dist/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/tools/file-mutation-queue.js +52 -0
- package/dist/tools/file-mutation-queue.js.map +1 -0
- package/dist/tools/image.d.ts +2 -0
- package/dist/tools/image.d.ts.map +1 -0
- package/dist/tools/image.js +92 -0
- package/dist/tools/image.js.map +1 -0
- package/dist/tools/index.d.ts +23 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/path-utils.d.ts +5 -0
- package/dist/tools/path-utils.d.ts.map +1 -0
- package/dist/tools/path-utils.js +26 -0
- package/dist/tools/path-utils.js.map +1 -0
- package/dist/tools/read.d.ts +17 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +101 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/write.d.ts +10 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +31 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/{env/utils/truncate.d.ts → truncate.d.ts} +1 -17
- package/dist/truncate.d.ts.map +1 -0
- package/dist/truncate.js +146 -0
- package/dist/truncate.js.map +1 -0
- package/dist/types.d.ts +97 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +32 -14
- package/dist/env/utils/adaptive-publisher.d.ts +0 -24
- package/dist/env/utils/adaptive-publisher.d.ts.map +0 -1
- package/dist/env/utils/adaptive-publisher.js +0 -79
- package/dist/env/utils/adaptive-publisher.js.map +0 -1
- package/dist/env/utils/output-capture.d.ts +0 -31
- package/dist/env/utils/output-capture.d.ts.map +0 -1
- package/dist/env/utils/output-capture.js +0 -238
- package/dist/env/utils/output-capture.js.map +0 -1
- package/dist/env/utils/truncate.d.ts.map +0 -1
- package/dist/env/utils/truncate.js +0 -294
- package/dist/env/utils/truncate.js.map +0 -1
- package/dist/harness/config.d.ts +0 -20
- package/dist/harness/config.d.ts.map +0 -1
- package/dist/harness/config.js +0 -18
- package/dist/harness/config.js.map +0 -1
- package/docs/chord-delta-findings.md +0 -358
- package/docs/pico-v5-chord-usage.md +0 -373
- package/docs/pico-v5-handoff.md +0 -581
- package/docs/pico-v5.md +0 -3084
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/harness/events.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Context, JsonValue } from \"@earendil-works/chord\";\nimport type { Op, Path } from \"@earendil-works/chord/delta\";\nimport type { AssistantMessage, Message, Usage } from \"@earendil-works/pi-ai\";\nimport { CommittedWatch } from \"../session/observation.ts\";\nimport type {\n\tCommitChange,\n\tCommitPublication,\n\tConversationId,\n\tEntryRecord,\n\tJsonObject,\n\tSubmissionId,\n\tSubmissionRecord,\n\tTaskId,\n\tWatchEnd,\n} from \"../types.ts\";\nimport { AgentDoc } from \"./agent.ts\";\nimport type { InboxItem, InboxState } from \"./inbox.ts\";\nimport type { CompactionStatus, LiveState, ToolSlot } from \"./live.ts\";\nimport type { AgentState, CompactionReason, Harness, ToolDiagnostic } from \"./types.ts\";\nimport { UsageDoc, type UsageState } from \"./usage.ts\";\nimport { scanAll } from \"./util.ts\";\nimport { type ConversationView, conversationViews } from \"./view.ts\";\n\ntype Block = AssistantMessage[\"content\"][number];\ntype QueuedItem = { id: SubmissionId; mode: InboxItem[\"mode\"] };\n\n/** One change to the in-flight assistant message, relative to that message. */\nexport type MessageChange =\n\t| { type: \"text_start\" | \"thinking_start\" | \"toolcall_start\"; contentIndex: number; block: Block }\n\t| { type: \"text_delta\" | \"thinking_delta\"; contentIndex: number; delta: string }\n\t| { type: \"toolcall_delta\"; contentIndex: number; path: readonly (string | number)[]; delta: string }\n\t| { type: \"block\"; contentIndex: number; block: Block }\n\t| { type: \"message\"; message: AssistantMessage };\n\nexport type SnapshotEvent = {\n\ttype: \"snapshot\";\n\tentries: readonly EntryRecord[];\n\trun?: { inputs: readonly SubmissionId[] };\n\t/** Current generation attempt: its in-flight partial, retry backoff, or deferred poll. */\n\tgeneration?: {\n\t\tattempt: number;\n\t\tmessage?: AssistantMessage;\n\t\tretry?: { at: number; error: string };\n\t\tdeferred?: { pollAt: number };\n\t};\n\ttools: readonly ToolSlot[];\n\t/** `pi.live.compactions`: live compactions with their attempt and retry backoff. */\n\tcompactions: readonly CompactionStatus[];\n\tinbox: readonly QueuedItem[];\n\t/** `pi.agent`; `{}` when absent. */\n\tagent: AgentState;\n\tusage: UsageState;\n};\n\n/** Experimental agent event, shaped like the coding agent's session events (spec §9.4). */\nexport type AgentEvent =\n\t| SnapshotEvent\n\t| { type: \"run_start\"; inputs: readonly SubmissionId[] }\n\t| { type: \"run_end\"; inputs: readonly SubmissionId[] }\n\t| { type: \"turn_start\" }\n\t| { type: \"turn_end\" }\n\t| { type: \"message_start\"; message: Message }\n\t/** `usage` is the partial's current usage, as in the coding agent's JSON mode. */\n\t| { type: \"message_update\"; usage: Usage; changes: readonly MessageChange[] }\n\t| { type: \"message_end\"; entry: EntryRecord }\n\t| { type: \"tool_execution_start\"; toolCallId: string; toolName: string; args: JsonObject }\n\t| {\n\t\t\ttype: \"tool_execution_update\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\t/** A front trim and then an append of the retained window, or its replacement. */\n\t\t\toutput?: { trimStart?: number; append?: string } | { set: string };\n\t\t\tdetails?: JsonValue;\n\t\t\tdiagnostics?: readonly ToolDiagnostic[];\n\t }\n\t/** `entry` is absent when the tool task faulted or was orphaned. */\n\t| { type: \"tool_execution_end\"; toolCallId: string; toolName: string; entry?: EntryRecord }\n\t| { type: \"inbox_update\"; items: readonly QueuedItem[] }\n\t| { type: \"submission\"; record: SubmissionRecord }\n\t| { type: \"auto_retry_start\"; attempt: number; at: number; errorMessage: string }\n\t| { type: \"auto_retry_end\"; attempt: number }\n\t| { type: \"deferred_poll\"; pollAt: number }\n\t| { type: \"entry_appended\"; entry: EntryRecord }\n\t| { type: \"agent_changed\"; agent: AgentState }\n\t| { type: \"usage_changed\"; usage: UsageState }\n\t| { type: \"task_failed\"; taskId: TaskId; kind: string; message: string }\n\t| { type: \"compaction_start\"; taskId: TaskId; reason: CompactionReason; blocking: boolean }\n\t/** The task's receipt tells whether it produced a summary; the summary entry has its own events. */\n\t| { type: \"compaction_end\"; taskId: TaskId; reason: CompactionReason };\n\n/** Serialized stream of one conversation's event batches, one per commit. */\nexport interface AgentEventStream {\n\t/** The `snapshot` event at attachment. */\n\treadonly snapshot: SnapshotEvent;\n\tstart(listener: (events: readonly AgentEvent[], context: Context) => Promise<void>): void;\n\tstop(): Promise<WatchEnd>;\n\treadonly closed: Promise<WatchEnd>;\n}\n\n/** The typed parts of a view the events read. */\ntype Parts = {\n\tlive: LiveState;\n\tinbox: InboxState | undefined;\n\tagent: AgentState | undefined;\n\tusage: UsageState | undefined;\n};\n\nfunction parts(view: ConversationView): Parts {\n\treturn {\n\t\tlive: (view.docs[\"pi.live\"] ?? {}) as LiveState,\n\t\tinbox: view.docs[\"pi.inbox\"] as InboxState | undefined,\n\t\tagent: view.docs[\"pi.agent\"] as AgentState | undefined,\n\t\tusage: view.docs[\"pi.usage\"] as UsageState | undefined,\n\t};\n}\n\nfunction snapshotOf(view: ConversationView): SnapshotEvent {\n\tconst { live, inbox, agent, usage } = parts(view);\n\treturn {\n\t\ttype: \"snapshot\",\n\t\tentries: view.entries,\n\t\t...(live.run === undefined ? {} : { run: { inputs: live.run.inputs } }),\n\t\t...(live.generation === undefined ? {} : { generation: live.generation as SnapshotEvent[\"generation\"] }),\n\t\ttools: live.tools ?? [],\n\t\tcompactions: live.compactions ?? [],\n\t\tinbox: queued(inbox),\n\t\tagent: agent ?? AgentDoc.definition.initial(),\n\t\tusage: usage ?? UsageDoc.definition.initial(),\n\t};\n}\n\nfunction queued(inbox: InboxState | undefined): QueuedItem[] {\n\treturn (inbox?.items ?? []).map((item) => ({ id: item.id, mode: item.mode }));\n}\n\n/**\n * Experimental: attach to one conversation's agent events (spec §9.4). The snapshot and the registration for later\n * commits are captured atomically on the Session line; overflow replaces undelivered batches with one snapshot.\n */\nexport async function watchEvents(\n\tharness: Harness,\n\tconversationId: ConversationId,\n\tcontext: Context,\n): Promise<AgentEventStream> {\n\tlet watch!: CommittedWatch<readonly AgentEvent[]>;\n\tlet snapshot!: SnapshotEvent;\n\tawait conversationViews(harness).attach(\n\t\tconversationId,\n\t\tasync (initial, release, storage) => {\n\t\t\t// Generations whose held outcome already ended their turn, read on the line with the snapshot.\n\t\t\tconst query = { conversationId, kind: \"pi.generation\", status: \"completing\" } as const;\n\t\t\tconst completing = await scanAll((cursor) => storage.scanTasks(query, 100, cursor, context));\n\t\t\tconst held = new Set<TaskId>(completing.map((record) => record.id));\n\t\t\tlet current = initial;\n\t\t\tsnapshot = snapshotOf(initial);\n\t\t\t// Batches are the watch's values; an overflow delivers a snapshot of the newest view instead.\n\t\t\twatch = new CommittedWatch<readonly AgentEvent[]>([], release, () => [snapshotOf(current)]);\n\t\t\treturn {\n\t\t\t\tpublication: (before, after, ops, publication, commitContext) => {\n\t\t\t\t\tcurrent = after;\n\t\t\t\t\tconst events = translate(conversationId, before, after, ops, publication, held);\n\t\t\t\t\tif (events.length > 0) watch.advance(events, [], commitContext);\n\t\t\t\t},\n\t\t\t\tcloseSession: () => watch.closeSession(),\n\t\t\t};\n\t\t},\n\t\tcontext,\n\t);\n\t// Like a watch, the acquisition context governs the stream's lifetime.\n\tconst signal = context.abortSignal;\n\tif (signal?.aborted) {\n\t\twatch.cancel();\n\t\tthrow signal.reason;\n\t}\n\tif (signal !== undefined) watch.observeCancellation(signal);\n\treturn {\n\t\tsnapshot,\n\t\tstart: (listener) => watch.start((events, _ops, deliveryContext) => listener(events, deliveryContext)),\n\t\tstop: () => watch.stop(),\n\t\tclosed: watch.closed,\n\t};\n}\n\ntype TaskChange = Extract<CommitChange, { type: \"task\" }>;\n\n/** The tool result for `callId` among `entries`. */\nfunction resultOf(entries: readonly EntryRecord[], callId: string): EntryRecord | undefined {\n\treturn entries.find((entry) => {\n\t\tconst message = entry.model?.[0];\n\t\treturn message?.role === \"toolResult\" && message.toolCallId === callId;\n\t});\n}\n\n/** Every event one publication causes, in the order of spec §9.4. */\nfunction translate(\n\tconversationId: ConversationId,\n\tbefore: ConversationView,\n\tafter: ConversationView,\n\tviewOps: readonly Op[],\n\tpublication: CommitPublication,\n\theld: Set<TaskId>,\n): AgentEvent[] {\n\tconst entries: EntryRecord[] = [];\n\tconst tasks = new Map<TaskId, TaskChange[\"value\"]>();\n\tconst submissions: SubmissionRecord[] = [];\n\tfor (const change of publication.changes) {\n\t\tif (change.type === \"entry\" && change.value.conversationId === conversationId) entries.push(change.value);\n\t\tif (change.type === \"task\" && change.value.conversationId === conversationId)\n\t\t\ttasks.set(change.value.id, change.value);\n\t\tif (change.type === \"submission\" && change.value.conversationId === conversationId) {\n\t\t\tsubmissions.push(change.value);\n\t\t}\n\t}\n\tif (viewOps.length === 0 && entries.length === 0 && tasks.size === 0 && submissions.length === 0) return [];\n\t// Entries are appended in ID order; submission records are published in the order the commit first touched them.\n\tsubmissions.sort((a, b) => a.id - b.id);\n\tconst was = parts(before);\n\tconst now = parts(after);\n\tconst events: AgentEvent[] = [];\n\n\t// Progress: tool starts, the in-flight message, tool updates, retry and deferred state.\n\tconst slotsBefore = new Map((was.live.tools ?? []).map((slot) => [slot.callId, slot]));\n\tconst slots = now.live.tools ?? [];\n\tfor (const slot of slots) {\n\t\tif (slot.status !== \"running\" || slotsBefore.get(slot.callId)?.status === \"running\") continue;\n\t\tconst checkpoint = slot.taskId === undefined ? undefined : tasks.get(slot.taskId)?.state.checkpoint;\n\t\tconst args = (checkpoint as { arguments?: JsonObject } | undefined)?.arguments ?? {};\n\t\tevents.push({ type: \"tool_execution_start\", toolCallId: slot.callId, toolName: slot.name, args });\n\t}\n\tconst partialBefore = was.live.generation?.message as AssistantMessage | undefined;\n\tconst partial = now.live.generation?.message as AssistantMessage | undefined;\n\tif (partial !== undefined && partialBefore === undefined) events.push({ type: \"message_start\", message: partial });\n\telse if (partial !== undefined && partial !== partialBefore) {\n\t\tevents.push({ type: \"message_update\", usage: partial.usage, changes: messageChanges(viewOps, partial) });\n\t}\n\tfor (const [index, slot] of slots.entries()) {\n\t\tconst previous = slotsBefore.get(slot.callId);\n\t\tif (slot.status !== \"running\" || previous?.status !== \"running\") continue;\n\t\tconst update = toolUpdate(viewOps, index, slot, previous);\n\t\tif (update === undefined) continue;\n\t\tevents.push({ type: \"tool_execution_update\", toolCallId: slot.callId, toolName: slot.name, ...update });\n\t}\n\tconst generation = now.live.generation;\n\tconst generationBefore = was.live.generation;\n\tif (generation?.retry !== undefined && generationBefore?.retry === undefined) {\n\t\tconst { at, error } = generation.retry;\n\t\tevents.push({ type: \"auto_retry_start\", attempt: generation.attempt, at, errorMessage: error });\n\t}\n\tif (generationBefore?.retry !== undefined && generation?.retry === undefined) {\n\t\tevents.push({ type: \"auto_retry_end\", attempt: generationBefore.attempt });\n\t}\n\tif (generation?.deferred !== undefined && generation.deferred.pollAt !== generationBefore?.deferred?.pollAt) {\n\t\tevents.push({ type: \"deferred_poll\", pollAt: generation.deferred.pollAt });\n\t}\n\n\t// Tools that end in this commit: a slot that becomes done, one created done (a call not offered), or an unfinished\n\t// one that vanishes because its run ended. A done slot that vanishes ended earlier.\n\tconst toolEnds: Extract<AgentEvent, { type: \"tool_execution_end\" }>[] = [];\n\tconst endTool = (callId: string, name: string, entryId: number | undefined): void => {\n\t\tconst entry = entries.find((candidate) => candidate.id === entryId);\n\t\ttoolEnds.push({\n\t\t\ttype: \"tool_execution_end\",\n\t\t\ttoolCallId: callId,\n\t\t\ttoolName: name,\n\t\t\t...(entry === undefined ? {} : { entry }),\n\t\t});\n\t};\n\tfor (const previous of slotsBefore.values()) {\n\t\tif (previous.status === \"done\") continue;\n\t\tconst slot = slots.find((candidate) => candidate.callId === previous.callId);\n\t\tif (slot?.status === \"done\") endTool(previous.callId, previous.name, slot.entry);\n\t\t// A slot whose run ended in this commit may have had its result appended with it, as for unstarted calls.\n\t\telse if (slot === undefined) endTool(previous.callId, previous.name, resultOf(entries, previous.callId)?.id);\n\t}\n\tfor (const slot of slots) {\n\t\tif (slot.status === \"done\" && !slotsBefore.has(slot.callId)) endTool(slot.callId, slot.name, slot.entry);\n\t}\n\n\t// Entries in append order; a tool's end directly precedes its result's message, as in the coding agent.\n\tlet assistantAppended = false;\n\tfor (const entry of entries) {\n\t\tevents.push(...toolEnds.filter((end) => end.entry === entry));\n\t\tconst message = entry.model?.[0];\n\t\tif (message === undefined) {\n\t\t\tevents.push({ type: \"entry_appended\", entry });\n\t\t\tcontinue;\n\t\t}\n\t\t// A streamed answer already started with its first partial.\n\t\tconst streamed = message.role === \"assistant\" && partialBefore !== undefined && !assistantAppended;\n\t\tif (message.role === \"assistant\") assistantAppended = true;\n\t\tif (!streamed) events.push({ type: \"message_start\", message });\n\t\tevents.push({ type: \"message_end\", entry });\n\t}\n\t// Ends without a result entry: a faulted or orphaned tool, or one whose run ended.\n\tevents.push(...toolEnds.filter((end) => end.entry === undefined));\n\n\t// Compaction ends, task failures, then turn and run ends.\n\tconst compactionsBefore = was.live.compactions ?? [];\n\tconst compactions = now.live.compactions ?? [];\n\tfor (const { taskId, reason } of compactionsBefore) {\n\t\tif (!compactions.some((status) => status.taskId === taskId)) {\n\t\t\tevents.push({ type: \"compaction_end\", taskId, reason });\n\t\t}\n\t}\n\t// A generation's turn ends when its outcome is committed: at a `completing` hold or at terminal, whichever comes\n\t// first, so a successor created at the hold starts after it.\n\tlet turnEnded = false;\n\tfor (const task of tasks.values()) {\n\t\tconst status = task.state.status;\n\t\tif (task.kind === \"pi.generation\" && status === \"completing\" && !held.has(task.id)) {\n\t\t\theld.add(task.id);\n\t\t\tturnEnded = true;\n\t\t}\n\t\tif (status !== \"terminal\") continue;\n\t\tif (task.kind === \"pi.generation\" && !held.delete(task.id)) turnEnded = true;\n\t\tconst outcome = task.state.outcome;\n\t\tif (outcome.status === \"faulted\" || outcome.status === \"orphaned\") {\n\t\t\tconst message = outcome.status === \"faulted\" ? outcome.error.message : outcome.reason;\n\t\t\tevents.push({ type: \"task_failed\", taskId: task.id, kind: task.kind, message });\n\t\t}\n\t}\n\tif (turnEnded) events.push({ type: \"turn_end\" });\n\tconst run = now.live.run;\n\tconst runBefore = was.live.run;\n\tconst runChanged = run?.inputs[0] !== runBefore?.inputs[0];\n\tif (runBefore !== undefined && runChanged) events.push({ type: \"run_end\", inputs: runBefore.inputs });\n\n\t// Submissions, document state, then what began.\n\tfor (const record of submissions) events.push({ type: \"submission\", record });\n\tif (now.inbox !== was.inbox) events.push({ type: \"inbox_update\", items: queued(now.inbox) });\n\t// A retired document reads as its initial value, as in a snapshot.\n\tif (now.agent !== was.agent) {\n\t\tevents.push({ type: \"agent_changed\", agent: now.agent ?? AgentDoc.definition.initial() });\n\t}\n\tif (now.usage !== was.usage)\n\t\tevents.push({ type: \"usage_changed\", usage: now.usage ?? UsageDoc.definition.initial() });\n\tfor (const { taskId, reason, blocking } of compactions) {\n\t\tif (!compactionsBefore.some((status) => status.taskId === taskId)) {\n\t\t\tevents.push({ type: \"compaction_start\", taskId, reason, blocking });\n\t\t}\n\t}\n\tif (run !== undefined && runChanged) events.push({ type: \"run_start\", inputs: run.inputs });\n\tif (run !== undefined && run.taskId !== runBefore?.taskId && tasks.get(run.taskId)?.kind === \"pi.generation\") {\n\t\tevents.push({ type: \"turn_start\" });\n\t}\n\treturn events;\n}\n\nconst PARTIAL_PATH = [\"docs\", \"pi.live\", \"generation\", \"message\"];\n\n/** Translate the view operations on the in-flight message into message changes (spec §9.4). */\nfunction messageChanges(viewOps: readonly Op[], message: AssistantMessage): MessageChange[] {\n\tconst changes: MessageChange[] = [];\n\t// A block sent whole already holds every later change to it in this batch.\n\tconst whole = new Set<number>();\n\tfor (const op of viewOps) {\n\t\t// View operations never replace the root.\n\t\tconst path = op[1] as Path;\n\t\tif (!startsWith(path, PARTIAL_PATH)) {\n\t\t\t// The whole message or generation was replaced.\n\t\t\tif (startsWith(PARTIAL_PATH, path)) return [{ type: \"message\", message }];\n\t\t\tcontinue;\n\t\t}\n\t\tconst rest = path.slice(PARTIAL_PATH.length);\n\t\tif (rest[0] === \"usage\") continue;\n\t\tif (rest[0] !== \"content\") return [{ type: \"message\", message }];\n\t\tif (rest.length === 1) {\n\t\t\tif (op[0] !== \"p\" || op[3] !== 0) return [{ type: \"message\", message }];\n\t\t\tfor (const [offset, block] of (op[4] as unknown as Block[]).entries()) {\n\t\t\t\tconst type =\n\t\t\t\t\tblock.type === \"text\" ? \"text_start\" : block.type === \"thinking\" ? \"thinking_start\" : \"toolcall_start\";\n\t\t\t\tchanges.push({ type, contentIndex: op[2] + offset, block });\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst contentIndex = rest[1] as number;\n\t\tconst field = rest[2];\n\t\tif (whole.has(contentIndex)) continue;\n\t\tif (op[0] === \"a\" && rest.length === 3 && (field === \"text\" || field === \"thinking\")) {\n\t\t\tchanges.push({ type: field === \"text\" ? \"text_delta\" : \"thinking_delta\", contentIndex, delta: op[2] });\n\t\t} else if (op[0] === \"a\" && field === \"arguments\") {\n\t\t\tchanges.push({ type: \"toolcall_delta\", contentIndex, path: rest.slice(3), delta: op[2] });\n\t\t} else {\n\t\t\twhole.add(contentIndex);\n\t\t\tchanges.push({ type: \"block\", contentIndex, block: message.content[contentIndex]! });\n\t\t}\n\t}\n\treturn changes;\n}\n\n/** Output, details, and diagnostics changes of a running slot, from the view operations on it. */\nfunction toolUpdate(\n\tviewOps: readonly Op[],\n\tindex: number,\n\tslot: ToolSlot,\n\tprevious: ToolSlot,\n): Omit<Extract<AgentEvent, { type: \"tool_execution_update\" }>, \"type\" | \"toolCallId\" | \"toolName\"> | undefined {\n\tconst outputPath = [\"docs\", \"pi.live\", \"tools\", index, \"output\"];\n\tlet trimStart = 0;\n\tlet append = \"\";\n\tlet set = false;\n\tfor (const op of viewOps) {\n\t\tif (!startsWith(op[1] as Path, outputPath)) continue;\n\t\tif (op[0] === \"t\") trimStart += op[2];\n\t\telse if (op[0] === \"a\") append += op[2];\n\t\telse set = true;\n\t}\n\tlet output: { trimStart?: number; append?: string } | { set: string } | undefined;\n\tif (set || (slot.output !== previous.output && trimStart === 0 && append === \"\"))\n\t\toutput = { set: slot.output ?? \"\" };\n\telse if (trimStart > 0 || append !== \"\") {\n\t\toutput = { ...(trimStart > 0 ? { trimStart } : {}), ...(append === \"\" ? {} : { append }) };\n\t}\n\t// A safe replay clears a running slot's progress: removed details send `null`, removed diagnostics `[]`.\n\tconst update = {\n\t\t...(output === undefined ? {} : { output }),\n\t\t...(slot.details === previous.details ? {} : { details: slot.details ?? null }),\n\t\t...(slot.diagnostics === previous.diagnostics ? {} : { diagnostics: slot.diagnostics ?? [] }),\n\t};\n\treturn Object.keys(update).length === 0 ? undefined : update;\n}\n\nfunction startsWith(path: Path, prefix: readonly (string | number)[]): boolean {\n\treturn prefix.length <= path.length && prefix.every((segment, index) => path[index] === segment);\n}\n"]}
|
|
@@ -1,36 +1,65 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import { type Draft } from "@earendil-works/chord";
|
|
2
|
+
import type { DeferredHandle, ModelThinkingLevel } from "@earendil-works/pi-ai";
|
|
3
|
+
import type { ConversationId, EntryId, SubmissionId, TaskId, Tx } from "../types.ts";
|
|
4
|
+
import { type LiveState } from "./live.ts";
|
|
5
|
+
import { type ToolTaskResult } from "./tool.ts";
|
|
6
|
+
import type { CompactionResult, ConversationStreamOptions, GenerationHooks, ModelRef } from "./types.ts";
|
|
4
7
|
export type GenerationInput = Record<string, never>;
|
|
5
8
|
export type GenerationCheckpoint = {
|
|
6
9
|
phase: "prepare";
|
|
7
10
|
attempt: number;
|
|
11
|
+
/** The blocking compaction this generation waited for; it starts no other compaction (spec §8.3). */
|
|
12
|
+
compacted?: TaskId<CompactionResult>;
|
|
13
|
+
/** Error text of the overflow that started `compacted`; checked once when `prepare` resumes. */
|
|
14
|
+
overflow?: string;
|
|
8
15
|
} | {
|
|
9
16
|
phase: "request";
|
|
10
17
|
attempt: number;
|
|
18
|
+
compacted?: TaskId<CompactionResult>;
|
|
11
19
|
model: ModelRef;
|
|
12
20
|
thinkingLevel: ModelThinkingLevel;
|
|
13
|
-
/**
|
|
21
|
+
/** The settings' request options when preparation committed; a resend after recovery uses them unchanged. */
|
|
14
22
|
streamOptions: ConversationStreamOptions;
|
|
15
23
|
/** Newest entry included in the request. */
|
|
16
24
|
cutoff: EntryId;
|
|
17
25
|
} | {
|
|
18
26
|
phase: "retry";
|
|
19
27
|
attempt: number;
|
|
28
|
+
compacted?: TaskId<CompactionResult>;
|
|
20
29
|
until: number;
|
|
21
30
|
} | {
|
|
22
31
|
phase: "poll";
|
|
23
32
|
attempt: number;
|
|
33
|
+
compacted?: TaskId<CompactionResult>;
|
|
24
34
|
model: ModelRef;
|
|
35
|
+
cutoff: EntryId;
|
|
25
36
|
handle: DeferredHandle;
|
|
26
37
|
pollAt: number;
|
|
38
|
+
} | {
|
|
39
|
+
/** Waiting on the round's tool tasks, which the generation owns (spec §8.5). */
|
|
40
|
+
phase: "tools";
|
|
41
|
+
/** The tool-calling answer. */
|
|
42
|
+
assistant: EntryId;
|
|
43
|
+
/** Tool tasks created so far, in call order; grows by one per started call of a sequential round. */
|
|
44
|
+
tools: TaskId<ToolTaskResult>[];
|
|
45
|
+
/** Calls of a sequential round not started yet, in call order. */
|
|
46
|
+
pending: string[];
|
|
27
47
|
};
|
|
28
48
|
export type GenerationResult = {
|
|
29
49
|
entryId: EntryId;
|
|
30
50
|
};
|
|
31
51
|
/**
|
|
32
|
-
* Built-in generation task: prepares the positional system prompt, requests or polls the model,
|
|
33
|
-
* the response. The run's inputs live in `pi.live.run`.
|
|
52
|
+
* Built-in generation task: prepares the positional system prompt and tool loadout, requests or polls the model,
|
|
53
|
+
* retries, and classifies the response. The run's inputs live in `pi.live.run`.
|
|
54
|
+
*/
|
|
55
|
+
export declare const GenerationTask: import("../types.ts").Task<GenerationInput, GenerationCheckpoint, GenerationResult, GenerationHooks>;
|
|
56
|
+
/**
|
|
57
|
+
* Append a committed partial left by an interrupted, aborted, faulted, or orphaned attempt as an aborted assistant
|
|
58
|
+
* entry; the caller replaces or removes `generation`.
|
|
34
59
|
*/
|
|
35
|
-
export declare
|
|
60
|
+
export declare function convertPartial(tx: Tx, live: Draft<LiveState>, conversationId: ConversationId): Promise<void>;
|
|
61
|
+
/** Start a run for `inputs`, placed input submissions: a new generation takes `pi.live.run`. */
|
|
62
|
+
export declare function startRun(tx: Tx, conversationId: ConversationId, live: Draft<LiveState>, inputs: SubmissionId[]): Promise<void>;
|
|
63
|
+
/** Hand run control from `from` to `to`; the run's inputs move with it. */
|
|
64
|
+
export declare function handOver(live: Draft<LiveState>, from: TaskId, to: TaskId): void;
|
|
36
65
|
//# sourceMappingURL=generation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../../src/harness/generation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../../src/harness/generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,KAAK,EAAkB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAGX,cAAc,EAGd,kBAAkB,EAGlB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EACX,cAAc,EACd,OAAO,EAEP,YAAY,EACZ,MAAM,EAEN,EAAE,EAEF,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAmB,KAAK,SAAS,EAAiB,MAAM,WAAW,CAAC;AAE3E,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,KAAK,EAEX,gBAAgB,EAEhB,yBAAyB,EACzB,eAAe,EACf,QAAQ,EAIR,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEpD,MAAM,MAAM,oBAAoB,GAC7B;IACA,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACA,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrC,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,EAAE,kBAAkB,CAAC;IAClC,6GAA6G;IAC7G,aAAa,EAAE,yBAAyB,CAAC;IACzC,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;CACf,GACD;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxF;IACA,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrC,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CACd,GACD;IACA,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,qGAAqG;IACrG,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;IAChC,kEAAkE;IAClE,OAAO,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEL,MAAM,MAAM,gBAAgB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAoBpD;;;GAGG;AACH,eAAO,MAAM,cAAc,sGAsKzB,CAAC;AAkEH;;;GAGG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlH;AA+SD,gGAAgG;AAChG,wBAAsB,QAAQ,CAC7B,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EACtB,MAAM,EAAE,YAAY,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CAEf;AAOD,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAE/E"}
|