@kweaver-ai/kweaver-sdk 0.8.1 → 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 (214) hide show
  1. package/README.md +40 -52
  2. package/README.zh.md +41 -46
  3. package/dist/agent-providers/index.d.ts +7 -0
  4. package/dist/agent-providers/index.js +5 -0
  5. package/dist/agent-providers/prompt-template.d.ts +62 -0
  6. package/dist/agent-providers/prompt-template.js +105 -0
  7. package/dist/agent-providers/prompts/rubric-judge-v1.prompt.md +51 -0
  8. package/dist/agent-providers/prompts/within-trace-synthesizer-v1.prompt.md +60 -0
  9. package/dist/agent-providers/providers/claude-code-subprocess.d.ts +74 -0
  10. package/dist/agent-providers/providers/claude-code-subprocess.js +259 -0
  11. package/dist/agent-providers/providers/stub.d.ts +47 -0
  12. package/dist/agent-providers/providers/stub.js +77 -0
  13. package/dist/agent-providers/registry.d.ts +45 -0
  14. package/dist/agent-providers/registry.js +77 -0
  15. package/dist/agent-providers/types.d.ts +91 -0
  16. package/dist/agent-providers/types.js +25 -0
  17. package/dist/api/agent-chat.js +8 -6
  18. package/dist/api/context-loader.d.ts +1 -0
  19. package/dist/api/resources.d.ts +94 -0
  20. package/dist/api/resources.js +166 -0
  21. package/dist/api/semantic-search.d.ts +5 -0
  22. package/dist/api/semantic-search.js +5 -0
  23. package/dist/api/skills.d.ts +75 -2
  24. package/dist/api/skills.js +108 -12
  25. package/dist/api/trace.d.ts +5 -0
  26. package/dist/api/trace.js +4 -0
  27. package/dist/cli.js +109 -15
  28. package/dist/client.d.ts +3 -3
  29. package/dist/client.js +5 -5
  30. package/dist/commands/agent/mode.d.ts +6 -0
  31. package/dist/commands/agent/mode.js +75 -0
  32. package/dist/commands/agent-members.js +27 -11
  33. package/dist/commands/agent.js +469 -286
  34. package/dist/commands/auth.js +184 -71
  35. package/dist/commands/bkn-metric.js +37 -16
  36. package/dist/commands/bkn-ops.js +164 -86
  37. package/dist/commands/bkn-query.js +99 -31
  38. package/dist/commands/bkn-schema.d.ts +3 -3
  39. package/dist/commands/bkn-schema.js +127 -86
  40. package/dist/commands/bkn.js +153 -114
  41. package/dist/commands/call.js +23 -13
  42. package/dist/commands/config.js +22 -12
  43. package/dist/commands/context-loader.js +625 -49
  44. package/dist/commands/dataflow.js +14 -6
  45. package/dist/commands/ds.js +52 -30
  46. package/dist/commands/explore.js +18 -15
  47. package/dist/commands/model.js +53 -42
  48. package/dist/commands/resource.d.ts +1 -0
  49. package/dist/commands/{dataview.js → resource.js} +62 -84
  50. package/dist/commands/skill.d.ts +21 -1
  51. package/dist/commands/skill.js +567 -43
  52. package/dist/commands/token.js +11 -0
  53. package/dist/commands/tool.js +46 -29
  54. package/dist/commands/toolbox.js +31 -15
  55. package/dist/commands/trace.d.ts +26 -1
  56. package/dist/commands/trace.js +515 -15
  57. package/dist/commands/vega.js +466 -250
  58. package/dist/help/format.d.ts +65 -0
  59. package/dist/help/format.js +141 -0
  60. package/dist/index.d.ts +5 -5
  61. package/dist/index.js +3 -3
  62. package/dist/resources/bkn.d.ts +5 -0
  63. package/dist/resources/bkn.js +5 -0
  64. package/dist/resources/{dataviews.d.ts → resources.d.ts} +10 -11
  65. package/dist/resources/{dataviews.js → resources.js} +12 -13
  66. package/dist/resources/skills.d.ts +17 -1
  67. package/dist/resources/skills.js +32 -1
  68. package/dist/trace-ai/diagnose/agent-binding.d.ts +67 -0
  69. package/dist/trace-ai/diagnose/agent-binding.js +257 -0
  70. package/dist/trace-ai/diagnose/builtin-rules/tool-retry-intent-mismatch.yaml +68 -0
  71. package/dist/trace-ai/diagnose/index.d.ts +32 -0
  72. package/dist/trace-ai/diagnose/index.js +246 -0
  73. package/dist/trace-ai/diagnose/output-schema-converter.d.ts +24 -0
  74. package/dist/trace-ai/diagnose/output-schema-converter.js +81 -0
  75. package/dist/trace-ai/diagnose/query-extractor.d.ts +14 -0
  76. package/dist/trace-ai/diagnose/query-extractor.js +45 -0
  77. package/dist/trace-ai/diagnose/report-assembler.d.ts +31 -0
  78. package/dist/{trace-core → trace-ai}/diagnose/report-assembler.js +19 -9
  79. package/dist/trace-ai/diagnose/report-markdown.d.ts +18 -0
  80. package/dist/trace-ai/diagnose/report-markdown.js +192 -0
  81. package/dist/{trace-core → trace-ai}/diagnose/rule-loader.js +42 -8
  82. package/dist/{trace-core → trace-ai}/diagnose/schemas.d.ts +77 -2
  83. package/dist/trace-ai/diagnose/schemas.js +154 -0
  84. package/dist/trace-ai/diagnose/signal-probe.d.ts +17 -0
  85. package/dist/trace-ai/diagnose/signal-probe.js +39 -0
  86. package/dist/trace-ai/diagnose/synthesizer-agent.d.ts +40 -0
  87. package/dist/trace-ai/diagnose/synthesizer-agent.js +158 -0
  88. package/dist/{trace-core → trace-ai}/diagnose/trace-shaper.js +1 -0
  89. package/dist/{trace-core → trace-ai}/diagnose/types.d.ts +55 -6
  90. package/dist/trace-ai/eval-set/assertion-evaluator.d.ts +29 -0
  91. package/dist/trace-ai/eval-set/assertion-evaluator.js +100 -0
  92. package/dist/trace-ai/eval-set/builder.d.ts +36 -0
  93. package/dist/trace-ai/eval-set/builder.js +126 -0
  94. package/dist/trace-ai/eval-set/index.d.ts +15 -0
  95. package/dist/trace-ai/eval-set/index.js +10 -0
  96. package/dist/trace-ai/eval-set/output-writer.d.ts +27 -0
  97. package/dist/trace-ai/eval-set/output-writer.js +126 -0
  98. package/dist/trace-ai/eval-set/query-picker.d.ts +37 -0
  99. package/dist/trace-ai/eval-set/query-picker.js +147 -0
  100. package/dist/trace-ai/eval-set/redactor.d.ts +42 -0
  101. package/dist/trace-ai/eval-set/redactor.js +133 -0
  102. package/dist/trace-ai/eval-set/rubric-templates/answer-match-reference.prompt.md +19 -0
  103. package/dist/trace-ai/eval-set/schemas.d.ts +136 -0
  104. package/dist/trace-ai/eval-set/schemas.js +130 -0
  105. package/dist/trace-ai/eval-set/semantic-match-provider.d.ts +33 -0
  106. package/dist/trace-ai/eval-set/semantic-match-provider.js +51 -0
  107. package/dist/trace-ai/eval-set/test-runner.d.ts +34 -0
  108. package/dist/trace-ai/eval-set/test-runner.js +153 -0
  109. package/dist/trace-ai/eval-set/types.d.ts +46 -0
  110. package/dist/trace-ai/eval-set/types.js +8 -0
  111. package/dist/trace-ai/exp/bundle-writer.d.ts +10 -0
  112. package/dist/trace-ai/exp/bundle-writer.js +54 -0
  113. package/dist/trace-ai/exp/claude-binary.d.ts +5 -0
  114. package/dist/trace-ai/exp/claude-binary.js +30 -0
  115. package/dist/trace-ai/exp/coordinator.d.ts +45 -0
  116. package/dist/trace-ai/exp/coordinator.js +203 -0
  117. package/dist/trace-ai/exp/eval-runner.d.ts +14 -0
  118. package/dist/trace-ai/exp/eval-runner.js +47 -0
  119. package/dist/trace-ai/exp/exp-store/abort-signal.d.ts +3 -0
  120. package/dist/trace-ai/exp/exp-store/abort-signal.js +27 -0
  121. package/dist/trace-ai/exp/exp-store/candidate-lineage-yaml.d.ts +4 -0
  122. package/dist/trace-ai/exp/exp-store/candidate-lineage-yaml.js +37 -0
  123. package/dist/trace-ai/exp/exp-store/events-jsonl.d.ts +17 -0
  124. package/dist/trace-ai/exp/exp-store/events-jsonl.js +60 -0
  125. package/dist/trace-ai/exp/exp-store/exp-registry.d.ts +6 -0
  126. package/dist/trace-ai/exp/exp-store/exp-registry.js +41 -0
  127. package/dist/trace-ai/exp/exp-store/index.d.ts +46 -0
  128. package/dist/trace-ai/exp/exp-store/index.js +59 -0
  129. package/dist/trace-ai/exp/exp-store/lock.d.ts +3 -0
  130. package/dist/trace-ai/exp/exp-store/lock.js +73 -0
  131. package/dist/trace-ai/exp/exp-store/mission-md.d.ts +3 -0
  132. package/dist/trace-ai/exp/exp-store/mission-md.js +37 -0
  133. package/dist/trace-ai/exp/exp-store/readme-template.d.ts +5 -0
  134. package/dist/trace-ai/exp/exp-store/readme-template.js +25 -0
  135. package/dist/trace-ai/exp/exp-store/round-yaml.d.ts +3 -0
  136. package/dist/trace-ai/exp/exp-store/round-yaml.js +33 -0
  137. package/dist/trace-ai/exp/index.d.ts +8 -0
  138. package/dist/trace-ai/exp/index.js +238 -0
  139. package/dist/trace-ai/exp/info.d.ts +35 -0
  140. package/dist/trace-ai/exp/info.js +120 -0
  141. package/dist/trace-ai/exp/patch/agent-config.d.ts +1 -0
  142. package/dist/trace-ai/exp/patch/agent-config.js +26 -0
  143. package/dist/trace-ai/exp/patch/index.d.ts +2 -0
  144. package/dist/trace-ai/exp/patch/index.js +13 -0
  145. package/dist/trace-ai/exp/patch/skill.d.ts +1 -0
  146. package/dist/trace-ai/exp/patch/skill.js +24 -0
  147. package/dist/trace-ai/exp/providers/synthesizer-client.d.ts +14 -0
  148. package/dist/trace-ai/exp/providers/synthesizer-client.js +39 -0
  149. package/dist/trace-ai/exp/providers/triage-client.d.ts +19 -0
  150. package/dist/trace-ai/exp/providers/triage-client.js +51 -0
  151. package/dist/trace-ai/exp/schemas.d.ts +147 -0
  152. package/dist/trace-ai/exp/schemas.js +50 -0
  153. package/dist/trace-ai/exp/scoring.d.ts +2 -0
  154. package/dist/trace-ai/exp/scoring.js +46 -0
  155. package/dist/trace-ai/scan/aggregator.d.ts +20 -0
  156. package/dist/trace-ai/scan/aggregator.js +26 -0
  157. package/dist/trace-ai/scan/artifacts/paths.d.ts +12 -0
  158. package/dist/trace-ai/scan/artifacts/paths.js +18 -0
  159. package/dist/trace-ai/scan/artifacts/writer.d.ts +67 -0
  160. package/dist/trace-ai/scan/artifacts/writer.js +96 -0
  161. package/dist/trace-ai/scan/batched-rubric.d.ts +55 -0
  162. package/dist/trace-ai/scan/batched-rubric.js +159 -0
  163. package/dist/trace-ai/scan/cross-trace-synthesizer.d.ts +24 -0
  164. package/dist/trace-ai/scan/cross-trace-synthesizer.js +93 -0
  165. package/dist/trace-ai/scan/index.d.ts +31 -0
  166. package/dist/trace-ai/scan/index.js +390 -0
  167. package/dist/trace-ai/scan/prompts/builtin/cross-trace-synthesizer-v1.prompt.md +44 -0
  168. package/dist/trace-ai/scan/prompts/builtin/rubric-judge-batch-v1.prompt.md +44 -0
  169. package/dist/trace-ai/scan/runner.d.ts +25 -0
  170. package/dist/trace-ai/scan/runner.js +42 -0
  171. package/dist/trace-ai/scan/sampler.d.ts +18 -0
  172. package/dist/trace-ai/scan/sampler.js +81 -0
  173. package/dist/trace-ai/scan/scan-summary-markdown.d.ts +2 -0
  174. package/dist/trace-ai/scan/scan-summary-markdown.js +71 -0
  175. package/dist/trace-ai/scan/scan-summary-schema.d.ts +73 -0
  176. package/dist/trace-ai/scan/scan-summary-schema.js +61 -0
  177. package/dist/trace-ai/scan/single-agent-validator.d.ts +23 -0
  178. package/dist/trace-ai/scan/single-agent-validator.js +42 -0
  179. package/dist/trace-ai/scan/traces-list-parser.d.ts +15 -0
  180. package/dist/trace-ai/scan/traces-list-parser.js +46 -0
  181. package/package.json +2 -2
  182. package/dist/api/dataviews.d.ts +0 -117
  183. package/dist/api/dataviews.js +0 -265
  184. package/dist/commands/dataview.d.ts +0 -8
  185. package/dist/trace-core/diagnose/index.d.ts +0 -9
  186. package/dist/trace-core/diagnose/index.js +0 -104
  187. package/dist/trace-core/diagnose/report-assembler.d.ts +0 -12
  188. package/dist/trace-core/diagnose/schemas.js +0 -94
  189. package/dist/trace-core/diagnose/signal-probe.d.ts +0 -5
  190. package/dist/trace-core/diagnose/signal-probe.js +0 -21
  191. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.d.ts +0 -0
  192. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.js +0 -0
  193. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.yaml +0 -0
  194. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.d.ts +0 -0
  195. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.js +0 -0
  196. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.yaml +0 -0
  197. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/register.d.ts +0 -0
  198. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/register.js +0 -0
  199. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.d.ts +0 -0
  200. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.js +0 -0
  201. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.yaml +0 -0
  202. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.d.ts +0 -0
  203. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.js +0 -0
  204. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.yaml +0 -0
  205. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.d.ts +0 -0
  206. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.js +0 -0
  207. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.yaml +0 -0
  208. /package/dist/{trace-core → trace-ai}/diagnose/predicate-registry.d.ts +0 -0
  209. /package/dist/{trace-core → trace-ai}/diagnose/predicate-registry.js +0 -0
  210. /package/dist/{trace-core → trace-ai}/diagnose/rule-loader.d.ts +0 -0
  211. /package/dist/{trace-core → trace-ai}/diagnose/synthesizer-template.d.ts +0 -0
  212. /package/dist/{trace-core → trace-ai}/diagnose/synthesizer-template.js +0 -0
  213. /package/dist/{trace-core → trace-ai}/diagnose/trace-shaper.d.ts +0 -0
  214. /package/dist/{trace-core → trace-ai}/diagnose/types.js +0 -0
@@ -4,6 +4,7 @@ import { ensureValidToken, formatHttpError, with401RefreshRetry } from "../auth/
4
4
  import { listKnowledgeNetworks, getKnowledgeNetwork, createKnowledgeNetwork, updateKnowledgeNetwork, deleteKnowledgeNetwork, } from "../api/knowledge-networks.js";
5
5
  import { formatCallOutput } from "./call.js";
6
6
  import { resolveBusinessDomain } from "../config/store.js";
7
+ import { renderHelp } from "../help/format.js";
7
8
  import { runKnObjectTypeCommand, runKnRelationTypeCommand, runKnActionTypeCommand, runKnConceptGroupCommand, } from "./bkn-schema.js";
8
9
  import { runKnSubgraphCommand, runKnActionExecutionCommand, runKnActionLogCommand, runKnSearchCommand, runKnRelationTypePathsCommand, runKnResourcesCommand, } from "./bkn-query.js";
9
10
  import { runKnBuildCommand, runKnValidateCommand, runKnPushCommand, runKnPullCommand, runKnCreateFromDsCommand, runKnCreateFromCsvCommand, runKnActionScheduleCommand, runKnJobCommand, } from "./bkn-ops.js";
@@ -357,57 +358,77 @@ export function parseKnDeleteArgs(args) {
357
358
  businessDomain = resolveBusinessDomain();
358
359
  return { knId, businessDomain, yes };
359
360
  }
360
- const KN_HELP = `kweaver bkn
361
-
362
- Subcommands:
363
- list [options] List business knowledge networks
364
- get <kn-id> [options] Get knowledge network detail (use --stats or --export)
365
- create [options] Create a knowledge network (empty or from --body-file)
366
- create-from-ds <ds-id> --name X [--tables a,b] [--build] Create KN from datasource
367
- create-from-csv <ds-id> --files <glob> --name X [--table-prefix P] [--build]
368
- Import CSVs then create knowledge network
369
- update <kn-id> [options] Update a knowledge network
370
- delete <kn-id> Delete a knowledge network
371
- build <kn-id> [--wait|--no-wait] [--timeout n] Trigger full build
372
- validate <directory> [--detect-encoding|--no-detect-encoding] [--source-encoding n] Validate local BKN (no upload)
373
- push <directory> [--branch main] [--detect-encoding|--no-detect-encoding] [--source-encoding n] Upload BKN as tar
374
- pull <kn-id> [<directory>] [--branch main] Download BKN tar and extract
375
- export <kn-id> Export knowledge network (alias for get --export)
376
- stats <kn-id> Get statistics (alias for get --stats)
377
- search <kn-id> <query> [options] Semantic search within a knowledge network
378
- object-type list <kn-id> List object types (schema)
379
- object-type get <kn-id> <ot-id> Get object type details
380
- object-type create <kn-id> [options] Create object type (--name --dataview-id --primary-key --display-key)
381
- object-type update <kn-id> <ot-id> [options] Update object type
382
- object-type delete <kn-id> <ot-ids> [-y] Delete object type(s)
383
- object-type query <kn-id> <ot-id> ['<json>'] Query object instances (ontology-query; supports --limit/--search-after)
384
- object-type properties <kn-id> <ot-id> '<json>' Query instance properties (json: {"_instance_identities":[{pk:val}],"properties":[...]})
385
- relation-type list <kn-id> List relation types (schema)
386
- relation-type get <kn-id> <rt-id> Get relation type details
387
- relation-type create <kn-id> [options] Create relation type (--name --source --target [--mapping src:tgt])
388
- relation-type update <kn-id> <rt-id> --source <ot-id> --target <ot-id> [--name X] [--type direct|data_view] [--mapping src:tgt ...] Update relation type
389
- relation-type delete <kn-id> <rt-ids> [-y] Delete relation type(s)
390
- subgraph <kn-id> '<json>' Query subgraph
391
- action-type list <kn-id> List action types (schema)
392
- action-type get <kn-id> <at-id> Get action type details
393
- action-type create <kn-id> '<json>' Create action type
394
- action-type update <kn-id> <at-id> '<json>' Update action type
395
- action-type delete <kn-id> <at-ids> [-y] Delete action type(s)
396
- action-type query <kn-id> <at-id> '<json>' Query action info
397
- action-type inputs <kn-id> <at-id> List value_from=input params + dynamic_params template
398
- action-type execute <kn-id> <at-id> '<envelope-json>' | --dynamic-params '<json>' [--instance '<json>']... [--trigger-type <v>] Execute action (has side effects)
399
- action-execution get <kn-id> <execution-id> Get execution status
400
- action-log list <kn-id> [options] List action execution logs
401
- action-log get <kn-id> <log-id> Get single execution log
402
- action-log cancel <kn-id> <log-id> Cancel running execution (has side effects)
403
- concept-group list|get|create|update|delete|add-members|remove-members <kn-id> ...
404
- action-schedule list|get|create|update|set-status|delete <kn-id> ...
405
- job list|get|tasks|delete <kn-id> ...
406
- relation-type-paths <kn-id> '<json>' Query relation type paths between OTs
407
- resources List available resources
408
- metric list|get|create|search|validate|update|delete|query|dry-run <kn-id> ... BKN metrics (definitions + data)
409
-
410
- Use 'kweaver bkn <subcommand> --help' for subcommand options.`;
361
+ const KN_HELP = renderHelp({
362
+ tagline: "Knowledge network — build, validate, push/pull, schema, instances, actions, metrics",
363
+ usage: "kweaver bkn <subcommand> [args] [flags]",
364
+ sections: [
365
+ {
366
+ title: "LIFECYCLE",
367
+ items: [
368
+ { name: "list", desc: "List knowledge networks" },
369
+ { name: "get", desc: "Get KN detail (use --stats or --export)" },
370
+ { name: "create", desc: "Create a KN (empty or from --body-file)" },
371
+ { name: "create-from-ds", desc: "Create KN from datasource (--name --tables --build)" },
372
+ { name: "create-from-csv", desc: "Import CSVs then create KN (--files glob --name --build)" },
373
+ { name: "update", desc: "Update a KN" },
374
+ { name: "delete", desc: "Delete a KN" },
375
+ { name: "build", desc: "Trigger full build (--wait / --timeout)" },
376
+ { name: "stats", desc: "Get statistics (alias for `get --stats`)" },
377
+ { name: "export", desc: "Export KN (alias for `get --export`)" },
378
+ ],
379
+ },
380
+ {
381
+ title: "LOCAL DIRECTORY",
382
+ items: [
383
+ { name: "validate", desc: "Validate local BKN directory (no upload)" },
384
+ { name: "push", desc: "Upload BKN directory as tar" },
385
+ { name: "pull", desc: "Download BKN tar and extract" },
386
+ ],
387
+ },
388
+ {
389
+ title: "SCHEMA",
390
+ items: [
391
+ { name: "object-type", desc: "list / get / create / update / delete / query / properties" },
392
+ { name: "relation-type", desc: "list / get / create / update / delete" },
393
+ { name: "relation-type-paths", desc: "Query relation-type paths between object types" },
394
+ { name: "action-type", desc: "list / get / create / update / delete / query / inputs / execute" },
395
+ { name: "concept-group", desc: "list / get / create / update / delete / add-members / remove-members" },
396
+ { name: "metric", desc: "list / get / create / search / validate / update / delete / query / dry-run" },
397
+ ],
398
+ },
399
+ {
400
+ title: "INSTANCES / SEARCH",
401
+ items: [
402
+ { name: "search", desc: "Semantic search within a KN" },
403
+ { name: "subgraph", desc: "Query subgraph (JSON body)" },
404
+ ],
405
+ },
406
+ {
407
+ title: "EXECUTION / JOBS",
408
+ items: [
409
+ { name: "action-execution", desc: "get execution status" },
410
+ { name: "action-log", desc: "list / get / cancel" },
411
+ { name: "action-schedule", desc: "list / get / create / update / set-status / delete" },
412
+ { name: "job", desc: "list / get / tasks / delete" },
413
+ ],
414
+ },
415
+ {
416
+ title: "MISC",
417
+ items: [{ name: "resources", desc: "List available resources" }],
418
+ },
419
+ ],
420
+ inheritedFlags: "--base-url, --token, --user, -bd, --help",
421
+ examples: [
422
+ "kweaver bkn list",
423
+ "kweaver bkn build <kn-id> --wait",
424
+ "kweaver bkn push ./my-network --branch main",
425
+ "kweaver bkn search <kn-id> 'customer churn'",
426
+ ],
427
+ learnMore: [
428
+ "Use `kweaver bkn <subcommand> --help` for action-level options",
429
+ "Use `kweaver help all` for full per-action signatures",
430
+ ],
431
+ });
411
432
  export async function runKnCommand(args) {
412
433
  const [subcommand, ...rest] = args;
413
434
  if (!subcommand || subcommand === "--help" || subcommand === "-h") {
@@ -522,69 +543,87 @@ async function runKnListCommand(args) {
522
543
  return 1;
523
544
  }
524
545
  }
525
- const KN_LIST_HELP = `kweaver bkn list [options]
526
-
527
- List business knowledge networks from the ontology-manager API.
528
-
529
- Options:
530
- --offset <n> Offset (default: 0)
531
- --limit <n> Limit (default: 30)
532
- --sort <key> Sort field (default: update_time)
533
- --direction <asc|desc> Sort direction (default: desc)
534
- --name-pattern <s> Filter by name pattern
535
- --tag <s> Filter by tag
536
- --detail Include the detail field in simplified output
537
- --verbose, -v Show full JSON response
538
- -bd, --biz-domain <value> Business domain (default: bd_public)
539
- --pretty Pretty-print JSON output (applies to both modes)`;
540
- const KN_GET_HELP = `kweaver bkn get <kn-id> [options]
541
-
542
- Get knowledge network detail.
543
-
544
- Options:
545
- --stats Include statistics
546
- --export Export mode (include sub-types)
547
- -bd, --biz-domain <value> Business domain (default: bd_public)
548
- --pretty Pretty-print JSON output`;
549
- const KN_CREATE_HELP = `kweaver bkn create [options]
550
-
551
- Create a knowledge network.
552
-
553
- Options:
554
- --name <s> Name (required unless --body-file)
555
- --comment <s> Comment
556
- --tags <t1,t2> Comma-separated tags
557
- --icon <s> Icon
558
- --color <s> Color
559
- --branch <s> Branch (default: main)
560
- --base-branch <s> Base branch (default: empty for main)
561
- --body-file <path> Read full JSON body from file (cannot combine with flags above)
562
- --import-mode <normal|ignore|overwrite> Import mode (default: normal)
563
- --validate-dependency <true|false> Validate dependency (default: true)
564
- -bd, --biz-domain <value> Business domain (default: bd_public)
565
- --pretty Pretty-print JSON output`;
566
- const KN_UPDATE_HELP = `kweaver bkn update <kn-id> [options]
567
-
568
- Update a knowledge network.
569
-
570
- Options:
571
- --name <s> Name (required unless --body-file)
572
- --comment <s> Comment
573
- --tags <t1,t2> Comma-separated tags
574
- --icon <s> Icon
575
- --color <s> Color
576
- --branch <s> Branch (default: main)
577
- --base-branch <s> Base branch (default: empty for main)
578
- --body-file <path> Read full JSON body from file (cannot combine with flags above)
579
- -bd, --biz-domain <value> Business domain (default: bd_public)
580
- --pretty Pretty-print JSON output`;
581
- const KN_DELETE_HELP = `kweaver bkn delete <kn-id>
582
-
583
- Delete a knowledge network and its object types, relation types, action types, and concept groups.
584
-
585
- Options:
586
- --yes, -y Skip confirmation prompt
587
- -bd, --biz-domain <value> Business domain (default: bd_public)`;
546
+ const KN_LIST_HELP = renderHelp({
547
+ tagline: "List business knowledge networks (ontology-manager API)",
548
+ usage: "kweaver bkn list [flags]",
549
+ flags: [
550
+ { name: "--offset <n>", desc: "Offset (default: 0)" },
551
+ { name: "--limit <n>", desc: "Limit (default: 30)" },
552
+ { name: "--sort <key>", desc: "Sort field (default: update_time)" },
553
+ { name: "--direction <asc|desc>", desc: "Sort direction (default: desc)" },
554
+ { name: "--name-pattern <s>", desc: "Filter by name pattern" },
555
+ { name: "--tag <s>", desc: "Filter by tag" },
556
+ { name: "--detail", desc: "Include the detail field in simplified output" },
557
+ { name: "--verbose, -v", desc: "Show full JSON response" },
558
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
559
+ { name: "--pretty", desc: "Pretty-print JSON output (applies to both modes)" },
560
+ ],
561
+ inheritedFlags: "--base-url, --token, --user, --help",
562
+ examples: ["kweaver bkn list --limit 50 --tag analytics"],
563
+ });
564
+ const KN_GET_HELP = renderHelp({
565
+ tagline: "Get knowledge network detail",
566
+ usage: "kweaver bkn get <kn-id> [flags]",
567
+ flags: [
568
+ { name: "--stats", desc: "Include statistics" },
569
+ { name: "--export", desc: "Export mode (include sub-types)" },
570
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
571
+ { name: "--pretty", desc: "Pretty-print JSON output" },
572
+ ],
573
+ inheritedFlags: "--base-url, --token, --user, --help",
574
+ examples: ["kweaver bkn get kn-123 --stats"],
575
+ });
576
+ const KN_CREATE_HELP = renderHelp({
577
+ tagline: "Create a knowledge network (empty or from --body-file)",
578
+ usage: "kweaver bkn create [flags]",
579
+ flags: [
580
+ { name: "--name <s>", desc: "Name (required unless --body-file)" },
581
+ { name: "--comment <s>", desc: "Comment" },
582
+ { name: "--tags <t1,t2>", desc: "Comma-separated tags" },
583
+ { name: "--icon <s>", desc: "Icon" },
584
+ { name: "--color <s>", desc: "Color" },
585
+ { name: "--branch <s>", desc: "Branch (default: main)" },
586
+ { name: "--base-branch <s>", desc: "Base branch (default: empty for main)" },
587
+ { name: "--body-file <path>", desc: "Read full JSON body from file (cannot combine with flags above)" },
588
+ { name: "--import-mode <normal|ignore|overwrite>", desc: "Import mode (default: normal)" },
589
+ { name: "--validate-dependency <true|false>", desc: "Validate dependency (default: true)" },
590
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
591
+ { name: "--pretty", desc: "Pretty-print JSON output" },
592
+ ],
593
+ inheritedFlags: "--base-url, --token, --user, --help",
594
+ examples: [
595
+ "kweaver bkn create --name my-kn --tags a,b",
596
+ "kweaver bkn create --body-file ./kn.json",
597
+ ],
598
+ });
599
+ const KN_UPDATE_HELP = renderHelp({
600
+ tagline: "Update a knowledge network",
601
+ usage: "kweaver bkn update <kn-id> [flags]",
602
+ flags: [
603
+ { name: "--name <s>", desc: "Name (required unless --body-file)" },
604
+ { name: "--comment <s>", desc: "Comment" },
605
+ { name: "--tags <t1,t2>", desc: "Comma-separated tags" },
606
+ { name: "--icon <s>", desc: "Icon" },
607
+ { name: "--color <s>", desc: "Color" },
608
+ { name: "--branch <s>", desc: "Branch (default: main)" },
609
+ { name: "--base-branch <s>", desc: "Base branch (default: empty for main)" },
610
+ { name: "--body-file <path>", desc: "Read full JSON body from file (cannot combine with flags above)" },
611
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
612
+ { name: "--pretty", desc: "Pretty-print JSON output" },
613
+ ],
614
+ inheritedFlags: "--base-url, --token, --user, --help",
615
+ examples: ["kweaver bkn update kn-123 --name renamed"],
616
+ });
617
+ const KN_DELETE_HELP = renderHelp({
618
+ tagline: "Delete a KN and its object/relation/action types and concept groups",
619
+ usage: "kweaver bkn delete <kn-id> [flags]",
620
+ flags: [
621
+ { name: "--yes, -y", desc: "Skip confirmation prompt" },
622
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
623
+ ],
624
+ inheritedFlags: "--base-url, --token, --user, --help",
625
+ examples: ["kweaver bkn delete kn-123 -y"],
626
+ });
588
627
  async function runKnGetCommand(args) {
589
628
  let options;
590
629
  try {
@@ -4,6 +4,28 @@ import { ensureValidToken, formatHttpError, with401RefreshRetry } from "../auth/
4
4
  import { isNoAuth } from "../config/no-auth.js";
5
5
  import { HttpError } from "../utils/http.js";
6
6
  import { resolveBusinessDomain } from "../config/store.js";
7
+ import { renderHelp } from "../help/format.js";
8
+ const CALL_HELP = renderHelp({
9
+ tagline: "Call an API with curl-style flags and auto-injected auth headers",
10
+ usage: "kweaver call <url> [-X METHOD] [-H \"Name: value\"] [-d BODY|-F key=val] [flags]",
11
+ flags: [
12
+ { name: "<url>", desc: "API path, e.g. /api/ontology-manager/v1/knowledge-networks" },
13
+ { name: "-X, --request", desc: "HTTP method (default: GET)" },
14
+ { name: "-H, --header", desc: "Extra header (repeatable)" },
15
+ { name: "-d, --data, --data-raw", desc: "JSON request body (sets Content-Type: application/json if unset)" },
16
+ { name: "-F, --form", desc: "Multipart form field: key=value or key=@/path/to/file. Repeatable. Mutually exclusive with -d" },
17
+ { name: "-bd, --biz-domain", desc: "Override x-business-domain (default: bd_public)" },
18
+ { name: "-v, --verbose", desc: "Print request info to stderr" },
19
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
20
+ ],
21
+ inheritedFlags: "--base-url, --token, --user, --help",
22
+ examples: [
23
+ "kweaver call /api/ontology-manager/v1/knowledge-networks",
24
+ "kweaver call -X POST /api/agents -d '{\"name\":\"demo\"}'",
25
+ "kweaver call -F file=@./spec.yaml /api/toolboxes/{id}/tools/upload",
26
+ ],
27
+ learnMore: ["Alias: `kweaver curl ...`"],
28
+ });
7
29
  export function parseCallArgs(args) {
8
30
  const headers = new Headers();
9
31
  let method = "GET";
@@ -160,19 +182,7 @@ export function formatVerboseRequest(invocation) {
160
182
  }
161
183
  export async function runCallCommand(args) {
162
184
  if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
163
- console.log(`kweaver call <url> [-X METHOD] [-H "Name: value"] [-d BODY] [-F key=value] [--pretty] [--verbose] [-bd value]
164
-
165
- Call an API with curl-style flags and auto-injected token headers.
166
-
167
- Options:
168
- <url> API path (e.g. /api/ontology-manager/v1/knowledge-networks)
169
- -X, --request HTTP method (default: GET)
170
- -H, --header Extra header (repeatable)
171
- -d, --data, --data-raw JSON request body (sets Content-Type: application/json if not set)
172
- -F, --form Multipart form field. -F key=value or -F key=@/path/to/file. Repeatable. Mutually exclusive with -d.
173
- -bd, --biz-domain Override x-business-domain (default: bd_public)
174
- -v, --verbose Print request info to stderr
175
- --pretty Pretty-print JSON output (default)`);
185
+ console.log(CALL_HELP);
176
186
  return 0;
177
187
  }
178
188
  let invocation;
@@ -3,18 +3,28 @@ import { fetchEacpUserInfo, resolveActivePlatform, withTokenRetry } from "../aut
3
3
  import { HttpError } from "../utils/http.js";
4
4
  import { loadPlatformBusinessDomain, resolveBusinessDomain, savePlatformBusinessDomain, } from "../config/store.js";
5
5
  import { assertNotStatelessForWrite } from "../config/stateless.js";
6
- const HELP = `kweaver config
7
-
8
- Subcommands:
9
- set-bd <value> Set the default business domain for the current platform
10
- list-bd List business domains as JSON (requires login)
11
- show Show current config (platform, business domain)
12
- --help Show this message
13
-
14
- Examples:
15
- kweaver config set-bd 54308785-4438-43df-9490-a7fd11df5765
16
- kweaver config list-bd
17
- kweaver config show`;
6
+ import { renderHelp } from "../help/format.js";
7
+ const HELP = renderHelp({
8
+ tagline: "Per-platform business-domain config",
9
+ usage: "kweaver config <subcommand> [flags]",
10
+ sections: [
11
+ {
12
+ title: "AVAILABLE COMMANDS",
13
+ items: [
14
+ { name: "set-bd", desc: "Set default business domain for current platform" },
15
+ { name: "list-bd", desc: "List business domains as JSON (requires login)" },
16
+ { name: "show", desc: "Show current config (platform, business domain)" },
17
+ ],
18
+ },
19
+ ],
20
+ inheritedFlags: "--base-url, --token, --user, --help",
21
+ examples: [
22
+ "kweaver config set-bd 54308785-4438-43df-9490-a7fd11df5765",
23
+ "kweaver config list-bd",
24
+ "kweaver config show",
25
+ ],
26
+ learnMore: ["Use `kweaver config <subcommand> --help` for flag details"],
27
+ });
18
28
  export async function runConfigCommand(args) {
19
29
  const [sub, ...rest] = args;
20
30
  if (!sub || sub === "--help" || sub === "-h" || sub === "help") {