aui-agent-builder 0.4.2 → 0.4.4
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 +18 -11
- package/dist/api-client/apollo-client.d.ts +40 -0
- package/dist/api-client/apollo-client.d.ts.map +1 -1
- package/dist/api-client/apollo-client.js.map +1 -1
- package/dist/api-client/mock-db-client.d.ts +144 -0
- package/dist/api-client/mock-db-client.d.ts.map +1 -0
- package/dist/api-client/mock-db-client.js +345 -0
- package/dist/api-client/mock-db-client.js.map +1 -0
- package/dist/commands/agents.d.ts +11 -17
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +148 -144
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/apollo.d.ts +53 -0
- package/dist/commands/apollo.d.ts.map +1 -1
- package/dist/commands/apollo.js +121 -10
- package/dist/commands/apollo.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/mockdb-guide.d.ts +7 -0
- package/dist/commands/mockdb-guide.d.ts.map +1 -0
- package/dist/commands/mockdb-guide.js +100 -0
- package/dist/commands/mockdb-guide.js.map +1 -0
- package/dist/commands/mockdb.d.ts +76 -0
- package/dist/commands/mockdb.d.ts.map +1 -0
- package/dist/commands/mockdb.js +535 -0
- package/dist/commands/mockdb.js.map +1 -0
- package/dist/config/index.d.ts +33 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +58 -0
- package/dist/config/index.js.map +1 -1
- package/dist/index.js +308 -10
- package/dist/index.js.map +1 -1
- package/dist/services/mock-db.service.d.ts +66 -0
- package/dist/services/mock-db.service.d.ts.map +1 -0
- package/dist/services/mock-db.service.js +177 -0
- package/dist/services/mock-db.service.js.map +1 -0
- package/dist/utils/fetch-with-timeout.d.ts +2 -2
- package/dist/utils/fetch-with-timeout.js +3 -3
- package/dist/utils/fetch-with-timeout.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mockdb command group — drive the per-agent mock database service.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands wrap the mock-db management + runtime planes so a builder (or a
|
|
5
|
+
* coding agent) can stand up and exercise a mock data backend WITHOUT
|
|
6
|
+
* forwarding the raw AUI token to an external host: the token is sent
|
|
7
|
+
* first-party from the CLI only on the first provision, and every call after
|
|
8
|
+
* that uses the per-agent management / runtime keys.
|
|
9
|
+
*
|
|
10
|
+
* Design (mirrors `apollo`):
|
|
11
|
+
* - Fully non-interactive; every input is a flag.
|
|
12
|
+
* - Always emits the canonical JSON `{ success, data }` envelope — built for
|
|
13
|
+
* tooling / coding agents. (A human `--pretty` table view exists in this
|
|
14
|
+
* file — `renderDescribe`/`renderExport`/… — but the `--pretty` flag is
|
|
15
|
+
* temporarily DISABLED at the command layer in `src/index.ts`; the
|
|
16
|
+
* renderers are kept so it can be re-enabled later. They render plain text
|
|
17
|
+
* + color, not Ink, so they stay correct whether stdout is a TTY or piped.)
|
|
18
|
+
* - Each subcommand opens an `aui.mockdb.*` span with redacted curl repro +
|
|
19
|
+
* HTTP telemetry (via the client), exactly like the other clients.
|
|
20
|
+
* - Agent/account context comes from `.auirc`; auth-mode selection + key
|
|
21
|
+
* storage live in `services/mock-db.service.ts`.
|
|
22
|
+
*/
|
|
23
|
+
import * as fs from "fs";
|
|
24
|
+
import * as path from "path";
|
|
25
|
+
import chalk from "chalk";
|
|
26
|
+
import { isJsonMode, outputJson, setJsonMode, stderrLog, } from "../utils/json-output.js";
|
|
27
|
+
import { ValidationError } from "../errors/index.js";
|
|
28
|
+
import { getTracer, SpanStatusCode } from "../telemetry.js";
|
|
29
|
+
import { resolveMockDbContext, provisionMockDb, describeMockDb, createCollection, listCollections, seedRows, createEndpoint, listEndpoints, executeEndpoint, inspectSession, resetSession, rotateMgmtKey, rotateRuntimeKey, exportMockDb, deleteMockDb, storedKeyInfo, } from "../services/mock-db.service.js";
|
|
30
|
+
import { MOCKDB_GUIDE } from "./mockdb-guide.js";
|
|
31
|
+
// ─── Generic helpers ───
|
|
32
|
+
function write(text) {
|
|
33
|
+
process.stdout.write(text.endsWith("\n") ? text : text + "\n");
|
|
34
|
+
}
|
|
35
|
+
/** Parse a JSON flag value, throwing a clean ValidationError on bad input. */
|
|
36
|
+
function parseJsonOption(flag, raw) {
|
|
37
|
+
try {
|
|
38
|
+
return JSON.parse(raw);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
throw new ValidationError(`${flag} is not valid JSON: ${err instanceof Error ? err.message : String(err)}`, { suggestion: `Pass a valid JSON value to ${flag}.` });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function requireFlag(value, flag, example) {
|
|
45
|
+
const v = value?.trim();
|
|
46
|
+
if (!v) {
|
|
47
|
+
throw new ValidationError(`Missing required option: ${flag}.`, {
|
|
48
|
+
suggestion: `Pass ${flag} ${example}.`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return v;
|
|
52
|
+
}
|
|
53
|
+
function recordSpanError(span, error) {
|
|
54
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
55
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: msg });
|
|
56
|
+
span.recordException(error instanceof Error ? error : new Error(msg));
|
|
57
|
+
}
|
|
58
|
+
/** Open an `aui.mockdb.*` span, run `fn`, record success/error, always end. */
|
|
59
|
+
async function runSpan(name, fn) {
|
|
60
|
+
const tracer = getTracer();
|
|
61
|
+
await tracer.startActiveSpan(name, async (span) => {
|
|
62
|
+
try {
|
|
63
|
+
await fn(span);
|
|
64
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
recordSpanError(span, error);
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
span.end();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/** Normalize the `--schema` value into `{ columns: [...] }`. */
|
|
76
|
+
function normalizeSchema(raw) {
|
|
77
|
+
if (Array.isArray(raw))
|
|
78
|
+
return { columns: raw };
|
|
79
|
+
if (raw && typeof raw === "object" && Array.isArray(raw.columns)) {
|
|
80
|
+
return raw;
|
|
81
|
+
}
|
|
82
|
+
throw new ValidationError("--schema must be a JSON array of columns, or an object with a `columns` array.", {
|
|
83
|
+
suggestion: 'e.g. --schema \'{"columns":[{"name":"id","type":"text","primaryKey":true}]}\'',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Emit a result as the JSON envelope (default) or a human view (--pretty).
|
|
88
|
+
* When a `renderer` is given it produces the pretty text (e.g. tables for
|
|
89
|
+
* describe/export); otherwise a heading + indented JSON is printed.
|
|
90
|
+
*/
|
|
91
|
+
function emitResult(title, data, renderer) {
|
|
92
|
+
if (isJsonMode()) {
|
|
93
|
+
outputJson(data);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (renderer) {
|
|
97
|
+
write(renderer(data));
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
write(`${chalk.bold.cyan(title)}\n${indent(JSON.stringify(data, null, 2))}`);
|
|
101
|
+
}
|
|
102
|
+
// ─── Pretty-print helpers (plain-text tables for --pretty) ───
|
|
103
|
+
function asObj(v) {
|
|
104
|
+
return v && typeof v === "object" && !Array.isArray(v)
|
|
105
|
+
? v
|
|
106
|
+
: {};
|
|
107
|
+
}
|
|
108
|
+
function asArr(v) {
|
|
109
|
+
return Array.isArray(v) ? v : [];
|
|
110
|
+
}
|
|
111
|
+
function cell(v) {
|
|
112
|
+
if (v === null || v === undefined)
|
|
113
|
+
return "";
|
|
114
|
+
if (typeof v === "object")
|
|
115
|
+
return JSON.stringify(v);
|
|
116
|
+
return String(v);
|
|
117
|
+
}
|
|
118
|
+
function truncate(s, n) {
|
|
119
|
+
return s.length > n ? s.slice(0, Math.max(0, n - 1)) + "…" : s;
|
|
120
|
+
}
|
|
121
|
+
function indent(s, pad = " ") {
|
|
122
|
+
return s
|
|
123
|
+
.split("\n")
|
|
124
|
+
.map((l) => pad + l)
|
|
125
|
+
.join("\n");
|
|
126
|
+
}
|
|
127
|
+
function heading(title, subtitle) {
|
|
128
|
+
return chalk.bold.cyan(title) + (subtitle ? chalk.gray(` ${subtitle}`) : "");
|
|
129
|
+
}
|
|
130
|
+
function sectionTitle(t) {
|
|
131
|
+
return chalk.bold(t);
|
|
132
|
+
}
|
|
133
|
+
/** Build an aligned monospace table (header + separator + rows) as text. */
|
|
134
|
+
function table(headers, rows) {
|
|
135
|
+
const widths = headers.map((h, i) => Math.max(h.length, 0, ...rows.map((r) => (r[i] ?? "").length)));
|
|
136
|
+
const fmt = (cells) => cells.map((c, i) => (c ?? "").padEnd(widths[i])).join(" ");
|
|
137
|
+
const lines = [];
|
|
138
|
+
lines.push(chalk.bold.cyan(fmt(headers)));
|
|
139
|
+
lines.push(chalk.gray(widths.map((w) => "─".repeat(w)).join(" ")));
|
|
140
|
+
for (const r of rows)
|
|
141
|
+
lines.push(fmt(r));
|
|
142
|
+
return lines.join("\n");
|
|
143
|
+
}
|
|
144
|
+
/** `describe` — collections (columns/types/flags/row counts) + endpoints. */
|
|
145
|
+
function renderDescribe(raw) {
|
|
146
|
+
const d = asObj(raw);
|
|
147
|
+
const collections = asArr(d.collections);
|
|
148
|
+
const endpoints = asArr(d.endpoints);
|
|
149
|
+
const out = [heading("Mock DB", d.agentId ? cell(d.agentId) : undefined)];
|
|
150
|
+
if (collections.length === 0) {
|
|
151
|
+
out.push("", sectionTitle("Collections"), chalk.gray(" No collections yet — create one with: aui mockdb collections create"));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
for (const c of collections) {
|
|
155
|
+
const co = asObj(c);
|
|
156
|
+
const cols = asArr(co.columns);
|
|
157
|
+
out.push("", sectionTitle(`${cell(co.name)} ${chalk.gray(`(${cell(co.baseRowCount ?? 0)} rows)`)}`));
|
|
158
|
+
out.push(indent(table(["Column", "Type", "PK", "Nullable", "References"], cols.map((col) => {
|
|
159
|
+
const cc = asObj(col);
|
|
160
|
+
return [
|
|
161
|
+
truncate(cell(cc.name), 30),
|
|
162
|
+
truncate(cell(cc.relative ? `${cell(cc.type)} (rel)` : cc.type), 24),
|
|
163
|
+
cc.primaryKey ? "✓" : "",
|
|
164
|
+
cc.nullable === false ? "" : "✓",
|
|
165
|
+
truncate(cell(cc.references), 30),
|
|
166
|
+
];
|
|
167
|
+
}))));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
out.push("", sectionTitle("Endpoints"));
|
|
171
|
+
if (endpoints.length === 0) {
|
|
172
|
+
out.push(chalk.gray(" No endpoints yet."));
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
out.push(indent(table(["Slug", "Kind", "Description"], endpoints.map((e) => {
|
|
176
|
+
const ee = asObj(e);
|
|
177
|
+
return [
|
|
178
|
+
truncate(cell(ee.slug), 28),
|
|
179
|
+
truncate(cell(ee.kind), 10),
|
|
180
|
+
truncate(cell(ee.description), 50),
|
|
181
|
+
];
|
|
182
|
+
}))));
|
|
183
|
+
}
|
|
184
|
+
return out.join("\n");
|
|
185
|
+
}
|
|
186
|
+
/** `collections list` — name / PK strategy / column count. */
|
|
187
|
+
function renderCollectionsList(raw) {
|
|
188
|
+
const cols = asArr(asObj(raw).collections);
|
|
189
|
+
if (cols.length === 0) {
|
|
190
|
+
return `${heading("Collections")}\n${chalk.gray(" No collections yet.")}`;
|
|
191
|
+
}
|
|
192
|
+
return `${heading("Collections")}\n${indent(table(["Collection", "PK Strategy", "# Columns"], cols.map((c) => {
|
|
193
|
+
const co = asObj(c);
|
|
194
|
+
return [
|
|
195
|
+
truncate(cell(co.name), 30),
|
|
196
|
+
truncate(cell(co.pkStrategy), 16),
|
|
197
|
+
String(asArr(asObj(co.schema).columns).length),
|
|
198
|
+
];
|
|
199
|
+
})))}`;
|
|
200
|
+
}
|
|
201
|
+
/** `endpoint list` — slug / kind / description. */
|
|
202
|
+
function renderEndpointList(raw) {
|
|
203
|
+
const eps = asArr(asObj(raw).endpoints);
|
|
204
|
+
if (eps.length === 0) {
|
|
205
|
+
return `${heading("Endpoints")}\n${chalk.gray(" No endpoints yet.")}`;
|
|
206
|
+
}
|
|
207
|
+
return `${heading("Endpoints")}\n${indent(table(["Slug", "Kind", "Description"], eps.map((e) => {
|
|
208
|
+
const ee = asObj(e);
|
|
209
|
+
return [
|
|
210
|
+
truncate(cell(ee.slug), 28),
|
|
211
|
+
truncate(cell(ee.kind), 10),
|
|
212
|
+
truncate(cell(ee.description), 60),
|
|
213
|
+
];
|
|
214
|
+
})))}`;
|
|
215
|
+
}
|
|
216
|
+
/** Render a collection's rows as a table keyed by its schema columns. */
|
|
217
|
+
function rowsSection(name, schemaColumns, rows) {
|
|
218
|
+
const keys = schemaColumns.length > 0
|
|
219
|
+
? schemaColumns
|
|
220
|
+
: rows.length > 0
|
|
221
|
+
? Object.keys(asObj(rows[0])).filter((k) => !k.startsWith("__"))
|
|
222
|
+
: [];
|
|
223
|
+
const title = sectionTitle(`${name} ${chalk.gray(`(${rows.length} rows)`)}`);
|
|
224
|
+
if (rows.length === 0 || keys.length === 0) {
|
|
225
|
+
return `${title}\n${chalk.gray(" No rows.")}`;
|
|
226
|
+
}
|
|
227
|
+
return `${title}\n${indent(table(keys.map((k) => truncate(k, 18)), rows.map((r) => {
|
|
228
|
+
const ro = asObj(r);
|
|
229
|
+
return keys.map((k) => truncate(cell(ro[k]), 24));
|
|
230
|
+
})))}`;
|
|
231
|
+
}
|
|
232
|
+
/** `export` — schema + base data (rows per collection) + endpoints. */
|
|
233
|
+
function renderExport(raw) {
|
|
234
|
+
const d = asObj(raw);
|
|
235
|
+
const collections = asArr(d.collections);
|
|
236
|
+
const endpoints = asArr(d.endpoints);
|
|
237
|
+
const out = [heading("Mock DB Export", d.agentId ? cell(d.agentId) : undefined)];
|
|
238
|
+
if (collections.length === 0) {
|
|
239
|
+
out.push("", sectionTitle("Collections"), chalk.gray(" Empty."));
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
for (const c of collections) {
|
|
243
|
+
const co = asObj(c);
|
|
244
|
+
const schemaColumns = asArr(asObj(co.schema).columns).map((col) => cell(asObj(col).name));
|
|
245
|
+
out.push("", rowsSection(cell(co.name), schemaColumns, asArr(co.rows)));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (endpoints.length > 0) {
|
|
249
|
+
out.push("", sectionTitle("Endpoints"), indent(table(["Slug", "Kind"], endpoints.map((e) => {
|
|
250
|
+
const ee = asObj(e);
|
|
251
|
+
return [truncate(cell(ee.slug), 28), truncate(cell(ee.kind), 10)];
|
|
252
|
+
}))));
|
|
253
|
+
}
|
|
254
|
+
return out.join("\n");
|
|
255
|
+
}
|
|
256
|
+
/** `execute` — success/count + the returned rows as a table. */
|
|
257
|
+
function renderExecute(raw) {
|
|
258
|
+
const d = asObj(raw);
|
|
259
|
+
const inner = asObj(d.data);
|
|
260
|
+
const rows = asArr(inner.rows);
|
|
261
|
+
const keys = rows.length > 0 ? Object.keys(asObj(rows[0])) : [];
|
|
262
|
+
const out = [
|
|
263
|
+
heading("Endpoint Result"),
|
|
264
|
+
` ${chalk.gray("Success:")} ${cell(d.success)} ${chalk.gray("Count:")} ${cell(inner.count ?? rows.length)}`,
|
|
265
|
+
];
|
|
266
|
+
if (d.error)
|
|
267
|
+
out.push(` ${chalk.red("Error:")} ${cell(d.error)}`);
|
|
268
|
+
if (rows.length > 0) {
|
|
269
|
+
out.push("", indent(table(keys.map((k) => truncate(k, 18)), rows.map((r) => {
|
|
270
|
+
const ro = asObj(r);
|
|
271
|
+
return keys.map((k) => truncate(cell(ro[k]), 24));
|
|
272
|
+
}))));
|
|
273
|
+
}
|
|
274
|
+
return out.join("\n");
|
|
275
|
+
}
|
|
276
|
+
// ─── Subcommands ───
|
|
277
|
+
export async function mockdbProvision(options = {}) {
|
|
278
|
+
if (!options.pretty)
|
|
279
|
+
setJsonMode(true);
|
|
280
|
+
await runSpan("aui.mockdb.provision", async (span) => {
|
|
281
|
+
const ctx = await resolveMockDbContext(options);
|
|
282
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
283
|
+
if (isJsonMode())
|
|
284
|
+
stderrLog("Provisioning mock DB...");
|
|
285
|
+
const resp = await provisionMockDb(ctx);
|
|
286
|
+
emitResult("Mock DB Provisioned", resp);
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
export async function mockdbDescribe(options = {}) {
|
|
290
|
+
if (!options.pretty)
|
|
291
|
+
setJsonMode(true);
|
|
292
|
+
await runSpan("aui.mockdb.describe", async (span) => {
|
|
293
|
+
const ctx = await resolveMockDbContext(options);
|
|
294
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
295
|
+
const data = await describeMockDb(ctx);
|
|
296
|
+
emitResult("Mock DB", data, renderDescribe);
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
export async function mockdbCollectionsCreate(options = {}) {
|
|
300
|
+
if (!options.pretty)
|
|
301
|
+
setJsonMode(true);
|
|
302
|
+
await runSpan("aui.mockdb.collections_create", async (span) => {
|
|
303
|
+
const name = requireFlag(options.name, "--name", "<collection name>");
|
|
304
|
+
const schemaRaw = requireFlag(options.schema, "--schema", "'{\"columns\":[...]}'");
|
|
305
|
+
const schema = normalizeSchema(parseJsonOption("--schema", schemaRaw));
|
|
306
|
+
const ctx = await resolveMockDbContext(options);
|
|
307
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
308
|
+
span.setAttribute("mockdb.collection", name);
|
|
309
|
+
const data = await createCollection(ctx, name, schema);
|
|
310
|
+
emitResult("Collection Created", data);
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
export async function mockdbCollectionsList(options = {}) {
|
|
314
|
+
if (!options.pretty)
|
|
315
|
+
setJsonMode(true);
|
|
316
|
+
await runSpan("aui.mockdb.collections_list", async (span) => {
|
|
317
|
+
const ctx = await resolveMockDbContext(options);
|
|
318
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
319
|
+
const data = await listCollections(ctx);
|
|
320
|
+
emitResult("Collections", data, renderCollectionsList);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
export async function mockdbSeed(options = {}) {
|
|
324
|
+
if (!options.pretty)
|
|
325
|
+
setJsonMode(true);
|
|
326
|
+
await runSpan("aui.mockdb.seed", async (span) => {
|
|
327
|
+
const collection = requireFlag(options.collection, "--collection", "<collection name>");
|
|
328
|
+
const rowsRaw = requireFlag(options.rows, "--rows", "'[{...}]'");
|
|
329
|
+
const rows = parseJsonOption("--rows", rowsRaw);
|
|
330
|
+
if (!Array.isArray(rows)) {
|
|
331
|
+
throw new ValidationError("--rows must be a JSON array of row objects.", {
|
|
332
|
+
suggestion: "e.g. --rows '[{\"id\":\"A1\",\"balance\":100}]'",
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
const ctx = await resolveMockDbContext(options);
|
|
336
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
337
|
+
span.setAttribute("mockdb.collection", collection);
|
|
338
|
+
span.setAttribute("mockdb.row_count", rows.length);
|
|
339
|
+
const data = await seedRows(ctx, collection, rows);
|
|
340
|
+
emitResult("Rows Seeded", data);
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
export async function mockdbEndpointCreate(options = {}) {
|
|
344
|
+
if (!options.pretty)
|
|
345
|
+
setJsonMode(true);
|
|
346
|
+
await runSpan("aui.mockdb.endpoint_create", async (span) => {
|
|
347
|
+
const slug = requireFlag(options.slug, "--slug", "<endpoint-slug>");
|
|
348
|
+
const specRaw = requireFlag(options.spec, "--spec", "'{\"kind\":\"read\",...}'");
|
|
349
|
+
const spec = parseJsonOption("--spec", specRaw);
|
|
350
|
+
if (!spec || typeof spec !== "object" || typeof spec.kind !== "string") {
|
|
351
|
+
throw new ValidationError("--spec must be a JSON object with a `kind` (read|insert|update|delete).", {
|
|
352
|
+
suggestion: 'e.g. --spec \'{"kind":"read","collection":"accounts","where":[]}\'',
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
const body = { slug, spec };
|
|
356
|
+
if (options.paramSchema?.trim()) {
|
|
357
|
+
body.paramSchema = parseJsonOption("--param-schema", options.paramSchema);
|
|
358
|
+
}
|
|
359
|
+
if (options.description?.trim())
|
|
360
|
+
body.description = options.description.trim();
|
|
361
|
+
const ctx = await resolveMockDbContext(options);
|
|
362
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
363
|
+
span.setAttribute("mockdb.endpoint_slug", slug);
|
|
364
|
+
span.setAttribute("mockdb.endpoint_kind", spec.kind);
|
|
365
|
+
const data = await createEndpoint(ctx, body);
|
|
366
|
+
emitResult("Endpoint Created", data);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
export async function mockdbEndpointList(options = {}) {
|
|
370
|
+
if (!options.pretty)
|
|
371
|
+
setJsonMode(true);
|
|
372
|
+
await runSpan("aui.mockdb.endpoint_list", async (span) => {
|
|
373
|
+
const ctx = await resolveMockDbContext(options);
|
|
374
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
375
|
+
const data = await listEndpoints(ctx);
|
|
376
|
+
emitResult("Endpoints", data, renderEndpointList);
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
export async function mockdbExecute(options = {}) {
|
|
380
|
+
if (!options.pretty)
|
|
381
|
+
setJsonMode(true);
|
|
382
|
+
await runSpan("aui.mockdb.execute", async (span) => {
|
|
383
|
+
const slug = requireFlag(options.slug, "--slug", "<endpoint-slug>");
|
|
384
|
+
const sessionKey = options.session?.trim() || undefined;
|
|
385
|
+
let body = {};
|
|
386
|
+
if (options.body?.trim()) {
|
|
387
|
+
const parsed = parseJsonOption("--body", options.body);
|
|
388
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
389
|
+
throw new ValidationError("--body must be a JSON object.", {
|
|
390
|
+
suggestion: "e.g. --body '{\"user_id\":\"U1\"}'",
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
body = parsed;
|
|
394
|
+
}
|
|
395
|
+
const ctx = await resolveMockDbContext(options);
|
|
396
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
397
|
+
span.setAttribute("mockdb.endpoint_slug", slug);
|
|
398
|
+
if (sessionKey)
|
|
399
|
+
span.setAttribute("mockdb.session_key", sessionKey);
|
|
400
|
+
const data = await executeEndpoint(ctx, slug, sessionKey, body);
|
|
401
|
+
emitResult("Endpoint Result", data, renderExecute);
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
export async function mockdbSessionGet(options = {}) {
|
|
405
|
+
if (!options.pretty)
|
|
406
|
+
setJsonMode(true);
|
|
407
|
+
await runSpan("aui.mockdb.session_get", async (span) => {
|
|
408
|
+
const key = requireFlag(options.key, "--key", "<session-key>");
|
|
409
|
+
const ctx = await resolveMockDbContext(options);
|
|
410
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
411
|
+
span.setAttribute("mockdb.session_key", key);
|
|
412
|
+
const data = await inspectSession(ctx, key);
|
|
413
|
+
emitResult("Session", data);
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
export async function mockdbSessionReset(options = {}) {
|
|
417
|
+
if (!options.pretty)
|
|
418
|
+
setJsonMode(true);
|
|
419
|
+
await runSpan("aui.mockdb.session_reset", async (span) => {
|
|
420
|
+
const key = requireFlag(options.key, "--key", "<session-key>");
|
|
421
|
+
const ctx = await resolveMockDbContext(options);
|
|
422
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
423
|
+
span.setAttribute("mockdb.session_key", key);
|
|
424
|
+
const data = await resetSession(ctx, key);
|
|
425
|
+
emitResult("Session Reset", data);
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
export async function mockdbRotateMgmtKey(options = {}) {
|
|
429
|
+
if (!options.pretty)
|
|
430
|
+
setJsonMode(true);
|
|
431
|
+
await runSpan("aui.mockdb.rotate_mgmt_key", async (span) => {
|
|
432
|
+
const ctx = await resolveMockDbContext(options);
|
|
433
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
434
|
+
const data = await rotateMgmtKey(ctx);
|
|
435
|
+
emitResult("Management Key Rotated", data);
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
export async function mockdbRotateRuntimeKey(options = {}) {
|
|
439
|
+
if (!options.pretty)
|
|
440
|
+
setJsonMode(true);
|
|
441
|
+
await runSpan("aui.mockdb.rotate_runtime_key", async (span) => {
|
|
442
|
+
const ctx = await resolveMockDbContext(options);
|
|
443
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
444
|
+
const data = await rotateRuntimeKey(ctx);
|
|
445
|
+
emitResult("Runtime Key Rotated", data);
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
export async function mockdbExport(options = {}) {
|
|
449
|
+
if (!options.pretty)
|
|
450
|
+
setJsonMode(true);
|
|
451
|
+
await runSpan("aui.mockdb.export", async (span) => {
|
|
452
|
+
const ctx = await resolveMockDbContext(options);
|
|
453
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
454
|
+
const data = await exportMockDb(ctx);
|
|
455
|
+
emitResult("Mock DB Export", data, renderExport);
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
export async function mockdbKeys(options = {}) {
|
|
459
|
+
if (!options.pretty)
|
|
460
|
+
setJsonMode(true);
|
|
461
|
+
await runSpan("aui.mockdb.keys", async (span) => {
|
|
462
|
+
const ctx = await resolveMockDbContext(options);
|
|
463
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
464
|
+
emitResult("Stored Keys", storedKeyInfo(ctx.agentId));
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
export async function mockdbDelete(options = {}) {
|
|
468
|
+
if (!options.pretty)
|
|
469
|
+
setJsonMode(true);
|
|
470
|
+
await runSpan("aui.mockdb.delete", async (span) => {
|
|
471
|
+
if (!options.force) {
|
|
472
|
+
throw new ValidationError("Refusing to delete the mock DB without --force.", {
|
|
473
|
+
suggestion: "This permanently drops the mock DB and all its data. Re-run with --force to confirm.",
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
const ctx = await resolveMockDbContext(options);
|
|
477
|
+
span.setAttribute("mockdb.agent_id", ctx.agentId);
|
|
478
|
+
const data = await deleteMockDb(ctx);
|
|
479
|
+
emitResult("Mock DB Deleted", data);
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
export async function mockdbGuide(options = {}) {
|
|
483
|
+
if (!options.pretty)
|
|
484
|
+
setJsonMode(true);
|
|
485
|
+
const outPath = path.resolve(options.output?.trim() || "GUIDE.md");
|
|
486
|
+
fs.writeFileSync(outPath, MOCKDB_GUIDE);
|
|
487
|
+
const result = {
|
|
488
|
+
written: true,
|
|
489
|
+
path: outPath,
|
|
490
|
+
bytes: Buffer.byteLength(MOCKDB_GUIDE),
|
|
491
|
+
};
|
|
492
|
+
if (isJsonMode()) {
|
|
493
|
+
outputJson(result);
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
write(`${heading("Mock DB Guide Written", outPath)}\n ${chalk.gray("Size:")} ${result.bytes} bytes`);
|
|
497
|
+
}
|
|
498
|
+
export async function mockdbMenu(options = {}) {
|
|
499
|
+
// Like every mockdb subcommand, the overview defaults to the JSON envelope
|
|
500
|
+
// (these commands are primarily consumed by tooling / coding agents).
|
|
501
|
+
// `--pretty` opts into the human view.
|
|
502
|
+
if (!options.pretty)
|
|
503
|
+
setJsonMode(true);
|
|
504
|
+
const commands = [
|
|
505
|
+
{ name: "provision", description: "Create the agent's mock DB; store runtime + management keys" },
|
|
506
|
+
{ name: "describe", description: "Schema, relationships, relative-field flags, endpoints, row counts" },
|
|
507
|
+
{ name: "collections create / list", description: "Create or list collections (tables)" },
|
|
508
|
+
{ name: "seed", description: "Seed base rows into a collection" },
|
|
509
|
+
{ name: "endpoint create / list", description: "Declare or list read/insert/update/delete endpoints" },
|
|
510
|
+
{ name: "execute", description: "Run an endpoint with the runtime key (test, per-session)" },
|
|
511
|
+
{ name: "session-get / session-reset", description: "Inspect or reset a session's overlay" },
|
|
512
|
+
{ name: "rotate-mgmt-key / rotate-runtime-key", description: "Mint fresh keys" },
|
|
513
|
+
{ name: "export", description: "Export schema + base data + endpoints" },
|
|
514
|
+
{ name: "keys", description: "Show locally stored key prefixes (no secrets)" },
|
|
515
|
+
{ name: "delete", description: "Permanently delete the mock DB (--force)" },
|
|
516
|
+
{ name: "guide", description: "Write the CLI guide to GUIDE.md" },
|
|
517
|
+
];
|
|
518
|
+
if (isJsonMode()) {
|
|
519
|
+
outputJson({
|
|
520
|
+
note: "Per-agent mock database for building/testing agents. Subcommands default to JSON; pass --pretty for the human view.",
|
|
521
|
+
commands,
|
|
522
|
+
});
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
const out = [
|
|
526
|
+
heading("Mock DB", "Per-agent mock database for building/testing agents"),
|
|
527
|
+
"",
|
|
528
|
+
sectionTitle("Commands"),
|
|
529
|
+
indent(table(["Command", "Description"], commands.map((c) => [c.name, c.description]))),
|
|
530
|
+
"",
|
|
531
|
+
chalk.gray("Run aui mockdb <command> --help for flags, or aui mockdb guide for the full how-to."),
|
|
532
|
+
];
|
|
533
|
+
write(out.join("\n"));
|
|
534
|
+
}
|
|
535
|
+
//# sourceMappingURL=mockdb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockdb.js","sourceRoot":"","sources":["../../src/commands/mockdb.tsx"],"names":[],"mappings":"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"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -30,6 +30,16 @@ export declare function getApiWorkflowBaseUrl(env?: AUIEnvironment): string;
|
|
|
30
30
|
* in-process mock server.
|
|
31
31
|
*/
|
|
32
32
|
export declare function getApolloBaseUrl(env?: AUIEnvironment): string;
|
|
33
|
+
/**
|
|
34
|
+
* Mock DB service base URL (provision / collections / seed / endpoints /
|
|
35
|
+
* runtime execute). Resolution order:
|
|
36
|
+
* 1. `AUI_MOCKDB_URL` — explicit override (point the CLI at a locally-run
|
|
37
|
+
* instance, a preview deployment, or the gateway path once it moves to
|
|
38
|
+
* AUI infra) WITHOUT a code change.
|
|
39
|
+
* 2. `AUI_TEST_BASE_URL` — the flow-test collapse, like every other getter.
|
|
40
|
+
* 3. the per-environment default (currently the shared Vercel deployment).
|
|
41
|
+
*/
|
|
42
|
+
export declare function getMockDbBaseUrl(env?: AUIEnvironment): string;
|
|
33
43
|
export declare const API_URLS: Record<string, string>;
|
|
34
44
|
export declare const BASE_URL: string;
|
|
35
45
|
export declare const PLAYGROUND_URL: string;
|
|
@@ -206,6 +216,29 @@ export declare function loadEnvironment(): AUIEnvironment;
|
|
|
206
216
|
export declare function saveEnvironment(env: AUIEnvironment): void;
|
|
207
217
|
export declare function loadAgentSettingsApiKey(): string;
|
|
208
218
|
export declare function saveAgentSettingsApiKey(key: string): void;
|
|
219
|
+
/**
|
|
220
|
+
* The two per-agent secrets the mock-db service mints at provision time:
|
|
221
|
+
* - `managementKey` — used as `X-Mgmt-Key` for ongoing management
|
|
222
|
+
* (collections/seed/endpoints) so the broad AUI token is NOT transmitted
|
|
223
|
+
* after the first provision.
|
|
224
|
+
* - `runtimeKey` — the key the deployed agent's integrations use for
|
|
225
|
+
* runtime `/execute` calls (baked into `integrations.aui.json`).
|
|
226
|
+
*
|
|
227
|
+
* Stored OUTSIDE the project repo (in `~/.aui/`, mode 0600) so they never
|
|
228
|
+
* land in version control — the same rationale as the agent-settings key.
|
|
229
|
+
*/
|
|
230
|
+
export interface MockDbKeys {
|
|
231
|
+
managementKey?: string;
|
|
232
|
+
runtimeKey?: string;
|
|
233
|
+
}
|
|
234
|
+
export declare function loadMockDbKeys(agentId: string): MockDbKeys;
|
|
235
|
+
/**
|
|
236
|
+
* Persist mock-db keys for an agent. Merges with any existing file so
|
|
237
|
+
* rotating only the runtime key preserves the management key (and vice
|
|
238
|
+
* versa).
|
|
239
|
+
*/
|
|
240
|
+
export declare function saveMockDbKeys(agentId: string, keys: MockDbKeys): void;
|
|
241
|
+
export declare function clearMockDbKeys(agentId: string): void;
|
|
209
242
|
export declare function loadApiWorkflowKey(): string;
|
|
210
243
|
export declare function saveApiWorkflowKey(key: string): void;
|
|
211
244
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAQ,CAAC;AAIhC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|