@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
@@ -1,8 +1,9 @@
1
1
  import { ensureValidToken, formatHttpError } from "../auth/oauth.js";
2
+ import { renderHelp } from "../help/format.js";
2
3
  import { listConceptGroups, getConceptGroup, createConceptGroup, updateConceptGroup, deleteConceptGroup, addConceptGroupMembers, removeConceptGroupMembers, } from "../api/bkn-backend.js";
3
4
  import { listObjectTypes, getObjectType, createObjectTypes, updateObjectType, deleteObjectTypes, listRelationTypes, getRelationType, createRelationTypes, updateRelationType, deleteRelationTypes, listActionTypes, getActionType, createActionTypes, updateActionType, deleteActionTypes, } from "../api/knowledge-networks.js";
4
5
  import { objectTypeQuery, objectTypeProperties, actionTypeQuery, actionTypeExecute, actionExecutionGet, } from "../api/ontology-query.js";
5
- import { getDataView } from "../api/dataviews.js";
6
+ import { getResource } from "../api/resources.js";
6
7
  import { formatCallOutput } from "./call.js";
7
8
  import { resolveBusinessDomain } from "../config/store.js";
8
9
  import { parseOntologyQueryFlags, parseJsonObject, parseSearchAfterArray, confirmYes, pollWithBackoff, } from "./bkn-utils.js";
@@ -227,10 +228,10 @@ function fallbackDataPropertiesFromKeys(primaryKeys, displayKey) {
227
228
  };
228
229
  });
229
230
  }
230
- /** Parse object-type create args: --name --dataview-id --primary-key --display-key [--property '<json>' ...] */
231
+ /** Parse object-type create args: --name --resource-id --primary-key --display-key [--property '<json>' ...] */
231
232
  export function parseObjectTypeCreateArgs(args) {
232
233
  let name = "";
233
- let dataviewId = "";
234
+ let resourceId = "";
234
235
  let primaryKey = "";
235
236
  let displayKey = "";
236
237
  let businessDomain = "";
@@ -246,8 +247,8 @@ export function parseObjectTypeCreateArgs(args) {
246
247
  name = args[++i];
247
248
  continue;
248
249
  }
249
- if (arg === "--dataview-id" && args[i + 1]) {
250
- dataviewId = args[++i];
250
+ if (arg === "--resource-id" && args[i + 1]) {
251
+ resourceId = args[++i];
251
252
  continue;
252
253
  }
253
254
  if (arg === "--primary-key" && args[i + 1]) {
@@ -278,13 +279,13 @@ export function parseObjectTypeCreateArgs(args) {
278
279
  positional.push(arg);
279
280
  }
280
281
  const knId = positional[0];
281
- if (!knId || !name || !dataviewId || !primaryKey || !displayKey) {
282
- throw new Error("Usage: kweaver bkn object-type create <kn-id> --name X --dataview-id Y --primary-key Z --display-key W");
282
+ if (!knId || !name || !resourceId || !primaryKey || !displayKey) {
283
+ throw new Error("Usage: kweaver bkn object-type create <kn-id> --name X --resource-id Y --primary-key Z --display-key W");
283
284
  }
284
285
  const entry = {
285
286
  branch,
286
287
  name,
287
- data_source: { type: "data_view", id: dataviewId },
288
+ data_source: { type: "resource", id: resourceId },
288
289
  primary_keys: [primaryKey],
289
290
  display_key: displayKey,
290
291
  };
@@ -301,7 +302,7 @@ export function parseObjectTypeCreateArgs(args) {
301
302
  return {
302
303
  mode: "needsDataview",
303
304
  knId,
304
- dataviewId,
305
+ resourceId,
305
306
  entry,
306
307
  businessDomain,
307
308
  branch,
@@ -312,14 +313,14 @@ export function parseObjectTypeCreateArgs(args) {
312
313
  * Load dataview fields and build data_properties (with mapped_field). Used when no --property flags.
313
314
  */
314
315
  export async function finalizeObjectTypeCreateFromDataview(options) {
315
- const { baseUrl, accessToken, dataviewId, entry, businessDomain } = options;
316
- const dv = await getDataView({
316
+ const { baseUrl, accessToken, resourceId, entry, businessDomain } = options;
317
+ const dv = await getResource({
317
318
  baseUrl,
318
319
  accessToken,
319
- id: dataviewId,
320
+ id: resourceId,
320
321
  businessDomain,
321
322
  });
322
- const fields = dv.fields ?? [];
323
+ const fields = dv.schema_definition ?? [];
323
324
  const primaryKeys = Array.isArray(entry.primary_keys)
324
325
  ? entry.primary_keys
325
326
  : [];
@@ -977,22 +978,33 @@ export function parseRelationTypeDeleteArgs(args) {
977
978
  export async function runKnObjectTypeCommand(args) {
978
979
  const [action, ...rest] = args;
979
980
  if (!action || action === "--help" || action === "-h") {
980
- console.log(`kweaver bkn object-type list <kn-id> [--pretty] [-bd value]
981
- kweaver bkn object-type get <kn-id> <ot-id> [--pretty] [-bd value]
982
- kweaver bkn object-type create <kn-id> --name X --dataview-id Y --primary-key Z --display-key W [--property '<json>' ...]
983
- kweaver bkn object-type update <kn-id> <ot-id> [--name X] [--display-key Y] [--add-property|--update-property '<json>' ...] [--remove-property N ...] [--tags '["a","b"]'] [--comment S] [--icon I] [--color C] [--branch main]
984
- kweaver bkn object-type update <kn-id> <ot-id> '<full-json-body>'
985
- kweaver bkn object-type delete <kn-id> <ot-ids> [-y]
986
- kweaver bkn object-type query <kn-id> <ot-id> ['<json>'] [--limit <n>] [--search-after '<json-array>'] [--pretty] [-bd value]
987
- kweaver bkn object-type properties <kn-id> <ot-id> '<json>' [--pretty] [-bd value]
988
-
989
- list: List object types (schema) from ontology-manager.
990
- get: Get single object type details.
991
- create/update/delete: Schema CRUD (create requires dataview-id). update: merge flags (--add-property / --update-property / --remove-property, etc.) GET-merge-PUT; or full JSON as third arg.
992
- query: Query via ontology-query API. Default limit is 50 if not specified. Use --search-after for pagination.
993
- properties: Query instance properties by primary key.
994
-
995
- properties JSON format: {"_instance_identities":[{"<primary-key>":"<value>"}],"properties":["prop1","prop2"]}`);
981
+ console.log(renderHelp({
982
+ tagline: "Manage object types (schema) in a knowledge network.",
983
+ usage: [
984
+ "kweaver bkn object-type list <kn-id> [--pretty] [-bd value]",
985
+ "kweaver bkn object-type get <kn-id> <ot-id> [--pretty] [-bd value]",
986
+ "kweaver bkn object-type create <kn-id> --name X --resource-id Y --primary-key Z --display-key W [--property '<json>' ...]",
987
+ "kweaver bkn object-type update <kn-id> <ot-id> [--name X] [--display-key Y] [--add-property|--update-property '<json>' ...] [--remove-property N ...] [--tags '[\"a\",\"b\"]'] [--comment S] [--icon I] [--color C] [--branch main]",
988
+ "kweaver bkn object-type update <kn-id> <ot-id> '<full-json-body>'",
989
+ "kweaver bkn object-type delete <kn-id> <ot-ids> [-y]",
990
+ "kweaver bkn object-type query <kn-id> <ot-id> ['<json>'] [--limit <n>] [--search-after '<json-array>'] [--pretty] [-bd value]",
991
+ "kweaver bkn object-type properties <kn-id> <ot-id> '<json>' [--pretty] [-bd value]",
992
+ ],
993
+ sections: [{
994
+ title: "AVAILABLE COMMANDS",
995
+ items: [
996
+ { name: "list", desc: "List object types (schema) from ontology-manager." },
997
+ { name: "get", desc: "Get single object type details." },
998
+ { name: "create/update/delete", desc: "Schema CRUD (create requires resource-id). update: merge flags (--add-property / --update-property / --remove-property, etc.) GET-merge-PUT; or full JSON as third arg." },
999
+ { name: "query", desc: "Query via ontology-query API. Default limit is 50 if not specified. Use --search-after for pagination." },
1000
+ { name: "properties", desc: "Query instance properties by primary key." },
1001
+ ],
1002
+ }],
1003
+ inheritedFlags: "--base-url, --token, --user, --help",
1004
+ learnMore: [
1005
+ "properties JSON format: {\"_instance_identities\":[{\"<primary-key>\":\"<value>\"}],\"properties\":[\"prop1\",\"prop2\"]}",
1006
+ ],
1007
+ }));
996
1008
  return 0;
997
1009
  }
998
1010
  try {
@@ -1023,7 +1035,7 @@ properties JSON format: {"_instance_identities":[{"<primary-key>":"<value>"}],"p
1023
1035
  bodyStr = await finalizeObjectTypeCreateFromDataview({
1024
1036
  baseUrl: token.baseUrl,
1025
1037
  accessToken: token.accessToken,
1026
- dataviewId: opts.dataviewId,
1038
+ resourceId: opts.resourceId,
1027
1039
  entry: opts.entry,
1028
1040
  businessDomain: opts.businessDomain,
1029
1041
  });
@@ -1162,10 +1174,16 @@ JSON: {"_instance_identities":[{"<primary-key>":"<value>"}],"properties":["prop1
1162
1174
  }
1163
1175
  catch (error) {
1164
1176
  if (error instanceof Error && error.message === "help") {
1165
- console.log(`kweaver bkn object-type create <kn-id> --name X --dataview-id Y --primary-key Z --display-key W [--property '<json>' ...]
1166
- kweaver bkn object-type update <kn-id> <ot-id> [--name X] [--display-key Y] [--add-property|--update-property '<json>' ...] [--remove-property N ...] [--tags '["a"]'] [--comment S] [--icon I] [--color C] [--branch main]
1167
- kweaver bkn object-type update <kn-id> <ot-id> '<full-json-body>'
1168
- kweaver bkn object-type delete <kn-id> <ot-ids> [-y]`);
1177
+ console.log(renderHelp({
1178
+ tagline: "Object-type create / update / delete usage.",
1179
+ usage: [
1180
+ "kweaver bkn object-type create <kn-id> --name X --resource-id Y --primary-key Z --display-key W [--property '<json>' ...]",
1181
+ "kweaver bkn object-type update <kn-id> <ot-id> [--name X] [--display-key Y] [--add-property|--update-property '<json>' ...] [--remove-property N ...] [--tags '[\"a\"]'] [--comment S] [--icon I] [--color C] [--branch main]",
1182
+ "kweaver bkn object-type update <kn-id> <ot-id> '<full-json-body>'",
1183
+ "kweaver bkn object-type delete <kn-id> <ot-ids> [-y]",
1184
+ ],
1185
+ inheritedFlags: "--base-url, --token, --user, --help",
1186
+ }));
1169
1187
  return 0;
1170
1188
  }
1171
1189
  console.error(formatHttpError(error));
@@ -1175,15 +1193,25 @@ kweaver bkn object-type delete <kn-id> <ot-ids> [-y]`);
1175
1193
  export async function runKnRelationTypeCommand(args) {
1176
1194
  const [action, ...rest] = args;
1177
1195
  if (!action || action === "--help" || action === "-h") {
1178
- console.log(`kweaver bkn relation-type list <kn-id> [--pretty] [-bd value]
1179
- kweaver bkn relation-type get <kn-id> <rt-id> [--pretty] [-bd value]
1180
- kweaver bkn relation-type create <kn-id> --name X --source <ot-id> --target <ot-id> [--mapping src:tgt ...]
1181
- kweaver bkn relation-type update <kn-id> <rt-id> --source <ot-id> --target <ot-id> [--name X] [--type direct|data_view] [--mapping src:tgt ...]
1182
- kweaver bkn relation-type delete <kn-id> <rt-ids> [-y]
1183
-
1184
- list: List relation types (schema) from ontology-manager.
1185
- get: Get single relation type details.
1186
- create/update/delete: Schema CRUD.`);
1196
+ console.log(renderHelp({
1197
+ tagline: "Manage relation types (schema) in a knowledge network.",
1198
+ usage: [
1199
+ "kweaver bkn relation-type list <kn-id> [--pretty] [-bd value]",
1200
+ "kweaver bkn relation-type get <kn-id> <rt-id> [--pretty] [-bd value]",
1201
+ "kweaver bkn relation-type create <kn-id> --name X --source <ot-id> --target <ot-id> [--mapping src:tgt ...]",
1202
+ "kweaver bkn relation-type update <kn-id> <rt-id> --source <ot-id> --target <ot-id> [--name X] [--type direct|data_view] [--mapping src:tgt ...]",
1203
+ "kweaver bkn relation-type delete <kn-id> <rt-ids> [-y]",
1204
+ ],
1205
+ sections: [{
1206
+ title: "AVAILABLE COMMANDS",
1207
+ items: [
1208
+ { name: "list", desc: "List relation types (schema) from ontology-manager." },
1209
+ { name: "get", desc: "Get single relation type details." },
1210
+ { name: "create/update/delete", desc: "Schema CRUD." },
1211
+ ],
1212
+ }],
1213
+ inheritedFlags: "--base-url, --token, --user, --help",
1214
+ }));
1187
1215
  return 0;
1188
1216
  }
1189
1217
  try {
@@ -1275,9 +1303,15 @@ create/update/delete: Schema CRUD.`);
1275
1303
  }
1276
1304
  catch (error) {
1277
1305
  if (error instanceof Error && error.message === "help") {
1278
- console.log(`kweaver bkn relation-type create <kn-id> --name X --source <ot-id> --target <ot-id> [--mapping src:tgt ...]
1279
- kweaver bkn relation-type update <kn-id> <rt-id> --source <ot-id> --target <ot-id> [--name X] [--type direct|data_view] [--mapping src:tgt ...]
1280
- kweaver bkn relation-type delete <kn-id> <rt-ids> [-y]`);
1306
+ console.log(renderHelp({
1307
+ tagline: "Relation-type create / update / delete usage.",
1308
+ usage: [
1309
+ "kweaver bkn relation-type create <kn-id> --name X --source <ot-id> --target <ot-id> [--mapping src:tgt ...]",
1310
+ "kweaver bkn relation-type update <kn-id> <rt-id> --source <ot-id> --target <ot-id> [--name X] [--type direct|data_view] [--mapping src:tgt ...]",
1311
+ "kweaver bkn relation-type delete <kn-id> <rt-ids> [-y]",
1312
+ ],
1313
+ inheritedFlags: "--base-url, --token, --user, --help",
1314
+ }));
1281
1315
  return 0;
1282
1316
  }
1283
1317
  console.error(formatHttpError(error));
@@ -1287,36 +1321,36 @@ kweaver bkn relation-type delete <kn-id> <rt-ids> [-y]`);
1287
1321
  export async function runKnActionTypeCommand(args) {
1288
1322
  const [action, ...rest] = args;
1289
1323
  if (!action || action === "--help" || action === "-h") {
1290
- console.log(`kweaver bkn action-type list <kn-id> [--pretty] [-bd value]
1291
- kweaver bkn action-type get <kn-id> <at-id> [--pretty] [-bd value]
1292
- kweaver bkn action-type create <kn-id> '<json>' [--pretty] [-bd value]
1293
- kweaver bkn action-type update <kn-id> <at-id> '<json>' [--pretty] [-bd value]
1294
- kweaver bkn action-type delete <kn-id> <at-ids> [-y] [--pretty] [-bd value]
1295
- kweaver bkn action-type query <kn-id> <at-id> '<json>' [--pretty] [-bd value]
1296
- kweaver bkn action-type inputs <kn-id> <at-id> [--json|--template] [-bd value]
1297
- kweaver bkn action-type execute <kn-id> <at-id> [<json>|--dynamic-params '<json>' --instance '<json>' --trigger-type <v>] [--pretty] [-bd value] [--wait|--no-wait] [--timeout n]
1298
-
1299
- list: List action types (schema) from ontology-manager.
1300
- get: Get a single action type by ID.
1301
- create: Create action type(s) (POST JSON body).
1302
- update: Update an action type (PUT JSON body).
1303
- delete: Delete action type(s) by ID(s).
1304
- query: Query actions backing this action type.
1305
- inputs: List parameters with value_from=input that the caller MUST supply.
1306
- Default prints a table + a starter dynamic_params template.
1307
- --json dump filtered parameters as raw JSON
1308
- --template print only the dynamic_params template object
1309
- execute: Run an action (has side effects - only use when explicitly requested).
1310
- Body forms (mutually exclusive):
1311
- 1. Positional envelope JSON: '{"trigger_type":"manual","_instance_identities":[],"dynamic_params":{...}}'
1312
- 2. Flag form (CLI assembles the envelope):
1313
- --dynamic-params '<json object>' parameters with value_from=input
1314
- --instance '<json object>' repeatable; one per identity
1315
- --trigger-type <value> defaults to "manual"
1316
- --wait (default) Poll until execution completes
1317
- --no-wait Return immediately after starting execution
1318
- --timeout <seconds> Max wait time when --wait (default: 300)
1319
- See skills/kweaver-core/references/bkn.md for the full payload contract.`);
1324
+ console.log(renderHelp({
1325
+ tagline: "Manage action types (schema) in a knowledge network.",
1326
+ usage: [
1327
+ "kweaver bkn action-type list <kn-id> [--pretty] [-bd value]",
1328
+ "kweaver bkn action-type get <kn-id> <at-id> [--pretty] [-bd value]",
1329
+ "kweaver bkn action-type create <kn-id> '<json>' [--pretty] [-bd value]",
1330
+ "kweaver bkn action-type update <kn-id> <at-id> '<json>' [--pretty] [-bd value]",
1331
+ "kweaver bkn action-type delete <kn-id> <at-ids> [-y] [--pretty] [-bd value]",
1332
+ "kweaver bkn action-type query <kn-id> <at-id> '<json>' [--pretty] [-bd value]",
1333
+ "kweaver bkn action-type inputs <kn-id> <at-id> [--json|--template] [-bd value]",
1334
+ "kweaver bkn action-type execute <kn-id> <at-id> [<json>|--dynamic-params '<json>' --instance '<json>' --trigger-type <v>] [--pretty] [-bd value] [--wait|--no-wait] [--timeout n]",
1335
+ ],
1336
+ sections: [{
1337
+ title: "AVAILABLE COMMANDS",
1338
+ items: [
1339
+ { name: "list", desc: "List action types (schema) from ontology-manager." },
1340
+ { name: "get", desc: "Get a single action type by ID." },
1341
+ { name: "create", desc: "Create action type(s) (POST JSON body)." },
1342
+ { name: "update", desc: "Update an action type (PUT JSON body)." },
1343
+ { name: "delete", desc: "Delete action type(s) by ID(s)." },
1344
+ { name: "query", desc: "Query actions backing this action type." },
1345
+ { name: "inputs", desc: "List parameters with value_from=input that the caller MUST supply.\nDefault prints a table + a starter dynamic_params template.\n--json dump filtered parameters as raw JSON\n--template print only the dynamic_params template object" },
1346
+ { name: "execute", desc: "Run an action (has side effects - only use when explicitly requested).\nBody forms (mutually exclusive):\n 1. Positional envelope JSON: '{\"trigger_type\":\"manual\",\"_instance_identities\":[],\"dynamic_params\":{...}}'\n 2. Flag form (CLI assembles the envelope):\n --dynamic-params '<json object>' parameters with value_from=input\n --instance '<json object>' repeatable; one per identity\n --trigger-type <value> defaults to \"manual\"\n--wait (default) Poll until execution completes\n--no-wait Return immediately after starting execution\n--timeout <seconds> Max wait time when --wait (default: 300)" },
1347
+ ],
1348
+ }],
1349
+ inheritedFlags: "--base-url, --token, --user, --help",
1350
+ learnMore: [
1351
+ "See skills/kweaver-core/references/bkn.md for the full payload contract.",
1352
+ ],
1353
+ }));
1320
1354
  return 0;
1321
1355
  }
1322
1356
  if (action === "list") {
@@ -1617,16 +1651,23 @@ export async function runKnConceptGroupCommand(args) {
1617
1651
  }
1618
1652
  catch (error) {
1619
1653
  if (error instanceof Error && error.message === "help") {
1620
- console.log(`kweaver bkn concept-group <action> <kn-id> [args] [--pretty] [-bd value]
1621
-
1622
- Actions:
1623
- list <kn-id> List concept groups
1624
- get <kn-id> <cg-id> Get concept group details
1625
- create <kn-id> '<json>' Create concept group
1626
- update <kn-id> <cg-id> '<json>' Update concept group
1627
- delete <kn-id> <cg-id> [-y] Delete concept group
1628
- add-members <kn-id> <cg-id> <ot-ids> Add object type members (comma-separated)
1629
- remove-members <kn-id> <cg-id> <ot-ids> [-y] Remove object type members`);
1654
+ console.log(renderHelp({
1655
+ tagline: "Manage concept groups in a knowledge network.",
1656
+ usage: "kweaver bkn concept-group <action> <kn-id> [args] [--pretty] [-bd value]",
1657
+ sections: [{
1658
+ title: "AVAILABLE COMMANDS",
1659
+ items: [
1660
+ { name: "list <kn-id>", desc: "List concept groups" },
1661
+ { name: "get <kn-id> <cg-id>", desc: "Get concept group details" },
1662
+ { name: "create <kn-id> '<json>'", desc: "Create concept group" },
1663
+ { name: "update <kn-id> <cg-id> '<json>'", desc: "Update concept group" },
1664
+ { name: "delete <kn-id> <cg-id> [-y]", desc: "Delete concept group" },
1665
+ { name: "add-members <kn-id> <cg-id> <ot-ids>", desc: "Add object type members (comma-separated)" },
1666
+ { name: "remove-members <kn-id> <cg-id> <ot-ids> [-y]", desc: "Remove object type members" },
1667
+ ],
1668
+ }],
1669
+ inheritedFlags: "--base-url, --token, --user, --help",
1670
+ }));
1630
1671
  return 0;
1631
1672
  }
1632
1673
  console.error(formatHttpError(error));