@agentshouse/mdruntime-adapter 0.1.0-alpha.17 → 0.1.0-alpha.18
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/AGENTS.md +34 -18
- package/dist/write.d.ts.map +1 -1
- package/dist/write.js +9 -4
- package/dist/write.js.map +1 -1
- package/package.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -7,7 +7,7 @@ enforcement.
|
|
|
7
7
|
## The MD Runtime API
|
|
8
8
|
|
|
9
9
|
App code reaches the MD Runtime through the remote client. The surfaces are
|
|
10
|
-
Rooms, Slots, Query, Observe, Types, Draft, Save,
|
|
10
|
+
Rooms, Slots, Query, Observe, Types, Room Draft, Save, History, Call, Log,
|
|
11
11
|
storage loss, the reported persistence answer, deployment facts, Sync Status, reauthorization,
|
|
12
12
|
conversation, the chat draft, and Presentation State.
|
|
13
13
|
|
|
@@ -22,7 +22,7 @@ queued.
|
|
|
22
22
|
Slots answers each Slot the Provider declares, in its order, with its entries
|
|
23
23
|
in order, each a Room and its segment; a Room two Slots list is the same Room.
|
|
24
24
|
|
|
25
|
-
Rooms, Slots, Query, Observe, Types, Draft, and Save never touch the network.
|
|
25
|
+
Rooms, Slots, Query, Observe, Types, Room Draft, and Save never touch the network.
|
|
26
26
|
History and Call go to the Provider through the Adapter. Every member of the
|
|
27
27
|
client is asynchronous. Results are detached snapshots. Nothing in this
|
|
28
28
|
surface returns the authorization, performs a request the App's code
|
|
@@ -36,24 +36,40 @@ owns their boundary.
|
|
|
36
36
|
The in-memory Adapter at `@agentshouse/mdruntime/memory` is for tests and
|
|
37
37
|
ships in no bundle.
|
|
38
38
|
|
|
39
|
-
## Draft, Save, and outcome rules
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
## Room Draft, Save, and outcome rules
|
|
40
|
+
|
|
41
|
+
The MD Runtime owns one Room Draft per Room and Path, shared by every App and
|
|
42
|
+
tab. It is durable: it survives reload and navigation. A Room that Discovery
|
|
43
|
+
stops listing takes its Room Drafts, its queue and their outcomes with it.
|
|
44
|
+
Write a Room Draft with `roomDraft.write(room, path, revision, parts)`, naming
|
|
45
|
+
the revision you read, or `null` when there was none, and every part it should
|
|
46
|
+
now change: fields, sections and the preamble, or the whole Markdown, a
|
|
47
|
+
creation, a move, or a removal. A part new to the Room Draft names its base,
|
|
48
|
+
the value you showed when it was opened; the MD Runtime keeps a part's first
|
|
49
|
+
base. A write or a discard from an older revision is refused as `stale` with
|
|
50
|
+
the current Room Draft; read it and write again.
|
|
51
|
+
|
|
52
|
+
Save takes one Room and the Room Drafts of it to save, each with its revision,
|
|
53
|
+
validates locally, and on success appends one Change Batch to that Room's
|
|
54
|
+
queue and removes those Room Drafts. It is refused as `stale`, as
|
|
55
|
+
`changed-underneath` naming each part whose base no longer matches the visible
|
|
56
|
+
state, or by a local validation rule, and then creates nothing and leaves every
|
|
57
|
+
Room Draft in place. A directory move is a move part on each Document beneath
|
|
58
|
+
it, saved together.
|
|
46
59
|
|
|
47
60
|
Outcomes follow the Provider's answer. Accepted advances the confirmed
|
|
48
|
-
layer. Conflicted and Rejected
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
layer. Conflicted and Rejected, an expired outcome record, and a change that no
|
|
62
|
+
longer applies over the Room each leave the queue and return as Room Drafts on
|
|
63
|
+
the Documents they changed, marked with why: the Provider's structured refusal
|
|
64
|
+
code and fields as returned, not known to have applied, or withdrawn locally.
|
|
65
|
+
The rest of the queue keeps synchronizing, and Sync Status requires attention
|
|
66
|
+
until each returned Room Draft is saved again or discarded. `outcome` answers
|
|
67
|
+
the saved Change Batch's outcome, and `null` while it is Pending. Transport
|
|
68
|
+
failure and Provider unavailability keep work Pending and do not infer a
|
|
69
|
+
rejection. A refusal the Provider marks retryable stays Pending until the reset
|
|
70
|
+
it names; the MD Runtime retries the same Change Batch identity and payload and
|
|
71
|
+
never infers an outcome from transport uncertainty. The MD Runtime never
|
|
72
|
+
combines, reorders, or rebases.
|
|
57
73
|
|
|
58
74
|
## The neutrality rule
|
|
59
75
|
|
package/dist/write.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EAEb,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EAEb,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AA2GrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAQ1F;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAK/D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,MAAM,EAAE,CAQhF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAEpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1D;AAqCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,cAAc,CAsDhB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;IAEjF,IAAI,EAAE,UAAU;IAChB,QAAQ;IACR,IAAI;IACJ,MAAM;QAAI,IAAI;;EAEjB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,aAAa,CAoDf"}
|
package/dist/write.js
CHANGED
|
@@ -26,7 +26,12 @@ function priorExistence(batch, path) {
|
|
|
26
26
|
kind: 'presence'
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function created(change, path) {
|
|
30
|
+
if ('content' in change) return {
|
|
31
|
+
op: 'create',
|
|
32
|
+
path,
|
|
33
|
+
content: change.content
|
|
34
|
+
};
|
|
30
35
|
const { type, ...fields } = change.fields;
|
|
31
36
|
if (typeof type !== 'string' || type.length === 0) return null;
|
|
32
37
|
return {
|
|
@@ -89,11 +94,11 @@ function operationOf(batch, change, handle) {
|
|
|
89
94
|
if (priorAbsence(batch, change.path) === undefined) return {
|
|
90
95
|
rule: 'precondition-missing'
|
|
91
96
|
};
|
|
92
|
-
const
|
|
93
|
-
return
|
|
97
|
+
const operation = created(change, path);
|
|
98
|
+
return operation === null ? {
|
|
94
99
|
rule: 'type-missing'
|
|
95
100
|
} : {
|
|
96
|
-
operation
|
|
101
|
+
operation
|
|
97
102
|
};
|
|
98
103
|
}
|
|
99
104
|
const existence = priorExistence(batch, change.path);
|
package/dist/write.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/workspace/packages/mdruntime-adapter/src/write.ts"],"sourcesContent":["import type {\n Change,\n ChangeBatch,\n HistoryResult,\n HistoryRevision,\n MutationResult,\n Precondition,\n} from '@agentshouse/mdruntime';\nimport { sha256Hex, textBytes } from './digest.js';\nimport { nativePath, roomLocalPath } from './map.js';\nimport { classifyDoor, doorRefusal, scopedRefusal } from './refusal.js';\nimport { readPosition, roomVersion } from './version.js';\n\nexport const INLINE_BODY_LIMIT_BYTES = 4 * 1024 * 1024;\n\nexport const UPLOAD_LINE_BYTES = 37;\n\nexport const UPLOAD_BYTES_MAX = 32 * 1024 * 1024 - UPLOAD_LINE_BYTES;\n\nexport type HouseOperation = Readonly<Record<string, unknown>>;\n\nexport type ChangeMapping =\n | { kind: 'changes'; changes: readonly HouseOperation[] }\n | { kind: 'unmapped'; path: string; rule: string };\n\ntype Existence = { base: string } | { kind: 'presence' };\n\nfunction priorField(batch: ChangeBatch, path: string, name: string) {\n return batch.preconditions.find(\n (precondition): precondition is Extract<Precondition, { kind: 'field' }> =>\n precondition.kind === 'field' && precondition.path === path && precondition.name === name,\n );\n}\n\nfunction priorSection(batch: ChangeBatch, path: string, name: string) {\n return batch.preconditions.find(\n (precondition): precondition is Extract<Precondition, { kind: 'section' }> =>\n precondition.kind === 'section' && precondition.path === path && precondition.name === name,\n );\n}\n\nfunction priorPreamble(batch: ChangeBatch, path: string) {\n return batch.preconditions.find(\n (precondition): precondition is Extract<Precondition, { kind: 'preamble' }> =>\n precondition.kind === 'preamble' && precondition.path === path,\n );\n}\n\nfunction priorAbsence(batch: ChangeBatch, path: string) {\n return batch.preconditions.find(\n (precondition) => precondition.kind === 'absent' && precondition.path === path,\n );\n}\n\nfunction priorExistence(batch: ChangeBatch, path: string): Existence | undefined {\n const precondition = batch.preconditions.find(\n (held) => held.path === path && (held.kind === 'revision' || held.kind === 'present'),\n );\n if (precondition === undefined) return undefined;\n return precondition.kind === 'revision' ? { base: precondition.revision } : { kind: 'presence' };\n}\n\nfunction typedCreate(\n change: Extract<Change, { kind: 'create' }>,\n path: string,\n): HouseOperation | null {\n const { type, ...fields } = change.fields;\n if (typeof type !== 'string' || type.length === 0) return null;\n return { op: 'create_typed', path, type, fields, sections: change.sections };\n}\n\ntype MappedOperation = { operation: HouseOperation } | { rule: string };\n\nfunction operationOf(\n batch: ChangeBatch,\n change: Change,\n handle: string | undefined,\n): MappedOperation {\n const path = nativePath(change.path, handle);\n if (change.kind === 'field') {\n const prior = priorField(batch, change.path, change.name);\n if (prior === undefined) return { rule: 'precondition-missing' };\n return {\n operation: {\n op: 'set_field',\n path,\n field: change.name,\n value: change.value,\n ...(prior.value === undefined ? {} : { base: prior.value }),\n },\n };\n }\n if (change.kind === 'section') {\n const prior = priorSection(batch, change.path, change.name);\n if (prior === undefined) return { rule: 'precondition-missing' };\n return {\n operation: {\n op: 'replace_section',\n path,\n section: change.name,\n base: prior.value,\n content: change.value,\n },\n };\n }\n if (change.kind === 'preamble') {\n const prior = priorPreamble(batch, change.path);\n if (prior === undefined) return { rule: 'precondition-missing' };\n return {\n operation: { op: 'replace_preamble', path, base: prior.value, content: change.value },\n };\n }\n if (change.kind === 'create') {\n if (priorAbsence(batch, change.path) === undefined) return { rule: 'precondition-missing' };\n const created = typedCreate(change, path);\n return created === null ? { rule: 'type-missing' } : { operation: created };\n }\n const existence = priorExistence(batch, change.path);\n if (existence === undefined) return { rule: 'precondition-missing' };\n if (!('base' in existence)) return { rule: 'presence-base-unrepresentable' };\n if (change.kind === 'replace') {\n return { operation: { op: 'replace', path, base: existence.base, content: change.content } };\n }\n if (change.kind === 'move') {\n if (priorAbsence(batch, change.to) === undefined) return { rule: 'precondition-missing' };\n return {\n operation: { op: 'rename', path, to: nativePath(change.to, handle), base: existence.base },\n };\n }\n return { operation: { op: 'remove', path, base: existence.base } };\n}\n\nexport function houseChanges(batch: ChangeBatch, handle: string | undefined): ChangeMapping {\n const changes: HouseOperation[] = [];\n for (const change of batch.changes) {\n const mapped = operationOf(batch, change, handle);\n if ('rule' in mapped) return { kind: 'unmapped', path: change.path, rule: mapped.rule };\n changes.push(mapped.operation);\n }\n return { kind: 'changes', changes };\n}\n\nexport type OperationHead = {\n readonly operation_id: string;\n readonly app_ref?: string;\n readonly release?: string;\n};\n\nexport function operationHead(batch: ChangeBatch): OperationHead {\n const writer = batch.writtenBy;\n return writer === undefined\n ? { operation_id: batch.id }\n : { operation_id: batch.id, app_ref: writer.app, release: writer.release };\n}\n\nexport function batchPaths(changes: readonly HouseOperation[]): readonly string[] {\n return [\n ...new Set(\n changes.flatMap((change) =>\n change.op === 'rename' ? [String(change.path), String(change.to)] : [String(change.path)],\n ),\n ),\n ].sort();\n}\n\nexport function deltaBody(changes: readonly HouseOperation[]): string {\n return JSON.stringify({ changes });\n}\n\nexport function deltaBytes(delta: string): number {\n return textBytes(delta);\n}\n\nexport function uploadable(bytes: number): boolean {\n return bytes > INLINE_BODY_LIMIT_BYTES && bytes <= UPLOAD_BYTES_MAX;\n}\n\nexport function deltaDigest(delta: string): Promise<string> {\n return sha256Hex(delta);\n}\n\ntype Material = { path: string; content: string | null; revision: string | null };\n\nfunction material(value: unknown, handle: string | undefined): readonly Material[] | null {\n if (!Array.isArray(value)) return null;\n const held: Material[] = [];\n for (const entry of value) {\n if (typeof entry !== 'object' || entry === null) return null;\n const file = entry as Record<string, unknown>;\n if (typeof file.path !== 'string') return null;\n if (file.content !== null && typeof file.content !== 'string') return null;\n if (file.revision !== null && file.revision !== undefined && typeof file.revision !== 'string')\n return null;\n let path: string;\n try {\n path = roomLocalPath(file.path, handle);\n } catch {\n return null;\n }\n held.push({\n path,\n content: file.content,\n revision: typeof file.revision === 'string' ? file.revision : null,\n });\n }\n return held;\n}\n\nfunction affectedOf(held: readonly Material[]): Readonly<Record<string, string>> {\n const affected: Record<string, string> = {};\n for (const entry of held) {\n if (entry.content !== null) affected[entry.path] = entry.content;\n }\n return affected;\n}\n\nexport function mutationOutcome(\n status: number,\n body: unknown,\n locator: string,\n handle: string | undefined,\n): MutationResult {\n const refusal = doorRefusal(body);\n if (refusal !== null && refusal.code === 'rate_limited') {\n const reset = refusal.fields.retry_at;\n return {\n kind: 'retryable-refusal',\n code: refusal.code,\n fields: refusal.fields,\n ...(typeof reset === 'string' ? { reset } : {}),\n };\n }\n if (refusal !== null && refusal.code === 'operation_expired') return { kind: 'expired' };\n if (refusal !== null && refusal.code === 'edit_conflict') {\n const { current, ...fields } = refusal.fields;\n const held = material(current, handle) ?? [];\n return { kind: 'conflicted', affected: affectedOf(held), code: refusal.code, fields };\n }\n if (refusal !== null && status === 404) {\n return scopedRefusal(locator, 'undisclosed', refusal);\n }\n const classified = classifyDoor(status, body, locator);\n if (classified !== null && classified.kind !== 'scoped-refusal') {\n return classified.kind === 'beyond-horizon' ? { kind: 'expired' } : classified;\n }\n if (classified !== null && status === 403) return classified;\n if (refusal !== null && status >= 400) {\n return { kind: 'rejected', affected: {}, code: refusal.code, fields: refusal.fields };\n }\n if (status !== 200 || typeof body !== 'object' || body === null) {\n return { kind: 'transport-uncertainty' };\n }\n const held = body as Record<string, unknown>;\n const at = readPosition(held);\n if (at === null) return { kind: 'transport-uncertainty' };\n const contents = material(held.contents, handle);\n if (contents === null) return { kind: 'transport-uncertainty' };\n const documents: Record<string, string> = {};\n const revisions: Record<string, string> = {};\n const removals: string[] = [];\n for (const entry of contents) {\n if (entry.content === null || entry.revision === null) {\n removals.push(entry.path);\n continue;\n }\n documents[entry.path] = entry.content;\n revisions[entry.path] = entry.revision;\n }\n return {\n kind: 'accepted',\n roomVersion: roomVersion(at),\n documents,\n revisions,\n removals: removals.sort(),\n };\n}\n\nexport function rejectedMapping(mapping: Extract<ChangeMapping, { kind: 'unmapped' }>) {\n return {\n kind: 'rejected' as const,\n affected: {},\n code: mapping.rule,\n fields: { path: mapping.path },\n };\n}\n\nexport function revisionBody(input: {\n path: string;\n handle: string | undefined;\n revision?: string;\n pageToken?: string;\n}): Record<string, unknown> {\n return {\n path: nativePath(input.path, input.handle),\n ...(input.revision === undefined ? {} : { revision: input.revision }),\n ...(input.pageToken === undefined ? {} : { before: Number(input.pageToken) }),\n };\n}\n\nexport function historyOutcome(\n status: number,\n body: unknown,\n locator: string,\n request: { path: string; revision?: string },\n): HistoryResult {\n const classified = classifyDoor(status, body, locator);\n if (classified !== null) {\n return classified.kind === 'beyond-horizon' ? { kind: 'transport-uncertainty' } : classified;\n }\n if (status !== 200 || typeof body !== 'object' || body === null) {\n return { kind: 'transport-uncertainty' };\n }\n const held = body as Record<string, unknown>;\n if (!Array.isArray(held.revisions)) return { kind: 'transport-uncertainty' };\n const entries: Record<string, unknown>[] = [];\n for (const entry of held.revisions) {\n if (typeof entry !== 'object' || entry === null) return { kind: 'transport-uncertainty' };\n entries.push(entry as Record<string, unknown>);\n }\n if (request.revision !== undefined) {\n const named = entries[0];\n if (named === undefined) return { kind: 'no-history' };\n if (named.unavailable === true) {\n return {\n kind: 'scoped-refusal',\n locator,\n scope: 'content',\n code: 'retained_history_unavailable',\n fields: { path: request.path, revision: request.revision },\n };\n }\n if (typeof named.content !== 'string') return { kind: 'transport-uncertainty' };\n return { kind: 'revision', content: named.content };\n }\n if (entries.length === 0) return { kind: 'no-history' };\n const revisions: HistoryRevision[] = [];\n for (const entry of entries) {\n if (\n typeof entry.revision !== 'string' ||\n typeof entry.author_user !== 'string' ||\n typeof entry.created_at !== 'string'\n ) {\n return { kind: 'transport-uncertainty' };\n }\n revisions.push({\n revision: entry.revision,\n author: entry.author_user,\n time: entry.created_at,\n });\n }\n const next = held.next_before;\n return {\n kind: 'history',\n revisions,\n ...(typeof next === 'number' ? { pageToken: String(next) } : {}),\n };\n}\n"],"names":["sha256Hex","textBytes","nativePath","roomLocalPath","classifyDoor","doorRefusal","scopedRefusal","readPosition","roomVersion","INLINE_BODY_LIMIT_BYTES","UPLOAD_LINE_BYTES","UPLOAD_BYTES_MAX","priorField","batch","path","name","preconditions","find","precondition","kind","priorSection","priorPreamble","priorAbsence","priorExistence","held","undefined","base","revision","typedCreate","change","type","fields","length","op","sections","operationOf","handle","prior","rule","operation","field","value","section","content","created","existence","to","houseChanges","changes","mapped","push","operationHead","writer","writtenBy","operation_id","id","app_ref","app","release","batchPaths","Set","flatMap","String","sort","deltaBody","JSON","stringify","deltaBytes","delta","uploadable","bytes","deltaDigest","material","Array","isArray","entry","file","affectedOf","affected","mutationOutcome","status","body","locator","refusal","code","reset","retry_at","current","classified","at","contents","documents","revisions","removals","rejectedMapping","mapping","revisionBody","input","pageToken","before","Number","historyOutcome","request","entries","named","unavailable","scope","author_user","created_at","author","time","next","next_before"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["/workspace/packages/mdruntime-adapter/src/write.ts"],"sourcesContent":["import type {\n Change,\n ChangeBatch,\n HistoryResult,\n HistoryRevision,\n MutationResult,\n Precondition,\n} from '@agentshouse/mdruntime';\nimport { sha256Hex, textBytes } from './digest.js';\nimport { nativePath, roomLocalPath } from './map.js';\nimport { classifyDoor, doorRefusal, scopedRefusal } from './refusal.js';\nimport { readPosition, roomVersion } from './version.js';\n\nexport const INLINE_BODY_LIMIT_BYTES = 4 * 1024 * 1024;\n\nexport const UPLOAD_LINE_BYTES = 37;\n\nexport const UPLOAD_BYTES_MAX = 32 * 1024 * 1024 - UPLOAD_LINE_BYTES;\n\nexport type HouseOperation = Readonly<Record<string, unknown>>;\n\nexport type ChangeMapping =\n | { kind: 'changes'; changes: readonly HouseOperation[] }\n | { kind: 'unmapped'; path: string; rule: string };\n\ntype Existence = { base: string } | { kind: 'presence' };\n\nfunction priorField(batch: ChangeBatch, path: string, name: string) {\n return batch.preconditions.find(\n (precondition): precondition is Extract<Precondition, { kind: 'field' }> =>\n precondition.kind === 'field' && precondition.path === path && precondition.name === name,\n );\n}\n\nfunction priorSection(batch: ChangeBatch, path: string, name: string) {\n return batch.preconditions.find(\n (precondition): precondition is Extract<Precondition, { kind: 'section' }> =>\n precondition.kind === 'section' && precondition.path === path && precondition.name === name,\n );\n}\n\nfunction priorPreamble(batch: ChangeBatch, path: string) {\n return batch.preconditions.find(\n (precondition): precondition is Extract<Precondition, { kind: 'preamble' }> =>\n precondition.kind === 'preamble' && precondition.path === path,\n );\n}\n\nfunction priorAbsence(batch: ChangeBatch, path: string) {\n return batch.preconditions.find(\n (precondition) => precondition.kind === 'absent' && precondition.path === path,\n );\n}\n\nfunction priorExistence(batch: ChangeBatch, path: string): Existence | undefined {\n const precondition = batch.preconditions.find(\n (held) => held.path === path && (held.kind === 'revision' || held.kind === 'present'),\n );\n if (precondition === undefined) return undefined;\n return precondition.kind === 'revision' ? { base: precondition.revision } : { kind: 'presence' };\n}\n\nfunction created(change: Extract<Change, { kind: 'create' }>, path: string): HouseOperation | null {\n if ('content' in change) return { op: 'create', path, content: change.content };\n const { type, ...fields } = change.fields;\n if (typeof type !== 'string' || type.length === 0) return null;\n return { op: 'create_typed', path, type, fields, sections: change.sections };\n}\n\ntype MappedOperation = { operation: HouseOperation } | { rule: string };\n\nfunction operationOf(\n batch: ChangeBatch,\n change: Change,\n handle: string | undefined,\n): MappedOperation {\n const path = nativePath(change.path, handle);\n if (change.kind === 'field') {\n const prior = priorField(batch, change.path, change.name);\n if (prior === undefined) return { rule: 'precondition-missing' };\n return {\n operation: {\n op: 'set_field',\n path,\n field: change.name,\n value: change.value,\n ...(prior.value === undefined ? {} : { base: prior.value }),\n },\n };\n }\n if (change.kind === 'section') {\n const prior = priorSection(batch, change.path, change.name);\n if (prior === undefined) return { rule: 'precondition-missing' };\n return {\n operation: {\n op: 'replace_section',\n path,\n section: change.name,\n base: prior.value,\n content: change.value,\n },\n };\n }\n if (change.kind === 'preamble') {\n const prior = priorPreamble(batch, change.path);\n if (prior === undefined) return { rule: 'precondition-missing' };\n return {\n operation: { op: 'replace_preamble', path, base: prior.value, content: change.value },\n };\n }\n if (change.kind === 'create') {\n if (priorAbsence(batch, change.path) === undefined) return { rule: 'precondition-missing' };\n const operation = created(change, path);\n return operation === null ? { rule: 'type-missing' } : { operation };\n }\n const existence = priorExistence(batch, change.path);\n if (existence === undefined) return { rule: 'precondition-missing' };\n if (!('base' in existence)) return { rule: 'presence-base-unrepresentable' };\n if (change.kind === 'replace') {\n return { operation: { op: 'replace', path, base: existence.base, content: change.content } };\n }\n if (change.kind === 'move') {\n if (priorAbsence(batch, change.to) === undefined) return { rule: 'precondition-missing' };\n return {\n operation: { op: 'rename', path, to: nativePath(change.to, handle), base: existence.base },\n };\n }\n return { operation: { op: 'remove', path, base: existence.base } };\n}\n\nexport function houseChanges(batch: ChangeBatch, handle: string | undefined): ChangeMapping {\n const changes: HouseOperation[] = [];\n for (const change of batch.changes) {\n const mapped = operationOf(batch, change, handle);\n if ('rule' in mapped) return { kind: 'unmapped', path: change.path, rule: mapped.rule };\n changes.push(mapped.operation);\n }\n return { kind: 'changes', changes };\n}\n\nexport type OperationHead = {\n readonly operation_id: string;\n readonly app_ref?: string;\n readonly release?: string;\n};\n\nexport function operationHead(batch: ChangeBatch): OperationHead {\n const writer = batch.writtenBy;\n return writer === undefined\n ? { operation_id: batch.id }\n : { operation_id: batch.id, app_ref: writer.app, release: writer.release };\n}\n\nexport function batchPaths(changes: readonly HouseOperation[]): readonly string[] {\n return [\n ...new Set(\n changes.flatMap((change) =>\n change.op === 'rename' ? [String(change.path), String(change.to)] : [String(change.path)],\n ),\n ),\n ].sort();\n}\n\nexport function deltaBody(changes: readonly HouseOperation[]): string {\n return JSON.stringify({ changes });\n}\n\nexport function deltaBytes(delta: string): number {\n return textBytes(delta);\n}\n\nexport function uploadable(bytes: number): boolean {\n return bytes > INLINE_BODY_LIMIT_BYTES && bytes <= UPLOAD_BYTES_MAX;\n}\n\nexport function deltaDigest(delta: string): Promise<string> {\n return sha256Hex(delta);\n}\n\ntype Material = { path: string; content: string | null; revision: string | null };\n\nfunction material(value: unknown, handle: string | undefined): readonly Material[] | null {\n if (!Array.isArray(value)) return null;\n const held: Material[] = [];\n for (const entry of value) {\n if (typeof entry !== 'object' || entry === null) return null;\n const file = entry as Record<string, unknown>;\n if (typeof file.path !== 'string') return null;\n if (file.content !== null && typeof file.content !== 'string') return null;\n if (file.revision !== null && file.revision !== undefined && typeof file.revision !== 'string')\n return null;\n let path: string;\n try {\n path = roomLocalPath(file.path, handle);\n } catch {\n return null;\n }\n held.push({\n path,\n content: file.content,\n revision: typeof file.revision === 'string' ? file.revision : null,\n });\n }\n return held;\n}\n\nfunction affectedOf(held: readonly Material[]): Readonly<Record<string, string>> {\n const affected: Record<string, string> = {};\n for (const entry of held) {\n if (entry.content !== null) affected[entry.path] = entry.content;\n }\n return affected;\n}\n\nexport function mutationOutcome(\n status: number,\n body: unknown,\n locator: string,\n handle: string | undefined,\n): MutationResult {\n const refusal = doorRefusal(body);\n if (refusal !== null && refusal.code === 'rate_limited') {\n const reset = refusal.fields.retry_at;\n return {\n kind: 'retryable-refusal',\n code: refusal.code,\n fields: refusal.fields,\n ...(typeof reset === 'string' ? { reset } : {}),\n };\n }\n if (refusal !== null && refusal.code === 'operation_expired') return { kind: 'expired' };\n if (refusal !== null && refusal.code === 'edit_conflict') {\n const { current, ...fields } = refusal.fields;\n const held = material(current, handle) ?? [];\n return { kind: 'conflicted', affected: affectedOf(held), code: refusal.code, fields };\n }\n if (refusal !== null && status === 404) {\n return scopedRefusal(locator, 'undisclosed', refusal);\n }\n const classified = classifyDoor(status, body, locator);\n if (classified !== null && classified.kind !== 'scoped-refusal') {\n return classified.kind === 'beyond-horizon' ? { kind: 'expired' } : classified;\n }\n if (classified !== null && status === 403) return classified;\n if (refusal !== null && status >= 400) {\n return { kind: 'rejected', affected: {}, code: refusal.code, fields: refusal.fields };\n }\n if (status !== 200 || typeof body !== 'object' || body === null) {\n return { kind: 'transport-uncertainty' };\n }\n const held = body as Record<string, unknown>;\n const at = readPosition(held);\n if (at === null) return { kind: 'transport-uncertainty' };\n const contents = material(held.contents, handle);\n if (contents === null) return { kind: 'transport-uncertainty' };\n const documents: Record<string, string> = {};\n const revisions: Record<string, string> = {};\n const removals: string[] = [];\n for (const entry of contents) {\n if (entry.content === null || entry.revision === null) {\n removals.push(entry.path);\n continue;\n }\n documents[entry.path] = entry.content;\n revisions[entry.path] = entry.revision;\n }\n return {\n kind: 'accepted',\n roomVersion: roomVersion(at),\n documents,\n revisions,\n removals: removals.sort(),\n };\n}\n\nexport function rejectedMapping(mapping: Extract<ChangeMapping, { kind: 'unmapped' }>) {\n return {\n kind: 'rejected' as const,\n affected: {},\n code: mapping.rule,\n fields: { path: mapping.path },\n };\n}\n\nexport function revisionBody(input: {\n path: string;\n handle: string | undefined;\n revision?: string;\n pageToken?: string;\n}): Record<string, unknown> {\n return {\n path: nativePath(input.path, input.handle),\n ...(input.revision === undefined ? {} : { revision: input.revision }),\n ...(input.pageToken === undefined ? {} : { before: Number(input.pageToken) }),\n };\n}\n\nexport function historyOutcome(\n status: number,\n body: unknown,\n locator: string,\n request: { path: string; revision?: string },\n): HistoryResult {\n const classified = classifyDoor(status, body, locator);\n if (classified !== null) {\n return classified.kind === 'beyond-horizon' ? { kind: 'transport-uncertainty' } : classified;\n }\n if (status !== 200 || typeof body !== 'object' || body === null) {\n return { kind: 'transport-uncertainty' };\n }\n const held = body as Record<string, unknown>;\n if (!Array.isArray(held.revisions)) return { kind: 'transport-uncertainty' };\n const entries: Record<string, unknown>[] = [];\n for (const entry of held.revisions) {\n if (typeof entry !== 'object' || entry === null) return { kind: 'transport-uncertainty' };\n entries.push(entry as Record<string, unknown>);\n }\n if (request.revision !== undefined) {\n const named = entries[0];\n if (named === undefined) return { kind: 'no-history' };\n if (named.unavailable === true) {\n return {\n kind: 'scoped-refusal',\n locator,\n scope: 'content',\n code: 'retained_history_unavailable',\n fields: { path: request.path, revision: request.revision },\n };\n }\n if (typeof named.content !== 'string') return { kind: 'transport-uncertainty' };\n return { kind: 'revision', content: named.content };\n }\n if (entries.length === 0) return { kind: 'no-history' };\n const revisions: HistoryRevision[] = [];\n for (const entry of entries) {\n if (\n typeof entry.revision !== 'string' ||\n typeof entry.author_user !== 'string' ||\n typeof entry.created_at !== 'string'\n ) {\n return { kind: 'transport-uncertainty' };\n }\n revisions.push({\n revision: entry.revision,\n author: entry.author_user,\n time: entry.created_at,\n });\n }\n const next = held.next_before;\n return {\n kind: 'history',\n revisions,\n ...(typeof next === 'number' ? { pageToken: String(next) } : {}),\n };\n}\n"],"names":["sha256Hex","textBytes","nativePath","roomLocalPath","classifyDoor","doorRefusal","scopedRefusal","readPosition","roomVersion","INLINE_BODY_LIMIT_BYTES","UPLOAD_LINE_BYTES","UPLOAD_BYTES_MAX","priorField","batch","path","name","preconditions","find","precondition","kind","priorSection","priorPreamble","priorAbsence","priorExistence","held","undefined","base","revision","created","change","op","content","type","fields","length","sections","operationOf","handle","prior","rule","operation","field","value","section","existence","to","houseChanges","changes","mapped","push","operationHead","writer","writtenBy","operation_id","id","app_ref","app","release","batchPaths","Set","flatMap","String","sort","deltaBody","JSON","stringify","deltaBytes","delta","uploadable","bytes","deltaDigest","material","Array","isArray","entry","file","affectedOf","affected","mutationOutcome","status","body","locator","refusal","code","reset","retry_at","current","classified","at","contents","documents","revisions","removals","rejectedMapping","mapping","revisionBody","input","pageToken","before","Number","historyOutcome","request","entries","named","unavailable","scope","author_user","created_at","author","time","next","next_before"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentshouse/mdruntime-adapter",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.18",
|
|
4
4
|
"description": "Agents House Adapter for the MD Runtime",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"url": "https://github.com/agentshouse/mdruntime/issues"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@agentshouse/mdmodel": "0.1.0-alpha.
|
|
37
|
-
"@agentshouse/mdruntime": "0.1.0-alpha.
|
|
36
|
+
"@agentshouse/mdmodel": "0.1.0-alpha.14",
|
|
37
|
+
"@agentshouse/mdruntime": "0.1.0-alpha.24"
|
|
38
38
|
}
|
|
39
39
|
}
|