@hasna/instructions 0.7.0 → 0.7.1
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 -4
- package/dist/chunks/{apply-7svah2qm.js → apply-c3sd4agz.js} +2 -2
- package/dist/chunks/{apply-jp13sa1e.js → apply-pnn7a3y7.js} +2 -2
- package/dist/chunks/{index-7m4j8a33.js → index-6jncnnw7.js} +117 -4
- package/dist/chunks/{index-4pfq42t5.js → index-aj66f6xr.js} +118 -27
- package/dist/chunks/{index-bzyxvwcd.js → index-jg8ptcwh.js} +2 -2
- package/dist/chunks/{index-arrrx0ed.js → index-mvckkf15.js} +39 -20
- package/dist/chunks/{index-1cnyjnd7.js → index-pdpg8a44.js} +2 -2
- package/dist/chunks/{index-z3ma4aqk.js → index-r7nfef2g.js} +1 -1
- package/dist/chunks/{index-fwbs6tma.js → index-ypcef3a2.js} +1 -1
- package/dist/chunks/{local-5wvv5xv3.js → local-0a9gja58.js} +141 -1
- package/dist/chunks/{local-zxa5dpf4.js → local-969ye538.js} +141 -1
- package/dist/chunks/{s3-backup-n2z4fwyh.js → s3-backup-hxe3zpfz.js} +1 -1
- package/dist/chunks/{s3-object-store-90tgbh6k.js → s3-object-store-n0s82swt.js} +1 -1
- package/dist/chunks/{sync-r8t7zsp3.js → sync-q5hvwq6e.js} +3 -3
- package/dist/chunks/{sync-2075deve.js → sync-xtkbm5br.js} +3 -3
- package/dist/cli/index.js +269 -53
- package/dist/data/config-store.d.ts +10 -2
- package/dist/data/config-store.d.ts.map +1 -1
- package/dist/db/configs.d.ts +4 -1
- package/dist/db/configs.d.ts.map +1 -1
- package/dist/db/local.d.ts +1 -1
- package/dist/db/local.d.ts.map +1 -1
- package/dist/index.js +282 -36
- package/dist/lib/compact-output.d.ts +2 -18
- package/dist/lib/compact-output.d.ts.map +1 -1
- package/dist/lib/export.d.ts.map +1 -1
- package/dist/lib/import.d.ts.map +1 -1
- package/dist/mcp/index.js +17 -17
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/sdk/index.js +27 -3
- package/dist/sdk/v1-client.d.ts +4 -3
- package/dist/sdk/v1-client.d.ts.map +1 -1
- package/dist/sdk/v1.generated.d.ts +32 -2
- package/dist/sdk/v1.generated.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +93 -7
- package/dist/server/openapi.d.ts +117 -3
- package/dist/server/openapi.d.ts.map +1 -1
- package/dist/server/v1.d.ts.map +1 -1
- package/dist/storage/cloud-store.d.ts +2 -15
- package/dist/storage/cloud-store.d.ts.map +1 -1
- package/dist/storage/index.js +39 -20
- package/dist/storage/s3-object-store.d.ts.map +1 -1
- package/dist/types/index.d.ts +33 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/cli/index.js
CHANGED
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
syncKnown,
|
|
10
10
|
syncProject,
|
|
11
11
|
syncToDisk
|
|
12
|
-
} from "../chunks/index-
|
|
12
|
+
} from "../chunks/index-pdpg8a44.js";
|
|
13
13
|
import {
|
|
14
14
|
applyConfigsWithReport,
|
|
15
15
|
compactPathForConfigHome,
|
|
16
16
|
expandPath,
|
|
17
17
|
normalizeTargetPath
|
|
18
|
-
} from "../chunks/index-
|
|
18
|
+
} from "../chunks/index-r7nfef2g.js";
|
|
19
19
|
import {
|
|
20
20
|
CloudConfigStore,
|
|
21
21
|
DEFAULT_LIST_LIMIT,
|
|
@@ -61,7 +61,7 @@ import {
|
|
|
61
61
|
truncateText,
|
|
62
62
|
withProjectContextSessionGuard,
|
|
63
63
|
writeProjectContextCoordinatedFile
|
|
64
|
-
} from "../chunks/index-
|
|
64
|
+
} from "../chunks/index-6jncnnw7.js";
|
|
65
65
|
import {
|
|
66
66
|
INSTRUCTIONS_DOMAIN_ARCHIVE_SCHEMA,
|
|
67
67
|
extractTemplateVars
|
|
@@ -3878,7 +3878,12 @@ function logicalAssetLocator(locator, idToSlug) {
|
|
|
3878
3878
|
}
|
|
3879
3879
|
function logicalCollections(domain, options) {
|
|
3880
3880
|
const configs = [...domain.configs].sort((left, right) => compareText(left.slug, right.slug));
|
|
3881
|
-
const snapshots =
|
|
3881
|
+
const snapshots = domain.config_snapshots.map((snapshot) => ({
|
|
3882
|
+
config_slug: snapshot.config_slug,
|
|
3883
|
+
version: snapshot.version,
|
|
3884
|
+
content: snapshot.content,
|
|
3885
|
+
...options.includeOperationalTimestamps ? { created_at: snapshot.created_at } : {}
|
|
3886
|
+
})).sort((left, right) => compareText(left.config_slug, right.config_slug) || left.version - right.version || compareText(left.content, right.content) || compareText("created_at" in left ? left.created_at ?? "" : "", "created_at" in right ? right.created_at ?? "" : ""));
|
|
3882
3887
|
const profiles = [...domain.profiles].sort((left, right) => compareText(left.slug, right.slug));
|
|
3883
3888
|
const configBindings = [...domain.profile_config_bindings].sort((left, right) => compareText(left.profile_slug, right.profile_slug) || left.sort_order - right.sort_order || compareText(left.config_slug, right.config_slug));
|
|
3884
3889
|
const assetBindings = [...domain.profile_asset_bindings].sort((left, right) => compareText(left.profile_slug, right.profile_slug) || left.sort_order - right.sort_order || compareText(left.binding.assetKey, right.binding.assetKey));
|
|
@@ -3907,12 +3912,7 @@ function logicalCollections(domain, options) {
|
|
|
3907
3912
|
synced_at: config.synced_at
|
|
3908
3913
|
} : {}
|
|
3909
3914
|
})),
|
|
3910
|
-
config_snapshots: snapshots
|
|
3911
|
-
config_slug: snapshot.config_slug,
|
|
3912
|
-
version: snapshot.version,
|
|
3913
|
-
content: snapshot.content,
|
|
3914
|
-
...options.includeOperationalTimestamps ? { created_at: snapshot.created_at } : {}
|
|
3915
|
-
})),
|
|
3915
|
+
config_snapshots: snapshots,
|
|
3916
3916
|
profiles: profiles.map((profile) => ({
|
|
3917
3917
|
slug: profile.slug,
|
|
3918
3918
|
name: profile.name,
|
|
@@ -4036,10 +4036,11 @@ function validateInstructionsDomainArchive(value) {
|
|
|
4036
4036
|
assertUnique(typed.configs.map((row) => row.slug), "config slug");
|
|
4037
4037
|
assertUnique(typed.profiles.map((row) => row.slug), "profile slug");
|
|
4038
4038
|
assertUnique(typed.machines.map((row) => row.hostname), "machine hostname");
|
|
4039
|
-
assertUnique(typed.config_snapshots.map((row) =>
|
|
4039
|
+
assertUnique(typed.config_snapshots.map((row) => row.id), "config snapshot id");
|
|
4040
4040
|
assertUnique(typed.profile_config_bindings.map((row) => `${row.profile_slug}:${row.config_slug}`), "profile config binding");
|
|
4041
4041
|
assertUnique(typed.profile_asset_bindings.map((row) => `${row.profile_slug}:${row.binding.assetKey}`), "profile asset binding");
|
|
4042
|
-
const
|
|
4042
|
+
const configsBySlug = new Map(typed.configs.map((row) => [row.slug, row]));
|
|
4043
|
+
const configSlugs = new Set(configsBySlug.keys());
|
|
4043
4044
|
const profileSlugs = new Set(typed.profiles.map((row) => row.slug));
|
|
4044
4045
|
for (const config of typed.configs) {
|
|
4045
4046
|
assertTimestamp(config.created_at, `config ${config.slug} created_at`);
|
|
@@ -4047,24 +4048,15 @@ function validateInstructionsDomainArchive(value) {
|
|
|
4047
4048
|
assertTimestamp(config.synced_at, `config ${config.slug} synced_at`, true);
|
|
4048
4049
|
if (!Number.isSafeInteger(config.version) || config.version < 1)
|
|
4049
4050
|
throw new Error(`Invalid v2 archive: config ${config.slug} has invalid version`);
|
|
4050
|
-
const snapshots = typed.config_snapshots.filter((row) => row.config_slug === config.slug).sort((a, b) => a.version - b.version);
|
|
4051
|
-
if (snapshots.some((row) => !Number.isSafeInteger(row.version) || row.version < 1 || row.version > config.version)) {
|
|
4052
|
-
throw new Error(`Invalid v2 archive: config ${config.slug} has an invalid snapshot version`);
|
|
4053
|
-
}
|
|
4054
|
-
if (snapshots.length) {
|
|
4055
|
-
const first = snapshots[0].version;
|
|
4056
|
-
const expected = Array.from({ length: config.version - first + 1 }, (_, index) => first + index);
|
|
4057
|
-
if (canonicalDomainJson(snapshots.map((row) => row.version)) !== canonicalDomainJson(expected) || snapshots.at(-1).version !== config.version) {
|
|
4058
|
-
throw new Error(`Invalid v2 archive: snapshots for ${config.slug} must be a contiguous suffix ending at version ${config.version}`);
|
|
4059
|
-
}
|
|
4060
|
-
if (snapshots.at(-1).content !== config.content) {
|
|
4061
|
-
throw new Error(`Invalid v2 archive: latest snapshot content differs from config ${config.slug}`);
|
|
4062
|
-
}
|
|
4063
|
-
}
|
|
4064
4051
|
}
|
|
4065
4052
|
for (const row of typed.config_snapshots) {
|
|
4066
|
-
|
|
4053
|
+
const config = configsBySlug.get(row.config_slug);
|
|
4054
|
+
if (!config) {
|
|
4067
4055
|
throw new Error(`Invalid v2 archive: snapshot references missing config ${row.config_slug}`);
|
|
4056
|
+
}
|
|
4057
|
+
if (!Number.isSafeInteger(row.version) || row.version < 1 || row.version > config.version) {
|
|
4058
|
+
throw new Error(`Invalid v2 archive: config ${row.config_slug} has an invalid snapshot version`);
|
|
4059
|
+
}
|
|
4068
4060
|
assertTimestamp(row.created_at, `snapshot ${row.config_slug}@${row.version} created_at`);
|
|
4069
4061
|
}
|
|
4070
4062
|
for (const profile of typed.profiles) {
|
|
@@ -4318,14 +4310,11 @@ function configInput(config, content) {
|
|
|
4318
4310
|
};
|
|
4319
4311
|
}
|
|
4320
4312
|
async function restoreNewConfig(store, archived, domain) {
|
|
4321
|
-
const snapshots = domain.config_snapshots.filter((row) => row.config_slug === archived.slug).sort((left, right) => left.version - right.version);
|
|
4322
|
-
|
|
4323
|
-
let content = byVersion.get(1) ?? snapshots[0]?.content ?? archived.content;
|
|
4324
|
-
let restored = await store.createConfig(configInput(archived, content));
|
|
4313
|
+
const snapshots = domain.config_snapshots.filter((row) => row.config_slug === archived.slug).sort((left, right) => left.version - right.version || compareText2(left.content, right.content) || compareText2(left.id, right.id));
|
|
4314
|
+
let restored = await store.createConfig(configInput(archived, archived.content));
|
|
4325
4315
|
for (let version = 2;version <= archived.version; version++) {
|
|
4326
|
-
content = byVersion.get(version) ?? (version === archived.version ? archived.content : content);
|
|
4327
4316
|
restored = await store.updateConfig(restored.id, {
|
|
4328
|
-
content,
|
|
4317
|
+
content: archived.content,
|
|
4329
4318
|
...version === archived.version ? {
|
|
4330
4319
|
name: archived.name,
|
|
4331
4320
|
kind: archived.kind,
|
|
@@ -4341,9 +4330,12 @@ async function restoreNewConfig(store, archived, domain) {
|
|
|
4341
4330
|
} : {}
|
|
4342
4331
|
});
|
|
4343
4332
|
}
|
|
4344
|
-
await store.pruneSnapshots(restored.id,
|
|
4345
|
-
|
|
4346
|
-
|
|
4333
|
+
await store.pruneSnapshots(restored.id, 0);
|
|
4334
|
+
for (const snapshot of snapshots) {
|
|
4335
|
+
await store.createSnapshot(restored.id, snapshot.content, snapshot.version);
|
|
4336
|
+
}
|
|
4337
|
+
const restoredSnapshots = (await store.listSnapshots(restored.id)).map(({ version, content: snapshotContent }) => ({ version, content: snapshotContent })).sort((left, right) => left.version - right.version || compareText2(left.content, right.content));
|
|
4338
|
+
const expectedSnapshots = snapshots.map(({ version, content: snapshotContent }) => ({ version, content: snapshotContent })).sort((left, right) => left.version - right.version || compareText2(left.content, right.content));
|
|
4347
4339
|
if (restored.version !== archived.version || restored.content !== archived.content || canonicalDomainJson(restoredSnapshots) !== canonicalDomainJson(expectedSnapshots)) {
|
|
4348
4340
|
throw new Error(`restored config or snapshot history did not match archive for ${archived.slug}`);
|
|
4349
4341
|
}
|
|
@@ -6798,6 +6790,9 @@ function printLine(text = "") {
|
|
|
6798
6790
|
function printJson(value) {
|
|
6799
6791
|
printLine(JSON.stringify(value, null, 2));
|
|
6800
6792
|
}
|
|
6793
|
+
function printMachineJson(value, pretty = false) {
|
|
6794
|
+
printLine(JSON.stringify(value, null, pretty ? 2 : undefined));
|
|
6795
|
+
}
|
|
6801
6796
|
function printManagedSkillRuntimeReport(report) {
|
|
6802
6797
|
for (const runtime of report.runtimes) {
|
|
6803
6798
|
if (!runtime.skill_present)
|
|
@@ -6819,7 +6814,7 @@ function fmtConfig(c, format) {
|
|
|
6819
6814
|
` ${chalk.cyan("category:")} ${c.category} ${chalk.cyan("agent:")} ${c.agent} ${chalk.cyan("kind:")} ${c.kind}`,
|
|
6820
6815
|
` ${chalk.cyan("format:")} ${c.format} ${chalk.cyan("version:")} ${c.version}${c.target_path ? ` ${chalk.cyan("path:")} ${c.target_path}` : ""}`,
|
|
6821
6816
|
c.description ? ` ${chalk.dim(c.description)}` : "",
|
|
6822
|
-
c.tags
|
|
6817
|
+
c.tags?.length ? ` ${chalk.dim("tags: " + c.tags.join(", "))}` : ""
|
|
6823
6818
|
].filter(Boolean).join(`
|
|
6824
6819
|
`);
|
|
6825
6820
|
}
|
|
@@ -6837,7 +6832,7 @@ function printConfigRows(configs) {
|
|
|
6837
6832
|
for (const c of configs) {
|
|
6838
6833
|
const type = `${c.category}/${c.agent}`;
|
|
6839
6834
|
const path = c.kind === "reference" ? "(ref)" : c.target_path ?? "(no path)";
|
|
6840
|
-
console.log(`${pad(c.slug, 32)} ${pad(type, 15)} ${pad(c.format, 8)} ${pad(truncateMiddle(path, 44), 44)} ${String(c.
|
|
6835
|
+
console.log(`${pad(c.slug, 32)} ${pad(type, 15)} ${pad(c.format, 8)} ${pad(truncateMiddle(path, 44), 44)} ${String(c.output_count).padStart(3)} ${c.version}`);
|
|
6841
6836
|
}
|
|
6842
6837
|
}
|
|
6843
6838
|
function splitCsv(value) {
|
|
@@ -7189,24 +7184,245 @@ async function getMachineProfileContext(opts, store, readOptions = {}) {
|
|
|
7189
7184
|
const profile = resolution.profile;
|
|
7190
7185
|
return { machine, profile, resolution, vars: resolveProfileVariables(profile, machine) };
|
|
7191
7186
|
}
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
|
|
7187
|
+
var COMPACT_CONFIG_FIELDS = [
|
|
7188
|
+
"id",
|
|
7189
|
+
"slug",
|
|
7190
|
+
"name",
|
|
7191
|
+
"kind",
|
|
7192
|
+
"category",
|
|
7193
|
+
"agent",
|
|
7194
|
+
"format",
|
|
7195
|
+
"is_template",
|
|
7196
|
+
"version",
|
|
7197
|
+
"updated_at"
|
|
7198
|
+
];
|
|
7199
|
+
var OPTIONAL_CONFIG_IDENTITY_FIELDS = ["created_at", "synced_at"];
|
|
7200
|
+
var FULL_CONFIG_FIELDS = [
|
|
7201
|
+
"id",
|
|
7202
|
+
"name",
|
|
7203
|
+
"slug",
|
|
7204
|
+
"kind",
|
|
7205
|
+
"category",
|
|
7206
|
+
"agent",
|
|
7207
|
+
"target_path",
|
|
7208
|
+
"outputs",
|
|
7209
|
+
"format",
|
|
7210
|
+
"content",
|
|
7211
|
+
"description",
|
|
7212
|
+
"tags",
|
|
7213
|
+
"is_template",
|
|
7214
|
+
"version",
|
|
7215
|
+
"created_at",
|
|
7216
|
+
"updated_at",
|
|
7217
|
+
"synced_at"
|
|
7218
|
+
];
|
|
7219
|
+
function parseConfigListDetail(value) {
|
|
7220
|
+
if (value === undefined)
|
|
7221
|
+
return;
|
|
7222
|
+
if (value === "compact" || value === "full")
|
|
7223
|
+
return value;
|
|
7224
|
+
throw new Error('--detail must be "compact" or "full"');
|
|
7225
|
+
}
|
|
7226
|
+
function parseConfigListFields(value, detail) {
|
|
7227
|
+
if (value === undefined)
|
|
7228
|
+
return;
|
|
7229
|
+
const raw = String(value);
|
|
7230
|
+
if (raw.length > 1024)
|
|
7231
|
+
throw new Error("--fields exceeds 1024 characters");
|
|
7232
|
+
const fields = raw.split(",").map((field) => field.trim());
|
|
7233
|
+
if (fields.length === 0 || fields.some((field) => field.length === 0)) {
|
|
7234
|
+
throw new Error("--fields must contain non-empty comma-separated field names");
|
|
7235
|
+
}
|
|
7236
|
+
if (fields.length > 32)
|
|
7237
|
+
throw new Error("--fields accepts at most 32 fields");
|
|
7238
|
+
if (new Set(fields).size !== fields.length)
|
|
7239
|
+
throw new Error("--fields must not contain duplicate names");
|
|
7240
|
+
const allowed = new Set(detail === "full" ? FULL_CONFIG_FIELDS : [...COMPACT_CONFIG_FIELDS, ...OPTIONAL_CONFIG_IDENTITY_FIELDS]);
|
|
7241
|
+
const unknown = fields.filter((field) => !allowed.has(field));
|
|
7242
|
+
if (unknown.length > 0)
|
|
7243
|
+
throw new Error(`Unknown ${detail} config field(s): ${unknown.join(", ")}`);
|
|
7244
|
+
if (!fields.includes("id"))
|
|
7245
|
+
throw new Error("--fields must include the immutable id field");
|
|
7246
|
+
if (detail !== "full" && fields.includes("content")) {
|
|
7247
|
+
throw new Error("Config content requires --detail full");
|
|
7248
|
+
}
|
|
7249
|
+
return fields;
|
|
7250
|
+
}
|
|
7251
|
+
function projectConfigFields(record, fields) {
|
|
7252
|
+
return Object.fromEntries(fields.map((field) => [field, record[field]]));
|
|
7253
|
+
}
|
|
7254
|
+
async function readAllConfigIdentityPages(store, filter) {
|
|
7255
|
+
const items = [];
|
|
7256
|
+
const seen = new Set;
|
|
7257
|
+
let cursor = 0;
|
|
7258
|
+
let expectedTotal = null;
|
|
7259
|
+
let sourceBounded = true;
|
|
7260
|
+
let previousId = null;
|
|
7261
|
+
while (true) {
|
|
7262
|
+
const page = await store.listConfigIdentitiesPage(filter, { limit: 100, cursor });
|
|
7263
|
+
sourceBounded = sourceBounded && page.source_bounded;
|
|
7264
|
+
if (expectedTotal === null)
|
|
7265
|
+
expectedTotal = page.total;
|
|
7266
|
+
else if (page.total !== expectedTotal)
|
|
7267
|
+
throw new Error("Config collection changed while paging");
|
|
7268
|
+
for (const item of page.items) {
|
|
7269
|
+
if (seen.has(item.id))
|
|
7270
|
+
throw new Error(`Config collection repeated ${item.id} while paging`);
|
|
7271
|
+
if (page.source_bounded && previousId !== null && item.id <= previousId)
|
|
7272
|
+
throw new Error("Config collection order changed while paging");
|
|
7273
|
+
seen.add(item.id);
|
|
7274
|
+
previousId = page.source_bounded ? item.id : null;
|
|
7275
|
+
items.push(item);
|
|
7276
|
+
}
|
|
7277
|
+
if (page.next_cursor === null)
|
|
7278
|
+
break;
|
|
7279
|
+
if (page.next_cursor <= cursor)
|
|
7280
|
+
throw new Error("Config identity pagination did not advance");
|
|
7281
|
+
cursor = page.next_cursor;
|
|
7282
|
+
}
|
|
7283
|
+
if (expectedTotal !== null && items.length !== expectedTotal) {
|
|
7284
|
+
throw new Error(`Config collection returned ${items.length} of ${expectedTotal} rows`);
|
|
7285
|
+
}
|
|
7286
|
+
return { items, source_bounded: sourceBounded };
|
|
7287
|
+
}
|
|
7288
|
+
async function readAllConfigPages(store, filter) {
|
|
7289
|
+
const items = [];
|
|
7290
|
+
const seen = new Set;
|
|
7291
|
+
let cursor = 0;
|
|
7292
|
+
let expectedTotal = null;
|
|
7293
|
+
let sourceBounded = true;
|
|
7294
|
+
let previousId = null;
|
|
7295
|
+
while (true) {
|
|
7296
|
+
const page = await store.listConfigsPage(filter, { limit: 100, cursor });
|
|
7297
|
+
sourceBounded = sourceBounded && page.source_bounded;
|
|
7298
|
+
if (expectedTotal === null)
|
|
7299
|
+
expectedTotal = page.total;
|
|
7300
|
+
else if (page.total !== expectedTotal)
|
|
7301
|
+
throw new Error("Config collection changed while paging");
|
|
7302
|
+
for (const item of page.items) {
|
|
7303
|
+
if (seen.has(item.id))
|
|
7304
|
+
throw new Error(`Config collection repeated ${item.id} while paging`);
|
|
7305
|
+
if (page.source_bounded && previousId !== null && item.id <= previousId)
|
|
7306
|
+
throw new Error("Config collection order changed while paging");
|
|
7307
|
+
seen.add(item.id);
|
|
7308
|
+
previousId = page.source_bounded ? item.id : null;
|
|
7309
|
+
items.push(item);
|
|
7310
|
+
}
|
|
7311
|
+
if (page.next_cursor === null)
|
|
7312
|
+
break;
|
|
7313
|
+
if (page.next_cursor <= cursor)
|
|
7314
|
+
throw new Error("Config pagination did not advance");
|
|
7315
|
+
cursor = page.next_cursor;
|
|
7316
|
+
}
|
|
7317
|
+
if (expectedTotal !== null && items.length !== expectedTotal) {
|
|
7318
|
+
throw new Error(`Config collection returned ${items.length} of ${expectedTotal} rows`);
|
|
7319
|
+
}
|
|
7320
|
+
return { items, source_bounded: sourceBounded };
|
|
7321
|
+
}
|
|
7322
|
+
function configListEnvelope(records, page, detail, fields) {
|
|
7323
|
+
const complete = page.cursor === 0 && !page.has_more;
|
|
7324
|
+
const truncated = !complete;
|
|
7325
|
+
const truncationReason = page.cursor > 0 ? page.has_more ? "cursor_and_limit" : "cursor" : page.has_more ? "limit" : null;
|
|
7326
|
+
return {
|
|
7327
|
+
configs: records,
|
|
7328
|
+
_meta: {
|
|
7329
|
+
schema_version: 1,
|
|
7330
|
+
count: records.length,
|
|
7331
|
+
total: page.total,
|
|
7332
|
+
limit: page.limit,
|
|
7333
|
+
cursor: page.cursor,
|
|
7334
|
+
next_cursor: page.next_cursor,
|
|
7335
|
+
has_more: page.has_more,
|
|
7336
|
+
complete,
|
|
7337
|
+
truncated,
|
|
7338
|
+
truncation_reason: truncationReason,
|
|
7339
|
+
detail,
|
|
7340
|
+
fields: [...fields],
|
|
7341
|
+
source_bounded: page.source_bounded
|
|
7342
|
+
}
|
|
7343
|
+
};
|
|
7344
|
+
}
|
|
7345
|
+
program.command("list").alias("ls").description("List stored configs").option("-c, --category <cat>", "filter by category").option("-a, --agent <agent>", "filter by agent").option("-k, --kind <kind>", "filter by kind (file|reference)").option("-t, --tag <tag>", "filter by tag").option("-s, --search <query>", "search name/description/content").option("-f, --format <fmt>", "output format: compact|table|json", "compact").option("--brief", "shorthand for --format compact").option("--verbose", "show expanded metadata for each listed config").option("--json", "output machine-readable records (legacy default: complete full array)").option("--detail <level>", "JSON detail: compact|full; enables a bounded metadata envelope").option("--fields <fields>", "comma-separated JSON fields; implies --detail compact").option("--all", "explicitly read every matching row").option("--pretty", "pretty-print modern JSON output (modern JSON is compact by default)").option("--limit <n>", `max rows (default ${DEFAULT_LIST_LIMIT} for bounded output)`).option("--cursor <n>", "zero-based pagination cursor").action(async (opts) => {
|
|
7346
|
+
const requestedDetail = parseConfigListDetail(opts.detail);
|
|
7347
|
+
const modernJson = requestedDetail !== undefined || opts.fields !== undefined;
|
|
7348
|
+
const jsonRequested = Boolean(opts.json || opts.format === "json");
|
|
7349
|
+
if (modernJson && !jsonRequested)
|
|
7350
|
+
throw new Error("--detail and --fields require JSON output");
|
|
7351
|
+
if (opts.all && !modernJson)
|
|
7352
|
+
throw new Error("--all requires JSON output with --detail or --fields");
|
|
7353
|
+
if (opts.pretty && !jsonRequested)
|
|
7354
|
+
throw new Error("--pretty requires JSON output");
|
|
7355
|
+
const detail = requestedDetail ?? "compact";
|
|
7356
|
+
const fields = parseConfigListFields(opts.fields, detail) ?? (detail === "full" ? [...FULL_CONFIG_FIELDS] : [...COMPACT_CONFIG_FIELDS]);
|
|
7357
|
+
const filter = {
|
|
7195
7358
|
category: opts.category,
|
|
7196
7359
|
agent: opts.agent,
|
|
7197
7360
|
kind: opts.kind,
|
|
7198
7361
|
tags: opts.tag ? [opts.tag] : undefined,
|
|
7199
7362
|
search: opts.search
|
|
7200
|
-
}
|
|
7363
|
+
};
|
|
7364
|
+
const store = resolveConfigStore();
|
|
7365
|
+
if (modernJson) {
|
|
7366
|
+
if (opts.all && (opts.cursor !== undefined || opts.limit !== undefined)) {
|
|
7367
|
+
throw new Error("--all cannot be combined with --limit or --cursor");
|
|
7368
|
+
}
|
|
7369
|
+
let page2;
|
|
7370
|
+
if (opts.all) {
|
|
7371
|
+
if (detail === "full") {
|
|
7372
|
+
const completeRead = await readAllConfigPages(store, filter);
|
|
7373
|
+
page2 = {
|
|
7374
|
+
items: completeRead.items,
|
|
7375
|
+
total: completeRead.items.length,
|
|
7376
|
+
limit: Math.max(completeRead.items.length, 1),
|
|
7377
|
+
cursor: 0,
|
|
7378
|
+
next_cursor: null,
|
|
7379
|
+
has_more: false,
|
|
7380
|
+
complete: true,
|
|
7381
|
+
truncated: false,
|
|
7382
|
+
source_bounded: completeRead.source_bounded
|
|
7383
|
+
};
|
|
7384
|
+
} else {
|
|
7385
|
+
const completeRead = await readAllConfigIdentityPages(store, filter);
|
|
7386
|
+
page2 = {
|
|
7387
|
+
items: completeRead.items,
|
|
7388
|
+
total: completeRead.items.length,
|
|
7389
|
+
limit: Math.max(completeRead.items.length, 1),
|
|
7390
|
+
cursor: 0,
|
|
7391
|
+
next_cursor: null,
|
|
7392
|
+
has_more: false,
|
|
7393
|
+
complete: true,
|
|
7394
|
+
truncated: false,
|
|
7395
|
+
source_bounded: completeRead.source_bounded
|
|
7396
|
+
};
|
|
7397
|
+
}
|
|
7398
|
+
} else {
|
|
7399
|
+
page2 = detail === "full" ? await store.listConfigsPage(filter, { limit: opts.limit, cursor: opts.cursor }) : await store.listConfigIdentitiesPage(filter, { limit: opts.limit, cursor: opts.cursor });
|
|
7400
|
+
}
|
|
7401
|
+
const records = page2.items.map((item) => projectConfigFields(item, fields));
|
|
7402
|
+
printMachineJson(configListEnvelope(records, {
|
|
7403
|
+
total: page2.total,
|
|
7404
|
+
limit: opts.all ? null : page2.limit,
|
|
7405
|
+
cursor: page2.cursor,
|
|
7406
|
+
next_cursor: page2.next_cursor,
|
|
7407
|
+
has_more: page2.has_more,
|
|
7408
|
+
complete: page2.complete,
|
|
7409
|
+
source_bounded: page2.source_bounded
|
|
7410
|
+
}, detail, fields), Boolean(opts.pretty));
|
|
7411
|
+
return;
|
|
7412
|
+
}
|
|
7413
|
+
const fmt = opts.json ? "json" : opts.verbose ? "table" : opts.brief ? "compact" : opts.format;
|
|
7201
7414
|
if (fmt === "json") {
|
|
7415
|
+
const configs = opts.limit !== undefined || opts.cursor !== undefined ? (await store.listConfigsPage(filter, { limit: opts.limit, cursor: opts.cursor })).items : await store.listConfigs(filter);
|
|
7202
7416
|
printJson(configs);
|
|
7203
7417
|
return;
|
|
7204
7418
|
}
|
|
7205
|
-
|
|
7419
|
+
const page = opts.all ? (() => {
|
|
7420
|
+
throw new Error("--all is only available with --json and --detail");
|
|
7421
|
+
})() : await store.listConfigSummariesPage(filter, { limit: opts.limit, cursor: opts.cursor });
|
|
7422
|
+
if (page.total === 0) {
|
|
7206
7423
|
console.log(chalk.dim("No configs found."));
|
|
7207
7424
|
return;
|
|
7208
7425
|
}
|
|
7209
|
-
const page = paginate(configs, { limit: opts.limit, cursor: opts.cursor });
|
|
7210
7426
|
if (fmt === "compact") {
|
|
7211
7427
|
printConfigRows(page.items);
|
|
7212
7428
|
} else {
|
|
@@ -7215,7 +7431,7 @@ program.command("list").alias("ls").description("List stored configs").option("-
|
|
|
7215
7431
|
console.log();
|
|
7216
7432
|
}
|
|
7217
7433
|
}
|
|
7218
|
-
pageFooter("configs list", page, "Use --verbose for expanded rows, --json for
|
|
7434
|
+
pageFooter("configs list", page, "Use --verbose for expanded rows, --json --detail compact for metadata, or `configs show <slug>` for content.");
|
|
7219
7435
|
});
|
|
7220
7436
|
program.command("show <id>").alias("inspect").description("Show a config's content and metadata").option("-f, --format <fmt>", "output format: table|json|content", "table").action(async (id, opts) => {
|
|
7221
7437
|
try {
|
|
@@ -8277,7 +8493,7 @@ program.command("scan [id]").description("Scan configs for secrets. Defaults to
|
|
|
8277
8493
|
} else if (opts.all) {
|
|
8278
8494
|
configs = await store.listConfigs(opts.category ? { kind: "file", category: opts.category } : { kind: "file" });
|
|
8279
8495
|
} else {
|
|
8280
|
-
const { KNOWN_CONFIGS: KNOWN_CONFIGS2 } = await import("../chunks/sync-
|
|
8496
|
+
const { KNOWN_CONFIGS: KNOWN_CONFIGS2 } = await import("../chunks/sync-xtkbm5br.js");
|
|
8281
8497
|
const slugs = [
|
|
8282
8498
|
...KNOWN_CONFIGS2.filter((k) => !k.rulesDir).map((k) => k.name)
|
|
8283
8499
|
];
|
|
@@ -8879,8 +9095,8 @@ storageBackupCmd.command("push <file>").description("Upload an immutable backup
|
|
|
8879
9095
|
throw new Error(`Backup file not found: ${abs}`);
|
|
8880
9096
|
const [{ loadInstructionsS3Config }, backup, objectStore] = await Promise.all([
|
|
8881
9097
|
import("../chunks/s3-config-hhght91k.js"),
|
|
8882
|
-
import("../chunks/s3-backup-
|
|
8883
|
-
import("../chunks/s3-object-store-
|
|
9098
|
+
import("../chunks/s3-backup-hxe3zpfz.js"),
|
|
9099
|
+
import("../chunks/s3-object-store-n0s82swt.js")
|
|
8884
9100
|
]);
|
|
8885
9101
|
const config = loadInstructionsS3Config(process.env);
|
|
8886
9102
|
if (!config)
|
|
@@ -8927,8 +9143,8 @@ storageBackupCmd.command("verify <backup-id>").description("Verify the immutable
|
|
|
8927
9143
|
const versions = normalizeBackupVersionOptions(opts);
|
|
8928
9144
|
const [{ loadInstructionsS3Config }, backup, objectStore] = await Promise.all([
|
|
8929
9145
|
import("../chunks/s3-config-hhght91k.js"),
|
|
8930
|
-
import("../chunks/s3-backup-
|
|
8931
|
-
import("../chunks/s3-object-store-
|
|
9146
|
+
import("../chunks/s3-backup-hxe3zpfz.js"),
|
|
9147
|
+
import("../chunks/s3-object-store-n0s82swt.js")
|
|
8932
9148
|
]);
|
|
8933
9149
|
const config = loadInstructionsS3Config(process.env);
|
|
8934
9150
|
if (!config)
|
|
@@ -8953,8 +9169,8 @@ storageBackupCmd.command("pull <backup-id>").description("Download and verify an
|
|
|
8953
9169
|
const versions = normalizeBackupVersionOptions(opts);
|
|
8954
9170
|
const [{ loadInstructionsS3Config }, backup, objectStore] = await Promise.all([
|
|
8955
9171
|
import("../chunks/s3-config-hhght91k.js"),
|
|
8956
|
-
import("../chunks/s3-backup-
|
|
8957
|
-
import("../chunks/s3-object-store-
|
|
9172
|
+
import("../chunks/s3-backup-hxe3zpfz.js"),
|
|
9173
|
+
import("../chunks/s3-object-store-n0s82swt.js")
|
|
8958
9174
|
]);
|
|
8959
9175
|
const config = loadInstructionsS3Config(process.env);
|
|
8960
9176
|
if (!config)
|
|
@@ -9176,7 +9392,7 @@ program.command("watch").description("Watch known config files for changes and a
|
|
|
9176
9392
|
const store = resolveConfigStore();
|
|
9177
9393
|
const interval = Number(opts.interval);
|
|
9178
9394
|
const { statSync: st } = await import("fs");
|
|
9179
|
-
const { expandPath: expandPath2 } = await import("../chunks/apply-
|
|
9395
|
+
const { expandPath: expandPath2 } = await import("../chunks/apply-pnn7a3y7.js");
|
|
9180
9396
|
console.log(chalk.bold("@hasna/instructions watch") + chalk.dim(` \u2014 polling every ${interval}ms`));
|
|
9181
9397
|
console.log(chalk.dim(`Watching known config files for changes\u2026
|
|
9182
9398
|
`));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
2
|
import type { FeedbackInput } from "../db/database.js";
|
|
3
|
-
import type { Config, ConfigFilter, ConfigSnapshot, CreateConfigInput, CreateProfileInput, Machine, MachineContext, Profile, BoundedReadOptions, BoundedReadPage, ProfileResolutionRead, UpdateConfigInput, UpdateProfileInput, ProfileConfigBinding, ProfileConfigBindingSpec, ProfileAssetBinding, ProfileAssetBindingSpec } from "../types/index.js";
|
|
3
|
+
import type { Config, ConfigFilter, ConfigSummary, ConfigIdentity, ConfigSnapshot, CreateConfigInput, CreateProfileInput, Machine, MachineContext, Profile, BoundedReadOptions, BoundedReadPage, ProfileResolutionRead, UpdateConfigInput, UpdateProfileInput, ProfileConfigBinding, ProfileConfigBindingSpec, ProfileAssetBinding, ProfileAssetBindingSpec } from "../types/index.js";
|
|
4
4
|
import { INSTRUCTIONS_LOCAL_OPT_IN_ENV_KEYS, type InstructionsResolverOptions } from "../lib/transport-resolver.js";
|
|
5
5
|
import type { InstructionsClientEnv, InstructionsStorageClient, InstructionsCredentialChainOptions } from "../lib/client-types.js";
|
|
6
6
|
/**
|
|
@@ -48,6 +48,9 @@ export interface ConfigStore {
|
|
|
48
48
|
/** The resolved `<origin>/v1` base for a hosted store; null for the local store. */
|
|
49
49
|
readonly v1BaseUrl: string | null;
|
|
50
50
|
listConfigs(filter?: ConfigFilter): Promise<Config[]>;
|
|
51
|
+
listConfigsPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<Config>>;
|
|
52
|
+
listConfigIdentitiesPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<ConfigIdentity>>;
|
|
53
|
+
listConfigSummariesPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<ConfigSummary>>;
|
|
51
54
|
getConfig(idOrSlug: string): Promise<Config>;
|
|
52
55
|
getConfigById(id: string): Promise<Config>;
|
|
53
56
|
createConfig(input: CreateConfigInput): Promise<Config>;
|
|
@@ -99,6 +102,9 @@ export declare class LocalConfigStore implements ConfigStore {
|
|
|
99
102
|
readonly v1BaseUrl: string | null;
|
|
100
103
|
constructor(db?: Database | undefined);
|
|
101
104
|
listConfigs(filter?: ConfigFilter): Promise<Config[]>;
|
|
105
|
+
listConfigsPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<Config>>;
|
|
106
|
+
listConfigIdentitiesPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<ConfigIdentity>>;
|
|
107
|
+
listConfigSummariesPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<ConfigSummary>>;
|
|
102
108
|
getConfig(idOrSlug: string): Promise<Config>;
|
|
103
109
|
getConfigById(id: string): Promise<Config>;
|
|
104
110
|
createConfig(input: CreateConfigInput): Promise<Config>;
|
|
@@ -142,7 +148,9 @@ export declare class CloudConfigStore implements ConfigStore {
|
|
|
142
148
|
private readonly client;
|
|
143
149
|
constructor(client: InstructionsStorageClient);
|
|
144
150
|
private request;
|
|
145
|
-
|
|
151
|
+
listConfigsPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<Config>>;
|
|
152
|
+
listConfigIdentitiesPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<ConfigIdentity>>;
|
|
153
|
+
listConfigSummariesPage(filter?: ConfigFilter, options?: BoundedReadOptions): Promise<BoundedReadPage<ConfigSummary>>;
|
|
146
154
|
listConfigs(filter?: ConfigFilter): Promise<Config[]>;
|
|
147
155
|
getConfig(idOrSlug: string): Promise<Config>;
|
|
148
156
|
getConfigById(id: string): Promise<Config>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/data/config-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/data/config-store.ts"],"names":[],"mappings":"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"}
|
package/dist/db/configs.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { Config, ConfigFilter, CreateConfigInput, UpdateConfigInput } from "../types/index.js";
|
|
2
|
+
import type { Config, ConfigFilter, ConfigSummary, ConfigIdentity, BoundedReadOptions, BoundedReadPage, CreateConfigInput, UpdateConfigInput } from "../types/index.js";
|
|
3
3
|
export declare function createConfig(input: CreateConfigInput, db?: Database): Config;
|
|
4
4
|
export declare function getConfig(idOrSlug: string, db?: Database): Config;
|
|
5
5
|
export declare function getConfigById(id: string, db?: Database): Config;
|
|
6
6
|
export declare function listConfigs(filter?: ConfigFilter, db?: Database): Config[];
|
|
7
|
+
export declare function listConfigsPage(filter?: ConfigFilter, options?: BoundedReadOptions, db?: Database): BoundedReadPage<Config>;
|
|
8
|
+
export declare function listConfigIdentitiesPage(filter?: ConfigFilter, options?: BoundedReadOptions, db?: Database): BoundedReadPage<ConfigIdentity>;
|
|
9
|
+
export declare function listConfigSummariesPage(filter?: ConfigFilter, options?: BoundedReadOptions, db?: Database): BoundedReadPage<ConfigSummary>;
|
|
7
10
|
export declare function updateConfig(idOrSlug: string, input: UpdateConfigInput, db?: Database): Config;
|
|
8
11
|
export declare function deleteConfig(idOrSlug: string, db?: Database): void;
|
|
9
12
|
export declare function getConfigStats(db?: Database): Record<string, number>;
|
package/dist/db/configs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/db/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,MAAM,EACN,YAAY,
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/db/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EAEf,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAwC3B,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAiC5E;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CASjE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAO/D;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAsC1E;AAED,wBAAgB,eAAe,CAC7B,MAAM,GAAE,YAAiB,EACzB,OAAO,GAAE,kBAAuB,EAChC,EAAE,CAAC,EAAE,QAAQ,GACZ,eAAe,CAAC,MAAM,CAAC,CAwBzB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,GAAE,YAAiB,EACzB,OAAO,GAAE,kBAAuB,EAChC,EAAE,CAAC,EAAE,QAAQ,GACZ,eAAe,CAAC,cAAc,CAAC,CAmCjC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,YAAiB,EACzB,OAAO,GAAE,kBAAuB,EAChC,EAAE,CAAC,EAAE,QAAQ,GACZ,eAAe,CAAC,aAAa,CAAC,CAiDhC;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,EACxB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CA+BR;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAIlE;AAED,wBAAgB,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAapE"}
|
package/dist/db/local.d.ts
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* whose environment configures a hosted authority. This module adds no policy;
|
|
30
30
|
* it only makes the local store lazily reachable through a single seam.
|
|
31
31
|
*/
|
|
32
|
-
export { createConfig, deleteConfig, getConfig, getConfigById, getConfigStats, listConfigs, updateConfig, } from "./configs.js";
|
|
32
|
+
export { createConfig, deleteConfig, getConfig, getConfigById, getConfigStats, listConfigs, listConfigsPage, listConfigIdentitiesPage, listConfigSummariesPage, updateConfig, } from "./configs.js";
|
|
33
33
|
export { addConfigToProfile, createProfile, deleteProfile, getProfile, getProfileConfigsPage, getProfileConfigBindings, listProfilesPage, removeConfigFromProfile, resolveProfileForMachineRead, setProfileConfigBinding, updateProfile, addAssetToProfile, getProfileAssetBindings, removeAssetFromProfile, setProfileAssetBinding, } from "./profiles.js";
|
|
34
34
|
export { createSnapshot, getSnapshot, getSnapshotByVersion, listSnapshots, pruneSnapshots, } from "./snapshots.js";
|
|
35
35
|
export { listMachines, registerMachine, updateMachineApplied } from "./machines.js";
|
package/dist/db/local.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/db/local.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/db/local.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|