@kvman/kvbuilder 0.2.0
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/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/api.d.ts +271 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +2 -0
- package/dist/api.js.map +1 -0
- package/dist/app/install-source.d.ts +3 -0
- package/dist/app/install-source.d.ts.map +1 -0
- package/dist/app/install-source.js +11 -0
- package/dist/app/install-source.js.map +1 -0
- package/dist/app/register-app-reads.d.ts +3 -0
- package/dist/app/register-app-reads.d.ts.map +1 -0
- package/dist/app/register-app-reads.js +36 -0
- package/dist/app/register-app-reads.js.map +1 -0
- package/dist/app/register-app.d.ts +3 -0
- package/dist/app/register-app.d.ts.map +1 -0
- package/dist/app/register-app.js +124 -0
- package/dist/app/register-app.js.map +1 -0
- package/dist/build/register-build.d.ts +3 -0
- package/dist/build/register-build.d.ts.map +1 -0
- package/dist/build/register-build.js +34 -0
- package/dist/build/register-build.js.map +1 -0
- package/dist/connectors/docs.d.ts +30 -0
- package/dist/connectors/docs.d.ts.map +1 -0
- package/dist/connectors/docs.js +18 -0
- package/dist/connectors/docs.js.map +1 -0
- package/dist/connectors/ext.d.ts +40 -0
- package/dist/connectors/ext.d.ts.map +1 -0
- package/dist/connectors/ext.js +13 -0
- package/dist/connectors/ext.js.map +1 -0
- package/dist/connectors/kvman.d.ts +113 -0
- package/dist/connectors/kvman.d.ts.map +1 -0
- package/dist/connectors/kvman.js +41 -0
- package/dist/connectors/kvman.js.map +1 -0
- package/dist/connectors/preset.d.ts +26 -0
- package/dist/connectors/preset.d.ts.map +1 -0
- package/dist/connectors/preset.js +11 -0
- package/dist/connectors/preset.js.map +1 -0
- package/dist/connectors/preview.d.ts +41 -0
- package/dist/connectors/preview.d.ts.map +1 -0
- package/dist/connectors/preview.js +14 -0
- package/dist/connectors/preview.js.map +1 -0
- package/dist/docs/guides.d.ts +54 -0
- package/dist/docs/guides.d.ts.map +1 -0
- package/dist/docs/guides.js +68 -0
- package/dist/docs/guides.js.map +1 -0
- package/dist/docs/own-docs.d.ts +5 -0
- package/dist/docs/own-docs.d.ts.map +1 -0
- package/dist/docs/own-docs.js +36 -0
- package/dist/docs/own-docs.js.map +1 -0
- package/dist/docs/pages.d.ts +18 -0
- package/dist/docs/pages.d.ts.map +1 -0
- package/dist/docs/pages.js +44 -0
- package/dist/docs/pages.js.map +1 -0
- package/dist/docs/register-docs.d.ts +3 -0
- package/dist/docs/register-docs.d.ts.map +1 -0
- package/dist/docs/register-docs.js +25 -0
- package/dist/docs/register-docs.js.map +1 -0
- package/dist/ext/ext-check.d.ts +8 -0
- package/dist/ext/ext-check.d.ts.map +1 -0
- package/dist/ext/ext-check.js +26 -0
- package/dist/ext/ext-check.js.map +1 -0
- package/dist/ext/ext-list.d.ts +8 -0
- package/dist/ext/ext-list.d.ts.map +1 -0
- package/dist/ext/ext-list.js +20 -0
- package/dist/ext/ext-list.js.map +1 -0
- package/dist/ext/ext-new.d.ts +15 -0
- package/dist/ext/ext-new.d.ts.map +1 -0
- package/dist/ext/ext-new.js +11 -0
- package/dist/ext/ext-new.js.map +1 -0
- package/dist/ext/findings.d.ts +12 -0
- package/dist/ext/findings.d.ts.map +1 -0
- package/dist/ext/findings.js +44 -0
- package/dist/ext/findings.js.map +1 -0
- package/dist/ext/register-ext.d.ts +3 -0
- package/dist/ext/register-ext.d.ts.map +1 -0
- package/dist/ext/register-ext.js +49 -0
- package/dist/ext/register-ext.js.map +1 -0
- package/dist/folders.d.ts +18 -0
- package/dist/folders.d.ts.map +1 -0
- package/dist/folders.js +53 -0
- package/dist/folders.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/job-options.d.ts +33 -0
- package/dist/job-options.d.ts.map +1 -0
- package/dist/job-options.js +13 -0
- package/dist/job-options.js.map +1 -0
- package/dist/preset/register-preset.d.ts +3 -0
- package/dist/preset/register-preset.d.ts.map +1 -0
- package/dist/preset/register-preset.js +55 -0
- package/dist/preset/register-preset.js.map +1 -0
- package/dist/preview/preview-call.d.ts +20 -0
- package/dist/preview/preview-call.d.ts.map +1 -0
- package/dist/preview/preview-call.js +39 -0
- package/dist/preview/preview-call.js.map +1 -0
- package/dist/preview/preview-start.d.ts +8 -0
- package/dist/preview/preview-start.d.ts.map +1 -0
- package/dist/preview/preview-start.js +103 -0
- package/dist/preview/preview-start.js.map +1 -0
- package/dist/preview/preview-state.d.ts +11 -0
- package/dist/preview/preview-state.d.ts.map +1 -0
- package/dist/preview/preview-state.js +18 -0
- package/dist/preview/preview-state.js.map +1 -0
- package/dist/preview/register-preview.d.ts +3 -0
- package/dist/preview/register-preview.d.ts.map +1 -0
- package/dist/preview/register-preview.js +75 -0
- package/dist/preview/register-preview.js.map +1 -0
- package/dist/problems.d.ts +8 -0
- package/dist/problems.d.ts.map +1 -0
- package/dist/problems.js +11 -0
- package/dist/problems.js.map +1 -0
- package/dist/program-command.d.ts +17 -0
- package/dist/program-command.d.ts.map +1 -0
- package/dist/program-command.js +12 -0
- package/dist/program-command.js.map +1 -0
- package/dist/query/register-app-query.d.ts +3 -0
- package/dist/query/register-app-query.d.ts.map +1 -0
- package/dist/query/register-app-query.js +39 -0
- package/dist/query/register-app-query.js.map +1 -0
- package/dist/register-with-kvcoder.d.ts +3 -0
- package/dist/register-with-kvcoder.d.ts.map +1 -0
- package/dist/register-with-kvcoder.js +20 -0
- package/dist/register-with-kvcoder.js.map +1 -0
- package/dist/run-bin.d.ts +31 -0
- package/dist/run-bin.d.ts.map +1 -0
- package/dist/run-bin.js +137 -0
- package/dist/run-bin.js.map +1 -0
- package/dist/run-program.d.ts +12 -0
- package/dist/run-program.d.ts.map +1 -0
- package/dist/run-program.js +49 -0
- package/dist/run-program.js.map +1 -0
- package/docs/building.md +154 -0
- package/docs/guide.md +34 -0
- package/locales/ar.json +12 -0
- package/locales/en.json +12 -0
- package/package.json +55 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ahmed Deif
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# @kvman/kvbuilder
|
|
2
|
+
|
|
3
|
+
The [kvman](https://github.com/ibndeif/kvman) extension that builds kvman from a chat: it develops extensions and presets, and manages the running app. It is bundled with kvman, and needs `@kvman/kvai` and `@kvman/kvcoder`.
|
|
4
|
+
|
|
5
|
+
See [its guides](https://github.com/ibndeif/kvman/tree/main/extensions/kvbuilder/docs).
|
|
6
|
+
|
|
7
|
+
## License
|
|
8
|
+
|
|
9
|
+
MIT
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import type { KernelQueries } from '@kvman/sdk';
|
|
2
|
+
type Empty = Record<string, never>;
|
|
3
|
+
type Finding = {
|
|
4
|
+
file?: string;
|
|
5
|
+
message: string;
|
|
6
|
+
hint: string;
|
|
7
|
+
};
|
|
8
|
+
type Folder = {
|
|
9
|
+
folder: string;
|
|
10
|
+
};
|
|
11
|
+
type Guide = {
|
|
12
|
+
extension: string;
|
|
13
|
+
topic: string;
|
|
14
|
+
title: string;
|
|
15
|
+
};
|
|
16
|
+
type Page = {
|
|
17
|
+
topic: string;
|
|
18
|
+
title: string;
|
|
19
|
+
markdown: string;
|
|
20
|
+
};
|
|
21
|
+
type PreviewCall = {
|
|
22
|
+
name: string;
|
|
23
|
+
input?: Record<string, unknown>;
|
|
24
|
+
};
|
|
25
|
+
type PreviewAnswer = {
|
|
26
|
+
ok: true;
|
|
27
|
+
output: unknown;
|
|
28
|
+
} | {
|
|
29
|
+
ok: false;
|
|
30
|
+
problem: {
|
|
31
|
+
code: string;
|
|
32
|
+
message: string;
|
|
33
|
+
params?: Record<string, unknown>;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
type PreviewStatus = {
|
|
37
|
+
running: false;
|
|
38
|
+
} | {
|
|
39
|
+
running: true;
|
|
40
|
+
url: string;
|
|
41
|
+
extensions: string[];
|
|
42
|
+
startedAt: string;
|
|
43
|
+
};
|
|
44
|
+
declare module '@kvman/sdk' {
|
|
45
|
+
interface Commands {
|
|
46
|
+
'kvbuilder.ext.new': {
|
|
47
|
+
input: {
|
|
48
|
+
name: string;
|
|
49
|
+
namespace: string;
|
|
50
|
+
folder: string;
|
|
51
|
+
web?: boolean;
|
|
52
|
+
};
|
|
53
|
+
output: {
|
|
54
|
+
folder: string;
|
|
55
|
+
name: string;
|
|
56
|
+
namespace: string;
|
|
57
|
+
web: boolean;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
'kvbuilder.ext.check': {
|
|
61
|
+
input: Folder;
|
|
62
|
+
output: Finding[];
|
|
63
|
+
};
|
|
64
|
+
'kvbuilder.ext.test': {
|
|
65
|
+
input: Folder;
|
|
66
|
+
output: {
|
|
67
|
+
passed: boolean;
|
|
68
|
+
exitCode: number;
|
|
69
|
+
output: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
'kvbuilder.preset.new': {
|
|
73
|
+
input: {
|
|
74
|
+
name: string;
|
|
75
|
+
file: string;
|
|
76
|
+
};
|
|
77
|
+
output: {
|
|
78
|
+
file: string;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
'kvbuilder.preset.check': {
|
|
82
|
+
input: {
|
|
83
|
+
file: string;
|
|
84
|
+
};
|
|
85
|
+
output: {
|
|
86
|
+
file: string;
|
|
87
|
+
message: string;
|
|
88
|
+
hint: string;
|
|
89
|
+
}[];
|
|
90
|
+
};
|
|
91
|
+
'kvbuilder.preview.start': {
|
|
92
|
+
input: {
|
|
93
|
+
extensions: string[];
|
|
94
|
+
preset?: string;
|
|
95
|
+
};
|
|
96
|
+
output: {
|
|
97
|
+
url: string;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
'kvbuilder.preview.stop': {
|
|
101
|
+
input: Empty;
|
|
102
|
+
output: Empty;
|
|
103
|
+
};
|
|
104
|
+
'kvbuilder.preview.command.run': {
|
|
105
|
+
input: PreviewCall;
|
|
106
|
+
output: PreviewAnswer;
|
|
107
|
+
};
|
|
108
|
+
'kvbuilder.app.model.set': {
|
|
109
|
+
input: {
|
|
110
|
+
model: string;
|
|
111
|
+
};
|
|
112
|
+
output: Empty;
|
|
113
|
+
};
|
|
114
|
+
'kvbuilder.app.settings.set': {
|
|
115
|
+
input: {
|
|
116
|
+
key: string;
|
|
117
|
+
value: unknown;
|
|
118
|
+
scope: 'global' | 'workspace';
|
|
119
|
+
};
|
|
120
|
+
output: Empty;
|
|
121
|
+
};
|
|
122
|
+
'kvbuilder.app.settings.reset': {
|
|
123
|
+
input: {
|
|
124
|
+
key: string;
|
|
125
|
+
scope: 'global' | 'workspace';
|
|
126
|
+
};
|
|
127
|
+
output: Empty;
|
|
128
|
+
};
|
|
129
|
+
'kvbuilder.app.extensions.install': {
|
|
130
|
+
input: {
|
|
131
|
+
source: string;
|
|
132
|
+
};
|
|
133
|
+
output: {
|
|
134
|
+
file: string;
|
|
135
|
+
restartRequired: true;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
'kvbuilder.app.restart': {
|
|
139
|
+
input: Empty;
|
|
140
|
+
output: {
|
|
141
|
+
restarting: true;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
'kvbuilder.build.start': {
|
|
145
|
+
input: {
|
|
146
|
+
sessionId: string;
|
|
147
|
+
argument: string;
|
|
148
|
+
};
|
|
149
|
+
output: Empty;
|
|
150
|
+
};
|
|
151
|
+
'kvbuilder.app.extensions.uninstall': {
|
|
152
|
+
input: {
|
|
153
|
+
name: string;
|
|
154
|
+
};
|
|
155
|
+
output: {
|
|
156
|
+
file: string;
|
|
157
|
+
restartRequired: true;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
interface Queries {
|
|
162
|
+
'kvbuilder.ext.list': {
|
|
163
|
+
input: Empty;
|
|
164
|
+
output: {
|
|
165
|
+
folder: string;
|
|
166
|
+
name: string;
|
|
167
|
+
namespace: string;
|
|
168
|
+
version: string;
|
|
169
|
+
}[];
|
|
170
|
+
};
|
|
171
|
+
'kvbuilder.preview.status': {
|
|
172
|
+
input: Empty;
|
|
173
|
+
output: PreviewStatus;
|
|
174
|
+
};
|
|
175
|
+
'kvbuilder.preview.query.get': {
|
|
176
|
+
input: PreviewCall;
|
|
177
|
+
output: PreviewAnswer;
|
|
178
|
+
};
|
|
179
|
+
'kvbuilder.app.model.list': {
|
|
180
|
+
input: Empty;
|
|
181
|
+
output: {
|
|
182
|
+
id: string;
|
|
183
|
+
name: string;
|
|
184
|
+
provider: string;
|
|
185
|
+
isDefault: boolean;
|
|
186
|
+
}[];
|
|
187
|
+
};
|
|
188
|
+
'kvbuilder.app.settings.list': {
|
|
189
|
+
input: Empty;
|
|
190
|
+
output: {
|
|
191
|
+
key: string;
|
|
192
|
+
description: string;
|
|
193
|
+
scopes: ('global' | 'workspace')[];
|
|
194
|
+
value: unknown;
|
|
195
|
+
source: string;
|
|
196
|
+
}[];
|
|
197
|
+
};
|
|
198
|
+
'kvbuilder.app.extensions.list': {
|
|
199
|
+
input: Empty;
|
|
200
|
+
output: {
|
|
201
|
+
name: string;
|
|
202
|
+
version: string;
|
|
203
|
+
source: string;
|
|
204
|
+
namespace: string;
|
|
205
|
+
commands: string[];
|
|
206
|
+
queries: string[];
|
|
207
|
+
settings: string[];
|
|
208
|
+
}[];
|
|
209
|
+
};
|
|
210
|
+
'kvbuilder.app.preset.get': {
|
|
211
|
+
input: Empty;
|
|
212
|
+
output: {
|
|
213
|
+
name: string;
|
|
214
|
+
origin: 'bundled' | 'home' | 'file';
|
|
215
|
+
file?: string;
|
|
216
|
+
extensions: Record<string, string>;
|
|
217
|
+
settings?: Record<string, unknown>;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
'kvbuilder.app.workspaces.list': KernelQueries['kernel.workspace.list'];
|
|
221
|
+
'kvbuilder.app.jobs.list': KernelQueries['kernel.jobs.list'];
|
|
222
|
+
'kvbuilder.app.jobs.get': KernelQueries['kernel.jobs.get'];
|
|
223
|
+
'kvbuilder.app.processes.list': KernelQueries['kernel.processes.list'];
|
|
224
|
+
'kvbuilder.app.health.get': KernelQueries['kernel.health.get'];
|
|
225
|
+
'kvbuilder.app.query.get': {
|
|
226
|
+
input: {
|
|
227
|
+
name: string;
|
|
228
|
+
input?: Record<string, unknown>;
|
|
229
|
+
};
|
|
230
|
+
output: unknown;
|
|
231
|
+
};
|
|
232
|
+
'kvbuilder.guides.list': {
|
|
233
|
+
input: Empty;
|
|
234
|
+
output: {
|
|
235
|
+
pages: Guide[];
|
|
236
|
+
problems: {
|
|
237
|
+
extension: string;
|
|
238
|
+
problem: {
|
|
239
|
+
code: string;
|
|
240
|
+
message: string;
|
|
241
|
+
params?: Record<string, unknown>;
|
|
242
|
+
};
|
|
243
|
+
}[];
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
'kvbuilder.guides.get': {
|
|
247
|
+
input: {
|
|
248
|
+
extension?: string;
|
|
249
|
+
topic: string;
|
|
250
|
+
};
|
|
251
|
+
output: Guide & {
|
|
252
|
+
markdown: string;
|
|
253
|
+
};
|
|
254
|
+
};
|
|
255
|
+
'kvbuilder.docs.list': {
|
|
256
|
+
input: Empty;
|
|
257
|
+
output: {
|
|
258
|
+
topic: string;
|
|
259
|
+
title: string;
|
|
260
|
+
}[];
|
|
261
|
+
};
|
|
262
|
+
'kvbuilder.docs.get': {
|
|
263
|
+
input: {
|
|
264
|
+
topic: string;
|
|
265
|
+
};
|
|
266
|
+
output: Page;
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
export {};
|
|
271
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
ADDED
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-source.d.ts","sourceRoot":"","sources":["../../src/app/install-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,CAG3F"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { projectAt } from "../folders.js";
|
|
2
|
+
// The source `kvman extensions-install` sends (plan 09 §9.1, ADR 0022, 6, ADR 0025). The kernel resolves a `path:` folder
|
|
3
|
+
// against the preset file, and a project the agent built is in the workspace, so the folder is resolved here against
|
|
4
|
+
// the workspace folder, checked to be a project, and sent absolute. Other sources pass as they are.
|
|
5
|
+
const pathPrefix = 'path:';
|
|
6
|
+
export function installSource(workspaceFolder, source) {
|
|
7
|
+
if (!source.startsWith(pathPrefix))
|
|
8
|
+
return source;
|
|
9
|
+
return `${pathPrefix}${projectAt(workspaceFolder, source.slice(pathPrefix.length)).folder}`;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=install-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-source.js","sourceRoot":"","sources":["../../src/app/install-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,0HAA0H;AAC1H,qHAAqH;AACrH,oGAAoG;AAEpG,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B,MAAM,UAAU,aAAa,CAAC,eAAuB,EAAE,MAAqB;IAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-app-reads.d.ts","sourceRoot":"","sources":["../../src/app/register-app-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAK1D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA+B/C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { kernelQuerySchemas } from '@kvman/sdk';
|
|
2
|
+
// The `kvman` connector's reads of the app's state (plan 09 §9.1, ADR 0022, 7): the open workspaces, the jobs of the
|
|
3
|
+
// chat's workspace, the long-lived processes, and the app's health. Each wraps the kernel query of the same name.
|
|
4
|
+
export function registerAppReads(ctx) {
|
|
5
|
+
ctx.registerQuery('kvbuilder.app.workspaces.list', {
|
|
6
|
+
description: 'Lists the open workspaces, Home first.',
|
|
7
|
+
public: true,
|
|
8
|
+
...kernelQuerySchemas['kernel.workspace.list'],
|
|
9
|
+
handle: () => ctx.exec('kernel.workspace.list', {}),
|
|
10
|
+
});
|
|
11
|
+
ctx.registerQuery('kvbuilder.app.jobs.list', {
|
|
12
|
+
description: "Lists this workspace's async and scheduled jobs, newest first, with their status and, for a failed one, its Problem.",
|
|
13
|
+
public: true,
|
|
14
|
+
...kernelQuerySchemas['kernel.jobs.list'],
|
|
15
|
+
handle: (input) => ctx.exec('kernel.jobs.list', input),
|
|
16
|
+
});
|
|
17
|
+
ctx.registerQuery('kvbuilder.app.jobs.get', {
|
|
18
|
+
description: 'Gives one job of any workspace by its id.',
|
|
19
|
+
public: true,
|
|
20
|
+
...kernelQuerySchemas['kernel.jobs.get'],
|
|
21
|
+
handle: (input) => ctx.exec('kernel.jobs.get', input),
|
|
22
|
+
});
|
|
23
|
+
ctx.registerQuery('kvbuilder.app.processes.list', {
|
|
24
|
+
description: 'Lists the long-lived processes that extensions keep running.',
|
|
25
|
+
public: true,
|
|
26
|
+
...kernelQuerySchemas['kernel.processes.list'],
|
|
27
|
+
handle: () => ctx.exec('kernel.processes.list', {}),
|
|
28
|
+
});
|
|
29
|
+
ctx.registerQuery('kvbuilder.app.health.get', {
|
|
30
|
+
description: "Gives kvman's version, preset, mode, pool size, uptime, and languages.",
|
|
31
|
+
public: true,
|
|
32
|
+
...kernelQuerySchemas['kernel.health.get'],
|
|
33
|
+
handle: () => ctx.exec('kernel.health.get', {}),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=register-app-reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-app-reads.js","sourceRoot":"","sources":["../../src/app/register-app-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAE1D,qHAAqH;AACrH,kHAAkH;AAElH,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,GAAG,CAAC,aAAa,CAAC,+BAA+B,EAAE;QACjD,WAAW,EAAE,wCAAwC;QACrD,MAAM,EAAE,IAAI;QACZ,GAAG,kBAAkB,CAAC,uBAAuB,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;KACpD,CAAC,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,yBAAyB,EAAE;QAC3C,WAAW,EAAE,sHAAsH;QACnI,MAAM,EAAE,IAAI;QACZ,GAAG,kBAAkB,CAAC,kBAAkB,CAAC;QACzC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC;KACvD,CAAC,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,wBAAwB,EAAE;QAC1C,WAAW,EAAE,2CAA2C;QACxD,MAAM,EAAE,IAAI;QACZ,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;QACxC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;KACtD,CAAC,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,8BAA8B,EAAE;QAChD,WAAW,EAAE,8DAA8D;QAC3E,MAAM,EAAE,IAAI;QACZ,GAAG,kBAAkB,CAAC,uBAAuB,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;KACpD,CAAC,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,0BAA0B,EAAE;QAC5C,WAAW,EAAE,wEAAwE;QACrF,MAAM,EAAE,IAAI;QACZ,GAAG,kBAAkB,CAAC,mBAAmB,CAAC;QAC1C,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;KAChD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-app.d.ts","sourceRoot":"","sources":["../../src/app/register-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8G,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAqClJ,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAiG1C"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { extensionSourceSchema, installSourceSchema, kernelCommandSchemas, kernelQuerySchemas, packageNameSchema, z } from '@kvman/sdk';
|
|
2
|
+
import { invalid } from "../problems.js";
|
|
3
|
+
import { installSource } from "./install-source.js";
|
|
4
|
+
// The `kvman` connector's commands (plan 09 §9.1, ADR 0010, 6 and 8): the model, the settings, the extensions, and the
|
|
5
|
+
// preset of the app the agent runs in. Each wraps a kernel command (or kvai's model list) and nothing here reads,
|
|
6
|
+
// writes, or lists a secret (CLAUDE.md §6). A change to the extensions or the preset applies at the next start. The
|
|
7
|
+
// commands that change the app are registered with kvcoder as ones the person approves first (ADR 0022, 5).
|
|
8
|
+
const empty = z.object({});
|
|
9
|
+
const callableModelSchema = z.object({ id: z.string(), name: z.string(), provider: z.string(), isDefault: z.boolean() });
|
|
10
|
+
const extensionRowSchema = z.object({
|
|
11
|
+
name: z.string(),
|
|
12
|
+
version: z.string(),
|
|
13
|
+
source: extensionSourceSchema,
|
|
14
|
+
namespace: z.string(),
|
|
15
|
+
commands: z.array(z.string()),
|
|
16
|
+
queries: z.array(z.string()),
|
|
17
|
+
settings: z.array(z.string()),
|
|
18
|
+
});
|
|
19
|
+
const editResultSchema = kernelCommandSchemas['kernel.extensions.install'].output;
|
|
20
|
+
// The models that can be called now: those of a provider that is connected, and those of a custom provider.
|
|
21
|
+
async function callableModels(ctx) {
|
|
22
|
+
const providers = await ctx.exec('kvai.provider.list', {});
|
|
23
|
+
const callable = new Set(providers.filter((provider) => provider.connection !== null || !provider.builtIn).map((provider) => provider.id));
|
|
24
|
+
const models = await ctx.exec('kvai.model.list', {});
|
|
25
|
+
return models
|
|
26
|
+
.filter((model) => callable.has(model.provider))
|
|
27
|
+
.map((model) => ({ id: model.id, name: model.name, provider: model.provider, isDefault: model.isDefault }))
|
|
28
|
+
.sort((left, right) => left.id.localeCompare(right.id));
|
|
29
|
+
}
|
|
30
|
+
export function registerApp(ctx) {
|
|
31
|
+
ctx.registerQuery('kvbuilder.app.model.list', {
|
|
32
|
+
description: 'Lists the models that can be called now: those of connected providers and of custom providers.',
|
|
33
|
+
public: true,
|
|
34
|
+
input: empty,
|
|
35
|
+
output: z.array(callableModelSchema),
|
|
36
|
+
handle: () => callableModels(ctx),
|
|
37
|
+
});
|
|
38
|
+
ctx.registerCommand('kvbuilder.app.model.set', {
|
|
39
|
+
description: 'Sets the default model, which must be one that model list shows.',
|
|
40
|
+
public: true,
|
|
41
|
+
retries: 0,
|
|
42
|
+
input: z.object({ model: z.string().min(1).describe('The full model id, such as anthropic/claude-sonnet-5-5.') }),
|
|
43
|
+
output: empty,
|
|
44
|
+
handle: async (input) => {
|
|
45
|
+
if (!(await callableModels(ctx)).some((model) => model.id === input.model)) {
|
|
46
|
+
throw invalid(`${input.model} isn't a model that can be called now; run model list to see the ones that can.`, { model: input.model });
|
|
47
|
+
}
|
|
48
|
+
await ctx.exec('kernel.settings.set', { key: 'kvai.defaultModel', value: input.model, scope: 'global' });
|
|
49
|
+
return {};
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
ctx.registerQuery('kvbuilder.app.settings.list', {
|
|
53
|
+
description: 'Lists every setting with its description, schema, scopes, value, and where the value comes from.',
|
|
54
|
+
public: true,
|
|
55
|
+
input: empty,
|
|
56
|
+
output: kernelQuerySchemas['kernel.settings.list'].output,
|
|
57
|
+
handle: () => ctx.exec('kernel.settings.list', {}),
|
|
58
|
+
});
|
|
59
|
+
ctx.registerCommand('kvbuilder.app.settings.set', {
|
|
60
|
+
description: 'Sets a setting, globally or for this workspace.',
|
|
61
|
+
public: true,
|
|
62
|
+
retries: 0,
|
|
63
|
+
input: kernelCommandSchemas['kernel.settings.set'].input,
|
|
64
|
+
output: empty,
|
|
65
|
+
handle: (input) => ctx.exec('kernel.settings.set', input),
|
|
66
|
+
});
|
|
67
|
+
ctx.registerCommand('kvbuilder.app.settings.reset', {
|
|
68
|
+
description: 'Resets a setting to the value it would have without this scope.',
|
|
69
|
+
public: true,
|
|
70
|
+
retries: 0,
|
|
71
|
+
input: kernelCommandSchemas['kernel.settings.reset'].input,
|
|
72
|
+
output: empty,
|
|
73
|
+
handle: (input) => ctx.exec('kernel.settings.reset', input),
|
|
74
|
+
});
|
|
75
|
+
ctx.registerQuery('kvbuilder.app.extensions.list', {
|
|
76
|
+
description: 'Lists the extensions that run now, with their version, source, and the names they register.',
|
|
77
|
+
public: true,
|
|
78
|
+
input: empty,
|
|
79
|
+
output: z.array(extensionRowSchema),
|
|
80
|
+
handle: async () => (await ctx.exec('kernel.extensions.list', {})).map((extension) => ({
|
|
81
|
+
name: extension.name,
|
|
82
|
+
version: extension.version,
|
|
83
|
+
source: extension.source,
|
|
84
|
+
namespace: extension.namespace,
|
|
85
|
+
commands: extension.commands.map((command) => command.name),
|
|
86
|
+
queries: extension.queries.map((query) => query.name),
|
|
87
|
+
settings: extension.settings.map((setting) => setting.key),
|
|
88
|
+
})),
|
|
89
|
+
});
|
|
90
|
+
ctx.registerCommand('kvbuilder.app.extensions.install', {
|
|
91
|
+
description: 'Adds an extension to the preset; it starts at the next start of kvman. A path: folder is a project of the workspace.',
|
|
92
|
+
public: true,
|
|
93
|
+
retries: 0,
|
|
94
|
+
input: z.strictObject({
|
|
95
|
+
source: installSourceSchema.describe('npm:<package name>@<exact version>, path:<a project folder, relative to the workspace folder>, or bundled:<package name> (only for a bundled extension).'),
|
|
96
|
+
}),
|
|
97
|
+
output: editResultSchema,
|
|
98
|
+
handle: (input) => ctx.exec('kernel.extensions.install', { source: installSource(ctx.job.workspace.path, input.source) }),
|
|
99
|
+
});
|
|
100
|
+
ctx.registerCommand('kvbuilder.app.restart', {
|
|
101
|
+
description: 'Restarts kvman: it stops running work and starts again with the preset as it is stored.',
|
|
102
|
+
public: true,
|
|
103
|
+
retries: 0,
|
|
104
|
+
input: empty,
|
|
105
|
+
output: z.object({ restarting: z.literal(true) }),
|
|
106
|
+
handle: () => ctx.exec('kernel.restart', {}),
|
|
107
|
+
});
|
|
108
|
+
ctx.registerCommand('kvbuilder.app.extensions.uninstall', {
|
|
109
|
+
description: 'Removes an extension from the preset; it stops at the next start of kvman.',
|
|
110
|
+
public: true,
|
|
111
|
+
retries: 0,
|
|
112
|
+
input: z.object({ name: packageNameSchema.describe('The extension package name.') }),
|
|
113
|
+
output: editResultSchema,
|
|
114
|
+
handle: (input) => ctx.exec('kernel.extensions.uninstall', input),
|
|
115
|
+
});
|
|
116
|
+
ctx.registerQuery('kvbuilder.app.preset.get', {
|
|
117
|
+
description: 'Gives the preset as stored now: its name, where it came from, its extensions, and its settings.',
|
|
118
|
+
public: true,
|
|
119
|
+
input: empty,
|
|
120
|
+
output: kernelQuerySchemas['kernel.preset.get'].output,
|
|
121
|
+
handle: () => ctx.exec('kernel.preset.get', {}),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=register-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-app.js","sourceRoot":"","sources":["../../src/app/register-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-build.d.ts","sourceRoot":"","sources":["../../src/build/register-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAiBzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAmB5C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from '@kvman/sdk';
|
|
2
|
+
import { docsConnector } from "../connectors/docs.js";
|
|
3
|
+
import { extConnector } from "../connectors/ext.js";
|
|
4
|
+
import { kvmanConnector } from "../connectors/kvman.js";
|
|
5
|
+
import { presetConnector } from "../connectors/preset.js";
|
|
6
|
+
import { previewConnector } from "../connectors/preview.js";
|
|
7
|
+
import { readGuide } from "../docs/own-docs.js";
|
|
8
|
+
// `/build-kvman` (plan 09 §9.4; ADR 0027, 12): the person starts building kvman in a chat; the agent never does. The
|
|
9
|
+
// connectors are enabled first, so a session that kvcoder refuses leaves nothing behind.
|
|
10
|
+
// kvbuilder's connectors, which a chat has only after `/build-kvman` ran in it.
|
|
11
|
+
const connectorNames = [kvmanConnector, extConnector, presetConnector, previewConnector, docsConnector].map((connector) => connector.name);
|
|
12
|
+
const owner = '@kvman/kvbuilder';
|
|
13
|
+
export function registerBuild(ctx) {
|
|
14
|
+
ctx.registerCommand('kvbuilder.build.start', {
|
|
15
|
+
description: "Starts building kvman in one chat: gives the chat kvbuilder's connectors and its guide.",
|
|
16
|
+
public: true,
|
|
17
|
+
retries: 0,
|
|
18
|
+
input: z.object({
|
|
19
|
+
sessionId: z.string().min(1).describe('The chat to build kvman in.'),
|
|
20
|
+
argument: z.string().describe('The text after /build-kvman; the send box sends it as the message.'),
|
|
21
|
+
}),
|
|
22
|
+
output: z.object({}),
|
|
23
|
+
handle: async ({ sessionId }) => {
|
|
24
|
+
await ctx.exec('kvcoder.connector.enable', { sessionId, names: connectorNames });
|
|
25
|
+
const sections = await ctx.exec('kvcoder.section.list', { sessionId });
|
|
26
|
+
const started = sections.some((section) => section.id === 'guide' && section.owner === owner && section.sessionId === sessionId);
|
|
27
|
+
await ctx.exec('kvcoder.section.set', { id: 'guide', title: 'Building kvman', order: 20, sessionId, content: readGuide() });
|
|
28
|
+
if (!started)
|
|
29
|
+
await ctx.exec('kvcoder.note.add', { sessionId, key: 'kvbuilder.build.started' });
|
|
30
|
+
return {};
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=register-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-build.js","sourceRoot":"","sources":["../../src/build/register-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qHAAqH;AACrH,yFAAyF;AAEzF,gFAAgF;AAChF,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAE3I,MAAM,KAAK,GAAG,kBAAkB,CAAC;AAEjC,MAAM,UAAU,aAAa,CAAC,GAAQ;IACpC,GAAG,CAAC,eAAe,CAAC,uBAAuB,EAAE;QAC3C,WAAW,EAAE,yFAAyF;QACtG,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;SACpG,CAAC;QACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC9B,MAAM,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACjF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YACjI,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5H,IAAI,CAAC,OAAO;gBAAE,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAChG,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const docsConnector: {
|
|
2
|
+
name: string;
|
|
3
|
+
optIn: true;
|
|
4
|
+
description: string;
|
|
5
|
+
commands: ({
|
|
6
|
+
name: string;
|
|
7
|
+
command: string;
|
|
8
|
+
examples: {
|
|
9
|
+
description: string;
|
|
10
|
+
input: {};
|
|
11
|
+
}[];
|
|
12
|
+
} | {
|
|
13
|
+
name: string;
|
|
14
|
+
command: string;
|
|
15
|
+
examples: ({
|
|
16
|
+
description: string;
|
|
17
|
+
input: {
|
|
18
|
+
topic: string;
|
|
19
|
+
extension?: never;
|
|
20
|
+
};
|
|
21
|
+
} | {
|
|
22
|
+
description: string;
|
|
23
|
+
input: {
|
|
24
|
+
extension: string;
|
|
25
|
+
topic: string;
|
|
26
|
+
};
|
|
27
|
+
})[];
|
|
28
|
+
})[];
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/connectors/docs.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAezB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// The `docs` connector (plan 09 §9.1 and §9.5): the guides of kvman and the pages of every installed extension.
|
|
2
|
+
export const docsConnector = {
|
|
3
|
+
name: 'docs',
|
|
4
|
+
optIn: true,
|
|
5
|
+
description: 'Read the guides of kvman and of every installed extension. Use it before you write an extension, a preset, a view, or a component, and to learn how to use an extension that is installed.',
|
|
6
|
+
commands: [
|
|
7
|
+
{ name: 'list', command: 'kvbuilder.guides.list', examples: [{ description: 'List every guide and page', input: {} }] },
|
|
8
|
+
{
|
|
9
|
+
name: 'get',
|
|
10
|
+
command: 'kvbuilder.guides.get',
|
|
11
|
+
examples: [
|
|
12
|
+
{ description: 'Read the SDK guide', input: { topic: 'sdk' } },
|
|
13
|
+
{ description: "Read an installed extension's page", input: { extension: '@kvman/kvwebui', topic: 'views' } },
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/connectors/docs.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,IAAa;IACpB,WAAW,EAAE,4LAA4L;IACzM,QAAQ,EAAE;QACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE;QACvH;YACE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE;gBACR,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9D,EAAE,WAAW,EAAE,oCAAoC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;aAC9G;SACF;KACF;CACF,CAAC"}
|