@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.
Files changed (48) hide show
  1. package/README.md +18 -4
  2. package/dist/chunks/{apply-7svah2qm.js → apply-c3sd4agz.js} +2 -2
  3. package/dist/chunks/{apply-jp13sa1e.js → apply-pnn7a3y7.js} +2 -2
  4. package/dist/chunks/{index-7m4j8a33.js → index-6jncnnw7.js} +117 -4
  5. package/dist/chunks/{index-4pfq42t5.js → index-aj66f6xr.js} +118 -27
  6. package/dist/chunks/{index-bzyxvwcd.js → index-jg8ptcwh.js} +2 -2
  7. package/dist/chunks/{index-arrrx0ed.js → index-mvckkf15.js} +39 -20
  8. package/dist/chunks/{index-1cnyjnd7.js → index-pdpg8a44.js} +2 -2
  9. package/dist/chunks/{index-z3ma4aqk.js → index-r7nfef2g.js} +1 -1
  10. package/dist/chunks/{index-fwbs6tma.js → index-ypcef3a2.js} +1 -1
  11. package/dist/chunks/{local-5wvv5xv3.js → local-0a9gja58.js} +141 -1
  12. package/dist/chunks/{local-zxa5dpf4.js → local-969ye538.js} +141 -1
  13. package/dist/chunks/{s3-backup-n2z4fwyh.js → s3-backup-hxe3zpfz.js} +1 -1
  14. package/dist/chunks/{s3-object-store-90tgbh6k.js → s3-object-store-n0s82swt.js} +1 -1
  15. package/dist/chunks/{sync-r8t7zsp3.js → sync-q5hvwq6e.js} +3 -3
  16. package/dist/chunks/{sync-2075deve.js → sync-xtkbm5br.js} +3 -3
  17. package/dist/cli/index.js +269 -53
  18. package/dist/data/config-store.d.ts +10 -2
  19. package/dist/data/config-store.d.ts.map +1 -1
  20. package/dist/db/configs.d.ts +4 -1
  21. package/dist/db/configs.d.ts.map +1 -1
  22. package/dist/db/local.d.ts +1 -1
  23. package/dist/db/local.d.ts.map +1 -1
  24. package/dist/index.js +282 -36
  25. package/dist/lib/compact-output.d.ts +2 -18
  26. package/dist/lib/compact-output.d.ts.map +1 -1
  27. package/dist/lib/export.d.ts.map +1 -1
  28. package/dist/lib/import.d.ts.map +1 -1
  29. package/dist/mcp/index.js +17 -17
  30. package/dist/mcp/server.d.ts.map +1 -1
  31. package/dist/sdk/index.js +27 -3
  32. package/dist/sdk/v1-client.d.ts +4 -3
  33. package/dist/sdk/v1-client.d.ts.map +1 -1
  34. package/dist/sdk/v1.generated.d.ts +32 -2
  35. package/dist/sdk/v1.generated.d.ts.map +1 -1
  36. package/dist/server/index.d.ts +1 -1
  37. package/dist/server/index.d.ts.map +1 -1
  38. package/dist/server/index.js +93 -7
  39. package/dist/server/openapi.d.ts +117 -3
  40. package/dist/server/openapi.d.ts.map +1 -1
  41. package/dist/server/v1.d.ts.map +1 -1
  42. package/dist/storage/cloud-store.d.ts +2 -15
  43. package/dist/storage/cloud-store.d.ts.map +1 -1
  44. package/dist/storage/index.js +39 -20
  45. package/dist/storage/s3-object-store.d.ts.map +1 -1
  46. package/dist/types/index.d.ts +33 -0
  47. package/dist/types/index.d.ts.map +1 -1
  48. 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-1cnyjnd7.js";
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-z3ma4aqk.js";
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-7m4j8a33.js";
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 = [...domain.config_snapshots].sort((left, right) => compareText(left.config_slug, right.config_slug) || left.version - right.version || compareText(left.id, right.id));
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.map((snapshot) => ({
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) => `${row.config_slug}@${row.version}`), "config snapshot");
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 configSlugs = new Set(typed.configs.map((row) => row.slug));
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
- if (!configSlugs.has(row.config_slug))
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
- const byVersion = new Map(snapshots.map((snapshot) => [snapshot.version, snapshot.content]));
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, snapshots.length);
4345
- const restoredSnapshots = (await store.listSnapshots(restored.id)).map(({ version, content: snapshotContent }) => ({ version, content: snapshotContent })).sort((left, right) => left.version - right.version);
4346
- const expectedSnapshots = snapshots.map(({ version, content: snapshotContent }) => ({ version, content: snapshotContent }));
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.length > 0 ? ` ${chalk.dim("tags: " + c.tags.join(", "))}` : ""
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.outputs.length).padStart(3)} ${c.version}`);
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
- 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 full matching records as JSON").option("--limit <n>", `max rows for human output (default ${DEFAULT_LIST_LIMIT})`).option("--cursor <n>", "zero-based pagination cursor for human output").action(async (opts) => {
7193
- const fmt = opts.json ? "json" : opts.verbose ? "table" : opts.brief ? "compact" : opts.format;
7194
- const configs = await resolveConfigStore().listConfigs({
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
- if (configs.length === 0) {
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 full records, or `configs show <slug>` for content.");
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-2075deve.js");
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-n2z4fwyh.js"),
8883
- import("../chunks/s3-object-store-90tgbh6k.js")
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-n2z4fwyh.js"),
8931
- import("../chunks/s3-object-store-90tgbh6k.js")
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-n2z4fwyh.js"),
8957
- import("../chunks/s3-object-store-90tgbh6k.js")
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-jp13sa1e.js");
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
- private listConfigsPageRemote;
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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"}
@@ -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>;
@@ -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,EAGZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAuC3B,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,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"}
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"}
@@ -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";
@@ -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"}