@kweaver-ai/kweaver-sdk 0.8.2 → 0.8.3

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 (40) hide show
  1. package/README.md +26 -52
  2. package/README.zh.md +27 -46
  3. package/dist/api/resources.d.ts +94 -0
  4. package/dist/api/resources.js +166 -0
  5. package/dist/cli.js +102 -10
  6. package/dist/client.d.ts +3 -3
  7. package/dist/client.js +5 -5
  8. package/dist/commands/agent-members.js +27 -11
  9. package/dist/commands/agent.js +383 -272
  10. package/dist/commands/auth.js +184 -71
  11. package/dist/commands/bkn-metric.js +37 -16
  12. package/dist/commands/bkn-ops.js +164 -86
  13. package/dist/commands/bkn-query.js +99 -31
  14. package/dist/commands/bkn-schema.d.ts +3 -3
  15. package/dist/commands/bkn-schema.js +127 -86
  16. package/dist/commands/bkn.js +153 -114
  17. package/dist/commands/call.js +23 -13
  18. package/dist/commands/config.js +22 -12
  19. package/dist/commands/context-loader.js +98 -92
  20. package/dist/commands/dataflow.js +14 -6
  21. package/dist/commands/ds.js +52 -30
  22. package/dist/commands/explore.js +18 -15
  23. package/dist/commands/model.js +53 -42
  24. package/dist/commands/resource.d.ts +1 -0
  25. package/dist/commands/{dataview.js → resource.js} +62 -84
  26. package/dist/commands/skill.js +201 -65
  27. package/dist/commands/token.js +11 -0
  28. package/dist/commands/tool.js +46 -29
  29. package/dist/commands/toolbox.js +31 -15
  30. package/dist/commands/vega.js +466 -250
  31. package/dist/help/format.d.ts +65 -0
  32. package/dist/help/format.js +141 -0
  33. package/dist/index.d.ts +3 -3
  34. package/dist/index.js +2 -2
  35. package/dist/resources/{dataviews.d.ts → resources.d.ts} +10 -11
  36. package/dist/resources/{dataviews.js → resources.js} +12 -13
  37. package/package.json +1 -1
  38. package/dist/api/dataviews.d.ts +0 -117
  39. package/dist/api/dataviews.js +0 -265
  40. package/dist/commands/dataview.d.ts +0 -8
@@ -6,13 +6,14 @@ import { prepareBknDirectoryForImport, stripBknEncodingCliArgs, } from "../utils
6
6
  import { ensureValidToken, formatHttpError } from "../auth/oauth.js";
7
7
  import { createKnowledgeNetwork, createObjectTypes, deleteKnowledgeNetwork, buildKnowledgeNetwork, getBuildStatus, } from "../api/knowledge-networks.js";
8
8
  import { listTablesWithColumns, scanDatasourceMetadata } from "../api/vega.js";
9
- import { createDataView, findDataView } from "../api/dataviews.js";
9
+ import { createResource, findResource } from "../api/resources.js";
10
10
  import { resolveFiles } from "./ds.js";
11
11
  import { buildTableName } from "./import-csv.js";
12
12
  import { downloadBkn, uploadBkn, listActionSchedules, getActionSchedule, createActionSchedule, updateActionSchedule, setActionScheduleStatus, deleteActionSchedules, listJobs, getJob, getJobTasks, deleteJobs, } from "../api/bkn-backend.js";
13
13
  import { formatCallOutput } from "./call.js";
14
14
  import { resolveBusinessDomain } from "../config/store.js";
15
15
  import { runDsImportCsv } from "./ds.js";
16
+ import { renderHelp } from "../help/format.js";
16
17
  import { pollWithBackoff, detectDisplayKey, formatPkDetectionError, parsePkMap, resolvePrimaryKey, confirmYes, assertVegaCatalogId, } from "./bkn-utils.js";
17
18
  // ── BKN object name validation ──────────────────────────────────────────────
18
19
  // Mirrors bkn-backend OBJECT_NAME_MAX_LENGTH (interfaces/common.go:28) and
@@ -35,15 +36,22 @@ export function assertValidBknObjectNames(names, context) {
35
36
  `(1..${BKN_OBJECT_NAME_MAX_LENGTH} utf-8 chars):\n${lines.join("\n")}`);
36
37
  }
37
38
  // ── Build ───────────────────────────────────────────────────────────────────
38
- const KN_BUILD_HELP = `kweaver bkn build <kn-id> [options]
39
-
40
- Trigger a full build for a knowledge network.
41
-
42
- Options:
43
- --wait (default) Poll until build completes
44
- --no-wait Return immediately after triggering
45
- --timeout <seconds> Max wait time when --wait (default: 300)
46
- -bd, --biz-domain Business domain (default: bd_public)`;
39
+ const KN_BUILD_HELP = renderHelp({
40
+ tagline: "Trigger a full build for a knowledge network",
41
+ usage: "kweaver bkn build <kn-id> [flags]",
42
+ flags: [
43
+ { name: "--wait", desc: "Poll until build completes (default)" },
44
+ { name: "--no-wait", desc: "Return immediately after triggering" },
45
+ { name: "--timeout <seconds>", desc: "Max wait time when --wait (default: 300)" },
46
+ { name: "-bd, --biz-domain <s>", desc: "Business domain (default: bd_public)" },
47
+ ],
48
+ inheritedFlags: "--base-url, --token, --user, --help",
49
+ examples: [
50
+ "kweaver bkn build kn-123",
51
+ "kweaver bkn build kn-123 --no-wait",
52
+ "kweaver bkn build kn-123 --wait --timeout 600",
53
+ ],
54
+ });
47
55
  export function parseKnBuildArgs(args) {
48
56
  let knId = "";
49
57
  let wait = true;
@@ -349,25 +357,52 @@ export function extractTarToDirectory(tarBuffer, dirPath) {
349
357
  throw new Error(`tar extract failed: ${result.stderr?.toString() ?? result.status}`);
350
358
  }
351
359
  }
352
- const KN_PUSH_HELP = `kweaver bkn push <directory> [options]
353
-
354
- Pack a BKN directory into a tar and upload to import as a knowledge network.
355
-
356
- Options:
357
- --branch <s> Branch name (default: main)
358
- -bd, --biz-domain Business domain (default: bd_public)
359
- --pretty Pretty-print JSON output
360
- --detect-encoding Detect .bkn encoding and normalize to UTF-8 (default: on)
361
- --no-detect-encoding Do not detect; require UTF-8 .bkn files
362
- --source-encoding <name> Decode all .bkn files with this encoding (e.g. gb18030); overrides detection`;
363
- const KN_PULL_HELP = `kweaver bkn pull <kn-id> [<directory>] [options]
364
-
365
- Download a BKN tar from a knowledge network and extract to a local directory.
366
-
367
- Options:
368
- <directory> Output directory (default: <kn-id>)
369
- --branch <s> Branch name (default: main)
370
- -bd, --biz-domain Business domain (default: bd_public)`;
360
+ const KN_PUSH_HELP = renderHelp({
361
+ tagline: "Pack a BKN directory into a tar and upload to import as a knowledge network",
362
+ usage: "kweaver bkn push <directory> [flags]",
363
+ flags: [
364
+ {
365
+ title: "Target",
366
+ flags: [
367
+ { name: "--branch <s>", desc: "Branch name (default: main)" },
368
+ { name: "-bd, --biz-domain <s>", desc: "Business domain (default: bd_public)" },
369
+ ],
370
+ },
371
+ {
372
+ title: "Encoding",
373
+ flags: [
374
+ { name: "--detect-encoding", desc: "Detect .bkn encoding and normalize to UTF-8 (default: on)" },
375
+ { name: "--no-detect-encoding", desc: "Do not detect; require UTF-8 .bkn files" },
376
+ { name: "--source-encoding <name>", desc: "Decode all .bkn files with this encoding, e.g. gb18030 (overrides detection)" },
377
+ ],
378
+ },
379
+ {
380
+ title: "Output",
381
+ flags: [{ name: "--pretty", desc: "Pretty-print JSON output" }],
382
+ },
383
+ ],
384
+ inheritedFlags: "--base-url, --token, --user, --help",
385
+ examples: [
386
+ "kweaver bkn push ./my-network",
387
+ "kweaver bkn push ./my-network --branch feature/v2",
388
+ "kweaver bkn push ./legacy --source-encoding gb18030",
389
+ ],
390
+ });
391
+ const KN_PULL_HELP = renderHelp({
392
+ tagline: "Download a BKN tar from a knowledge network and extract to a local directory",
393
+ usage: "kweaver bkn pull <kn-id> [<directory>] [flags]",
394
+ flags: [
395
+ { name: "<directory>", desc: "Output directory (default: <kn-id>)" },
396
+ { name: "--branch <s>", desc: "Branch name (default: main)" },
397
+ { name: "-bd, --biz-domain <s>", desc: "Business domain (default: bd_public)" },
398
+ ],
399
+ inheritedFlags: "--base-url, --token, --user, --help",
400
+ examples: [
401
+ "kweaver bkn pull kn-123",
402
+ "kweaver bkn pull kn-123 ./out",
403
+ "kweaver bkn pull kn-123 ./out --branch feature/v2",
404
+ ],
405
+ });
371
406
  export async function runKnPushCommand(args) {
372
407
  let options;
373
408
  try {
@@ -473,23 +508,30 @@ export async function runKnPullCommand(args) {
473
508
  }
474
509
  }
475
510
  // ── Create from datasource ──────────────────────────────────────────────────
476
- const KN_CREATE_FROM_DS_HELP = `kweaver bkn create-from-ds <vega-catalog-id> --name X [options]
477
-
478
- Create a knowledge network from a vega catalog datasource (dataviews + object types + optional build).
479
- <vega-catalog-id> is a vega catalog id (use \`kweaver vega catalog list\` to find one;
480
- legacy data-connection datasource UUIDs are no longer accepted).
481
-
482
- Options:
483
- --name <s> Knowledge network name (required)
484
- --tables <a,b> Comma-separated table names (default: all)
485
- --pk-map <s> Explicit primary keys: <table>:<field>[,<table>:<field>...]
486
- Required when auto-detection fails (no unique column in sample)
487
- --build (default) Build after creation
488
- --no-build Skip build after creation
489
- --timeout <n> Build timeout in seconds (default: 300)
490
- --no-rollback Keep partially-created KN on failure (debug; default: rollback)
491
- -bd, --biz-domain Business domain (default: bd_public)
492
- --pretty Pretty-print output (default)`;
511
+ const KN_CREATE_FROM_DS_HELP = renderHelp({
512
+ tagline: "Create a knowledge network from a vega catalog datasource (resources + object types + optional build)",
513
+ usage: "kweaver bkn create-from-ds <vega-catalog-id> --name X [flags]",
514
+ flags: [
515
+ { name: "--name <s>", desc: "Knowledge network name (required)" },
516
+ { name: "--tables <a,b>", desc: "Comma-separated table names (default: all)" },
517
+ { name: "--pk-map <s>", desc: "Explicit primary keys <table>:<field>[,...]; required when auto-detection fails" },
518
+ { name: "--build", desc: "Build after creation (default)" },
519
+ { name: "--no-build", desc: "Skip build after creation" },
520
+ { name: "--timeout <n>", desc: "Build timeout in seconds (default: 300)" },
521
+ { name: "--no-rollback", desc: "Keep partially-created KN on failure (debug; default: rollback)" },
522
+ { name: "-bd, --biz-domain <s>", desc: "Business domain (default: bd_public)" },
523
+ { name: "--pretty", desc: "Pretty-print output (default)" },
524
+ ],
525
+ inheritedFlags: "--base-url, --token, --user, --help",
526
+ examples: [
527
+ "kweaver bkn create-from-ds vcat-123 --name customers",
528
+ "kweaver bkn create-from-ds vcat-123 --name orders --tables orders,items --no-build",
529
+ ],
530
+ learnMore: [
531
+ "<vega-catalog-id> is a vega catalog id (use `kweaver vega catalog list` to find one)",
532
+ "Legacy data-connection datasource UUIDs are no longer accepted",
533
+ ],
534
+ });
493
535
  export function parseKnCreateFromDsArgs(args) {
494
536
  let dsId = "";
495
537
  let name = "";
@@ -564,7 +606,7 @@ function sanitizeBknId(name) {
564
606
  export function generateObjectTypeBkn(tableName, dvId, pk, dk, columns) {
565
607
  const safeId = sanitizeBknId(tableName);
566
608
  const header = `## ObjectType: ${safeId}\n\n**${tableName}**\n`;
567
- const dsTable = `### Data Source\n\n| Type | ID | Name |\n|------|-----|------|\n| data_view | ${dvId} | ${tableName} |\n`;
609
+ const dsTable = `### Data Source\n\n| Type | ID | Name |\n|------|-----|------|\n| resource | ${dvId} | ${tableName} |\n`;
568
610
  const dpHeader = `### Data Properties\n\n| Property | Display Name | Type | Primary Key | Display Key |\n|----------|-------------|------|-------------|-------------|\n`;
569
611
  const dpRows = columns.map((c) => {
570
612
  const isPk = c.name === pk ? "yes" : "no";
@@ -667,12 +709,12 @@ export async function runKnCreateFromDsCommand(args, sampleRows) {
667
709
  sampleSize: resolution.sampleSize ?? 0,
668
710
  }));
669
711
  }
670
- // Phase 1: Create DataViews for each table. findDataView is idempotent;
712
+ // Phase 1: Create vega-backend Resources for each table. findResource is idempotent;
671
713
  // not tracked for rollback so a retry can reuse what's already there.
672
- console.error(`Creating data views for ${targetTables.length} table(s) ...`);
714
+ console.error(`Creating resources for ${targetTables.length} table(s) ...`);
673
715
  const viewMap = {};
674
716
  for (const t of targetTables) {
675
- const found = await findDataView({
717
+ const found = await findResource({
676
718
  ...base,
677
719
  name: t.name,
678
720
  datasourceId: options.dsId,
@@ -680,7 +722,7 @@ export async function runKnCreateFromDsCommand(args, sampleRows) {
680
722
  wait: true,
681
723
  });
682
724
  const dvId = found[0]?.id ??
683
- (await createDataView({
725
+ (await createResource({
684
726
  ...base,
685
727
  name: t.name,
686
728
  datasourceId: options.dsId,
@@ -717,7 +759,7 @@ export async function runKnCreateFromDsCommand(args, sampleRows) {
717
759
  return {
718
760
  branch: "main",
719
761
  name: t.name,
720
- data_source: { type: "data_view", id: viewMap[t.name] },
762
+ data_source: { type: "resource", id: viewMap[t.name] },
721
763
  primary_keys: [pk],
722
764
  display_key: dk,
723
765
  data_properties: t.columns.map((c) => ({
@@ -806,24 +848,32 @@ export async function runKnCreateFromDsCommand(args, sampleRows) {
806
848
  }
807
849
  }
808
850
  // ── Create from CSV ─────────────────────────────────────────────────────────
809
- const KN_CREATE_FROM_CSV_HELP = `kweaver bkn create-from-csv <vega-catalog-id> --files <glob> --name X [options]
810
-
811
- Import CSV files into a vega catalog datasource, then create a knowledge network.
812
- <vega-catalog-id> is a vega catalog id (use \`kweaver vega catalog list\` to find one;
813
- legacy data-connection datasource UUIDs are no longer accepted).
814
-
815
- Options:
816
- --files <s> CSV file paths (comma-separated or glob, required)
817
- --name <s> Knowledge network name (required)
818
- --table-prefix <s> Table name prefix (default: none)
819
- --batch-size <n> Rows per batch (default: 500)
820
- --tables <a,b> Tables to include in KN (default: all imported)
821
- --build (default) Build after creation
822
- --no-build Skip build
823
- --pk-map <s> Explicit primary keys: <table>:<field>[,<table>:<field>...]
824
- --timeout <n> Build timeout in seconds (default: 300)
825
- --no-rollback Keep partially-created KN on failure (debug; default: rollback)
826
- -bd, --biz-domain Business domain (default: bd_public)`;
851
+ const KN_CREATE_FROM_CSV_HELP = renderHelp({
852
+ tagline: "Import CSV files into a vega catalog datasource, then create a knowledge network",
853
+ usage: "kweaver bkn create-from-csv <vega-catalog-id> --files <glob> --name X [flags]",
854
+ flags: [
855
+ { name: "--files <s>", desc: "CSV file paths (comma-separated or glob, required)" },
856
+ { name: "--name <s>", desc: "Knowledge network name (required)" },
857
+ { name: "--table-prefix <s>", desc: "Table name prefix (default: none)" },
858
+ { name: "--batch-size <n>", desc: "Rows per batch (default: 500)" },
859
+ { name: "--tables <a,b>", desc: "Tables to include in KN (default: all imported)" },
860
+ { name: "--build", desc: "Build after creation (default)" },
861
+ { name: "--no-build", desc: "Skip build" },
862
+ { name: "--pk-map <s>", desc: "Explicit primary keys <table>:<field>[,...]" },
863
+ { name: "--timeout <n>", desc: "Build timeout in seconds (default: 300)" },
864
+ { name: "--no-rollback", desc: "Keep partially-created KN on failure (debug; default: rollback)" },
865
+ { name: "-bd, --biz-domain <s>", desc: "Business domain (default: bd_public)" },
866
+ ],
867
+ inheritedFlags: "--base-url, --token, --user, --help",
868
+ examples: [
869
+ "kweaver bkn create-from-csv vcat-123 --files './data/*.csv' --name imports",
870
+ "kweaver bkn create-from-csv vcat-123 --files ./a.csv,./b.csv --name two --table-prefix raw_",
871
+ ],
872
+ learnMore: [
873
+ "<vega-catalog-id> is a vega catalog id (use `kweaver vega catalog list` to find one)",
874
+ "Legacy data-connection datasource UUIDs are no longer accepted",
875
+ ],
876
+ });
827
877
  export function parseKnCreateFromCsvArgs(args) {
828
878
  let dsId = "";
829
879
  let files = "";
@@ -1008,15 +1058,30 @@ export async function runKnActionScheduleCommand(args) {
1008
1058
  }
1009
1059
  catch (error) {
1010
1060
  if (error instanceof Error && error.message === "help") {
1011
- console.log(`kweaver bkn action-schedule <action> <kn-id> [args] [--pretty] [-bd value]
1012
-
1013
- Actions:
1014
- list <kn-id> List action schedules
1015
- get <kn-id> <schedule-id> Get schedule details
1016
- create <kn-id> '<json>' Create schedule
1017
- update <kn-id> <schedule-id> '<json>' Update schedule
1018
- set-status <kn-id> <schedule-id> <status> Enable/disable schedule (enabled|disabled)
1019
- delete <kn-id> <schedule-ids> [-y] Delete schedule(s) (comma-separated)`);
1061
+ console.log(renderHelp({
1062
+ tagline: "Manage action schedules for a KN",
1063
+ usage: "kweaver bkn action-schedule <action> <kn-id> [args] [--pretty] [-bd value]",
1064
+ sections: [{
1065
+ title: "AVAILABLE COMMANDS",
1066
+ items: [
1067
+ { name: "list", desc: "List action schedules" },
1068
+ { name: "get", desc: "Get schedule details" },
1069
+ { name: "create", desc: "Create schedule" },
1070
+ { name: "update", desc: "Update schedule" },
1071
+ { name: "set-status", desc: "Enable/disable schedule (enabled|disabled)" },
1072
+ { name: "delete", desc: "Delete schedule(s) (comma-separated)" },
1073
+ ],
1074
+ }],
1075
+ inheritedFlags: "--base-url, --token, --user, --help",
1076
+ examples: [
1077
+ "kweaver bkn action-schedule list <kn-id>",
1078
+ "kweaver bkn action-schedule get <kn-id> <schedule-id>",
1079
+ "kweaver bkn action-schedule create <kn-id> '<json>'",
1080
+ "kweaver bkn action-schedule update <kn-id> <schedule-id> '<json>'",
1081
+ "kweaver bkn action-schedule set-status <kn-id> <schedule-id> <status>",
1082
+ "kweaver bkn action-schedule delete <kn-id> <schedule-ids> [-y]",
1083
+ ],
1084
+ }));
1020
1085
  return 0;
1021
1086
  }
1022
1087
  console.error(formatHttpError(error));
@@ -1125,13 +1190,26 @@ export async function runKnJobCommand(args) {
1125
1190
  }
1126
1191
  catch (error) {
1127
1192
  if (error instanceof Error && error.message === "help") {
1128
- console.log(`kweaver bkn job <action> <kn-id> [args] [--pretty] [-bd value]
1129
-
1130
- Actions:
1131
- list <kn-id> List jobs
1132
- get <kn-id> <job-id> Get job details
1133
- tasks <kn-id> <job-id> List tasks within a job
1134
- delete <kn-id> <job-ids> [-y] Delete job(s) (comma-separated)`);
1193
+ console.log(renderHelp({
1194
+ tagline: "Manage jobs for a KN",
1195
+ usage: "kweaver bkn job <action> <kn-id> [args] [--pretty] [-bd value]",
1196
+ sections: [{
1197
+ title: "AVAILABLE COMMANDS",
1198
+ items: [
1199
+ { name: "list", desc: "List jobs" },
1200
+ { name: "get", desc: "Get job details" },
1201
+ { name: "tasks", desc: "List tasks within a job" },
1202
+ { name: "delete", desc: "Delete job(s) (comma-separated)" },
1203
+ ],
1204
+ }],
1205
+ inheritedFlags: "--base-url, --token, --user, --help",
1206
+ examples: [
1207
+ "kweaver bkn job list <kn-id>",
1208
+ "kweaver bkn job get <kn-id> <job-id>",
1209
+ "kweaver bkn job tasks <kn-id> <job-id>",
1210
+ "kweaver bkn job delete <kn-id> <job-ids> [-y]",
1211
+ ],
1212
+ }));
1135
1213
  return 0;
1136
1214
  }
1137
1215
  console.error(formatHttpError(error));
@@ -5,6 +5,7 @@ import { semanticSearch } from "../api/semantic-search.js";
5
5
  import { formatCallOutput } from "./call.js";
6
6
  import { resolveBusinessDomain } from "../config/store.js";
7
7
  import { parseOntologyQueryFlags } from "./bkn-utils.js";
8
+ import { renderHelp } from "../help/format.js";
8
9
  // ── subgraph ─────────────────────────────────────────────────────────────────
9
10
  export async function runKnSubgraphCommand(args) {
10
11
  let filteredArgs;
@@ -18,9 +19,18 @@ export async function runKnSubgraphCommand(args) {
18
19
  }
19
20
  catch (error) {
20
21
  if (error instanceof Error && error.message === "help") {
21
- console.log(`kweaver bkn subgraph <kn-id> '<json>' [--pretty] [-bd value]
22
-
23
- Query subgraph via ontology-query API. JSON body format see references/json-formats.md#subgraph.`);
22
+ console.log(renderHelp({
23
+ tagline: "Query subgraph via ontology-query API. JSON body format see references/json-formats.md#subgraph.",
24
+ usage: "kweaver bkn subgraph <kn-id> '<json>' [flags]",
25
+ flags: [
26
+ { name: "--pretty", desc: "Pretty-print JSON output" },
27
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
28
+ ],
29
+ inheritedFlags: "--base-url, --token, --user, --help",
30
+ examples: [
31
+ "kweaver bkn subgraph kn-123 '{\"source_object_type_id\":\"ot-1\"}'",
32
+ ],
33
+ }));
24
34
  return 0;
25
35
  }
26
36
  throw error;
@@ -80,9 +90,18 @@ export async function runKnActionExecutionCommand(args) {
80
90
  }
81
91
  catch (error) {
82
92
  if (error instanceof Error && error.message === "help") {
83
- console.log(`kweaver bkn action-execution get <kn-id> <execution-id> [--pretty] [-bd value]
84
-
85
- Get action execution status.`);
93
+ console.log(renderHelp({
94
+ tagline: "Get action execution status.",
95
+ usage: "kweaver bkn action-execution get <kn-id> <execution-id> [flags]",
96
+ flags: [
97
+ { name: "--pretty", desc: "Pretty-print JSON output" },
98
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
99
+ ],
100
+ inheritedFlags: "--base-url, --token, --user, --help",
101
+ examples: [
102
+ "kweaver bkn action-execution get kn-123 exec-456",
103
+ ],
104
+ }));
86
105
  return 0;
87
106
  }
88
107
  throw error;
@@ -113,12 +132,29 @@ Get action execution status.`);
113
132
  export async function runKnActionLogCommand(args) {
114
133
  const [action, ...rest] = args;
115
134
  if (!action || action === "--help" || action === "-h") {
116
- console.log(`kweaver bkn action-log list <kn-id> [options]
117
- kweaver bkn action-log get <kn-id> <log-id> [options]
118
- kweaver bkn action-log cancel <kn-id> <log-id> [options]
119
-
120
- List/get execution logs. cancel has side effects - only use when explicitly requested.
121
- Options for list: --limit, --need-total, --action-type-id, --status, --trigger-type, --search-after`);
135
+ console.log(renderHelp({
136
+ tagline: "List/get execution logs. cancel has side effects - only use when explicitly requested.",
137
+ usage: [
138
+ "kweaver bkn action-log list <kn-id> [flags]",
139
+ "kweaver bkn action-log get <kn-id> <log-id> [flags]",
140
+ "kweaver bkn action-log cancel <kn-id> <log-id> [flags]",
141
+ ],
142
+ flags: [
143
+ { name: "--limit <n>", desc: "Max log entries (list, default: 30)" },
144
+ { name: "--need-total <bool>", desc: "Include total count (list)" },
145
+ { name: "--action-type-id <s>", desc: "Filter by action type id (list)" },
146
+ { name: "--status <s>", desc: "Filter by status (list)" },
147
+ { name: "--trigger-type <s>", desc: "Filter by trigger type (list)" },
148
+ { name: "--search-after <s>", desc: "Pagination cursor (list)" },
149
+ { name: "--pretty", desc: "Pretty-print JSON output" },
150
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
151
+ ],
152
+ inheritedFlags: "--base-url, --token, --user, --help",
153
+ examples: [
154
+ "kweaver bkn action-log list kn-123 --limit 10",
155
+ "kweaver bkn action-log get kn-123 log-456",
156
+ ],
157
+ }));
122
158
  return 0;
123
159
  }
124
160
  let pretty = true;
@@ -233,16 +269,21 @@ Options for list: --limit, --need-total, --action-type-id, --status, --trigger-t
233
269
  }
234
270
  }
235
271
  // ── search ───────────────────────────────────────────────────────────────────
236
- const KN_SEARCH_HELP = `kweaver bkn search <kn-id> <query> [--max-concepts <n>] [--mode <mode>] [--pretty] [-bd value]
237
-
238
- Semantic search within a knowledge network via agent-retrieval API.
239
- Returns matched concepts (object types, relation types, action types).
240
-
241
- Options:
242
- --max-concepts <n> Max concepts to return (default: 10)
243
- --mode <mode> Search mode (default: keyword_vector_retrieval)
244
- --pretty Pretty-print JSON output
245
- -bd, --biz-domain Override x-business-domain`;
272
+ const KN_SEARCH_HELP = renderHelp({
273
+ tagline: "Semantic search within a knowledge network — matches object/relation/action types (agent-retrieval API)",
274
+ usage: "kweaver bkn search <kn-id> <query> [flags]",
275
+ flags: [
276
+ { name: "--max-concepts <n>", desc: "Max concepts to return (default: 10)" },
277
+ { name: "--mode <mode>", desc: "Search mode (default: keyword_vector_retrieval)" },
278
+ { name: "--pretty", desc: "Pretty-print JSON output" },
279
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
280
+ ],
281
+ inheritedFlags: "--base-url, --token, --user, --help",
282
+ examples: [
283
+ "kweaver bkn search kn-123 'customer churn'",
284
+ "kweaver bkn search kn-123 'revenue by region' --max-concepts 20",
285
+ ],
286
+ });
246
287
  export function parseKnSearchArgs(args) {
247
288
  let knId = "";
248
289
  let query = "";
@@ -324,18 +365,36 @@ export async function runKnRelationTypePathsCommand(args) {
324
365
  }
325
366
  catch (error) {
326
367
  if (error instanceof Error && error.message === "help") {
327
- console.log(`kweaver bkn relation-type-paths <kn-id> '<json>' [--pretty] [-bd value]
328
-
329
- Query relation type paths between object types.`);
368
+ console.log(renderHelp({
369
+ tagline: "Query relation type paths between object types.",
370
+ usage: "kweaver bkn relation-type-paths <kn-id> '<json>' [flags]",
371
+ flags: [
372
+ { name: "--pretty", desc: "Pretty-print JSON output" },
373
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
374
+ ],
375
+ inheritedFlags: "--base-url, --token, --user, --help",
376
+ examples: [
377
+ "kweaver bkn relation-type-paths kn-123 '{...}'",
378
+ ],
379
+ }));
330
380
  return 0;
331
381
  }
332
382
  throw error;
333
383
  }
334
384
  const [knId, body] = parsed.filteredArgs;
335
385
  if (!knId || !body) {
336
- console.log(`kweaver bkn relation-type-paths <kn-id> '<json>' [--pretty] [-bd value]
337
-
338
- Query relation type paths between object types.`);
386
+ console.log(renderHelp({
387
+ tagline: "Query relation type paths between object types.",
388
+ usage: "kweaver bkn relation-type-paths <kn-id> '<json>' [flags]",
389
+ flags: [
390
+ { name: "--pretty", desc: "Pretty-print JSON output" },
391
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
392
+ ],
393
+ inheritedFlags: "--base-url, --token, --user, --help",
394
+ examples: [
395
+ "kweaver bkn relation-type-paths kn-123 '{...}'",
396
+ ],
397
+ }));
339
398
  return knId && !body ? 1 : 0;
340
399
  }
341
400
  const token = await ensureValidToken();
@@ -357,9 +416,18 @@ export async function runKnResourcesCommand(args) {
357
416
  }
358
417
  catch (error) {
359
418
  if (error instanceof Error && error.message === "help") {
360
- console.log(`kweaver bkn resources [--pretty] [-bd value]
361
-
362
- List available resources.`);
419
+ console.log(renderHelp({
420
+ tagline: "List available resources.",
421
+ usage: "kweaver bkn resources [flags]",
422
+ flags: [
423
+ { name: "--pretty", desc: "Pretty-print JSON output" },
424
+ { name: "-bd, --biz-domain <s>", desc: "Override x-business-domain" },
425
+ ],
426
+ inheritedFlags: "--base-url, --token, --user, --help",
427
+ examples: [
428
+ "kweaver bkn resources --pretty",
429
+ ],
430
+ }));
363
431
  return 0;
364
432
  }
365
433
  throw error;
@@ -22,13 +22,13 @@ export type ObjectTypeCreateParsed = {
22
22
  } | {
23
23
  mode: "needsDataview";
24
24
  knId: string;
25
- dataviewId: string;
25
+ resourceId: string;
26
26
  entry: Record<string, unknown>;
27
27
  businessDomain: string;
28
28
  branch: string;
29
29
  pretty: boolean;
30
30
  };
31
- /** Parse object-type create args: --name --dataview-id --primary-key --display-key [--property '<json>' ...] */
31
+ /** Parse object-type create args: --name --resource-id --primary-key --display-key [--property '<json>' ...] */
32
32
  export declare function parseObjectTypeCreateArgs(args: string[]): ObjectTypeCreateParsed;
33
33
  /**
34
34
  * Load dataview fields and build data_properties (with mapped_field). Used when no --property flags.
@@ -36,7 +36,7 @@ export declare function parseObjectTypeCreateArgs(args: string[]): ObjectTypeCre
36
36
  export declare function finalizeObjectTypeCreateFromDataview(options: {
37
37
  baseUrl: string;
38
38
  accessToken: string;
39
- dataviewId: string;
39
+ resourceId: string;
40
40
  entry: Record<string, unknown>;
41
41
  businessDomain: string;
42
42
  }): Promise<string>;