@agentshouse/mdruntime 0.1.0-cf08ada271a7f → 0.1.0-cf0c43fc48aad
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 +12 -12
- package/dist/acceptance.d.ts.map +1 -1
- package/dist/acceptance.js +25 -35
- package/dist/act-lanes.d.ts +30 -0
- package/dist/act-lanes.d.ts.map +1 -0
- package/dist/act-lanes.js +225 -0
- package/dist/actions.d.ts +8 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +116 -65
- package/dist/adapter.d.ts +11 -4
- package/dist/adapter.d.ts.map +1 -1
- package/dist/client.d.ts +6 -17
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +26 -11
- package/dist/compile.d.ts +2 -0
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +17 -4
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +15 -10
- package/dist/conversation-live.d.ts +7 -2
- package/dist/conversation-live.d.ts.map +1 -1
- package/dist/conversation-live.js +6 -3
- package/dist/conversation.d.ts +25 -5
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +157 -76
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +18 -45
- package/dist/durability.d.ts +3 -0
- package/dist/durability.d.ts.map +1 -1
- package/dist/entry.js +1 -1
- package/dist/expectation.d.ts +25 -14
- package/dist/expectation.d.ts.map +1 -1
- package/dist/expectation.js +51 -20
- package/dist/failure.d.ts +2 -0
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +3 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +29 -7
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/install.d.ts +2 -3
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +9 -22
- package/dist/lifecycle.d.ts +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +32 -26
- package/dist/listing.d.ts +4 -9
- package/dist/listing.d.ts.map +1 -1
- package/dist/listing.js +21 -51
- package/dist/locks.d.ts +2 -4
- package/dist/locks.d.ts.map +1 -1
- package/dist/locks.js +8 -38
- package/dist/lost.d.ts.map +1 -1
- package/dist/lost.js +7 -19
- package/dist/media.js +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +36 -17
- package/dist/messages.d.ts +9 -2
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +20 -10
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +15 -32
- package/dist/opened.d.ts +1 -1
- package/dist/opened.d.ts.map +1 -1
- package/dist/opened.js +2 -2
- package/dist/opening.d.ts.map +1 -1
- package/dist/opening.js +3 -9
- package/dist/outcome.d.ts +3 -0
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +15 -0
- package/dist/overlay.d.ts +3 -0
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +8 -4
- package/dist/page-metadata.d.ts +8 -0
- package/dist/page-metadata.d.ts.map +1 -0
- package/dist/page-metadata.js +19 -0
- package/dist/parts.d.ts +2 -9
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +6 -14
- package/dist/preparation.d.ts.map +1 -1
- package/dist/preparation.js +15 -21
- package/dist/presence.d.ts +52 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +220 -0
- package/dist/queries.d.ts +1 -1
- package/dist/queries.d.ts.map +1 -1
- package/dist/queries.js +23 -13
- package/dist/questions.d.ts +0 -5
- package/dist/questions.d.ts.map +1 -1
- package/dist/questions.js +0 -7
- package/dist/queue.d.ts +2 -1
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +26 -31
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +62 -18
- package/dist/react.d.ts +5 -4
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +28 -5
- package/dist/reads.d.ts +3 -1
- package/dist/reads.d.ts.map +1 -1
- package/dist/reads.js +5 -1
- package/dist/recovery.d.ts +3 -1
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +29 -7
- package/dist/refusal.d.ts.map +1 -1
- package/dist/refusal.js +2 -4
- package/dist/retried.d.ts +30 -0
- package/dist/retried.d.ts.map +1 -0
- package/dist/retried.js +72 -0
- package/dist/room-draft.d.ts +2 -2
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +24 -19
- package/dist/runtime.d.ts +4 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/save.d.ts +1 -0
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +105 -55
- package/dist/saves.d.ts.map +1 -1
- package/dist/saves.js +8 -11
- package/dist/seed.js +2 -2
- package/dist/shown.d.ts +2 -2
- package/dist/shown.d.ts.map +1 -1
- package/dist/shown.js +14 -23
- package/dist/socket/lanes.d.ts +12 -4
- package/dist/socket/lanes.d.ts.map +1 -1
- package/dist/socket/lanes.js +34 -8
- package/dist/socket.d.ts +3 -5
- package/dist/socket.d.ts.map +1 -1
- package/dist/socket.js +3 -14
- package/dist/source.d.ts +0 -7
- package/dist/source.d.ts.map +1 -1
- package/dist/store/records.d.ts +7 -3
- package/dist/store/records.d.ts.map +1 -1
- package/dist/store/records.js +12 -2
- package/dist/store.d.ts +10 -5
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +37 -12
- package/dist/stored.d.ts +1 -0
- package/dist/stored.d.ts.map +1 -1
- package/dist/stored.js +5 -5
- package/dist/surface.d.ts +1 -1
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +9 -13
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +63 -58
- package/dist/tables.d.ts +6 -3
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +34 -10
- package/dist/wire.d.ts +47 -3
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +12 -1
- package/package.json +3 -3
- package/dist/attempt.d.ts +0 -16
- package/dist/attempt.d.ts.map +0 -1
- package/dist/attempt.js +0 -70
- package/dist/job.d.ts +0 -5
- package/dist/job.d.ts.map +0 -1
- package/dist/job.js +0 -7
- package/dist/log.d.ts +0 -6
- package/dist/log.d.ts.map +0 -1
- package/dist/log.js +0 -14
- package/dist/socket/rooms.d.ts +0 -41
- package/dist/socket/rooms.d.ts.map +0 -1
- package/dist/socket/rooms.js +0 -90
- package/dist/store/fences.d.ts +0 -16
- package/dist/store/fences.d.ts.map +0 -1
- package/dist/store/fences.js +0 -26
package/dist/wire.js
CHANGED
|
@@ -14,8 +14,8 @@ const MEMBERS = {
|
|
|
14
14
|
'binaryFile.attach': { reach: 'within', effect: 'action' },
|
|
15
15
|
'binaryFile.part': { reach: 'within', effect: 'read' },
|
|
16
16
|
call: { reach: 'within', effect: 'action' },
|
|
17
|
+
answered: { reach: 'within', effect: 'read' },
|
|
17
18
|
reached: { reach: 'within', effect: 'read' },
|
|
18
|
-
log: { reach: 'whole', effect: 'read' },
|
|
19
19
|
cleanUp: { reach: 'whole', effect: 'write' },
|
|
20
20
|
unsent: { reach: 'whole', effect: 'read' },
|
|
21
21
|
reset: { reach: 'whole', effect: 'write' },
|
|
@@ -38,8 +38,19 @@ const MEMBERS = {
|
|
|
38
38
|
'conversation.interrupt': { reach: 'within', effect: 'action' },
|
|
39
39
|
'conversation.kill': { reach: 'within', effect: 'action' },
|
|
40
40
|
'conversation.delete': { reach: 'within', effect: 'action' },
|
|
41
|
+
'conversation.takeOut': { reach: 'within', effect: 'action' },
|
|
42
|
+
'conversation.decide': { reach: 'within', effect: 'action' },
|
|
43
|
+
'conversation.rename': { reach: 'within', effect: 'action' },
|
|
44
|
+
'conversation.option': { reach: 'within', effect: 'action' },
|
|
45
|
+
'conversation.retry': { reach: 'within', effect: 'action' },
|
|
46
|
+
'conversation.pins': { reach: 'within', effect: 'read' },
|
|
47
|
+
'conversation.pin': { reach: 'within', effect: 'write' },
|
|
48
|
+
'conversation.openedTurns': { reach: 'within', effect: 'read' },
|
|
49
|
+
'conversation.openTurn': { reach: 'within', effect: 'write' },
|
|
50
|
+
'conversation.dismissSuggestion': { reach: 'within', effect: 'write' },
|
|
41
51
|
'chatDraft.write': { reach: 'within', effect: 'write' },
|
|
42
52
|
'chatDraft.prepend': { reach: 'within', effect: 'write' },
|
|
53
|
+
'chatDraft.append': { reach: 'within', effect: 'write' },
|
|
43
54
|
'chatDraft.discard': { reach: 'within', effect: 'write' },
|
|
44
55
|
};
|
|
45
56
|
const TOPICS = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentshouse/mdruntime",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-cf0c43fc48aad",
|
|
4
4
|
"description": "The headless core of MD App",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"LICENSE"
|
|
55
55
|
],
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@agentshouse/mdmodel": "0.1.0-
|
|
58
|
-
"@agentshouse/session-content": "0.1.0-
|
|
57
|
+
"@agentshouse/mdmodel": "0.1.0-caf6545f57b5d",
|
|
58
|
+
"@agentshouse/session-content": "0.1.0-c7333f7032eb4"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"react": ">=18"
|
package/dist/attempt.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export type Answered = 'accepted' | 'refused' | 'unanswered' | 'offline';
|
|
2
|
-
export type Identities = {
|
|
3
|
-
of(intent: string): string;
|
|
4
|
-
settle(answered: Answered): void;
|
|
5
|
-
};
|
|
6
|
-
export declare function identities(mint?: () => string): Identities;
|
|
7
|
-
export declare function intentOf(name: string, about: unknown): string;
|
|
8
|
-
export type Attempt = {
|
|
9
|
-
identity(intent: string): string;
|
|
10
|
-
settle(answered: Answered, drop: (act: number) => void): void;
|
|
11
|
-
};
|
|
12
|
-
export type Attempts = {
|
|
13
|
-
begin(act: number): Attempt;
|
|
14
|
-
};
|
|
15
|
-
export declare function attempts(mint?: () => string): Attempts;
|
|
16
|
-
//# sourceMappingURL=attempt.d.ts.map
|
package/dist/attempt.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attempt.d.ts","sourceRoot":"","sources":["../src/attempt.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAM,MAAoC,GAAG,UAAU,CAmBvF;AAID,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAa7D;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAyBtD"}
|
package/dist/attempt.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { changeBatchIdentity } from './identity.js';
|
|
2
|
-
export function identities(mint = () => changeBatchIdentity()) {
|
|
3
|
-
const kept = new Map();
|
|
4
|
-
let used = new Map();
|
|
5
|
-
return {
|
|
6
|
-
of(intent) {
|
|
7
|
-
const one = used.get(intent) ?? kept.get(intent) ?? mint();
|
|
8
|
-
used.set(intent, one);
|
|
9
|
-
return one;
|
|
10
|
-
},
|
|
11
|
-
settle(answered) {
|
|
12
|
-
if (answered !== 'offline') {
|
|
13
|
-
for (const [intent, one] of used) {
|
|
14
|
-
if (answered === 'unanswered')
|
|
15
|
-
kept.set(intent, one);
|
|
16
|
-
else
|
|
17
|
-
kept.delete(intent);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
used = new Map();
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const blobs = new WeakMap();
|
|
25
|
-
export function intentOf(name, about) {
|
|
26
|
-
const carried = [];
|
|
27
|
-
const json = JSON.stringify(about, (_key, value) => {
|
|
28
|
-
if (!(value instanceof Blob))
|
|
29
|
-
return value;
|
|
30
|
-
let identity = blobs.get(value);
|
|
31
|
-
if (identity === undefined) {
|
|
32
|
-
identity = changeBatchIdentity();
|
|
33
|
-
blobs.set(value, identity);
|
|
34
|
-
}
|
|
35
|
-
carried.push(identity);
|
|
36
|
-
return null;
|
|
37
|
-
});
|
|
38
|
-
return `${name}\u0000${json}\u0000${carried.join(',')}`;
|
|
39
|
-
}
|
|
40
|
-
export function attempts(mint) {
|
|
41
|
-
const numbers = identities(mint);
|
|
42
|
-
const waiting = new Map();
|
|
43
|
-
return {
|
|
44
|
-
begin(act) {
|
|
45
|
-
const intents = [];
|
|
46
|
-
return {
|
|
47
|
-
identity(intent) {
|
|
48
|
-
intents.push(intent);
|
|
49
|
-
return numbers.of(intent);
|
|
50
|
-
},
|
|
51
|
-
settle(answered, drop) {
|
|
52
|
-
numbers.settle(answered);
|
|
53
|
-
if (answered === 'refused' || answered === 'offline')
|
|
54
|
-
drop(act);
|
|
55
|
-
if (answered === 'offline')
|
|
56
|
-
return;
|
|
57
|
-
for (const intent of intents) {
|
|
58
|
-
const earlier = waiting.get(intent);
|
|
59
|
-
if (earlier !== undefined && earlier !== act)
|
|
60
|
-
drop(earlier);
|
|
61
|
-
if (answered === 'unanswered')
|
|
62
|
-
waiting.set(intent, act);
|
|
63
|
-
else
|
|
64
|
-
waiting.delete(intent);
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
}
|
package/dist/job.d.ts
DELETED
package/dist/job.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAIhE"}
|
package/dist/job.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
const ENDED = 'Session ended.';
|
|
2
|
-
export function sessionEnded(jobs) {
|
|
3
|
-
if (jobs.length === 0)
|
|
4
|
-
return ENDED;
|
|
5
|
-
const counted = jobs.length === 1 ? '1 background job' : `${jobs.length} background jobs`;
|
|
6
|
-
return `${ENDED} ${counted} stopped: ${jobs.map(({ name }) => name).join(', ')}`;
|
|
7
|
-
}
|
package/dist/log.d.ts
DELETED
package/dist/log.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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/log.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const BOUND = 256;
|
|
2
|
-
export function createLog() {
|
|
3
|
-
const events = [];
|
|
4
|
-
return {
|
|
5
|
-
record(event) {
|
|
6
|
-
events.push(event);
|
|
7
|
-
if (events.length > BOUND)
|
|
8
|
-
events.splice(0, events.length - BOUND);
|
|
9
|
-
},
|
|
10
|
-
export() {
|
|
11
|
-
return events.join('\n');
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
}
|
package/dist/socket/rooms.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { DiscoveredRoom, ProviderRefusal, RoomDeclaration } from '../adapter.js';
|
|
2
|
-
import type { ModelState } from '../model.js';
|
|
3
|
-
export type Declared = {
|
|
4
|
-
readonly room: RoomDeclaration | null;
|
|
5
|
-
readonly available: boolean;
|
|
6
|
-
};
|
|
7
|
-
type RoomStanding = {
|
|
8
|
-
readonly unreadable: boolean;
|
|
9
|
-
readonly refusal: ProviderRefusal | null;
|
|
10
|
-
readonly unheldModel: ModelState | null;
|
|
11
|
-
readonly stale: boolean;
|
|
12
|
-
readonly repairable: {
|
|
13
|
-
readonly reset: string | undefined;
|
|
14
|
-
} | null;
|
|
15
|
-
readonly repairing: boolean;
|
|
16
|
-
readonly reloadDue: boolean;
|
|
17
|
-
readonly confirmed: boolean;
|
|
18
|
-
readonly unpreparable: boolean;
|
|
19
|
-
};
|
|
20
|
-
export type Rooms = {
|
|
21
|
-
declare(locator: string, declared: Declared): void;
|
|
22
|
-
declared(locator: string): Declared | undefined;
|
|
23
|
-
declarations(): ReadonlyMap<string, Declared>;
|
|
24
|
-
discover(room: DiscoveredRoom): void;
|
|
25
|
-
discovered(locator: string): DiscoveredRoom | undefined;
|
|
26
|
-
discoveredRooms(): readonly DiscoveredRoom[];
|
|
27
|
-
undiscoverAll(): void;
|
|
28
|
-
standing(locator: string): RoomStanding;
|
|
29
|
-
stand(locator: string, change: Partial<RoomStanding>): void;
|
|
30
|
-
standingWhere(held: (room: RoomStanding) => boolean): readonly string[];
|
|
31
|
-
standAll(change: Partial<RoomStanding>): void;
|
|
32
|
-
forget(locator: string): void;
|
|
33
|
-
askAgain(locator: string, ask: () => void): void;
|
|
34
|
-
readied(locator: string): void;
|
|
35
|
-
unreadied(): void;
|
|
36
|
-
connectionLost(lapsed: () => void): void;
|
|
37
|
-
connectionLive(): void;
|
|
38
|
-
};
|
|
39
|
-
export declare function createRooms(): Rooms;
|
|
40
|
-
export {};
|
|
41
|
-
//# sourceMappingURL=rooms.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../src/socket/rooms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9F,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAcF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACxD,eAAe,IAAI,SAAS,cAAc,EAAE,CAAC;IAC7C,aAAa,IAAI,IAAI,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC5D,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzC,cAAc,IAAI,IAAI,CAAC;CACxB,CAAC;AAQF,wBAAgB,WAAW,IAAI,KAAK,CAsEnC"}
|
package/dist/socket/rooms.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
const STANDING = {
|
|
2
|
-
unreadable: false,
|
|
3
|
-
refusal: null,
|
|
4
|
-
unheldModel: null,
|
|
5
|
-
stale: false,
|
|
6
|
-
repairable: null,
|
|
7
|
-
repairing: false,
|
|
8
|
-
reloadDue: false,
|
|
9
|
-
confirmed: false,
|
|
10
|
-
unpreparable: false,
|
|
11
|
-
};
|
|
12
|
-
// A Room the Provider answers not ready is asked again after these waits, the last repeating, so a chunk build that catches up within seconds installs at once and a long one is asked every 15 seconds.
|
|
13
|
-
const NOT_READY_MS = [1_000, 2_000, 3_000, 5_000, 8_000, 11_000, 15_000];
|
|
14
|
-
// A Room that locks offline stays readable this long after the connection drops, so a laptop waking or changing network keeps working while a disconnected device locks soon after.
|
|
15
|
-
const LOCK_GRACE_MS = 120_000;
|
|
16
|
-
export function createRooms() {
|
|
17
|
-
const declared = new Map();
|
|
18
|
-
const discovered = new Map();
|
|
19
|
-
const standings = new Map();
|
|
20
|
-
const unready = new Map();
|
|
21
|
-
let lockGrace = null;
|
|
22
|
-
function readied(locator) {
|
|
23
|
-
const held = unready.get(locator);
|
|
24
|
-
if (held === undefined)
|
|
25
|
-
return;
|
|
26
|
-
if (held.timer !== null)
|
|
27
|
-
clearTimeout(held.timer);
|
|
28
|
-
unready.delete(locator);
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
declare(locator, room) {
|
|
32
|
-
declared.set(locator, room);
|
|
33
|
-
},
|
|
34
|
-
declared: (locator) => declared.get(locator),
|
|
35
|
-
declarations: () => declared,
|
|
36
|
-
discover(room) {
|
|
37
|
-
discovered.set(room.locator, room);
|
|
38
|
-
},
|
|
39
|
-
discovered: (locator) => discovered.get(locator),
|
|
40
|
-
discoveredRooms: () => [...discovered.values()],
|
|
41
|
-
undiscoverAll() {
|
|
42
|
-
discovered.clear();
|
|
43
|
-
},
|
|
44
|
-
standing: (locator) => standings.get(locator) ?? STANDING,
|
|
45
|
-
stand(locator, change) {
|
|
46
|
-
standings.set(locator, { ...(standings.get(locator) ?? STANDING), ...change });
|
|
47
|
-
},
|
|
48
|
-
standingWhere: (held) => [...standings].filter(([, room]) => held(room)).map(([locator]) => locator),
|
|
49
|
-
standAll(change) {
|
|
50
|
-
for (const [locator, room] of standings)
|
|
51
|
-
standings.set(locator, { ...room, ...change });
|
|
52
|
-
},
|
|
53
|
-
forget(locator) {
|
|
54
|
-
declared.delete(locator);
|
|
55
|
-
discovered.delete(locator);
|
|
56
|
-
const { repairing, reloadDue } = standings.get(locator) ?? STANDING;
|
|
57
|
-
standings.set(locator, { ...STANDING, repairing, reloadDue });
|
|
58
|
-
},
|
|
59
|
-
askAgain(locator, ask) {
|
|
60
|
-
const held = unready.get(locator) ?? { tries: 0, timer: null };
|
|
61
|
-
unready.set(locator, held);
|
|
62
|
-
if (held.timer !== null)
|
|
63
|
-
return;
|
|
64
|
-
const wait = NOT_READY_MS[Math.min(held.tries, NOT_READY_MS.length - 1)];
|
|
65
|
-
held.tries += 1;
|
|
66
|
-
held.timer = setTimeout(() => {
|
|
67
|
-
held.timer = null;
|
|
68
|
-
ask();
|
|
69
|
-
}, wait);
|
|
70
|
-
},
|
|
71
|
-
readied,
|
|
72
|
-
unreadied() {
|
|
73
|
-
for (const locator of [...unready.keys()])
|
|
74
|
-
readied(locator);
|
|
75
|
-
},
|
|
76
|
-
connectionLost(lapsed) {
|
|
77
|
-
if (lockGrace !== null)
|
|
78
|
-
return;
|
|
79
|
-
lockGrace = setTimeout(() => {
|
|
80
|
-
lockGrace = null;
|
|
81
|
-
lapsed();
|
|
82
|
-
}, LOCK_GRACE_MS);
|
|
83
|
-
},
|
|
84
|
-
connectionLive() {
|
|
85
|
-
if (lockGrace !== null)
|
|
86
|
-
clearTimeout(lockGrace);
|
|
87
|
-
lockGrace = null;
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}
|
package/dist/store/fences.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
type Fence = {
|
|
2
|
-
readonly at: number;
|
|
3
|
-
readonly written: boolean;
|
|
4
|
-
};
|
|
5
|
-
export type Fences = {
|
|
6
|
-
has(locator: string): boolean;
|
|
7
|
-
of(locator: string): Fence | undefined;
|
|
8
|
-
raise(locator: string, at: number): boolean;
|
|
9
|
-
mark(locator: string, written: boolean): void;
|
|
10
|
-
lift(locator: string): void;
|
|
11
|
-
count(): number;
|
|
12
|
-
since(locator: string, count: number): boolean;
|
|
13
|
-
};
|
|
14
|
-
export declare function createFences(): Fences;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=fences.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fences.d.ts","sourceRoot":"","sources":["../../src/store/fences.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,IAAI,MAAM,CAAC;IAChB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAChD,CAAC;AAEF,wBAAgB,YAAY,IAAI,MAAM,CAwBrC"}
|
package/dist/store/fences.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export function createFences() {
|
|
2
|
-
const fencedAt = new Map();
|
|
3
|
-
let fencings = 0;
|
|
4
|
-
const lastFenced = new Map();
|
|
5
|
-
return {
|
|
6
|
-
has: (locator) => fencedAt.has(locator),
|
|
7
|
-
of: (locator) => fencedAt.get(locator),
|
|
8
|
-
raise(locator, at) {
|
|
9
|
-
if (fencedAt.has(locator))
|
|
10
|
-
return false;
|
|
11
|
-
fencedAt.set(locator, { at, written: false });
|
|
12
|
-
lastFenced.set(locator, ++fencings);
|
|
13
|
-
return true;
|
|
14
|
-
},
|
|
15
|
-
mark(locator, written) {
|
|
16
|
-
const fence = fencedAt.get(locator);
|
|
17
|
-
if (fence !== undefined)
|
|
18
|
-
fencedAt.set(locator, { ...fence, written });
|
|
19
|
-
},
|
|
20
|
-
lift(locator) {
|
|
21
|
-
fencedAt.delete(locator);
|
|
22
|
-
},
|
|
23
|
-
count: () => fencings,
|
|
24
|
-
since: (locator, count) => fencedAt.has(locator) || (lastFenced.get(locator) ?? 0) > count,
|
|
25
|
-
};
|
|
26
|
-
}
|