@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,4 +1,50 @@
1
1
  import { ensureValidToken, formatHttpError, with401RefreshRetry } from "../auth/oauth.js";
2
+ import { renderHelp } from "../help/format.js";
3
+ const AGENT_HELP = renderHelp({
4
+ tagline: "Agent CRUD, chat, sessions, history, publish/unpublish",
5
+ usage: "kweaver agent <subcommand> [flags]",
6
+ sections: [
7
+ {
8
+ title: "DISCOVERY",
9
+ items: [
10
+ { name: "list", desc: "List published agents" },
11
+ { name: "personal-list", desc: "List personal-space agents" },
12
+ { name: "category-list", desc: "List agent categories" },
13
+ { name: "template-list", desc: "List published agent templates" },
14
+ { name: "template-get", desc: "Get published agent template details" },
15
+ ],
16
+ },
17
+ {
18
+ title: "CRUD",
19
+ items: [
20
+ { name: "get", desc: "Get agent details" },
21
+ { name: "get-by-key", desc: "Get agent by key" },
22
+ { name: "create", desc: "Create a new agent" },
23
+ { name: "update", desc: "Update an existing agent" },
24
+ { name: "delete", desc: "Delete an agent" },
25
+ { name: "publish", desc: "Publish an agent" },
26
+ { name: "unpublish", desc: "Unpublish an agent" },
27
+ ],
28
+ },
29
+ {
30
+ title: "RUNTIME",
31
+ items: [
32
+ { name: "chat", desc: "Interactive chat (or single message with -m)" },
33
+ { name: "sessions", desc: "List conversations for an agent" },
34
+ { name: "history", desc: "Show message history for a conversation" },
35
+ { name: "trace", desc: "Get trace data for a conversation (--view tree|perf|evidence|reasoning|all)" },
36
+ { name: "skill", desc: "Manage skills attached to an agent (add / remove / list)" },
37
+ ],
38
+ },
39
+ ],
40
+ inheritedFlags: "--base-url, --token, --user, --help",
41
+ examples: [
42
+ "kweaver agent list --limit 20",
43
+ "kweaver agent chat <agent_id> -m \"hello\"",
44
+ "kweaver agent trace <conversation_id> --view all",
45
+ ],
46
+ learnMore: ["Use `kweaver agent <subcommand> --help` for flag details"],
47
+ });
2
48
  import { runAgentChatCommand } from "./agent-chat.js";
3
49
  import { runAgentSkillCommand } from "./agent-members.js";
4
50
  import { AGENT_MODE_HELP, applyAgentModeToConfig, normalizeAgentConfigInput, parseAgentMode, } from "./agent/mode.js";
@@ -538,30 +584,7 @@ export function parseAgentTraceArgs(args) {
538
584
  export async function runAgentCommand(args) {
539
585
  const [subcommand, ...rest] = args;
540
586
  if (!subcommand || subcommand === "--help" || subcommand === "-h") {
541
- console.log(`kweaver agent
542
-
543
- Subcommands:
544
- list [options] List published agents
545
- personal-list [options] List personal space agents
546
- category-list [options] List agent categories
547
- template-list [options] List published agent templates
548
- template-get <tpl_id> Get published agent template details
549
- get <agent_id> [--verbose] Get agent details
550
- get-by-key <key> Get agent by key
551
- create --name <n> --profile <p> Create a new agent
552
- [--key <key>] [--product-key <pk>] [--system-prompt <sp>]
553
- [--llm-id <id>] [--llm-max-tokens <n>] [--mode <mode>]
554
- update <agent_id> [options] Update an existing agent
555
- delete <agent_id> [-y] Delete an agent
556
- publish <agent_id> Publish an agent
557
- unpublish <agent_id> Unpublish an agent
558
- chat <agent_id> Start interactive chat with an agent
559
- chat <agent_id> -m "message" Send a single message (non-interactive)
560
- skill <verb> ... Manage skills attached to an agent (add/remove/list)
561
- sessions <agent_id> List all conversations for an agent
562
- history <agent_id> <conversation_id> Show message history for a conversation
563
- trace <conversation_id> [--view tree|perf|evidence|reasoning|all] [--json]
564
- Get trace data for a conversation`);
587
+ console.log(AGENT_HELP);
565
588
  return Promise.resolve(0);
566
589
  }
567
590
  const dispatch = async () => {
@@ -604,178 +627,230 @@ Subcommands:
604
627
  // Show subcommand-specific help inline (no retry needed)
605
628
  if (subcommand === "chat") {
606
629
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
607
- console.log(`kweaver agent chat <agent_id> [-m "message"] [options]
608
-
609
- Interactive mode (default when -m is omitted):
610
- kweaver agent chat <agent_id>
611
- Type your message and press Enter. Type 'exit', 'quit', or 'q' to quit.
612
-
613
- Non-interactive mode:
614
- kweaver agent chat <agent_id> -m "your message"
615
- kweaver agent chat <agent_id> -m "continue" --conversation-id <id>
616
-
617
- Options:
618
- -m, --message <text> Single message (non-interactive)
619
- --conversation-id <id> Continue existing conversation
620
- -cid <id> Short alias for --conversation-id
621
- --session-id <id> Alias for --conversation-id
622
- -conversation_id <id> Compatibility alias for reference examples
623
- --version <value> Agent version used to resolve the agent key (default: v0)
624
- --stream Enable streaming (default in interactive)
625
- --no-stream Disable streaming (default with -m)
626
- --verbose, -v Print request details to stderr
627
- -bd, --biz-domain <value> Override x-business-domain (default: bd_public)`);
630
+ console.log(renderHelp({
631
+ tagline: "Chat with an agent — interactive (default) or single-shot (-m)",
632
+ usage: [
633
+ "kweaver agent chat <agent_id> (interactive)",
634
+ "kweaver agent chat <agent_id> -m \"message\" (single-shot)",
635
+ "kweaver agent chat <agent_id> -m \"...\" --conversation-id <id>",
636
+ ],
637
+ flags: [
638
+ {
639
+ title: "Message",
640
+ flags: [
641
+ { name: "-m, --message <text>", desc: "Single message (non-interactive)" },
642
+ { name: "--conversation-id <id>", desc: "Continue existing conversation (aliases: -cid, --session-id, -conversation_id)" },
643
+ { name: "--version <value>", desc: "Agent version used to resolve agent key (default: v0)" },
644
+ ],
645
+ },
646
+ {
647
+ title: "Streaming",
648
+ flags: [
649
+ { name: "--stream", desc: "Enable streaming (default in interactive)" },
650
+ { name: "--no-stream", desc: "Disable streaming (default with -m)" },
651
+ ],
652
+ },
653
+ {
654
+ title: "Common",
655
+ flags: [
656
+ { name: "--verbose, -v", desc: "Print request details to stderr" },
657
+ { name: "-bd, --biz-domain <value>", desc: "Override x-business-domain (default: bd_public)" },
658
+ ],
659
+ },
660
+ ],
661
+ inheritedFlags: "--base-url, --token, --user, --help",
662
+ examples: [
663
+ "kweaver agent chat agt-123",
664
+ "kweaver agent chat agt-123 -m \"hello\"",
665
+ "kweaver agent chat agt-123 -m \"continue\" --conversation-id conv-456",
666
+ "kweaver agent chat agt-123 -m \"hello\" --no-stream --verbose",
667
+ ],
668
+ learnMore: ["Interactive mode: type 'exit', 'quit', or 'q' to quit"],
669
+ }));
628
670
  return Promise.resolve(0);
629
671
  }
630
672
  return runAgentChatCommand(rest);
631
673
  }
632
674
  if (subcommand === "get") {
633
675
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
634
- console.log(`kweaver agent get <agent_id> [options]
635
-
636
- Get agent details from the agent-factory API.
637
-
638
- Options:
639
- --verbose, -v Show full JSON response
640
- -bd, --biz-domain <value> Business domain (default: bd_public)
641
- --pretty Pretty-print JSON output (default)
642
- --save-config <path> Save config to file with timestamp (output: <path-with-timestamp>)`);
676
+ console.log(renderHelp({
677
+ tagline: "Get agent details from the agent-factory API.",
678
+ usage: "kweaver agent get <agent_id> [options]",
679
+ flags: [
680
+ { name: "--verbose, -v", desc: "Show full JSON response" },
681
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
682
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
683
+ { name: "--save-config <path>", desc: "Save config to file with timestamp (output: <path-with-timestamp>)" },
684
+ ],
685
+ inheritedFlags: "--base-url, --token, --user, --help",
686
+ examples: ["kweaver agent get <agent_id>"],
687
+ }));
643
688
  return 0;
644
689
  }
645
690
  }
646
691
  if (subcommand === "update") {
647
692
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
648
- console.log(`kweaver agent update <agent_id> [options]
649
-
650
- Update an existing agent.
651
-
652
- Options:
653
- --name <text> Agent name (max 50)
654
- --profile <text> Agent description (max 500)
655
- --system-prompt <text> System prompt
656
- --knowledge-network-id <id> Business knowledge network ID to configure
657
- --config-path <path> Path to config object file, or full agent JSON with config
658
- ${AGENT_MODE_HELP}`);
693
+ console.log(renderHelp({
694
+ tagline: "Update an existing agent.",
695
+ usage: "kweaver agent update <agent_id> [options]",
696
+ flags: [
697
+ { name: "--name <text>", desc: "Agent name (max 50)" },
698
+ { name: "--profile <text>", desc: "Agent description (max 500)" },
699
+ { name: "--system-prompt <text>", desc: "System prompt" },
700
+ { name: "--knowledge-network-id <id>", desc: "Business knowledge network ID to configure" },
701
+ { name: "--config-path <path>", desc: "Path to config object file, or full agent JSON with config" },
702
+ { name: "--mode <mode>", desc: "Agent mode: default, dolphin, react (default: default)" },
703
+ ],
704
+ inheritedFlags: "--base-url, --token, --user, --help",
705
+ examples: ["kweaver agent update <agent_id> --name MyAgent"],
706
+ learnMore: [AGENT_MODE_HELP],
707
+ }));
659
708
  return 0;
660
709
  }
661
710
  }
662
711
  if (subcommand === "list") {
663
712
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
664
- console.log(`kweaver agent list [options]
665
-
666
- List published agents from the agent-factory API.
667
-
668
- Options:
669
- --name <text> Filter by name
670
- --offset <n> Pagination offset (default: 0)
671
- --limit <n> Max items to return (default: 30)
672
- --category-id <id> Filter by category
673
- --custom-space-id <id> Filter by custom space
674
- --is-to-square <0|1> Is to square (default: 1)
675
- --verbose, -v Show full JSON response
676
- -bd, --biz-domain <value> Business domain (default: bd_public)
677
- --pretty Pretty-print JSON output (applies to both modes)`);
713
+ console.log(renderHelp({
714
+ tagline: "List published agents from the agent-factory API.",
715
+ usage: "kweaver agent list [options]",
716
+ flags: [
717
+ { name: "--name <text>", desc: "Filter by name" },
718
+ { name: "--offset <n>", desc: "Pagination offset (default: 0)" },
719
+ { name: "--limit <n>", desc: "Max items to return (default: 30)" },
720
+ { name: "--category-id <id>", desc: "Filter by category" },
721
+ { name: "--custom-space-id <id>", desc: "Filter by custom space" },
722
+ { name: "--is-to-square <0|1>", desc: "Is to square (default: 1)" },
723
+ { name: "--verbose, -v", desc: "Show full JSON response" },
724
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
725
+ { name: "--pretty", desc: "Pretty-print JSON output (applies to both modes)" },
726
+ ],
727
+ inheritedFlags: "--base-url, --token, --user, --help",
728
+ examples: ["kweaver agent list --limit 10"],
729
+ }));
678
730
  return 0;
679
731
  }
680
732
  }
681
733
  if (subcommand === "personal-list") {
682
734
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
683
- console.log(`kweaver agent personal-list [options]
684
-
685
- List personal space agents from the agent-factory API.
686
-
687
- Options:
688
- --name <text> Filter by name
689
- --pagination-marker <str> Pagination marker
690
- --publish-status <status> Filter by publish status
691
- --publish-to-be <value> Publish to be filter
692
- --size <n> Max items to return (default: 48)
693
- --verbose, -v Show full JSON response
694
- -bd, --biz-domain <value> Business domain (default: bd_public)
695
- --pretty Pretty-print JSON output (default)`);
735
+ console.log(renderHelp({
736
+ tagline: "List personal space agents from the agent-factory API.",
737
+ usage: "kweaver agent personal-list [options]",
738
+ flags: [
739
+ { name: "--name <text>", desc: "Filter by name" },
740
+ { name: "--pagination-marker <str>", desc: "Pagination marker" },
741
+ { name: "--publish-status <status>", desc: "Filter by publish status" },
742
+ { name: "--publish-to-be <value>", desc: "Publish to be filter" },
743
+ { name: "--size <n>", desc: "Max items to return (default: 48)" },
744
+ { name: "--verbose, -v", desc: "Show full JSON response" },
745
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
746
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
747
+ ],
748
+ inheritedFlags: "--base-url, --token, --user, --help",
749
+ examples: ["kweaver agent personal-list --size 20"],
750
+ }));
696
751
  return 0;
697
752
  }
698
753
  }
699
754
  if (subcommand === "category-list") {
700
755
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
701
- console.log(`kweaver agent category-list [options]
702
-
703
- List agent categories from the agent-factory API.
704
-
705
- Options:
706
- --verbose, -v Show full JSON response
707
- -bd, --biz-domain <value> Business domain (default: bd_public)
708
- --pretty Pretty-print JSON output (default)`);
756
+ console.log(renderHelp({
757
+ tagline: "List agent categories from the agent-factory API.",
758
+ usage: "kweaver agent category-list [options]",
759
+ flags: [
760
+ { name: "--verbose, -v", desc: "Show full JSON response" },
761
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
762
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
763
+ ],
764
+ inheritedFlags: "--base-url, --token, --user, --help",
765
+ examples: ["kweaver agent category-list"],
766
+ }));
709
767
  return 0;
710
768
  }
711
769
  }
712
770
  if (subcommand === "template-list") {
713
771
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
714
- console.log(`kweaver agent template-list [options]
715
-
716
- List published agent templates from the agent-factory API.
717
-
718
- Options:
719
- --category-id <id> Filter by category
720
- --name <text> Filter by name
721
- --pagination-marker <str> Pagination marker
722
- --size <n> Max items to return (default: 48)
723
- --verbose, -v Show full JSON response
724
- -bd, --biz-domain <value> Business domain (default: bd_public)
725
- --pretty Pretty-print JSON output (default)`);
772
+ console.log(renderHelp({
773
+ tagline: "List published agent templates from the agent-factory API.",
774
+ usage: "kweaver agent template-list [options]",
775
+ flags: [
776
+ { name: "--category-id <id>", desc: "Filter by category" },
777
+ { name: "--name <text>", desc: "Filter by name" },
778
+ { name: "--pagination-marker <str>", desc: "Pagination marker" },
779
+ { name: "--size <n>", desc: "Max items to return (default: 48)" },
780
+ { name: "--verbose, -v", desc: "Show full JSON response" },
781
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
782
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
783
+ ],
784
+ inheritedFlags: "--base-url, --token, --user, --help",
785
+ examples: ["kweaver agent template-list --size 20"],
786
+ }));
726
787
  return 0;
727
788
  }
728
789
  }
729
790
  if (subcommand === "template-get") {
730
791
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
731
- console.log(`kweaver agent template-get <template_id> [options]
732
-
733
- Get published agent template details from the agent-factory API.
734
-
735
- Options:
736
- --verbose, -v Show full JSON response
737
- -bd, --biz-domain <value> Business domain (default: bd_public)
738
- --pretty Pretty-print JSON output (default)`);
792
+ console.log(renderHelp({
793
+ tagline: "Get published agent template details from the agent-factory API.",
794
+ usage: "kweaver agent template-get <template_id> [options]",
795
+ flags: [
796
+ { name: "--verbose, -v", desc: "Show full JSON response" },
797
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
798
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
799
+ ],
800
+ inheritedFlags: "--base-url, --token, --user, --help",
801
+ examples: ["kweaver agent template-get <template_id>"],
802
+ }));
739
803
  return 0;
740
804
  }
741
805
  }
742
806
  if (subcommand === "sessions") {
743
807
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
744
- console.log(`kweaver agent sessions <agent_id> [options]
745
-
746
- List all conversations for an agent.
747
-
748
- Options:
749
- --limit <n> Max conversations to return (default: 30)
750
- -bd, --biz-domain <value> Business domain (default: bd_public)
751
- --pretty Pretty-print JSON output (default)`);
808
+ console.log(renderHelp({
809
+ tagline: "List all conversations for an agent.",
810
+ usage: "kweaver agent sessions <agent_id> [options]",
811
+ flags: [
812
+ { name: "--limit <n>", desc: "Max conversations to return (default: 30)" },
813
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
814
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
815
+ ],
816
+ inheritedFlags: "--base-url, --token, --user, --help",
817
+ examples: ["kweaver agent sessions <agent_id>"],
818
+ }));
752
819
  return 0;
753
820
  }
754
821
  }
755
822
  if (subcommand === "history") {
756
823
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
757
- console.log(`kweaver agent history <agent_id> <conversation_id> [options]
758
-
759
- Show conversation detail (messages) for an agent.
760
-
761
- Options:
762
- -bd, --biz-domain <value> Business domain (default: bd_public)
763
- --pretty Pretty-print JSON output (default)`);
824
+ console.log(renderHelp({
825
+ tagline: "Show conversation detail (messages) for an agent.",
826
+ usage: "kweaver agent history <agent_id> <conversation_id> [options]",
827
+ flags: [
828
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
829
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
830
+ ],
831
+ inheritedFlags: "--base-url, --token, --user, --help",
832
+ examples: ["kweaver agent history <agent_id> <conversation_id>"],
833
+ }));
764
834
  return 0;
765
835
  }
766
836
  }
767
837
  if (subcommand === "trace") {
768
838
  if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
769
- console.log(`kweaver agent trace <conversation_id> [options]
770
- kweaver agent trace <agent_id> <conversation_id> [options] (legacy)
771
-
772
- Get trace data for a conversation.
773
-
774
- Options:
775
- --view tree|perf|evidence|reasoning|all Render style (default: tree)
776
- --json Emit raw TracesByConversationResult JSON
777
- --pretty Pretty-print JSON output (default)
778
- --compact Compact JSON output`);
839
+ console.log(renderHelp({
840
+ tagline: "Get trace data for a conversation.",
841
+ usage: [
842
+ "kweaver agent trace <conversation_id> [options]",
843
+ "kweaver agent trace <agent_id> <conversation_id> [options] (legacy)",
844
+ ],
845
+ flags: [
846
+ { name: "--view tree|perf|evidence|reasoning|all", desc: "Render style (default: tree)" },
847
+ { name: "--json", desc: "Emit raw TracesByConversationResult JSON" },
848
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
849
+ { name: "--compact", desc: "Compact JSON output" },
850
+ ],
851
+ inheritedFlags: "--base-url, --token, --user, --help",
852
+ examples: ["kweaver agent trace <conversation_id>"],
853
+ }));
779
854
  return 0;
780
855
  }
781
856
  }
@@ -870,15 +945,18 @@ async function runAgentGetCommand(args) {
870
945
  }
871
946
  catch (error) {
872
947
  if (error instanceof Error && error.message === "help") {
873
- console.log(`kweaver agent get <agent_id> [options]
874
-
875
- Get agent details from the agent-factory API.
876
-
877
- Options:
878
- --verbose, -v Show full JSON response
879
- -bd, --biz-domain <value> Business domain (default: bd_public)
880
- --pretty Pretty-print JSON output (default)
881
- --save-config <path> Save config to file with timestamp (output: <path-with-timestamp>)`);
948
+ console.log(renderHelp({
949
+ tagline: "Get agent details from the agent-factory API.",
950
+ usage: "kweaver agent get <agent_id> [options]",
951
+ flags: [
952
+ { name: "--verbose, -v", desc: "Show full JSON response" },
953
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
954
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
955
+ { name: "--save-config <path>", desc: "Save config to file with timestamp (output: <path-with-timestamp>)" },
956
+ ],
957
+ inheritedFlags: "--base-url, --token, --user, --help",
958
+ examples: ["kweaver agent get <agent_id>"],
959
+ }));
882
960
  return 0;
883
961
  }
884
962
  console.error(formatHttpError(error));
@@ -921,20 +999,23 @@ async function runAgentListCommand(args) {
921
999
  }
922
1000
  catch (error) {
923
1001
  if (error instanceof Error && error.message === "help") {
924
- console.log(`kweaver agent list [options]
925
-
926
- List published agents from the agent-factory API.
927
-
928
- Options:
929
- --name <text> Filter by name
930
- --offset <n> Pagination offset (default: 0)
931
- --limit <n> Max items to return (default: 30)
932
- --category-id <id> Filter by category
933
- --custom-space-id <id> Filter by custom space
934
- --is-to-square <0|1> Is to square (default: 1)
935
- --verbose, -v Show full JSON response
936
- -bd, --biz-domain <value> Business domain (default: bd_public)
937
- --pretty Pretty-print JSON output (applies to both modes)`);
1002
+ console.log(renderHelp({
1003
+ tagline: "List published agents from the agent-factory API.",
1004
+ usage: "kweaver agent list [options]",
1005
+ flags: [
1006
+ { name: "--name <text>", desc: "Filter by name" },
1007
+ { name: "--offset <n>", desc: "Pagination offset (default: 0)" },
1008
+ { name: "--limit <n>", desc: "Max items to return (default: 30)" },
1009
+ { name: "--category-id <id>", desc: "Filter by category" },
1010
+ { name: "--custom-space-id <id>", desc: "Filter by custom space" },
1011
+ { name: "--is-to-square <0|1>", desc: "Is to square (default: 1)" },
1012
+ { name: "--verbose, -v", desc: "Show full JSON response" },
1013
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1014
+ { name: "--pretty", desc: "Pretty-print JSON output (applies to both modes)" },
1015
+ ],
1016
+ inheritedFlags: "--base-url, --token, --user, --help",
1017
+ examples: ["kweaver agent list"],
1018
+ }));
938
1019
  return 0;
939
1020
  }
940
1021
  console.error(formatHttpError(error));
@@ -970,14 +1051,17 @@ async function runAgentSessionsCommand(args) {
970
1051
  }
971
1052
  catch (error) {
972
1053
  if (error instanceof Error && error.message === "help") {
973
- console.log(`kweaver agent sessions <agent_id> [options]
974
-
975
- List all conversations for an agent.
976
-
977
- Options:
978
- --limit <n> Max conversations to return (default: 30)
979
- -bd, --biz-domain <value> Business domain (default: bd_public)
980
- --pretty Pretty-print JSON output (default)`);
1054
+ console.log(renderHelp({
1055
+ tagline: "List all conversations for an agent.",
1056
+ usage: "kweaver agent sessions <agent_id> [options]",
1057
+ flags: [
1058
+ { name: "--limit <n>", desc: "Max conversations to return (default: 30)" },
1059
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1060
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1061
+ ],
1062
+ inheritedFlags: "--base-url, --token, --user, --help",
1063
+ examples: ["kweaver agent sessions <agent_id>"],
1064
+ }));
981
1065
  return 0;
982
1066
  }
983
1067
  console.error(formatHttpError(error));
@@ -1023,13 +1107,16 @@ async function runAgentHistoryCommand(args) {
1023
1107
  }
1024
1108
  catch (error) {
1025
1109
  if (error instanceof Error && error.message === "help") {
1026
- console.log(`kweaver agent history <agent_id> <conversation_id> [options]
1027
-
1028
- Show conversation detail (messages) for an agent.
1029
-
1030
- Options:
1031
- -bd, --biz-domain <value> Business domain (default: bd_public)
1032
- --pretty Pretty-print JSON output (default)`);
1110
+ console.log(renderHelp({
1111
+ tagline: "Show conversation detail (messages) for an agent.",
1112
+ usage: "kweaver agent history <agent_id> <conversation_id> [options]",
1113
+ flags: [
1114
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1115
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1116
+ ],
1117
+ inheritedFlags: "--base-url, --token, --user, --help",
1118
+ examples: ["kweaver agent history <agent_id> <conversation_id>"],
1119
+ }));
1033
1120
  return 0;
1034
1121
  }
1035
1122
  console.error(formatHttpError(error));
@@ -1076,18 +1163,21 @@ async function runAgentTraceCommand(args) {
1076
1163
  }
1077
1164
  catch (error) {
1078
1165
  if (error instanceof Error && error.message === "help") {
1079
- console.log(`kweaver agent trace <conversation_id> [options]
1080
- kweaver agent trace <agent_id> <conversation_id> [options] (legacy)
1081
-
1082
- Get trace data for a conversation. Spans are fetched from trace-ai via a 2-jump
1083
- lookup that recovers pipeline spans (HTTP entry, internal RPCs, prompt-build)
1084
- which the simpler /by-conversation endpoint omits.
1085
-
1086
- Options:
1087
- --view tree|perf|evidence|reasoning|all Render style (default: tree)
1088
- --json Emit raw TracesByConversationResult JSON
1089
- --pretty Pretty-print JSON output (default)
1090
- --compact Compact JSON output`);
1166
+ console.log(renderHelp({
1167
+ tagline: "Get trace data for a conversation. Spans are fetched from trace-ai via a 2-jump lookup that recovers pipeline spans (HTTP entry, internal RPCs, prompt-build) which the simpler /by-conversation endpoint omits.",
1168
+ usage: "kweaver agent trace <conversation_id> [options]",
1169
+ flags: [
1170
+ { name: "--view tree|perf|evidence|reasoning|all", desc: "Render style (default: tree)" },
1171
+ { name: "--json", desc: "Emit raw TracesByConversationResult JSON" },
1172
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1173
+ { name: "--compact", desc: "Compact JSON output" },
1174
+ ],
1175
+ inheritedFlags: "--base-url, --token, --user, --help",
1176
+ examples: [
1177
+ "kweaver agent trace <conversation_id>",
1178
+ "kweaver agent trace <agent_id> <conversation_id> (legacy)",
1179
+ ],
1180
+ }));
1091
1181
  return 0;
1092
1182
  }
1093
1183
  console.error(formatHttpError(error));
@@ -1152,23 +1242,25 @@ async function runAgentCreateCommand(args) {
1152
1242
  for (let i = 0; i < args.length; i += 1) {
1153
1243
  const arg = args[i];
1154
1244
  if (arg === "--help" || arg === "-h") {
1155
- console.log(`kweaver agent create --name <name> --profile <profile> [options]
1156
-
1157
- Create a new agent.
1158
-
1159
- Required (when --config is not provided):
1160
- --name <text> Agent name (max 50)
1161
- --profile <text> Agent description (max 500)
1162
-
1163
- Optional:
1164
- --key <text> Agent unique key (auto-generated if omitted)
1165
- --product-key <text> Product key: dip, AnyShare, ChatBI (default: dip)
1166
- --system-prompt <text> System prompt
1167
- --llm-id <id> LLM model ID (required for public API)
1168
- --llm-max-tokens <n> LLM max tokens (default: 4096)
1169
- ${AGENT_MODE_HELP}
1170
- --config <json|path> Full config object as JSON string or file path (overrides individual config options)
1171
- -bd, --biz-domain <val> Business domain (default: bd_public)`);
1245
+ console.log(renderHelp({
1246
+ tagline: "Create a new agent.",
1247
+ usage: "kweaver agent create --name <name> --profile <profile> [options]",
1248
+ flags: [
1249
+ { name: "--name <text>", desc: "Agent name (max 50) [required when --config not provided]" },
1250
+ { name: "--profile <text>", desc: "Agent description (max 500) [required when --config not provided]" },
1251
+ { name: "--key <text>", desc: "Agent unique key (auto-generated if omitted)" },
1252
+ { name: "--product-key <text>", desc: "Product key: dip, AnyShare, ChatBI (default: dip)" },
1253
+ { name: "--system-prompt <text>", desc: "System prompt" },
1254
+ { name: "--llm-id <id>", desc: "LLM model ID (required for public API)" },
1255
+ { name: "--llm-max-tokens <n>", desc: "LLM max tokens (default: 4096)" },
1256
+ { name: "--mode <mode>", desc: "Agent mode: default, dolphin, react (default: default)" },
1257
+ { name: "--config <json|path>", desc: "Full config object as JSON string or file path (overrides individual config options)" },
1258
+ { name: "-bd, --biz-domain <val>", desc: "Business domain (default: bd_public)" },
1259
+ ],
1260
+ inheritedFlags: "--base-url, --token, --user, --help",
1261
+ examples: ["kweaver agent create --name MyAgent --profile \"desc\""],
1262
+ learnMore: [AGENT_MODE_HELP],
1263
+ }));
1172
1264
  return 0;
1173
1265
  }
1174
1266
  if (arg === "--name") {
@@ -1298,17 +1390,21 @@ ${AGENT_MODE_HELP}
1298
1390
  async function runAgentUpdateCommand(args) {
1299
1391
  const agentId = args[0];
1300
1392
  if (agentId === "--help" || agentId === "-h") {
1301
- console.log(`kweaver agent update <agent_id> [options]
1302
-
1303
- Update an existing agent.
1304
-
1305
- Options:
1306
- --name <text> Agent name
1307
- --profile <text> Agent description
1308
- --system-prompt <text> System prompt
1309
- --knowledge-network-id <id> Knowledge network ID
1310
- --config-path <path> Read config object from file, or full agent JSON with config
1311
- ${AGENT_MODE_HELP}`);
1393
+ console.log(renderHelp({
1394
+ tagline: "Update an existing agent.",
1395
+ usage: "kweaver agent update <agent_id> [options]",
1396
+ flags: [
1397
+ { name: "--name <text>", desc: "Agent name" },
1398
+ { name: "--profile <text>", desc: "Agent description" },
1399
+ { name: "--system-prompt <text>", desc: "System prompt" },
1400
+ { name: "--knowledge-network-id <id>", desc: "Knowledge network ID" },
1401
+ { name: "--config-path <path>", desc: "Read config object from file, or full agent JSON with config" },
1402
+ { name: "--mode <mode>", desc: "Agent mode: default, dolphin, react (default: default)" },
1403
+ ],
1404
+ inheritedFlags: "--base-url, --token, --user, --help",
1405
+ examples: ["kweaver agent update <agent_id> --name MyAgent"],
1406
+ learnMore: [AGENT_MODE_HELP],
1407
+ }));
1312
1408
  return 0;
1313
1409
  }
1314
1410
  if (!agentId || agentId.startsWith("-")) {
@@ -1500,13 +1596,16 @@ async function runAgentPublishCommand(args) {
1500
1596
  continue;
1501
1597
  }
1502
1598
  if (arg === "--help" || arg === "-h") {
1503
- console.log(`kweaver agent publish <agent_id> [options]
1504
-
1505
- Publish an agent.
1506
-
1507
- Options:
1508
- --category-id <id> Category ID for the agent
1509
- -bd, --biz-domain <value> Business domain (default: bd_public)`);
1599
+ console.log(renderHelp({
1600
+ tagline: "Publish an agent.",
1601
+ usage: "kweaver agent publish <agent_id> [options]",
1602
+ flags: [
1603
+ { name: "--category-id <id>", desc: "Category ID for the agent" },
1604
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1605
+ ],
1606
+ inheritedFlags: "--base-url, --token, --user, --help",
1607
+ examples: ["kweaver agent publish <agent_id>"],
1608
+ }));
1510
1609
  return 0;
1511
1610
  }
1512
1611
  }
@@ -1556,19 +1655,22 @@ async function runAgentPersonalListCommand(args) {
1556
1655
  }
1557
1656
  catch (error) {
1558
1657
  if (error instanceof Error && error.message === "help") {
1559
- console.log(`kweaver agent personal-list [options]
1560
-
1561
- List personal space agents from the agent-factory API.
1562
-
1563
- Options:
1564
- --name <text> Filter by name
1565
- --pagination-marker <str> Pagination marker
1566
- --publish-status <status> Filter by publish status
1567
- --publish-to-be <value> Publish to be filter
1568
- --size <n> Max items to return (default: 48)
1569
- --verbose, -v Show full JSON response
1570
- -bd, --biz-domain <value> Business domain (default: bd_public)
1571
- --pretty Pretty-print JSON output (default)`);
1658
+ console.log(renderHelp({
1659
+ tagline: "List personal space agents from the agent-factory API.",
1660
+ usage: "kweaver agent personal-list [options]",
1661
+ flags: [
1662
+ { name: "--name <text>", desc: "Filter by name" },
1663
+ { name: "--pagination-marker <str>", desc: "Pagination marker" },
1664
+ { name: "--publish-status <status>", desc: "Filter by publish status" },
1665
+ { name: "--publish-to-be <value>", desc: "Publish to be filter" },
1666
+ { name: "--size <n>", desc: "Max items to return (default: 48)" },
1667
+ { name: "--verbose, -v", desc: "Show full JSON response" },
1668
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1669
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1670
+ ],
1671
+ inheritedFlags: "--base-url, --token, --user, --help",
1672
+ examples: ["kweaver agent personal-list"],
1673
+ }));
1572
1674
  return 0;
1573
1675
  }
1574
1676
  console.error(formatHttpError(error));
@@ -1604,18 +1706,21 @@ async function runAgentTemplateListCommand(args) {
1604
1706
  }
1605
1707
  catch (error) {
1606
1708
  if (error instanceof Error && error.message === "help") {
1607
- console.log(`kweaver agent template-list [options]
1608
-
1609
- List published agent templates from the agent-factory API.
1610
-
1611
- Options:
1612
- --category-id <id> Filter by category
1613
- --name <text> Filter by name
1614
- --pagination-marker <str> Pagination marker
1615
- --size <n> Max items to return (default: 48)
1616
- --verbose, -v Show full JSON response
1617
- -bd, --biz-domain <value> Business domain (default: bd_public)
1618
- --pretty Pretty-print JSON output (default)`);
1709
+ console.log(renderHelp({
1710
+ tagline: "List published agent templates from the agent-factory API.",
1711
+ usage: "kweaver agent template-list [options]",
1712
+ flags: [
1713
+ { name: "--category-id <id>", desc: "Filter by category" },
1714
+ { name: "--name <text>", desc: "Filter by name" },
1715
+ { name: "--pagination-marker <str>", desc: "Pagination marker" },
1716
+ { name: "--size <n>", desc: "Max items to return (default: 48)" },
1717
+ { name: "--verbose, -v", desc: "Show full JSON response" },
1718
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1719
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1720
+ ],
1721
+ inheritedFlags: "--base-url, --token, --user, --help",
1722
+ examples: ["kweaver agent template-list"],
1723
+ }));
1619
1724
  return 0;
1620
1725
  }
1621
1726
  console.error(formatHttpError(error));
@@ -1650,15 +1755,18 @@ async function runAgentTemplateGetCommand(args) {
1650
1755
  }
1651
1756
  catch (error) {
1652
1757
  if (error instanceof Error && error.message === "help") {
1653
- console.log(`kweaver agent template-get <template_id> [options]
1654
-
1655
- Get published agent template details from the agent-factory API.
1656
-
1657
- Options:
1658
- --verbose, -v Show full JSON response
1659
- -bd, --biz-domain <value> Business domain (default: bd_public)
1660
- --pretty Pretty-print JSON output (default)
1661
- --save-config <path> Save config to file with timestamp (output: <path-with-timestamp>)`);
1758
+ console.log(renderHelp({
1759
+ tagline: "Get published agent template details from the agent-factory API.",
1760
+ usage: "kweaver agent template-get <template_id> [options]",
1761
+ flags: [
1762
+ { name: "--verbose, -v", desc: "Show full JSON response" },
1763
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1764
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1765
+ { name: "--save-config <path>", desc: "Save config to file with timestamp (output: <path-with-timestamp>)" },
1766
+ ],
1767
+ inheritedFlags: "--base-url, --token, --user, --help",
1768
+ examples: ["kweaver agent template-get <template_id>"],
1769
+ }));
1662
1770
  return 0;
1663
1771
  }
1664
1772
  console.error(formatHttpError(error));
@@ -1702,14 +1810,17 @@ async function runAgentCategoryListCommand(args) {
1702
1810
  for (let i = 0; i < args.length; i += 1) {
1703
1811
  const arg = args[i];
1704
1812
  if (arg === "--help" || arg === "-h") {
1705
- console.log(`kweaver agent category-list [options]
1706
-
1707
- List agent categories from the agent-factory API.
1708
-
1709
- Options:
1710
- --verbose, -v Show full JSON response
1711
- -bd, --biz-domain <value> Business domain (default: bd_public)
1712
- --pretty Pretty-print JSON output (default)`);
1813
+ console.log(renderHelp({
1814
+ tagline: "List agent categories from the agent-factory API.",
1815
+ usage: "kweaver agent category-list [options]",
1816
+ flags: [
1817
+ { name: "--verbose, -v", desc: "Show full JSON response" },
1818
+ { name: "-bd, --biz-domain <value>", desc: "Business domain (default: bd_public)" },
1819
+ { name: "--pretty", desc: "Pretty-print JSON output (default)" },
1820
+ ],
1821
+ inheritedFlags: "--base-url, --token, --user, --help",
1822
+ examples: ["kweaver agent category-list"],
1823
+ }));
1713
1824
  return 0;
1714
1825
  }
1715
1826
  if (arg === "-bd" || arg === "--biz-domain") {