@agentshouse/mdruntime 0.1.0-alpha.24 → 0.1.0-alpha.26

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.
Files changed (52) hide show
  1. package/AGENTS.md +61 -4
  2. package/dist/change-set.d.ts +4 -11
  3. package/dist/change-set.d.ts.map +1 -1
  4. package/dist/change-set.js +8 -16
  5. package/dist/change-set.js.map +1 -1
  6. package/dist/client.d.ts +9 -3
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +5 -2
  9. package/dist/client.js.map +1 -1
  10. package/dist/collection.d.ts +0 -2
  11. package/dist/collection.d.ts.map +1 -1
  12. package/dist/collection.js +0 -5
  13. package/dist/collection.js.map +1 -1
  14. package/dist/connection.d.ts +9 -5
  15. package/dist/connection.d.ts.map +1 -1
  16. package/dist/connection.js +67 -67
  17. package/dist/connection.js.map +1 -1
  18. package/dist/conversation.d.ts +7 -4
  19. package/dist/conversation.d.ts.map +1 -1
  20. package/dist/conversation.js +29 -6
  21. package/dist/conversation.js.map +1 -1
  22. package/dist/host.d.ts.map +1 -1
  23. package/dist/host.js +2 -0
  24. package/dist/host.js.map +1 -1
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/paths.d.ts +1 -0
  29. package/dist/paths.d.ts.map +1 -1
  30. package/dist/paths.js +8 -0
  31. package/dist/paths.js.map +1 -1
  32. package/dist/query.d.ts +206 -10
  33. package/dist/query.d.ts.map +1 -1
  34. package/dist/query.js +463 -14
  35. package/dist/query.js.map +1 -1
  36. package/dist/read-side.d.ts +13 -0
  37. package/dist/read-side.d.ts.map +1 -0
  38. package/dist/read-side.js +393 -0
  39. package/dist/read-side.js.map +1 -0
  40. package/dist/rows.d.ts +39 -0
  41. package/dist/rows.d.ts.map +1 -0
  42. package/dist/rows.js +85 -0
  43. package/dist/rows.js.map +1 -0
  44. package/dist/search.d.ts +61 -0
  45. package/dist/search.d.ts.map +1 -0
  46. package/dist/search.js +155 -0
  47. package/dist/search.js.map +1 -0
  48. package/dist/wire.d.ts +2 -2
  49. package/dist/wire.d.ts.map +1 -1
  50. package/dist/wire.js +2 -1
  51. package/dist/wire.js.map +1 -1
  52. package/package.json +3 -2
package/dist/query.d.ts CHANGED
@@ -1,13 +1,209 @@
1
- import type { QueryOptions, QueryResult } from '@agentshouse/query';
2
- import type { Document } from '@agentshouse/mdmodel';
3
- import type { TypesResult } from './model.js';
4
- export type QueryInput = {
1
+ import type { Definition } from '@agentshouse/mdmodel';
2
+ export type Value = string | number | boolean | null;
3
+ export type Predicate = Value | {
4
+ $eq: Value;
5
+ } | {
6
+ $ne: Value;
7
+ } | {
8
+ $in: readonly Value[];
9
+ } | {
10
+ $nin: readonly Value[];
11
+ } | {
12
+ $gt?: Value;
13
+ $gte?: Value;
14
+ $lt?: Value;
15
+ $lte?: Value;
16
+ } | {
17
+ $all: readonly Value[];
18
+ } | {
19
+ $size: number;
20
+ } | {
21
+ $exists: boolean;
22
+ };
23
+ export type Where = {
24
+ $and?: readonly Where[];
25
+ $or?: readonly Where[];
26
+ [field: string]: Predicate | readonly Where[] | undefined;
27
+ };
28
+ export type Related = {
29
+ types?: readonly string[];
30
+ where?: Where;
31
+ pathPrefix?: string;
32
+ };
33
+ export type Filter = {
34
+ rooms?: readonly string[];
35
+ types?: readonly string[];
36
+ where?: Where;
37
+ pathPrefix?: string;
38
+ hop?: Related & {
39
+ field: string;
40
+ };
41
+ backlinks?: Related & {
42
+ field?: string;
43
+ };
44
+ };
45
+ export type Key = 'room' | 'path' | 'type' | {
46
+ field: string;
47
+ };
48
+ export type Select = 'all' | {
49
+ fields?: 'all' | readonly string[];
50
+ sections?: 'all' | readonly string[];
51
+ preamble?: true;
52
+ markdown?: true;
53
+ backlinks?: true;
54
+ };
55
+ export type OrderOptions = {
56
+ nulls?: 'first' | 'last';
57
+ stringSort?: 'lexical' | 'locale';
58
+ locale?: string;
59
+ localeOptions?: Readonly<Record<string, unknown>>;
60
+ };
61
+ export type Direction = 'asc' | 'desc';
62
+ export type DocumentQuery = Filter & {
63
+ select: Select;
64
+ orderBy?: readonly ({
65
+ by: Key;
66
+ direction?: Direction;
67
+ } & OrderOptions)[];
68
+ limit?: number;
69
+ };
70
+ export type GroupQuery = Filter & {
71
+ groupBy: readonly Exclude<Key, 'path'>[];
72
+ orderBy?: readonly {
73
+ by: 'count' | Exclude<Key, 'path'>;
74
+ direction?: Direction;
75
+ }[];
76
+ limit?: number;
77
+ };
78
+ export type LocalQuery = DocumentQuery | GroupQuery;
79
+ export type Backlink = {
80
+ path: string;
81
+ type: string;
82
+ field: string;
83
+ };
84
+ export type QueryDocument = {
5
85
  room: string;
6
- roomVersion: string;
7
- documents: Readonly<Record<string, Document>>;
8
- model: TypesResult;
9
- typedSelection: TypesResult | null;
86
+ path: string;
87
+ type: string;
88
+ fields?: Readonly<Record<string, unknown>>;
89
+ sections?: Readonly<Record<string, string>>;
90
+ preamble?: string;
91
+ markdown?: string;
92
+ backlinks?: readonly Backlink[];
93
+ };
94
+ export type QueryGroup = {
95
+ key: readonly unknown[];
96
+ count: number;
97
+ };
98
+ export type DocumentResult = {
99
+ documents: readonly QueryDocument[];
100
+ };
101
+ export type GroupResult = {
102
+ groups: readonly QueryGroup[];
103
+ };
104
+ export type QueryResult = DocumentResult | GroupResult;
105
+ export type QueryErrorCode = 'invalid-query' | 'unknown-type' | 'unknown-field' | 'wrong-kind';
106
+ export type RoomFacts = {
107
+ locator: string;
108
+ available: boolean;
109
+ types: readonly Definition[];
110
+ };
111
+ export type HeldRooms = {
112
+ listed: boolean;
113
+ rooms: readonly RoomFacts[];
114
+ };
115
+ export type Test = {
116
+ op: 'eq';
117
+ value: Value;
118
+ } | {
119
+ op: 'ne';
120
+ value: Value;
121
+ } | {
122
+ op: 'in';
123
+ values: readonly Value[];
124
+ } | {
125
+ op: 'nin';
126
+ values: readonly Value[];
127
+ } | {
128
+ op: 'range';
129
+ bounds: readonly (readonly ['gt' | 'gte' | 'lt' | 'lte', Value])[];
130
+ } | {
131
+ op: 'all';
132
+ values: readonly Value[];
133
+ } | {
134
+ op: 'size';
135
+ size: number;
136
+ } | {
137
+ op: 'exists';
138
+ exists: boolean;
139
+ };
140
+ export type Condition = {
141
+ every: readonly Condition[];
142
+ } | {
143
+ some: readonly Condition[];
144
+ } | {
145
+ field: string;
146
+ test: Test;
147
+ };
148
+ export type Scope = {
149
+ types: readonly string[] | null;
150
+ where: Condition | null;
151
+ pathPrefix: string | null;
152
+ };
153
+ export type KeyPlan = {
154
+ of: 'room';
155
+ } | {
156
+ of: 'path';
157
+ } | {
158
+ of: 'type';
159
+ } | {
160
+ of: 'field';
161
+ field: string;
162
+ };
163
+ export type DocumentShape = {
164
+ kind: 'documents';
165
+ fields: 'all' | readonly string[] | null;
166
+ sections: 'all' | readonly string[] | null;
167
+ preamble: boolean;
168
+ markdown: boolean;
169
+ backlinks: boolean;
170
+ orderBy: readonly {
171
+ key: KeyPlan;
172
+ options: OrderOptions & {
173
+ direction: Direction;
174
+ };
175
+ }[];
176
+ };
177
+ export type GroupShape = {
178
+ kind: 'groups';
179
+ groupBy: readonly KeyPlan[];
180
+ orderBy: readonly {
181
+ by: 'count' | number;
182
+ direction: Direction;
183
+ }[];
184
+ };
185
+ export type Plan = {
186
+ rooms: readonly string[] | null;
187
+ root: Scope;
188
+ hop: (Scope & {
189
+ field: string;
190
+ }) | null;
191
+ backlinks: (Scope & {
192
+ field: string | null;
193
+ }) | null;
194
+ shape: DocumentShape | GroupShape;
195
+ limit: number | null;
10
196
  };
11
- export type QueryBinding = (rooms: readonly QueryInput[], options: QueryOptions) => QueryResult;
12
- export declare function rawQuery(rooms: readonly QueryInput[]): QueryResult;
197
+ export declare class QueryError extends Error {
198
+ constructor(code: QueryErrorCode, at: string, problem: string);
199
+ }
200
+ type Entries = Readonly<Record<string, unknown>>;
201
+ export declare function invalid(at: string, problem: string): never;
202
+ export declare function plain(value: unknown): value is Entries;
203
+ export declare function known(value: Entries, allowed: readonly string[], at: string): void;
204
+ export declare function planOf(input: unknown, facts: HeldRooms): Plan;
205
+ export declare function limitOf(input: unknown): number | null;
206
+ export declare function filterOf(input: unknown, facts: HeldRooms): Plan;
207
+ export declare function identityOf(plan: Plan): string;
208
+ export {};
13
209
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,KAAK,WAAW,CAAC;AAChG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,WAAW,CAgBlE"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}