@agentshouse/mdruntime 0.1.0-alpha.2 → 0.1.0-alpha.21
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 +87 -0
- package/dist/adapter.d.ts +145 -28
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +2 -1
- package/dist/adapter.js.map +1 -1
- package/dist/bootstrap.d.ts +11 -13
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +25 -24
- package/dist/bootstrap.js.map +1 -1
- package/dist/change-set.d.ts +33 -0
- package/dist/change-set.d.ts.map +1 -0
- package/dist/change-set.js +74 -0
- package/dist/change-set.js.map +1 -0
- package/dist/change.d.ts +70 -0
- package/dist/change.d.ts.map +1 -0
- package/dist/change.js +12 -0
- package/dist/change.js.map +1 -0
- package/dist/client.d.ts +66 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +229 -0
- package/dist/client.js.map +1 -0
- package/dist/collection.d.ts +25 -3
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +97 -25
- package/dist/collection.js.map +1 -1
- package/dist/connection.d.ts +87 -5
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +1653 -70
- package/dist/connection.js.map +1 -1
- package/dist/conversation.d.ts +57 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +404 -0
- package/dist/conversation.js.map +1 -0
- package/dist/durability.d.ts +9 -0
- package/dist/durability.d.ts.map +1 -0
- package/dist/durability.js +11 -0
- package/dist/durability.js.map +1 -0
- package/dist/file.d.ts +20 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +149 -0
- package/dist/file.js.map +1 -0
- package/dist/host.d.ts +13 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +229 -0
- package/dist/host.js.map +1 -0
- package/dist/identity.d.ts +2 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +16 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +5 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +15 -0
- package/dist/log.js.map +1 -0
- package/dist/memory.d.ts +17 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +264 -21
- package/dist/memory.js.map +1 -1
- package/dist/model.d.ts +70 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +28 -0
- package/dist/model.js.map +1 -0
- package/dist/outcome.d.ts +37 -0
- package/dist/outcome.d.ts.map +1 -0
- package/dist/outcome.js +23 -0
- package/dist/outcome.js.map +1 -0
- package/dist/overlay.d.ts +10 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +245 -0
- package/dist/overlay.js.map +1 -0
- package/dist/paths.d.ts +6 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +47 -0
- package/dist/paths.js.map +1 -0
- package/dist/query.d.ts +13 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +18 -0
- package/dist/query.js.map +1 -0
- package/dist/refresh.d.ts +14 -0
- package/dist/refresh.d.ts.map +1 -0
- package/dist/refresh.js +65 -0
- package/dist/refresh.js.map +1 -0
- package/dist/replica.d.ts +33 -0
- package/dist/replica.d.ts.map +1 -0
- package/dist/replica.js +134 -0
- package/dist/replica.js.map +1 -0
- package/dist/save.d.ts +35 -0
- package/dist/save.d.ts.map +1 -0
- package/dist/save.js +561 -0
- package/dist/save.js.map +1 -0
- package/dist/status.d.ts +25 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +32 -0
- package/dist/status.js.map +1 -0
- package/dist/store.d.ts +86 -4
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +394 -9
- package/dist/store.js.map +1 -1
- package/dist/transfer.d.ts +5 -0
- package/dist/transfer.d.ts.map +1 -0
- package/dist/transfer.js +5 -0
- package/dist/transfer.js.map +1 -0
- package/dist/wire.d.ts +63 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +142 -0
- package/dist/wire.js.map +1 -0
- package/package.json +13 -4
package/dist/replica.js
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { immutable } from './change.js';
|
|
2
|
+
import { parseCollection, readCollection, validateCollection } from './collection.js';
|
|
3
|
+
import { overlay, overlayChanged, sameLayerText } from './overlay.js';
|
|
4
|
+
import { providerRewritten } from './save.js';
|
|
5
|
+
export function compositionOf(record) {
|
|
6
|
+
return {
|
|
7
|
+
collectionRoot: record.collectionRoot,
|
|
8
|
+
model: record.model,
|
|
9
|
+
selection: record.typedSelection === null ? null : {
|
|
10
|
+
roots: record.typedSelection.roots,
|
|
11
|
+
model: record.selectionModel
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function readConfirmed(record, previous) {
|
|
16
|
+
const collection = readCollection(record.documents, compositionOf(record), previous === undefined ? undefined : {
|
|
17
|
+
text: previous.record.documents,
|
|
18
|
+
collection: previous.collection
|
|
19
|
+
});
|
|
20
|
+
return collection === null ? null : {
|
|
21
|
+
record,
|
|
22
|
+
collection
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function readStaged(record, binding, previous) {
|
|
26
|
+
if (binding !== null && (record.model.status === 'current' || record.selectionModel.status === 'current') && (previous === undefined || !sameLayerText(record, previous.record) || record.model !== previous.record.model || record.selectionModel !== previous.record.selectionModel)) {
|
|
27
|
+
const verdict = validateCollection(record.documents, record.binaryTargets, compositionOf(record), binding);
|
|
28
|
+
if (verdict.verdict === 'refuse' && verdict.rule !== 'model-unavailable') return null;
|
|
29
|
+
}
|
|
30
|
+
return readConfirmed(record, previous);
|
|
31
|
+
}
|
|
32
|
+
export function applyReturned(confirmed, documents, revisions, removals, roomVersion, binding) {
|
|
33
|
+
const nextDocuments = {
|
|
34
|
+
...confirmed.record.documents,
|
|
35
|
+
...documents
|
|
36
|
+
};
|
|
37
|
+
const nextRevisions = {
|
|
38
|
+
...confirmed.record.revisions,
|
|
39
|
+
...revisions
|
|
40
|
+
};
|
|
41
|
+
const binaryTargets = new Set(confirmed.record.binaryTargets);
|
|
42
|
+
for (const path of removals){
|
|
43
|
+
delete nextDocuments[path];
|
|
44
|
+
delete nextRevisions[path];
|
|
45
|
+
binaryTargets.delete(path);
|
|
46
|
+
}
|
|
47
|
+
return readStaged({
|
|
48
|
+
...confirmed.record,
|
|
49
|
+
roomVersion,
|
|
50
|
+
documents: nextDocuments,
|
|
51
|
+
revisions: nextRevisions,
|
|
52
|
+
binaryTargets: [
|
|
53
|
+
...binaryTargets
|
|
54
|
+
].sort()
|
|
55
|
+
}, binding, confirmed);
|
|
56
|
+
}
|
|
57
|
+
function predicted(confirmed, batches, previous) {
|
|
58
|
+
const composition = compositionOf(confirmed.record);
|
|
59
|
+
let layer = confirmed.record;
|
|
60
|
+
const replay = [];
|
|
61
|
+
const prior = new Map(previous?.replay.map((step)=>[
|
|
62
|
+
step.id,
|
|
63
|
+
step
|
|
64
|
+
]) ?? []);
|
|
65
|
+
for (const batch of batches){
|
|
66
|
+
const before = layer;
|
|
67
|
+
const old = prior.get(batch.id);
|
|
68
|
+
const hasMove = batch.changes.some((change)=>change.kind === 'move');
|
|
69
|
+
const reuseRewrite = old?.collection !== undefined && sameLayerText(before, old.before) && old.collection.composition.collectionRoot === composition.collectionRoot && old.collection.composition.model === composition.model && old.collection.composition.selection?.model === composition.selection?.model && JSON.stringify(old.collection.composition.selection?.roots) === JSON.stringify(composition.selection?.roots);
|
|
70
|
+
const collection = hasMove ? reuseRewrite ? old.collection : parseCollection(before.documents, composition, old?.collection === undefined ? {
|
|
71
|
+
text: confirmed.record.documents,
|
|
72
|
+
collection: confirmed.collection
|
|
73
|
+
} : {
|
|
74
|
+
text: old.before.documents,
|
|
75
|
+
collection: old.collection
|
|
76
|
+
}) : undefined;
|
|
77
|
+
const effective = collection === undefined ? batch : reuseRewrite ? old.effective : providerRewritten(batch, {
|
|
78
|
+
...before,
|
|
79
|
+
collection
|
|
80
|
+
});
|
|
81
|
+
layer = old === undefined ? overlay(before, [
|
|
82
|
+
effective
|
|
83
|
+
]) : overlayChanged(before, [
|
|
84
|
+
effective
|
|
85
|
+
], old.before, [
|
|
86
|
+
old.effective
|
|
87
|
+
], old.after);
|
|
88
|
+
replay.push({
|
|
89
|
+
id: batch.id,
|
|
90
|
+
before,
|
|
91
|
+
after: layer,
|
|
92
|
+
effective,
|
|
93
|
+
...collection === undefined ? {} : {
|
|
94
|
+
collection
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
layer,
|
|
100
|
+
replay
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export function replicaOf(confirmed, queue, rewriting, previous) {
|
|
104
|
+
const batches = Object.freeze(queue.map(immutable));
|
|
105
|
+
if (batches.length === 0) {
|
|
106
|
+
return {
|
|
107
|
+
confirmed,
|
|
108
|
+
queue: batches,
|
|
109
|
+
visible: {
|
|
110
|
+
documents: confirmed.record.documents,
|
|
111
|
+
binaryTargets: confirmed.record.binaryTargets,
|
|
112
|
+
revisions: confirmed.record.revisions,
|
|
113
|
+
collection: confirmed.collection
|
|
114
|
+
},
|
|
115
|
+
replay: []
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
const predictedState = rewriting === 'provider' ? predicted(confirmed, batches, previous) : null;
|
|
119
|
+
const layer = rewriting === 'provider' ? predictedState.layer : previous === undefined ? overlay(confirmed.record, batches) : overlayChanged(confirmed.record, batches, previous.confirmed.record, previous.queue, previous.visible);
|
|
120
|
+
return {
|
|
121
|
+
confirmed,
|
|
122
|
+
queue: batches,
|
|
123
|
+
replay: predictedState?.replay ?? [],
|
|
124
|
+
visible: {
|
|
125
|
+
...layer,
|
|
126
|
+
collection: parseCollection(layer.documents, compositionOf(confirmed.record), previous === undefined ? undefined : {
|
|
127
|
+
text: previous.visible.documents,
|
|
128
|
+
collection: previous.visible.collection
|
|
129
|
+
})
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=replica.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/workspace/packages/mdruntime/src/replica.ts"],"sourcesContent":["import type { AttachedModelBinding } from './model.js';\nimport { immutable, type ChangeBatch } from './change.js';\nimport {\n parseCollection,\n readCollection,\n validateCollection,\n type Collection,\n type Composition,\n} from './collection.js';\nimport { overlay, overlayChanged, sameLayerText, type Layer } from './overlay.js';\nimport { providerRewritten, type Rewriting } from './save.js';\nimport type { ReplicaRecord } from './store.js';\n\nexport type ConfirmedLayer = {\n record: ReplicaRecord;\n collection: Collection;\n};\n\nexport type VisibleLayer = Layer & {\n collection: Collection;\n};\n\nexport type Replica = {\n confirmed: ConfirmedLayer;\n queue: readonly ChangeBatch[];\n visible: VisibleLayer;\n replay: readonly ReplayStep[];\n};\n\ntype ReplayStep = {\n id: string;\n before: Layer;\n after: Layer;\n effective: ChangeBatch;\n collection?: Collection;\n};\n\nexport function compositionOf(record: ReplicaRecord): Composition {\n return {\n collectionRoot: record.collectionRoot,\n model: record.model,\n selection:\n record.typedSelection === null\n ? null\n : { roots: record.typedSelection.roots, model: record.selectionModel },\n };\n}\n\nexport function readConfirmed(\n record: ReplicaRecord,\n previous?: ConfirmedLayer,\n): ConfirmedLayer | null {\n const collection = readCollection(\n record.documents,\n compositionOf(record),\n previous === undefined\n ? undefined\n : { text: previous.record.documents, collection: previous.collection },\n );\n return collection === null ? null : { record, collection };\n}\n\nexport function readStaged(\n record: ReplicaRecord,\n binding: AttachedModelBinding | null,\n previous?: ConfirmedLayer,\n): ConfirmedLayer | null {\n if (\n binding !== null &&\n (record.model.status === 'current' || record.selectionModel.status === 'current') &&\n (previous === undefined ||\n !sameLayerText(record, previous.record) ||\n record.model !== previous.record.model ||\n record.selectionModel !== previous.record.selectionModel)\n ) {\n const verdict = validateCollection(\n record.documents,\n record.binaryTargets,\n compositionOf(record),\n binding,\n );\n if (verdict.verdict === 'refuse' && verdict.rule !== 'model-unavailable') return null;\n }\n return readConfirmed(record, previous);\n}\n\nexport function applyReturned(\n confirmed: ConfirmedLayer,\n documents: Readonly<Record<string, string>>,\n revisions: Readonly<Record<string, string>>,\n removals: readonly string[],\n roomVersion: string,\n binding: AttachedModelBinding | null,\n): ConfirmedLayer | null {\n const nextDocuments = { ...confirmed.record.documents, ...documents };\n const nextRevisions = { ...confirmed.record.revisions, ...revisions };\n const binaryTargets = new Set(confirmed.record.binaryTargets);\n for (const path of removals) {\n delete nextDocuments[path];\n delete nextRevisions[path];\n binaryTargets.delete(path);\n }\n return readStaged(\n {\n ...confirmed.record,\n roomVersion,\n documents: nextDocuments,\n revisions: nextRevisions,\n binaryTargets: [...binaryTargets].sort(),\n },\n binding,\n confirmed,\n );\n}\n\nfunction predicted(\n confirmed: ConfirmedLayer,\n batches: readonly ChangeBatch[],\n previous?: Replica,\n): { layer: Layer; replay: readonly ReplayStep[] } {\n const composition = compositionOf(confirmed.record);\n let layer: Layer = confirmed.record;\n const replay: ReplayStep[] = [];\n const prior = new Map(previous?.replay.map((step) => [step.id, step]) ?? []);\n for (const batch of batches) {\n const before = layer;\n const old = prior.get(batch.id);\n const hasMove = batch.changes.some((change) => change.kind === 'move');\n const reuseRewrite =\n old?.collection !== undefined &&\n sameLayerText(before, old.before) &&\n old.collection.composition.collectionRoot === composition.collectionRoot &&\n old.collection.composition.model === composition.model &&\n old.collection.composition.selection?.model === composition.selection?.model &&\n JSON.stringify(old.collection.composition.selection?.roots) ===\n JSON.stringify(composition.selection?.roots);\n const collection = hasMove\n ? reuseRewrite\n ? old.collection\n : parseCollection(\n before.documents,\n composition,\n old?.collection === undefined\n ? { text: confirmed.record.documents, collection: confirmed.collection }\n : { text: old.before.documents, collection: old.collection },\n )\n : undefined;\n const effective =\n collection === undefined\n ? batch\n : reuseRewrite\n ? old.effective\n : providerRewritten(batch, { ...before, collection });\n layer =\n old === undefined\n ? overlay(before, [effective])\n : overlayChanged(before, [effective], old.before, [old.effective], old.after);\n replay.push({\n id: batch.id,\n before,\n after: layer,\n effective,\n ...(collection === undefined ? {} : { collection }),\n });\n }\n return { layer, replay };\n}\n\nexport function replicaOf(\n confirmed: ConfirmedLayer,\n queue: readonly ChangeBatch[],\n rewriting: Rewriting,\n previous?: Replica,\n): Replica {\n const batches = Object.freeze(queue.map(immutable));\n if (batches.length === 0) {\n return {\n confirmed,\n queue: batches,\n visible: {\n documents: confirmed.record.documents,\n binaryTargets: confirmed.record.binaryTargets,\n revisions: confirmed.record.revisions,\n collection: confirmed.collection,\n },\n replay: [],\n };\n }\n const predictedState = rewriting === 'provider' ? predicted(confirmed, batches, previous) : null;\n const layer =\n rewriting === 'provider'\n ? predictedState!.layer\n : previous === undefined\n ? overlay(confirmed.record, batches)\n : overlayChanged(\n confirmed.record,\n batches,\n previous.confirmed.record,\n previous.queue,\n previous.visible,\n );\n return {\n confirmed,\n queue: batches,\n replay: predictedState?.replay ?? [],\n visible: {\n ...layer,\n collection: parseCollection(\n layer.documents,\n compositionOf(confirmed.record),\n previous === undefined\n ? undefined\n : { text: previous.visible.documents, collection: previous.visible.collection },\n ),\n },\n };\n}\n"],"names":["immutable","parseCollection","readCollection","validateCollection","overlay","overlayChanged","sameLayerText","providerRewritten","compositionOf","record","collectionRoot","model","selection","typedSelection","roots","selectionModel","readConfirmed","previous","collection","documents","undefined","text","readStaged","binding","status","verdict","binaryTargets","rule","applyReturned","confirmed","revisions","removals","roomVersion","nextDocuments","nextRevisions","Set","path","delete","sort","predicted","batches","composition","layer","replay","prior","Map","map","step","id","batch","before","old","get","hasMove","changes","some","change","kind","reuseRewrite","JSON","stringify","effective","after","push","replicaOf","queue","rewriting","Object","freeze","length","visible","predictedState"],"mappings":"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"}
|
package/dist/save.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AttachedModelBinding } from './model.js';
|
|
2
|
+
import type { ProviderLimit } from './adapter.js';
|
|
3
|
+
import { type Change, type ChangeBatch, type WrittenBy } from './change.js';
|
|
4
|
+
import { type Composition } from './collection.js';
|
|
5
|
+
import type { VisibleLayer } from './replica.js';
|
|
6
|
+
export type SaveRefusal = {
|
|
7
|
+
source?: 'model';
|
|
8
|
+
rule: string;
|
|
9
|
+
file?: string;
|
|
10
|
+
location?: string;
|
|
11
|
+
referrers?: readonly string[];
|
|
12
|
+
};
|
|
13
|
+
export type Rewriting = 'runtime' | 'provider';
|
|
14
|
+
export type SaveInput = {
|
|
15
|
+
composition: Composition;
|
|
16
|
+
rewriting: Rewriting;
|
|
17
|
+
baseRoomVersion: string;
|
|
18
|
+
operations: import('./adapter.js').OperationScopes;
|
|
19
|
+
binding: AttachedModelBinding | null;
|
|
20
|
+
providerOwnedPaths: readonly string[];
|
|
21
|
+
providerLimits: readonly ProviderLimit[];
|
|
22
|
+
visible: VisibleLayer;
|
|
23
|
+
changes: readonly Change[];
|
|
24
|
+
writtenBy?: WrittenBy;
|
|
25
|
+
};
|
|
26
|
+
export type BatchResult = {
|
|
27
|
+
kind: 'batch';
|
|
28
|
+
batch: ChangeBatch;
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'refused';
|
|
31
|
+
refusal: SaveRefusal;
|
|
32
|
+
};
|
|
33
|
+
export declare function providerRewritten(batch: ChangeBatch, visible: VisibleLayer): ChangeBatch;
|
|
34
|
+
export declare function buildBatch(input: SaveInput): BatchResult;
|
|
35
|
+
//# sourceMappingURL=save.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../src/save.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,WAAW,EAEhB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,cAAc,EAAE,eAAe,CAAC;IACnD,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAsN9C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW,CAOxF;AAoMD,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAwGxD"}
|