@agentshouse/mdruntime 0.1.0-c56daf494ecb4 → 0.1.0-c59a5a6bd2f31
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 +19 -16
- 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 +152 -57
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts +7 -10
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +40 -41
- package/dist/binary.d.ts +0 -5
- package/dist/binary.d.ts.map +1 -1
- package/dist/binary.js +1 -1
- package/dist/bootstrap.d.ts +31 -11
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +323 -93
- package/dist/chain.d.ts +12 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +64 -0
- package/dist/change-set.d.ts +9 -14
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +11 -63
- package/dist/change.d.ts +32 -1
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +10 -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 +38 -16
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +101 -12
- package/dist/collection.d.ts +11 -7
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +38 -79
- package/dist/compile.d.ts +16 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +717 -0
- package/dist/connection.d.ts +44 -39
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +2307 -1712
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/{chat/context.js → context.js} +1 -4
- 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 +50 -20
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +897 -303
- package/dist/digest.d.ts +7 -0
- package/dist/digest.d.ts.map +1 -0
- package/dist/digest.js +113 -0
- package/dist/durability.d.ts +10 -1
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +5 -0
- package/dist/entry.d.ts +7 -4
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +33 -28
- package/dist/figures.d.ts +48 -0
- package/dist/figures.d.ts.map +1 -0
- package/dist/figures.js +197 -0
- package/dist/file.d.ts +2 -19
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +7 -122
- package/dist/host.d.ts +11 -2
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +127 -17
- package/dist/index.d.ts +27 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- 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 +23 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +165 -0
- package/dist/log.d.ts +1 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/media.d.ts +8 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +218 -0
- package/dist/memory.d.ts +19 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +253 -94
- package/dist/messages.d.ts +52 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +168 -0
- package/dist/model.d.ts +11 -11
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +7 -10
- package/dist/name.d.ts +4 -0
- package/dist/name.d.ts.map +1 -0
- package/dist/name.js +122 -0
- package/dist/observation.d.ts +22 -4
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +120 -14
- package/dist/opened.d.ts +22 -0
- package/dist/opened.d.ts.map +1 -0
- package/dist/opened.js +107 -0
- package/dist/outcome.d.ts +50 -7
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +43 -0
- package/dist/overlay.d.ts +4 -4
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +111 -182
- package/dist/{chat/parts.d.ts → parts.d.ts} +11 -9
- package/dist/parts.d.ts.map +1 -0
- package/dist/{chat/parts.js → parts.js} +45 -46
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +4 -0
- package/dist/query.d.ts +50 -183
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +3 -464
- package/dist/{chat/questions.d.ts → questions.d.ts} +3 -2
- package/dist/questions.d.ts.map +1 -0
- package/dist/{chat/questions.js → questions.js} +8 -1
- package/dist/reach.d.ts +19 -7
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +289 -89
- package/dist/react.d.ts +11 -6
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -17
- package/dist/{chat/read.d.ts → read.d.ts} +2 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/{chat/read.js → read.js} +4 -0
- package/dist/readiness.d.ts +50 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +27 -0
- package/dist/reads.d.ts +35 -0
- package/dist/reads.d.ts.map +1 -0
- package/dist/reads.js +128 -0
- package/dist/recovery.d.ts +26 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +232 -0
- package/dist/refresh.d.ts +17 -14
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +143 -51
- package/dist/replica.d.ts +55 -33
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +332 -154
- package/dist/room-draft.d.ts +37 -6
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +161 -74
- 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 +30 -37
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +59 -126
- package/dist/save.d.ts +53 -9
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +542 -172
- 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 +15 -55
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +10 -121
- package/dist/seed.d.ts +30 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +141 -0
- package/dist/shared.d.ts +15 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +421 -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 +5 -2
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +3 -7
- 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 +77 -120
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +112 -529
- package/dist/stored.d.ts +156 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +637 -0
- package/dist/tables.d.ts +407 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +724 -0
- package/dist/tallies.d.ts +18 -0
- package/dist/tallies.d.ts.map +1 -0
- package/dist/tallies.js +129 -0
- package/dist/transfer.d.ts +0 -5
- package/dist/transfer.d.ts.map +1 -1
- package/dist/turn.d.ts +9 -0
- package/dist/turn.d.ts.map +1 -0
- package/dist/turn.js +75 -0
- package/dist/validation.d.ts +29 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +104 -0
- package/dist/windows.d.ts +11 -0
- package/dist/windows.d.ts.map +1 -0
- package/dist/windows.js +16 -0
- package/dist/wire.d.ts +179 -32
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +61 -31
- package/package.json +18 -19
- package/AGENTS.md +0 -302
- package/dist/chat/acts.d.ts +0 -34
- package/dist/chat/acts.d.ts.map +0 -1
- package/dist/chat/acts.js +0 -36
- package/dist/chat/context.d.ts +0 -3
- package/dist/chat/context.d.ts.map +0 -1
- package/dist/chat/input.d.ts +0 -9
- package/dist/chat/input.d.ts.map +0 -1
- package/dist/chat/input.js +0 -99
- package/dist/chat/kit.d.ts +0 -60
- package/dist/chat/kit.d.ts.map +0 -1
- package/dist/chat/kit.js +0 -123
- package/dist/chat/lasting.d.ts +0 -6
- package/dist/chat/lasting.d.ts.map +0 -1
- package/dist/chat/lasting.js +0 -19
- package/dist/chat/list.d.ts +0 -26
- package/dist/chat/list.d.ts.map +0 -1
- package/dist/chat/list.js +0 -62
- package/dist/chat/markdown.d.ts +0 -20
- package/dist/chat/markdown.d.ts.map +0 -1
- package/dist/chat/markdown.js +0 -188
- package/dist/chat/message.d.ts +0 -6
- package/dist/chat/message.d.ts.map +0 -1
- package/dist/chat/message.js +0 -192
- package/dist/chat/messages.d.ts +0 -21
- package/dist/chat/messages.d.ts.map +0 -1
- package/dist/chat/messages.js +0 -151
- package/dist/chat/name.d.ts +0 -6
- package/dist/chat/name.d.ts.map +0 -1
- package/dist/chat/name.js +0 -37
- package/dist/chat/opened.d.ts +0 -11
- package/dist/chat/opened.d.ts.map +0 -1
- package/dist/chat/opened.js +0 -17
- package/dist/chat/overlay.d.ts +0 -31
- package/dist/chat/overlay.d.ts.map +0 -1
- package/dist/chat/overlay.js +0 -97
- package/dist/chat/parts.d.ts.map +0 -1
- package/dist/chat/process.d.ts +0 -20
- package/dist/chat/process.d.ts.map +0 -1
- package/dist/chat/process.js +0 -32
- package/dist/chat/provider.d.ts +0 -63
- package/dist/chat/provider.d.ts.map +0 -1
- package/dist/chat/provider.js +0 -645
- package/dist/chat/question.d.ts +0 -9
- package/dist/chat/question.d.ts.map +0 -1
- package/dist/chat/question.js +0 -80
- package/dist/chat/questions.d.ts.map +0 -1
- package/dist/chat/read.d.ts.map +0 -1
- package/dist/chat/ready.d.ts +0 -33
- package/dist/chat/ready.d.ts.map +0 -1
- package/dist/chat/ready.js +0 -91
- package/dist/chat/style.d.ts +0 -4
- package/dist/chat/style.d.ts.map +0 -1
- package/dist/chat/style.js +0 -302
- package/dist/chat.d.ts +0 -14
- package/dist/chat.d.ts.map +0 -1
- package/dist/chat.js +0 -8
- package/dist/read-side.d.ts +0 -18
- package/dist/read-side.d.ts.map +0 -1
- package/dist/read-side.js +0 -440
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { TurnContext } from '
|
|
1
|
+
import type { RunningSubagent, TurnContext } from './adapter.js';
|
|
2
|
+
import { type JobMarker, type OpenJob } from './job.js';
|
|
2
3
|
export type PlanStep = {
|
|
3
4
|
readonly content: string;
|
|
4
5
|
readonly status: string;
|
|
@@ -24,6 +25,7 @@ export type Part = {
|
|
|
24
25
|
readonly target: string | null;
|
|
25
26
|
} | {
|
|
26
27
|
readonly type: 'image';
|
|
28
|
+
readonly path: string;
|
|
27
29
|
readonly name: string;
|
|
28
30
|
readonly mediaType: string;
|
|
29
31
|
} | {
|
|
@@ -45,13 +47,13 @@ export type ChatWork = {
|
|
|
45
47
|
readonly kind: 'job' | 'schedule' | 'subagent';
|
|
46
48
|
readonly title: string;
|
|
47
49
|
readonly next: string | null;
|
|
50
|
+
readonly activity: string | null;
|
|
48
51
|
};
|
|
49
|
-
export
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
readonly
|
|
53
|
-
readonly
|
|
54
|
-
};
|
|
55
|
-
export declare function
|
|
56
|
-
export declare function stillRunning(turns: readonly Turn[]): ReadonlyMap<string, readonly ChatWork[]>;
|
|
52
|
+
export declare function counted(count: number): string;
|
|
53
|
+
export declare function runningLine(raw: readonly unknown[]): string | null;
|
|
54
|
+
export declare function jobsOf(markers: readonly JobMarker[], turn: {
|
|
55
|
+
readonly started: string | null;
|
|
56
|
+
readonly parts: readonly unknown[];
|
|
57
|
+
} | null): readonly OpenJob[];
|
|
58
|
+
export declare function stillRunning(turns: readonly Turn[], subagents: readonly RunningSubagent[]): ReadonlyMap<string, readonly ChatWork[]>;
|
|
57
59
|
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../src/parts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { closeLast, markerMoved, openJobs } from './job.js';
|
|
2
|
+
import { excerpt, list, record, text } from './read.js';
|
|
2
3
|
const MARKERS = ['mode', 'compaction', 'retry', 'model', 'job'];
|
|
3
4
|
function partOf(raw) {
|
|
4
5
|
const part = record(raw);
|
|
@@ -22,10 +23,11 @@ function partOf(raw) {
|
|
|
22
23
|
return command === null ? null : { type: 'message', command, target: text(part, 'target') };
|
|
23
24
|
}
|
|
24
25
|
case 'image': {
|
|
26
|
+
const path = text(part, 'file');
|
|
25
27
|
const name = text(part, 'name');
|
|
26
|
-
return name === null
|
|
28
|
+
return path === null || name === null
|
|
27
29
|
? null
|
|
28
|
-
: { type: 'image', name, mediaType: text(part, 'media_type') ?? '' };
|
|
30
|
+
: { type: 'image', path, name, mediaType: text(part, 'media_type') ?? '' };
|
|
29
31
|
}
|
|
30
32
|
case 'marker': {
|
|
31
33
|
const marker = text(part, 'marker');
|
|
@@ -55,65 +57,62 @@ export function contextIn(raw) {
|
|
|
55
57
|
? { used: held.used, window: held.window }
|
|
56
58
|
: null;
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const at = said.lastIndexOf(': ');
|
|
61
|
-
const label = at === -1 ? said : said.slice(0, at);
|
|
62
|
-
const state = at === -1 ? '' : said.slice(at + 2);
|
|
63
|
-
if (state === 'running')
|
|
64
|
-
return { label, kind: 'started', state, next: null };
|
|
65
|
-
if (state === 'scheduled')
|
|
66
|
-
return { label, kind: 'scheduled', state, next: null };
|
|
67
|
-
return state.startsWith(NEXT_RUN)
|
|
68
|
-
? { label, kind: 'scheduled', state, next: state.slice(NEXT_RUN.length) }
|
|
69
|
-
: { label, kind: 'ended', state, next: null };
|
|
60
|
+
export function counted(count) {
|
|
61
|
+
return count === 1 ? '1 command' : `${count} commands`;
|
|
70
62
|
}
|
|
71
|
-
export function
|
|
63
|
+
export function runningLine(raw) {
|
|
64
|
+
const parts = partsOf(raw);
|
|
65
|
+
const note = [...parts].reverse().find((part) => part.type === 'text' && part.text.trim() !== '');
|
|
66
|
+
if (note?.type === 'text')
|
|
67
|
+
return excerpt(note.text);
|
|
68
|
+
const commands = parts.reduce((sum, part) => (part.type === 'commands' ? sum + part.count : sum), 0);
|
|
69
|
+
return commands === 0 ? null : counted(commands);
|
|
70
|
+
}
|
|
71
|
+
export function jobsOf(markers, turn) {
|
|
72
|
+
const running = (turn === null ? [] : partsOf(turn.parts)).flatMap((part) => part.type === 'marker' && part.marker === 'job'
|
|
73
|
+
? [{ said: part.text, at: turn?.started ?? null }]
|
|
74
|
+
: []);
|
|
75
|
+
return openJobs([...markers, ...running]);
|
|
76
|
+
}
|
|
77
|
+
export function stillRunning(turns, subagents) {
|
|
72
78
|
const open = [];
|
|
73
|
-
const close = (key) => {
|
|
74
|
-
const at = open.map((one) => one.key).lastIndexOf(key);
|
|
75
|
-
if (at !== -1)
|
|
76
|
-
open.splice(at, 1);
|
|
77
|
-
};
|
|
78
79
|
for (const { turn, parts, ended } of turns) {
|
|
79
80
|
for (const part of parts) {
|
|
80
81
|
if (part.type === 'subagent') {
|
|
81
82
|
const key = `subagent\u0000${part.description}`;
|
|
82
83
|
if (part.done)
|
|
83
|
-
|
|
84
|
+
closeLast(open, key);
|
|
84
85
|
else if (ended) {
|
|
85
|
-
open.push({ turn, key, work: { kind: 'subagent', title: part.description, next: null } });
|
|
86
|
-
}
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
if (part.type !== 'marker' || part.marker !== 'job')
|
|
90
|
-
continue;
|
|
91
|
-
const job = jobOf(part.text);
|
|
92
|
-
const started = `job\u0000${job.label}`;
|
|
93
|
-
const schedule = `schedule\u0000${job.label}`;
|
|
94
|
-
if (job.kind === 'scheduled') {
|
|
95
|
-
close(schedule);
|
|
96
|
-
if (ended) {
|
|
97
86
|
open.push({
|
|
98
87
|
turn,
|
|
99
|
-
key
|
|
100
|
-
work: { kind: '
|
|
88
|
+
key,
|
|
89
|
+
work: { kind: 'subagent', title: part.description, next: null, activity: null },
|
|
101
90
|
});
|
|
102
91
|
}
|
|
92
|
+
continue;
|
|
103
93
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
94
|
+
if (part.type !== 'marker' || part.marker !== 'job')
|
|
95
|
+
continue;
|
|
96
|
+
markerMoved(open, part.text, (job, key) => ended
|
|
97
|
+
? {
|
|
98
|
+
turn,
|
|
99
|
+
key,
|
|
100
|
+
work: {
|
|
101
|
+
kind: job.kind === 'started' ? 'job' : 'schedule',
|
|
102
|
+
title: job.label,
|
|
103
|
+
next: job.next,
|
|
104
|
+
activity: null,
|
|
105
|
+
},
|
|
107
106
|
}
|
|
108
|
-
|
|
109
|
-
else {
|
|
110
|
-
close(started);
|
|
111
|
-
close(schedule);
|
|
112
|
-
}
|
|
107
|
+
: null);
|
|
113
108
|
}
|
|
114
109
|
}
|
|
110
|
+
const doing = [...subagents];
|
|
115
111
|
const under = new Map();
|
|
116
|
-
for (const
|
|
117
|
-
|
|
112
|
+
for (const { turn, work } of open) {
|
|
113
|
+
const at = work.kind === 'subagent' ? doing.findIndex((one) => one.description === work.title) : -1;
|
|
114
|
+
const shown = at === -1 ? work : { ...work, activity: doing.splice(at, 1)[0].activity };
|
|
115
|
+
under.set(turn, [...(under.get(turn) ?? []), shown]);
|
|
116
|
+
}
|
|
118
117
|
return under;
|
|
119
118
|
}
|
package/dist/paths.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare function normalize(path: string): string | null;
|
|
2
2
|
export declare function beneath(prefix: string, path: string): boolean;
|
|
3
3
|
export declare function covered(prefixes: readonly string[], path: string): boolean;
|
|
4
|
+
export declare function ancestors(path: string): readonly string[];
|
|
4
5
|
//# sourceMappingURL=paths.d.ts.map
|
package/dist/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAK1E"}
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGzD"}
|
package/dist/paths.js
CHANGED
|
@@ -22,3 +22,7 @@ export function covered(prefixes, path) {
|
|
|
22
22
|
return normalized !== null && (normalized === '' || beneath(normalized, path));
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
+
export function ancestors(path) {
|
|
26
|
+
const parts = path.split('/');
|
|
27
|
+
return parts.slice(1).map((_, at) => parts.slice(0, at + 1).join('/'));
|
|
28
|
+
}
|
package/dist/query.d.ts
CHANGED
|
@@ -1,84 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type HeldRooms, type QueryPlan } from '@agentshouse/mdmodel';
|
|
2
2
|
import type { HeadChange } from './adapter.js';
|
|
3
3
|
import type { BinaryFileRecord } from './binary.js';
|
|
4
|
-
|
|
5
|
-
export type Predicate = Value | {
|
|
6
|
-
$eq: Value;
|
|
7
|
-
} | {
|
|
8
|
-
$ne: Value;
|
|
9
|
-
} | {
|
|
10
|
-
$in: readonly Value[];
|
|
11
|
-
} | {
|
|
12
|
-
$nin: readonly Value[];
|
|
13
|
-
} | {
|
|
14
|
-
$gt?: Value;
|
|
15
|
-
$gte?: Value;
|
|
16
|
-
$lt?: Value;
|
|
17
|
-
$lte?: Value;
|
|
18
|
-
} | {
|
|
19
|
-
$all: readonly Value[];
|
|
20
|
-
} | {
|
|
21
|
-
$size: number;
|
|
22
|
-
} | {
|
|
23
|
-
$exists: boolean;
|
|
24
|
-
};
|
|
25
|
-
export type Where = {
|
|
26
|
-
$and?: readonly Where[];
|
|
27
|
-
$or?: readonly Where[];
|
|
28
|
-
[field: string]: Predicate | readonly Where[] | undefined;
|
|
29
|
-
};
|
|
30
|
-
export type Related = {
|
|
31
|
-
types?: readonly string[];
|
|
32
|
-
where?: Where;
|
|
33
|
-
pathPrefix?: string;
|
|
34
|
-
};
|
|
35
|
-
export type Filter = {
|
|
36
|
-
rooms?: readonly string[];
|
|
37
|
-
types?: readonly string[];
|
|
38
|
-
where?: Where;
|
|
39
|
-
pathPrefix?: string;
|
|
40
|
-
hop?: Related & {
|
|
41
|
-
field: string;
|
|
42
|
-
};
|
|
43
|
-
backlinks?: Related & {
|
|
44
|
-
field?: string;
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
export type Key = 'room' | 'path' | 'type' | {
|
|
48
|
-
field: string;
|
|
49
|
-
};
|
|
50
|
-
export type Select = 'all' | {
|
|
51
|
-
fields?: 'all' | readonly string[];
|
|
52
|
-
sections?: 'all' | readonly string[];
|
|
53
|
-
preamble?: true;
|
|
54
|
-
markdown?: true;
|
|
55
|
-
backlinks?: true;
|
|
56
|
-
change?: true;
|
|
57
|
-
};
|
|
58
|
-
export type OrderOptions = {
|
|
59
|
-
nulls?: 'first' | 'last';
|
|
60
|
-
stringSort?: 'lexical' | 'locale';
|
|
61
|
-
locale?: string;
|
|
62
|
-
localeOptions?: Readonly<Record<string, unknown>>;
|
|
63
|
-
};
|
|
64
|
-
export type Direction = 'asc' | 'desc';
|
|
65
|
-
export type DocumentQuery = Filter & {
|
|
66
|
-
select: Select;
|
|
67
|
-
orderBy?: readonly ({
|
|
68
|
-
by: Key;
|
|
69
|
-
direction?: Direction;
|
|
70
|
-
} & OrderOptions)[];
|
|
71
|
-
limit?: number;
|
|
72
|
-
};
|
|
73
|
-
export type GroupQuery = Filter & {
|
|
74
|
-
groupBy: readonly Exclude<Key, 'path'>[];
|
|
75
|
-
orderBy?: readonly {
|
|
76
|
-
by: 'count' | Exclude<Key, 'path'>;
|
|
77
|
-
direction?: Direction;
|
|
78
|
-
}[];
|
|
79
|
-
limit?: number;
|
|
80
|
-
};
|
|
81
|
-
export type LocalQuery = DocumentQuery | GroupQuery;
|
|
4
|
+
import type { Open } from './open.js';
|
|
82
5
|
export type Backlink = {
|
|
83
6
|
path: string;
|
|
84
7
|
type: string;
|
|
@@ -94,129 +17,73 @@ export type QueryDocument = {
|
|
|
94
17
|
markdown?: string;
|
|
95
18
|
backlinks?: readonly Backlink[];
|
|
96
19
|
change?: HeadChange | null;
|
|
20
|
+
fileId?: string | null;
|
|
21
|
+
revision?: string | null;
|
|
97
22
|
binaryFile?: BinaryFileRecord;
|
|
23
|
+
size?: number | null;
|
|
24
|
+
created?: string | null;
|
|
25
|
+
};
|
|
26
|
+
export type GroupTotal = {
|
|
27
|
+
count: number;
|
|
28
|
+
size: number;
|
|
98
29
|
};
|
|
99
30
|
export type QueryGroup = {
|
|
100
31
|
key: readonly unknown[];
|
|
101
32
|
count: number;
|
|
33
|
+
documents?: GroupTotal;
|
|
34
|
+
files?: GroupTotal;
|
|
35
|
+
updated?: string | null;
|
|
36
|
+
greatest?: unknown;
|
|
102
37
|
};
|
|
103
|
-
export type
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
groups: readonly QueryGroup[];
|
|
38
|
+
export type CoveredRoom = {
|
|
39
|
+
room: string;
|
|
40
|
+
generation: string;
|
|
41
|
+
current: boolean;
|
|
108
42
|
};
|
|
109
|
-
export type
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
available: boolean;
|
|
114
|
-
types: readonly Definition[];
|
|
43
|
+
export type QueryCoverage = {
|
|
44
|
+
rooms: readonly CoveredRoom[];
|
|
45
|
+
indexes: readonly string[];
|
|
46
|
+
overlay: readonly string[];
|
|
115
47
|
};
|
|
116
|
-
export type
|
|
117
|
-
|
|
118
|
-
|
|
48
|
+
export type Awaits = Open<'acquisition' | 'preparation' | 'unlock'>;
|
|
49
|
+
export type PendingRoom = {
|
|
50
|
+
room: string;
|
|
51
|
+
awaits: Awaits;
|
|
119
52
|
};
|
|
120
|
-
export type
|
|
121
|
-
|
|
122
|
-
value: Value;
|
|
123
|
-
} | {
|
|
124
|
-
op: 'ne';
|
|
125
|
-
value: Value;
|
|
126
|
-
} | {
|
|
127
|
-
op: 'in';
|
|
128
|
-
values: readonly Value[];
|
|
129
|
-
} | {
|
|
130
|
-
op: 'nin';
|
|
131
|
-
values: readonly Value[];
|
|
132
|
-
} | {
|
|
133
|
-
op: 'range';
|
|
134
|
-
bounds: readonly (readonly ['gt' | 'gte' | 'lt' | 'lte', Value])[];
|
|
135
|
-
} | {
|
|
136
|
-
op: 'all';
|
|
137
|
-
values: readonly Value[];
|
|
138
|
-
} | {
|
|
139
|
-
op: 'size';
|
|
140
|
-
size: number;
|
|
141
|
-
} | {
|
|
142
|
-
op: 'exists';
|
|
143
|
-
exists: boolean;
|
|
53
|
+
export type PendingResult = {
|
|
54
|
+
pending: readonly PendingRoom[];
|
|
144
55
|
};
|
|
145
|
-
export type
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
} | {
|
|
150
|
-
field: string;
|
|
151
|
-
test: Test;
|
|
56
|
+
export type DocumentRows = {
|
|
57
|
+
documents: readonly QueryDocument[];
|
|
58
|
+
next?: string;
|
|
59
|
+
total?: number;
|
|
152
60
|
};
|
|
153
|
-
export type
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
61
|
+
export type GroupRows = {
|
|
62
|
+
groups: readonly QueryGroup[];
|
|
63
|
+
next?: string;
|
|
64
|
+
total?: number;
|
|
157
65
|
};
|
|
158
|
-
export type
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
of: 'path';
|
|
162
|
-
} | {
|
|
163
|
-
of: 'type';
|
|
164
|
-
} | {
|
|
165
|
-
of: 'field';
|
|
166
|
-
field: string;
|
|
66
|
+
export type QueryRows = DocumentRows | GroupRows;
|
|
67
|
+
export type DocumentResult = DocumentRows & {
|
|
68
|
+
coverage: QueryCoverage;
|
|
167
69
|
};
|
|
168
|
-
export type
|
|
169
|
-
|
|
170
|
-
fields: 'all' | readonly string[] | null;
|
|
171
|
-
sections: 'all' | readonly string[] | null;
|
|
172
|
-
preamble: boolean;
|
|
173
|
-
markdown: boolean;
|
|
174
|
-
backlinks: boolean;
|
|
175
|
-
change: boolean;
|
|
176
|
-
orderBy: readonly {
|
|
177
|
-
key: KeyPlan;
|
|
178
|
-
options: OrderOptions & {
|
|
179
|
-
direction: Direction;
|
|
180
|
-
};
|
|
181
|
-
}[];
|
|
70
|
+
export type GroupResult = GroupRows & {
|
|
71
|
+
coverage: QueryCoverage;
|
|
182
72
|
};
|
|
183
|
-
export type
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
direction: Direction;
|
|
189
|
-
}[];
|
|
73
|
+
export type QueryResult = DocumentResult | GroupResult | PendingResult;
|
|
74
|
+
export type PlanArea = {
|
|
75
|
+
room: string;
|
|
76
|
+
path: string;
|
|
77
|
+
open: readonly string[];
|
|
190
78
|
};
|
|
191
79
|
export type PlanReach = {
|
|
192
80
|
rooms: readonly string[];
|
|
193
81
|
documents: readonly string[];
|
|
82
|
+
areas: readonly PlanArea[];
|
|
194
83
|
};
|
|
195
|
-
export type Plan = {
|
|
196
|
-
rooms: readonly string[] | null;
|
|
84
|
+
export type Plan = QueryPlan & {
|
|
197
85
|
reach: PlanReach | null;
|
|
198
|
-
|
|
199
|
-
hop: (Scope & {
|
|
200
|
-
field: string;
|
|
201
|
-
}) | null;
|
|
202
|
-
backlinks: (Scope & {
|
|
203
|
-
field: string | null;
|
|
204
|
-
}) | null;
|
|
205
|
-
shape: DocumentShape | GroupShape;
|
|
206
|
-
limit: number | null;
|
|
86
|
+
locked: readonly string[];
|
|
207
87
|
};
|
|
208
|
-
export declare
|
|
209
|
-
readonly code: QueryErrorCode;
|
|
210
|
-
readonly retryable = false;
|
|
211
|
-
constructor(code: QueryErrorCode, at: string, problem: string);
|
|
212
|
-
}
|
|
213
|
-
type Entries = Readonly<Record<string, unknown>>;
|
|
214
|
-
export declare function invalid(at: string, problem: string): never;
|
|
215
|
-
export declare function plain(value: unknown): value is Entries;
|
|
216
|
-
export declare function known(value: Entries, allowed: readonly string[], at: string): void;
|
|
217
|
-
export declare function planOf(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
|
|
218
|
-
export declare function limitOf(input: unknown): number | null;
|
|
219
|
-
export declare function filterOf(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
|
|
220
|
-
export declare function identityOf(plan: Plan): string;
|
|
221
|
-
export {};
|
|
88
|
+
export declare function planWithin(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
|
|
222
89
|
//# sourceMappingURL=query.d.ts.map
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|