@agentshouse/mdruntime 0.1.0-ce5c5bb29be5a → 0.1.0-ce6bc9239a3ee
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/README.md +2 -2
- package/dist/acceptance.d.ts +26 -0
- package/dist/acceptance.d.ts.map +1 -0
- package/dist/acceptance.js +384 -0
- package/dist/adapter.d.ts +81 -49
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts +3 -10
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +21 -56
- package/dist/bootstrap.d.ts +9 -5
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +209 -75
- package/dist/chain.d.ts +2 -1
- package/dist/chain.d.ts.map +1 -1
- package/dist/change.d.ts +1 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/chat-types.d.ts +3 -0
- package/dist/chat-types.d.ts.map +1 -0
- package/dist/chat-types.js +2 -0
- package/dist/client.d.ts +16 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -1
- package/dist/collection.d.ts +2 -1
- package/dist/collection.d.ts.map +1 -1
- package/dist/compile.d.ts +6 -6
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +262 -318
- package/dist/connection.d.ts +20 -44
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +1438 -3393
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +7 -0
- package/dist/conversation-row.d.ts +33 -0
- package/dist/conversation-row.d.ts.map +1 -0
- package/dist/conversation-row.js +47 -0
- package/dist/conversation.d.ts +26 -17
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +441 -307
- package/dist/durability.d.ts +6 -0
- package/dist/durability.d.ts.map +1 -1
- package/dist/entry.d.ts +2 -2
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +17 -7
- package/dist/figures.d.ts +48 -0
- package/dist/figures.d.ts.map +1 -0
- package/dist/figures.js +197 -0
- package/dist/host.d.ts +4 -6
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +22 -26
- package/dist/identity.d.ts +0 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +0 -3
- package/dist/index.d.ts +18 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/install.d.ts +86 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +537 -0
- package/dist/job.d.ts +33 -0
- package/dist/job.d.ts.map +1 -0
- package/dist/job.js +54 -0
- package/dist/live.d.ts +5 -4
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +63 -22
- package/dist/log.d.ts +1 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/memory.d.ts +11 -4
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +171 -81
- package/dist/messages.d.ts +27 -3
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +97 -19
- package/dist/model.d.ts +2 -9
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +0 -9
- package/dist/observation.d.ts +2 -2
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +7 -2
- package/dist/outcome.d.ts +1 -0
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +3 -0
- package/dist/overlay.d.ts +1 -0
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +11 -0
- package/dist/parts.d.ts +59 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +118 -0
- package/dist/query.d.ts +14 -209
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +3 -505
- package/dist/questions.d.ts +32 -0
- package/dist/questions.d.ts.map +1 -0
- package/dist/questions.js +118 -0
- package/dist/reach.d.ts +12 -12
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +182 -136
- package/dist/react.d.ts +5 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/read.d.ts +7 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/read.js +17 -0
- package/dist/readiness.d.ts +0 -2
- package/dist/readiness.d.ts.map +1 -1
- package/dist/reads.d.ts +36 -0
- package/dist/reads.d.ts.map +1 -0
- package/dist/reads.js +136 -0
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +9 -1
- package/dist/refresh.d.ts +6 -4
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +32 -4
- package/dist/replica.d.ts +8 -8
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +50 -15
- package/dist/room-draft.d.ts +4 -3
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +65 -52
- package/dist/room-drafts.d.ts +29 -0
- package/dist/room-drafts.d.ts.map +1 -0
- package/dist/room-drafts.js +216 -0
- package/dist/rows.d.ts +14 -21
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +48 -184
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +11 -8
- package/dist/saves.d.ts +96 -0
- package/dist/saves.d.ts.map +1 -0
- package/dist/saves.js +999 -0
- package/dist/search.d.ts +12 -63
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +9 -52
- package/dist/seed.d.ts +16 -2
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +66 -0
- package/dist/socket/admission.d.ts +7 -0
- package/dist/socket/admission.d.ts.map +1 -0
- package/dist/socket/admission.js +39 -0
- package/dist/socket/answers.d.ts +6 -0
- package/dist/socket/answers.d.ts.map +1 -0
- package/dist/socket/answers.js +20 -0
- package/dist/socket/reads.d.ts +10 -0
- package/dist/socket/reads.d.ts.map +1 -0
- package/dist/socket/reads.js +31 -0
- package/dist/socket.d.ts +43 -0
- package/dist/socket.d.ts.map +1 -0
- package/dist/socket.js +96 -0
- package/dist/source.d.ts +61 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +81 -0
- package/dist/status.d.ts +0 -2
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +0 -6
- package/dist/store/fences.d.ts +16 -0
- package/dist/store/fences.d.ts.map +1 -0
- package/dist/store/fences.js +26 -0
- package/dist/store/installs.d.ts +30 -0
- package/dist/store/installs.d.ts.map +1 -0
- package/dist/store/installs.js +34 -0
- package/dist/store/records.d.ts +212 -0
- package/dist/store/records.d.ts.map +1 -0
- package/dist/store/records.js +408 -0
- package/dist/store/room-held.d.ts +8 -0
- package/dist/store/room-held.d.ts.map +1 -0
- package/dist/store/room-held.js +17 -0
- package/dist/store/watchers.d.ts +15 -0
- package/dist/store/watchers.d.ts.map +1 -0
- package/dist/store/watchers.js +36 -0
- package/dist/store/writes.d.ts +24 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js +125 -0
- package/dist/store.d.ts +78 -145
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +117 -367
- package/dist/stored.d.ts +58 -32
- package/dist/stored.d.ts.map +1 -1
- package/dist/stored.js +264 -187
- package/dist/tables.d.ts +107 -25
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +193 -47
- package/dist/tallies.d.ts +18 -0
- package/dist/tallies.d.ts.map +1 -0
- package/dist/tallies.js +129 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +7 -4
- package/dist/windows.d.ts +1 -12
- package/dist/windows.d.ts.map +1 -1
- package/dist/windows.js +2 -75
- package/dist/wire.d.ts +15 -4
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +6 -1
- package/package.json +2 -2
- package/dist/fence.d.ts +0 -6
- package/dist/fence.d.ts.map +0 -1
- package/dist/fence.js +0 -10
- package/dist/fulltext.d.ts +0 -27
- package/dist/fulltext.d.ts.map +0 -1
- package/dist/fulltext.js +0 -370
- package/dist/words.d.ts +0 -19
- package/dist/words.d.ts.map +0 -1
- package/dist/words.js +0 -156
package/dist/job.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const NEXT_RUN = 'next run ';
|
|
2
|
+
const MINUTE = 60_000;
|
|
3
|
+
const ENDED = 'Session ended.';
|
|
4
|
+
export function jobOf(said) {
|
|
5
|
+
const at = said.lastIndexOf(': ');
|
|
6
|
+
const label = at === -1 ? said : said.slice(0, at);
|
|
7
|
+
const state = at === -1 ? '' : said.slice(at + 2);
|
|
8
|
+
if (state === 'running')
|
|
9
|
+
return { label, kind: 'started', state, next: null };
|
|
10
|
+
if (state === 'scheduled')
|
|
11
|
+
return { label, kind: 'scheduled', state, next: null };
|
|
12
|
+
return state.startsWith(NEXT_RUN)
|
|
13
|
+
? { label, kind: 'scheduled', state, next: state.slice(NEXT_RUN.length) }
|
|
14
|
+
: { label, kind: 'ended', state, next: null };
|
|
15
|
+
}
|
|
16
|
+
export function closeLast(open, key) {
|
|
17
|
+
const at = open.map((one) => one.key).lastIndexOf(key);
|
|
18
|
+
if (at !== -1)
|
|
19
|
+
open.splice(at, 1);
|
|
20
|
+
}
|
|
21
|
+
export function markerMoved(open, said, opened) {
|
|
22
|
+
const job = jobOf(said);
|
|
23
|
+
const started = `job\u0000${job.label}`;
|
|
24
|
+
const schedule = `schedule\u0000${job.label}`;
|
|
25
|
+
if (job.kind === 'ended')
|
|
26
|
+
closeLast(open, started);
|
|
27
|
+
if (job.kind !== 'started')
|
|
28
|
+
closeLast(open, schedule);
|
|
29
|
+
if (job.kind === 'ended')
|
|
30
|
+
return;
|
|
31
|
+
const kept = opened(job, job.kind === 'started' ? started : schedule);
|
|
32
|
+
if (kept !== null)
|
|
33
|
+
open.push(kept);
|
|
34
|
+
}
|
|
35
|
+
export function openJobs(markers) {
|
|
36
|
+
const open = [];
|
|
37
|
+
for (const { said, at } of markers) {
|
|
38
|
+
markerMoved(open, said, (job, key) => job.kind === 'started' ? { key, name: job.label, started: at } : null);
|
|
39
|
+
}
|
|
40
|
+
return open.map(({ name, started }) => ({ name, started }));
|
|
41
|
+
}
|
|
42
|
+
export function jobsRunning(jobs, now) {
|
|
43
|
+
return jobs.map((job) => {
|
|
44
|
+
const since = Date.parse(job.running_since);
|
|
45
|
+
const ran = Number.isNaN(since) ? 0 : Math.floor((now - since) / MINUTE);
|
|
46
|
+
return ran >= 1 ? `${job.name} (${ran} min)` : job.name;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export function sessionEnded(jobs, now) {
|
|
50
|
+
if (jobs.length === 0)
|
|
51
|
+
return ENDED;
|
|
52
|
+
const counted = jobs.length === 1 ? '1 background job' : `${jobs.length} background jobs`;
|
|
53
|
+
return `${ENDED} ${counted} stopped: ${jobsRunning(jobs, now).join(', ')}`;
|
|
54
|
+
}
|
package/dist/live.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ChangeSet } from './change-set.js';
|
|
2
2
|
import { type KeyedResult, type QueryMessage } from './observation.js';
|
|
3
3
|
import type { PendingResult, Plan, QueryCoverage } from './query.js';
|
|
4
|
+
import type { Fail } from './reach.js';
|
|
4
5
|
import type { QueryRoom } from './tables.js';
|
|
5
6
|
export type Cover = {
|
|
6
7
|
coverage: QueryCoverage;
|
|
@@ -9,14 +10,14 @@ export type Cover = {
|
|
|
9
10
|
export type Ran = KeyedResult & {
|
|
10
11
|
readonly current: () => boolean;
|
|
11
12
|
};
|
|
12
|
-
export type Run = (plan: Plan, cover: () => Cover) => Promise<Ran>;
|
|
13
|
+
export type Run = (plan: Plan, cover: () => Promise<Cover>) => Promise<Ran>;
|
|
13
14
|
type Listener = (message: QueryMessage) => void;
|
|
14
|
-
export type LiveQueries = {
|
|
15
|
+
export type LiveQueries<H> = {
|
|
15
16
|
touched(set: ChangeSet): void;
|
|
16
17
|
recover(): void;
|
|
17
|
-
watch(plan: Plan, identity: string, cover: () => Cover, deliver: Listener): () => void;
|
|
18
|
+
watch(plan: Plan, identity: string, cover: (held: H) => Cover, deliver: Listener, failed: Fail): () => void;
|
|
18
19
|
close(): void;
|
|
19
20
|
};
|
|
20
|
-
export declare function createLiveQueries(run: Run): LiveQueries
|
|
21
|
+
export declare function createLiveQueries<H>(run: Run, holding: () => Promise<H>): LiveQueries<H>;
|
|
21
22
|
export {};
|
|
22
23
|
//# sourceMappingURL=live.d.ts.map
|
package/dist/live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC;AAE7F,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE5E,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAchD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CACH,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EACzB,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,IAAI,GACX,MAAM,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAmCF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA4HxF"}
|
package/dist/live.js
CHANGED
|
@@ -14,8 +14,7 @@ function reads(plan, locator) {
|
|
|
14
14
|
if (plan.reach === null)
|
|
15
15
|
return true;
|
|
16
16
|
return (plan.reach.rooms.includes(locator) ||
|
|
17
|
-
plan.reach.documents.some((document) => roomOfKey(document) === locator)
|
|
18
|
-
plan.reach.areas.some((area) => area.room === locator && area.types.length > 0));
|
|
17
|
+
plan.reach.documents.some((document) => roomOfKey(document) === locator));
|
|
19
18
|
}
|
|
20
19
|
function affected(plan, set) {
|
|
21
20
|
if (set.rooms.some((locator) => reads(plan, locator)))
|
|
@@ -23,13 +22,15 @@ function affected(plan, set) {
|
|
|
23
22
|
const paths = narrowed(plan) ? new Set(plan.paths) : null;
|
|
24
23
|
return set.documents.some(({ locator, path }) => reads(plan, locator) && (paths === null || path === null || paths.has(path)));
|
|
25
24
|
}
|
|
26
|
-
function shown(entry) {
|
|
27
|
-
const cover = entry.cover();
|
|
25
|
+
function shown(entry, held) {
|
|
26
|
+
const cover = entry.cover(held);
|
|
28
27
|
return JSON.stringify('pending' in cover ? cover : cover.coverage);
|
|
29
28
|
}
|
|
30
|
-
export function createLiveQueries(run) {
|
|
29
|
+
export function createLiveQueries(run, holding) {
|
|
31
30
|
const entries = new Map();
|
|
32
31
|
let closed = false;
|
|
32
|
+
let recovering = false;
|
|
33
|
+
let recoverAgain = false;
|
|
33
34
|
function deliver(entry, next) {
|
|
34
35
|
const previous = entry.digest;
|
|
35
36
|
entry.digest = digestOf(next);
|
|
@@ -39,12 +40,19 @@ export function createLiveQueries(run) {
|
|
|
39
40
|
for (const listener of entry.ready)
|
|
40
41
|
listener(change);
|
|
41
42
|
}
|
|
42
|
-
for (const listener of entry.fresh) {
|
|
43
|
+
for (const listener of entry.fresh.keys()) {
|
|
43
44
|
entry.ready.add(listener);
|
|
44
45
|
listener(next);
|
|
45
46
|
}
|
|
46
47
|
entry.fresh.clear();
|
|
47
48
|
}
|
|
49
|
+
async function delivered(entry) {
|
|
50
|
+
const { current, ...next } = await run(entry.plan, async () => entry.cover(await holding()));
|
|
51
|
+
if (closed || entry.listeners.size === 0)
|
|
52
|
+
return null;
|
|
53
|
+
deliver(entry, next);
|
|
54
|
+
return current;
|
|
55
|
+
}
|
|
48
56
|
function schedule(entry) {
|
|
49
57
|
if (closed || entry.listeners.size === 0)
|
|
50
58
|
return;
|
|
@@ -57,22 +65,62 @@ export function createLiveQueries(run) {
|
|
|
57
65
|
try {
|
|
58
66
|
for (;;) {
|
|
59
67
|
entry.dirty = false;
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
68
|
+
const current = await delivered(entry);
|
|
69
|
+
if (current === null)
|
|
62
70
|
return;
|
|
63
|
-
|
|
64
|
-
if (
|
|
71
|
+
const held = await holding();
|
|
72
|
+
if (entry.fresh.size > 0 || (entry.dirty && !current()))
|
|
73
|
+
continue;
|
|
74
|
+
if (shown(entry, held) === entry.covered)
|
|
65
75
|
break;
|
|
66
76
|
}
|
|
67
77
|
}
|
|
68
|
-
catch {
|
|
78
|
+
catch (error) {
|
|
69
79
|
entry.dirty = false;
|
|
80
|
+
const unanswered = [...entry.fresh.values()];
|
|
81
|
+
entry.fresh.clear();
|
|
82
|
+
for (const failed of unanswered)
|
|
83
|
+
failed(error);
|
|
70
84
|
}
|
|
71
85
|
finally {
|
|
72
86
|
entry.running = false;
|
|
73
87
|
}
|
|
74
88
|
})();
|
|
75
89
|
}
|
|
90
|
+
function recovered() {
|
|
91
|
+
if (recovering) {
|
|
92
|
+
recoverAgain = true;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
recovering = true;
|
|
96
|
+
void (async () => {
|
|
97
|
+
try {
|
|
98
|
+
do {
|
|
99
|
+
recoverAgain = false;
|
|
100
|
+
for (const entry of entries.values()) {
|
|
101
|
+
if (entry.running)
|
|
102
|
+
entry.dirty = true;
|
|
103
|
+
}
|
|
104
|
+
const waiting = [...entries.values()].filter((entry) => !entry.running);
|
|
105
|
+
if (waiting.length === 0 || closed)
|
|
106
|
+
continue;
|
|
107
|
+
const held = await holding();
|
|
108
|
+
for (const entry of waiting) {
|
|
109
|
+
if (entry.running)
|
|
110
|
+
continue;
|
|
111
|
+
if (entry.digest === undefined || shown(entry, held) !== entry.covered)
|
|
112
|
+
schedule(entry);
|
|
113
|
+
}
|
|
114
|
+
} while (recoverAgain && !closed);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
recoverAgain = false;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
recovering = false;
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
}
|
|
76
124
|
return {
|
|
77
125
|
touched(set) {
|
|
78
126
|
for (const entry of entries.values()) {
|
|
@@ -80,22 +128,15 @@ export function createLiveQueries(run) {
|
|
|
80
128
|
schedule(entry);
|
|
81
129
|
}
|
|
82
130
|
},
|
|
83
|
-
recover
|
|
84
|
-
|
|
85
|
-
if (entry.running)
|
|
86
|
-
continue;
|
|
87
|
-
if (entry.digest === undefined || shown(entry) !== entry.covered)
|
|
88
|
-
schedule(entry);
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
watch(plan, identity, cover, listener) {
|
|
131
|
+
recover: recovered,
|
|
132
|
+
watch(plan, identity, cover, listener, failed) {
|
|
92
133
|
let entry = entries.get(identity);
|
|
93
134
|
if (entry === undefined) {
|
|
94
135
|
entry = {
|
|
95
136
|
plan,
|
|
96
137
|
cover,
|
|
97
138
|
listeners: new Set(),
|
|
98
|
-
fresh: new
|
|
139
|
+
fresh: new Map(),
|
|
99
140
|
ready: new Set(),
|
|
100
141
|
digest: undefined,
|
|
101
142
|
covered: '',
|
|
@@ -106,7 +147,7 @@ export function createLiveQueries(run) {
|
|
|
106
147
|
}
|
|
107
148
|
const held = entry;
|
|
108
149
|
held.listeners.add(listener);
|
|
109
|
-
held.fresh.
|
|
150
|
+
held.fresh.set(listener, failed);
|
|
110
151
|
schedule(held);
|
|
111
152
|
return () => {
|
|
112
153
|
held.listeners.delete(listener);
|
package/dist/log.d.ts
CHANGED
package/dist/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS;IAGrB,MAAM,QAAQ,MAAM;IAIpB,MAAM;EAIT"}
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS;IAGrB,MAAM,QAAQ,MAAM;IAIpB,MAAM;EAIT;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
package/dist/memory.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { ModelResult } from './model.js';
|
|
2
|
-
import { type AcceptedMessage, type ActionResult, type Adapter, type BinaryFile, type Capability, type ConversationAction, type ConversationEvent, type
|
|
2
|
+
import { type AcceptedMessage, type ActionResult, type Adapter, type BinaryFile, type Capability, type ConversationAction, type ConversationEvent, type DiscoveredRoom, type SavedFacts, type HeadChange, type ListedAgent, type ListedConversation, type Member, type ProviderLimit, type Retention, type ServiceMode, type TypedPath } from './adapter.js';
|
|
3
3
|
export type MemoryRoom = DiscoveredRoom & {
|
|
4
4
|
model?: ModelResult;
|
|
5
5
|
documents?: Readonly<Record<string, string>>;
|
|
6
|
+
facts?: Readonly<Record<string, SavedFacts>>;
|
|
6
7
|
revisions?: Readonly<Record<string, string>>;
|
|
7
8
|
fileIds?: Readonly<Record<string, string>>;
|
|
9
|
+
created?: Readonly<Record<string, string>>;
|
|
8
10
|
changes?: Readonly<Record<string, HeadChange>>;
|
|
9
11
|
binaryFiles?: Readonly<Record<string, BinaryFile>>;
|
|
10
12
|
folders?: readonly string[];
|
|
@@ -14,11 +16,12 @@ export type MemoryConversation = {
|
|
|
14
16
|
conversation: string;
|
|
15
17
|
listed?: Omit<ListedConversation, 'conversation' | 'newest'>;
|
|
16
18
|
messages?: readonly AcceptedMessage[];
|
|
17
|
-
outcomes?: Partial<Record<ConversationAction, ActionResult>>;
|
|
19
|
+
outcomes?: Partial<Record<ConversationAction | 'history', ActionResult>>;
|
|
18
20
|
};
|
|
19
21
|
export type MemoryAdapterOptions = {
|
|
20
22
|
rooms?: readonly MemoryRoom[];
|
|
21
23
|
conversations?: readonly MemoryConversation[];
|
|
24
|
+
agents?: readonly ListedAgent[];
|
|
22
25
|
historyPageSize?: number;
|
|
23
26
|
pageSize?: number;
|
|
24
27
|
capabilities?: readonly Capability[];
|
|
@@ -26,10 +29,12 @@ export type MemoryAdapterOptions = {
|
|
|
26
29
|
retention?: Retention;
|
|
27
30
|
member?: Member;
|
|
28
31
|
unopened?: boolean;
|
|
29
|
-
exhaustiveDiscovery?: true;
|
|
30
32
|
roomTypes?: string;
|
|
33
|
+
typedPaths?: readonly TypedPath[];
|
|
31
34
|
};
|
|
32
35
|
export type MemoryAdapter = Adapter & {
|
|
36
|
+
discover: NonNullable<Adapter['discover']>;
|
|
37
|
+
refresh: NonNullable<Adapter['refresh']>;
|
|
33
38
|
setRooms(rooms: readonly MemoryRoom[]): void;
|
|
34
39
|
setConversations(conversations: readonly MemoryConversation[]): void;
|
|
35
40
|
script(operation: keyof Adapter, answer: unknown): void;
|
|
@@ -37,17 +42,19 @@ export type MemoryAdapter = Adapter & {
|
|
|
37
42
|
close(closing?: {
|
|
38
43
|
revoked?: boolean;
|
|
39
44
|
lost?: boolean;
|
|
45
|
+
authorityChanged?: boolean;
|
|
40
46
|
}): void;
|
|
41
47
|
expire(locators: readonly string[]): void;
|
|
42
48
|
notifyRoomVersion(notification: {
|
|
43
49
|
locator: string;
|
|
44
50
|
roomVersion: string;
|
|
45
51
|
}): void;
|
|
46
|
-
notifyAuthorityChanged(
|
|
52
|
+
notifyAuthorityChanged(locators?: readonly string[]): void;
|
|
47
53
|
notifyConversation(event: ConversationEvent): void;
|
|
48
54
|
notifyServiceMode(mode: ServiceMode): void;
|
|
49
55
|
heldRooms(): readonly string[];
|
|
50
56
|
replicatedConversations(): readonly string[];
|
|
57
|
+
heldConversationCursor(): string | null;
|
|
51
58
|
};
|
|
52
59
|
export declare function createMemoryAdapter(options?: MemoryAdapterOptions): MemoryAdapter;
|
|
53
60
|
//# sourceMappingURL=memory.d.ts.map
|
package/dist/memory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|