@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
@@ -3,11 +3,600 @@ import { callTool, searchSchema, queryObjectInstance, queryInstanceSubgraph, get
3
3
  import { knSearchHttp, semanticSearch } from "../api/semantic-search.js";
4
4
  import { addContextLoaderEntry, getCurrentContextLoaderKn, loadContextLoaderConfig, removeContextLoaderEntry, resolveBusinessDomain, setCurrentContextLoader, } from "../config/store.js";
5
5
  import { assertNotStatelessForWrite } from "../config/stateless.js";
6
+ import { renderHelp } from "../help/format.js";
6
7
  const CONTEXT_LOADER_CONFIG_DEPRECATION = "[deprecated] `kweaver context-loader config ...` will be removed in a future release. " +
7
8
  "Pass <kn-id> as the first positional to runtime subcommands instead, e.g. " +
8
9
  "`kweaver context-loader tools <kn-id>` (or use the `--kn-id <id>` flag).";
9
10
  const MCP_NOT_CONFIGURED = "Context-loader MCP is not configured. Run: kweaver context-loader config set --kn-id <kn-id>";
10
11
  const MCP_PATH = "/api/agent-retrieval/v1/mcp";
12
+ const DEPRECATED_KN_SEARCH_MESSAGE = "[deprecated] context-loader kn-search is deprecated. Use context-loader search-schema instead.";
13
+ const DEPRECATED_KN_SCHEMA_SEARCH_MESSAGE = "[deprecated] context-loader kn-schema-search is deprecated. Use context-loader search-schema instead.";
14
+ const CONTEXT_LOADER_HELP = renderHelp({
15
+ tagline: "MCP / HTTP context-loader — schema discovery, instance query, action info, skill recall",
16
+ usage: [
17
+ "kweaver context-loader <subcommand> [flags]",
18
+ "kweaver context-loader help <subcommand>",
19
+ ],
20
+ sections: [
21
+ {
22
+ title: "RECOMMENDED FLOW",
23
+ items: [
24
+ { name: "1. search-schema", desc: "Discover schema concepts" },
25
+ { name: "2. query-*", desc: "Query instances using discovered schema IDs" },
26
+ { name: "3. get-* / find-skills", desc: "Enrich instances or inspect actions" },
27
+ { name: "— tool-call", desc: "Raw MCP debugging or unsupported tools only" },
28
+ ],
29
+ },
30
+ {
31
+ title: "SCHEMA DISCOVERY",
32
+ items: [
33
+ { name: "search-schema", desc: "Search object/relation/action/metric schemas" },
34
+ { name: "kn-search", desc: "[deprecated] Use search-schema" },
35
+ { name: "kn-schema-search", desc: "[deprecated] Use search-schema" },
36
+ ],
37
+ },
38
+ {
39
+ title: "INSTANCE QUERY",
40
+ items: [
41
+ { name: "query-object-instance", desc: "Query object instances" },
42
+ { name: "query-instance-subgraph", desc: "Query instance subgraphs" },
43
+ ],
44
+ },
45
+ {
46
+ title: "INSTANCE ENRICHMENT / ACTION",
47
+ items: [
48
+ { name: "get-logic-properties", desc: "Get calculated logic-property values" },
49
+ { name: "get-action-info", desc: "Get action metadata and executable info" },
50
+ { name: "find-skills", desc: "Recall skills for an object type" },
51
+ ],
52
+ },
53
+ {
54
+ title: "ADVANCED MCP",
55
+ items: [
56
+ { name: "tools", desc: "List MCP tools" },
57
+ { name: "resources", desc: "List MCP resources" },
58
+ { name: "resource", desc: "Read an MCP resource by URI" },
59
+ { name: "templates", desc: "List MCP resource templates" },
60
+ { name: "prompts", desc: "List MCP prompts" },
61
+ { name: "prompt", desc: "Get an MCP prompt by name" },
62
+ { name: "tool-call", desc: "Call any MCP tool directly" },
63
+ ],
64
+ },
65
+ {
66
+ title: "DEPRECATED",
67
+ items: [{ name: "config", desc: "Manage legacy saved KN selection (set/use/list/remove/show)" }],
68
+ },
69
+ ],
70
+ flags: [
71
+ { name: "-k, --kn-id <id>", desc: "KN selector for runtime subcommands" },
72
+ { name: "--pretty", desc: "Pretty-print JSON output" },
73
+ { name: "--compact", desc: "Compact JSON output" },
74
+ ],
75
+ inheritedFlags: "--base-url, --token, --user, --help",
76
+ examples: [
77
+ "kweaver context-loader search-schema <id> 'customer churn'",
78
+ "kweaver context-loader query-object-instance <id> --object-type-id <ot> --limit 10",
79
+ "kweaver context-loader find-skills <id> <ot-id>",
80
+ ],
81
+ learnMore: [
82
+ "Alias: `kweaver context ...`",
83
+ "Use `kweaver context-loader <subcommand> --help` for arguments, JSON shapes, examples",
84
+ "Most runtime subcommands require a KN — first positional or --kn-id / -k",
85
+ ],
86
+ });
87
+ const CONTEXT_LOADER_CONFIG_HELP = renderHelp({
88
+ tagline: "[deprecated] Manage the saved context-loader KN selection",
89
+ usage: [
90
+ "kweaver context-loader config set --kn-id <id> [--name <name>]",
91
+ "kweaver context-loader config use <name>",
92
+ "kweaver context-loader config list",
93
+ "kweaver context-loader config remove <name>",
94
+ "kweaver context-loader config show",
95
+ ],
96
+ flags: [
97
+ { name: "--kn-id <id>", desc: "KN id to save (for `config set`)" },
98
+ { name: "--name <name>", desc: "Saved config name (for `config set`; default: default)" },
99
+ ],
100
+ inheritedFlags: "--base-url, --token, --user, --help",
101
+ examples: [
102
+ "kweaver context-loader tools d5iv6c9818p72mpje8pg",
103
+ "kweaver context-loader tools --kn-id d5iv6c9818p72mpje8pg",
104
+ ],
105
+ learnMore: [
106
+ "Deprecated: runtime commands should pass <kn-id> as the first positional or use --kn-id/-k",
107
+ "Disabled in stateless mode (--token); will be removed in a future release",
108
+ ],
109
+ });
110
+ const CONTEXT_LOADER_SUBCOMMAND_HELP = {
111
+ tools: `kweaver context-loader tools
112
+
113
+ Usage:
114
+ kweaver context-loader tools <kn-id> [--cursor <cursor>] [--pretty]
115
+ kweaver context-loader tools --kn-id <kn-id> [--cursor <cursor>] [--pretty]
116
+
117
+ Description:
118
+ List MCP tools exposed by the context-loader server for the selected KN.
119
+
120
+ Arguments:
121
+ <kn-id> KN ID. Prefer the first positional argument.
122
+
123
+ Options:
124
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
125
+ --cursor <cursor>, -c <cursor>
126
+ Cursor returned by a previous page.
127
+ --pretty Pretty-print JSON output. This is the default.
128
+ --help, -h Show this help and exit before auth/config/network checks.
129
+
130
+ Output shape:
131
+ MCP tools/list response, usually { "tools": [...], "nextCursor": "..." }.
132
+
133
+ Examples:
134
+ kweaver context-loader tools d5iv6c9818p72mpje8pg
135
+ kweaver context-loader tools --kn-id d5iv6c9818p72mpje8pg --cursor next-page`,
136
+ resources: `kweaver context-loader resources
137
+
138
+ Usage:
139
+ kweaver context-loader resources <kn-id> [--cursor <cursor>] [--pretty]
140
+
141
+ Description:
142
+ List context-loader MCP resources for the selected KN.
143
+
144
+ Arguments:
145
+ <kn-id> KN ID. Prefer the first positional argument.
146
+
147
+ Options:
148
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
149
+ --cursor <cursor>, -c <cursor>
150
+ Cursor returned by a previous page.
151
+ --pretty Pretty-print JSON output. This is the default.
152
+ --help, -h Show this help and exit before auth/config/network checks.
153
+
154
+ Output shape:
155
+ MCP resources/list response, usually { "resources": [...], "nextCursor": "..." }.
156
+
157
+ Examples:
158
+ kweaver context-loader resources d5iv6c9818p72mpje8pg`,
159
+ resource: `kweaver context-loader resource
160
+
161
+ Usage:
162
+ kweaver context-loader resource <kn-id> <uri> [--pretty]
163
+
164
+ Description:
165
+ Read one context-loader MCP resource by URI.
166
+
167
+ Arguments:
168
+ <kn-id> KN ID. Prefer the first positional argument.
169
+ <uri> MCP resource URI returned by resources/list.
170
+
171
+ Options:
172
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
173
+ --pretty Pretty-print JSON output. This is the default.
174
+ --help, -h Show this help and exit before auth/config/network checks.
175
+
176
+ Output shape:
177
+ MCP resources/read response for the requested URI.
178
+
179
+ Examples:
180
+ kweaver context-loader resource d5iv6c9818p72mpje8pg kweaver://resource/example`,
181
+ templates: `kweaver context-loader templates
182
+
183
+ Usage:
184
+ kweaver context-loader templates <kn-id> [--cursor <cursor>] [--pretty]
185
+
186
+ Description:
187
+ List MCP resource templates exposed by context-loader.
188
+
189
+ Arguments:
190
+ <kn-id> KN ID. Prefer the first positional argument.
191
+
192
+ Options:
193
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
194
+ --cursor <cursor>, -c <cursor>
195
+ Cursor returned by a previous page.
196
+ --pretty Pretty-print JSON output. This is the default.
197
+ --help, -h Show this help and exit before auth/config/network checks.
198
+
199
+ Output shape:
200
+ MCP resources/templates/list response.
201
+
202
+ Examples:
203
+ kweaver context-loader templates d5iv6c9818p72mpje8pg`,
204
+ prompts: `kweaver context-loader prompts
205
+
206
+ Usage:
207
+ kweaver context-loader prompts <kn-id> [--cursor <cursor>] [--pretty]
208
+
209
+ Description:
210
+ List MCP prompts exposed by context-loader.
211
+
212
+ Arguments:
213
+ <kn-id> KN ID. Prefer the first positional argument.
214
+
215
+ Options:
216
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
217
+ --cursor <cursor>, -c <cursor>
218
+ Cursor returned by a previous page.
219
+ --pretty Pretty-print JSON output. This is the default.
220
+ --help, -h Show this help and exit before auth/config/network checks.
221
+
222
+ Output shape:
223
+ MCP prompts/list response.
224
+
225
+ Examples:
226
+ kweaver context-loader prompts d5iv6c9818p72mpje8pg`,
227
+ prompt: `kweaver context-loader prompt
228
+
229
+ Usage:
230
+ kweaver context-loader prompt <kn-id> <name> [--args '<json>'] [--pretty]
231
+
232
+ Description:
233
+ Get a named MCP prompt from context-loader.
234
+
235
+ Arguments:
236
+ <kn-id> KN ID. Prefer the first positional argument.
237
+ <name> Prompt name.
238
+
239
+ Options:
240
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
241
+ --args '<json>', -a '<json>' Optional prompt arguments as a JSON object.
242
+ --pretty Pretty-print JSON output. This is the default.
243
+ --help, -h Show this help and exit before auth/config/network checks.
244
+
245
+ Input JSON shape:
246
+ --args must be a JSON object, for example {"topic":"profit margin"}.
247
+
248
+ Output shape:
249
+ MCP prompts/get response.
250
+
251
+ Examples:
252
+ kweaver context-loader prompt d5iv6c9818p72mpje8pg explain --args '{"topic":"利润率"}'`,
253
+ "search-schema": `kweaver context-loader search-schema
254
+
255
+ Usage:
256
+ kweaver context-loader search-schema <kn-id> <query> [options]
257
+ kweaver context-loader search-schema --kn-id <kn-id> <query> [options]
258
+
259
+ Description:
260
+ Call the context-loader MCP search_schema tool. Use it to search schema concepts
261
+ such as object types, relation types, action types, metric types, and optional
262
+ concept_group scoped schemas.
263
+
264
+ Arguments:
265
+ <kn-id> Recommended KN selector. Alternative: --kn-id <kn-id>.
266
+ If omitted, falls back to deprecated saved config when present.
267
+ <query> Required. Natural-language query text.
268
+
269
+ Options:
270
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
271
+ --format json|toon, -f json|toon
272
+ Response format requested from search_schema.
273
+ Default: json.
274
+ --scope object,relation,action,metric
275
+ Comma-separated schema type filters.
276
+ Default: not sent; server default applies.
277
+ --concept-groups <ids> Comma-separated concept_group IDs.
278
+ Default: not sent; no concept_group filter.
279
+ --concept-group <ids> Alias of --concept-groups.
280
+ --max <n>, -n <n> Maximum concepts to request.
281
+ Default: not sent; server default applies.
282
+ --brief Request brief schema output.
283
+ Default: not sent.
284
+ --no-rerank Disable server-side rerank.
285
+ Default: not sent; server default applies.
286
+ --pretty Pretty-print JSON output. This is the default.
287
+ Default: enabled.
288
+ --help, -h Show this help and exit before auth/config/network checks.
289
+
290
+ MCP arguments:
291
+ {
292
+ "query": "<query>",
293
+ "response_format": "json|toon",
294
+ "search_scope": {
295
+ "include_object_types": true,
296
+ "include_relation_types": true,
297
+ "include_action_types": true,
298
+ "include_metric_types": true,
299
+ "concept_groups": ["group_id"]
300
+ },
301
+ "max_concepts": 5,
302
+ "schema_brief": true,
303
+ "enable_rerank": false
304
+ }
305
+
306
+ Concept group semantics:
307
+ --concept-groups maps to search_scope.concept_groups. It limits schema discovery
308
+ to the selected concept_group definitions and is not an instance-data filter.
309
+
310
+ Output shape:
311
+ MCP tools/call response for search_schema. The content may be structured JSON or
312
+ text depending on --format and server behavior.
313
+
314
+ Equivalent tool-call:
315
+ kweaver context-loader tool-call <kn-id> search_schema --args '{"query":"需求","search_scope":{"concept_groups":["group_id"]}}'
316
+
317
+ Examples:
318
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "需求"
319
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "利润率" --scope object,metric --concept-groups finance --max 5 --brief
320
+ kweaver context-loader search-schema --kn-id d5iv6c9818p72mpje8pg "需求" --format toon --no-rerank
321
+
322
+ Notes:
323
+ kn-search and kn-schema-search are deprecated. Use context-loader search-schema instead.`,
324
+ "tool-call": `kweaver context-loader tool-call
325
+
326
+ Usage:
327
+ kweaver context-loader tool-call <kn-id> <name> --args '<json>' [--pretty]
328
+
329
+ Description:
330
+ Call any context-loader MCP tool by name. Prefer dedicated CLI wrappers such as
331
+ search-schema when they exist because their arguments are easier to inspect.
332
+
333
+ Arguments:
334
+ <kn-id> KN ID. Prefer the first positional argument.
335
+ <name> MCP tool name, for example search_schema.
336
+
337
+ Options:
338
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
339
+ --args '<json>', -a '<json>' Tool arguments as a JSON object.
340
+ --pretty Pretty-print JSON output. This is the default.
341
+ --help, -h Show this help and exit before auth/config/network checks.
342
+
343
+ Input JSON shape:
344
+ --args must be a JSON object accepted by the selected MCP tool.
345
+
346
+ Output shape:
347
+ MCP tools/call response, usually { "content": [...], "isError": false }.
348
+
349
+ Examples:
350
+ kweaver context-loader tool-call d5iv6c9818p72mpje8pg search_schema --args '{"query":"需求"}'
351
+ kweaver context-loader tool-call d5iv6c9818p72mpje8pg query_object_instance --args '{"query":{"ot_id":"material"}}'`,
352
+ "query-object-instance": `kweaver context-loader query-object-instance
353
+
354
+ Usage:
355
+ kweaver context-loader query-object-instance <kn-id> '<json>' [--pretty]
356
+
357
+ Description:
358
+ Query object instances from a selected KN object type. This is an instance-data
359
+ query and is separate from schema discovery.
360
+
361
+ Arguments:
362
+ <kn-id> KN ID. Prefer the first positional argument.
363
+ <json> Query payload as a JSON object.
364
+
365
+ Options:
366
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
367
+ --pretty Pretty-print JSON output. This is the default.
368
+ --help, -h Show this help and exit before auth/config/network checks.
369
+
370
+ Input JSON shape:
371
+ {
372
+ "ot_id": "object_type_id",
373
+ "condition": {
374
+ "property": "name",
375
+ "operator": "contains",
376
+ "value_from": "const",
377
+ "value": "需求"
378
+ },
379
+ "limit": 20
380
+ }
381
+
382
+ Output shape:
383
+ MCP query_object_instance tool response, usually instance rows plus metadata.
384
+
385
+ Examples:
386
+ kweaver context-loader query-object-instance d5iv6c9818p72mpje8pg '{"ot_id":"material","condition":{"property":"name","operator":"contains","value_from":"const","value":"铜"}}'`,
387
+ "query-instance-subgraph": `kweaver context-loader query-instance-subgraph
388
+
389
+ Usage:
390
+ kweaver context-loader query-instance-subgraph <kn-id> '<json>' [--pretty]
391
+
392
+ Description:
393
+ Query a subgraph around selected object instances.
394
+
395
+ Arguments:
396
+ <kn-id> KN ID. Prefer the first positional argument.
397
+ <json> Subgraph query payload as a JSON object.
398
+
399
+ Options:
400
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
401
+ --pretty Pretty-print JSON output. This is the default.
402
+ --help, -h Show this help and exit before auth/config/network checks.
403
+
404
+ Input JSON shape:
405
+ {
406
+ "relation_type_paths": [
407
+ {
408
+ "rt_id": "relation_type_id",
409
+ "from": {
410
+ "ot_id": "source_object_type_id",
411
+ "condition": {
412
+ "property": "name",
413
+ "operator": "contains",
414
+ "value_from": "const",
415
+ "value": "需求"
416
+ }
417
+ },
418
+ "to": {
419
+ "ot_id": "target_object_type_id"
420
+ }
421
+ }
422
+ ]
423
+ }
424
+
425
+ Output shape:
426
+ MCP query_instance_subgraph tool response with nodes and relations.
427
+
428
+ Examples:
429
+ kweaver context-loader query-instance-subgraph d5iv6c9818p72mpje8pg '{"relation_type_paths":[{"rt_id":"depends_on","from":{"ot_id":"requirement","condition":{"property":"name","operator":"contains","value_from":"const","value":"需求"}},"to":{"ot_id":"task"}}]}'`,
430
+ "get-logic-properties": `kweaver context-loader get-logic-properties
431
+
432
+ Usage:
433
+ kweaver context-loader get-logic-properties <kn-id> '<json>' [--pretty]
434
+
435
+ Description:
436
+ Layer 3-style instance enrichment: get calculated logic property values for
437
+ object instances.
438
+
439
+ Arguments:
440
+ <kn-id> KN ID. Prefer the first positional argument.
441
+ <json> Request payload as a JSON object.
442
+
443
+ Options:
444
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
445
+ --pretty Pretty-print JSON output. This is the default.
446
+ --help, -h Show this help and exit before auth/config/network checks.
447
+
448
+ Input JSON shape:
449
+ {
450
+ "ot_id": "object_type_id",
451
+ "query": "natural-language query",
452
+ "_instance_identities": [{"id": "instance_id"}],
453
+ "properties": ["logic_property_id"],
454
+ "additional_context": "optional context"
455
+ }
456
+
457
+ Output shape:
458
+ MCP get_logic_properties tool response with property values.
459
+
460
+ Examples:
461
+ kweaver context-loader get-logic-properties d5iv6c9818p72mpje8pg '{"ot_id":"material","query":"风险评分","_instance_identities":[{"id":"m1"}],"properties":["risk_score"]}'`,
462
+ "get-action-info": `kweaver context-loader get-action-info
463
+
464
+ Usage:
465
+ kweaver context-loader get-action-info <kn-id> '<json>' [--pretty]
466
+
467
+ Description:
468
+ Layer 3-style instance action inspection: get action metadata and executable
469
+ information for selected schema or instance context.
470
+
471
+ Arguments:
472
+ <kn-id> KN ID. Prefer the first positional argument.
473
+ <json> Request payload as a JSON object.
474
+
475
+ Options:
476
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
477
+ --pretty Pretty-print JSON output. This is the default.
478
+ --help, -h Show this help and exit before auth/config/network checks.
479
+
480
+ Input JSON shape:
481
+ {
482
+ "at_id": "action_type_id",
483
+ "_instance_identity": {"id": "instance_id"}
484
+ }
485
+
486
+ Output shape:
487
+ MCP get_action_info tool response.
488
+
489
+ Examples:
490
+ kweaver context-loader get-action-info d5iv6c9818p72mpje8pg '{"at_id":"approve","_instance_identity":{"id":"r1"}}'`,
491
+ "find-skills": `kweaver context-loader find-skills
492
+
493
+ Usage:
494
+ kweaver context-loader find-skills <kn-id> <ot_id> [options]
495
+
496
+ Description:
497
+ Layer 3-style instance action discovery: recall skills related to an object type.
498
+
499
+ Arguments:
500
+ <kn-id> KN ID. Prefer the first positional argument.
501
+ <ot_id> Object type ID.
502
+
503
+ Options:
504
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
505
+ --query <text>, -q <text> Optional skill search query.
506
+ --top-k <n>, -n <n> Maximum skills to return.
507
+ --instance-identities '<json>', -i '<json>'
508
+ Optional JSON array of instance identities.
509
+ --format json|toon, -f json|toon
510
+ Response format requested from the server.
511
+ --pretty Pretty-print JSON output. This is the default.
512
+ --help, -h Show this help and exit before auth/config/network checks.
513
+
514
+ Input JSON shape:
515
+ Positional and option values are converted to:
516
+ {
517
+ "object_type_id": "object_type_id",
518
+ "skill_query": "optional query",
519
+ "top_k": 10,
520
+ "instance_identities": [{"id": "instance_id"}],
521
+ "response_format": "json|toon"
522
+ }
523
+
524
+ Output shape:
525
+ MCP find_skills tool response with matched skills.
526
+
527
+ Examples:
528
+ kweaver context-loader find-skills d5iv6c9818p72mpje8pg requirement --query "review requirement quality" --top-k 5`,
529
+ "kn-search": `kweaver context-loader kn-search [deprecated]
530
+
531
+ Usage:
532
+ kweaver context-loader kn-search <kn-id> <query> [--only-schema] [--pretty]
533
+
534
+ Description:
535
+ [deprecated] Legacy KN semantic search wrapper.
536
+
537
+ Arguments:
538
+ <kn-id> KN ID. Prefer the first positional argument.
539
+ <query> Search query text.
540
+
541
+ Options:
542
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
543
+ --only-schema Return schema-oriented results when supported.
544
+ --pretty Pretty-print JSON output. This is the default.
545
+ --help, -h Show this help and exit before auth/config/network checks.
546
+
547
+ Output shape:
548
+ Legacy semantic search response.
549
+
550
+ Examples:
551
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "需求"
552
+
553
+ Notes:
554
+ Use context-loader search-schema instead. kn-search is deprecated.`,
555
+ "kn-schema-search": `kweaver context-loader kn-schema-search [deprecated]
556
+
557
+ Usage:
558
+ kweaver context-loader kn-schema-search <kn-id> <query> [--max <n>] [--pretty]
559
+
560
+ Description:
561
+ [deprecated] Legacy schema search wrapper.
562
+
563
+ Arguments:
564
+ <kn-id> KN ID. Prefer the first positional argument.
565
+ <query> Search query text.
566
+
567
+ Options:
568
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
569
+ --max <n>, -n <n> Maximum results.
570
+ --pretty Pretty-print JSON output. This is the default.
571
+ --help, -h Show this help and exit before auth/config/network checks.
572
+
573
+ Output shape:
574
+ Legacy schema search response.
575
+
576
+ Examples:
577
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "需求"
578
+
579
+ Notes:
580
+ Use context-loader search-schema instead. kn-schema-search is deprecated.`,
581
+ config: CONTEXT_LOADER_CONFIG_HELP,
582
+ };
583
+ function hasHelpFlag(args) {
584
+ return args.includes("--help") || args.includes("-h");
585
+ }
586
+ function printContextLoaderHelp(topic) {
587
+ if (!topic || topic === "--help" || topic === "-h") {
588
+ console.log(CONTEXT_LOADER_HELP);
589
+ return 0;
590
+ }
591
+ const help = CONTEXT_LOADER_SUBCOMMAND_HELP[topic];
592
+ if (!help) {
593
+ console.error(`Unknown context-loader help topic: ${topic}`);
594
+ console.error(`Available topics: ${Object.keys(CONTEXT_LOADER_SUBCOMMAND_HELP).sort().join(", ")}`);
595
+ return 1;
596
+ }
597
+ console.log(help);
598
+ return 0;
599
+ }
11
600
  function ensureContextLoaderConfig(knIdOverride) {
12
601
  const active = resolveActivePlatform();
13
602
  if (!active) {
@@ -87,41 +676,13 @@ function formatOutput(value, pretty) {
87
676
  export async function runContextLoaderCommand(args) {
88
677
  const [subcommand, ...rest] = args;
89
678
  if (!subcommand || subcommand === "--help" || subcommand === "-h") {
90
- console.log(`kweaver context-loader
91
-
92
- KN selection (for runtime subcommands below):
93
- Pass <kn-id> as the FIRST positional, e.g. \`kweaver context-loader tools <kn-id>\`,
94
- or use the global \`--kn-id <id>\` / \`-k <id>\` flag. When omitted, falls back to
95
- the deprecated saved config managed by \`kweaver context-loader config\`.
96
-
97
- Subcommands:
98
- config set --kn-id <id> [--name n] [deprecated] Add or update kn config
99
- config use <name> [deprecated] Switch current config
100
- config list [deprecated] List all configs and current
101
- config remove <name> [deprecated] Remove a config
102
- config show [deprecated] Show current config (knId + mcpUrl)
103
- tools <kn-id> tools/list - list available tools
104
- resources <kn-id> resources/list - list resources
105
- resource <kn-id> <uri> resources/read - read resource by URI
106
- templates <kn-id> resources/templates/list - list resource templates
107
- prompts <kn-id> prompts/list - list prompts
108
- prompt <kn-id> <name> [--args json] prompts/get - get prompt by name
109
- search-schema <kn-id> <query> [opts] MCP search_schema (object/relation/action/metric)
110
- tool-call <kn-id> <name> --args '<json>' MCP tools/call for any server tool
111
- kn-search <kn-id> <query> [--only-schema] Compatibility: HTTP kn_search
112
- kn-schema-search <kn-id> <query> [--max N] Compatibility: HTTP semantic-search
113
- query-object-instance <kn-id> <json> Layer 2: Query instances
114
- query-instance-subgraph <kn-id> <json> Layer 2: Query subgraph
115
- get-logic-properties <kn-id> <json> Layer 3: Get logic property values
116
- get-action-info <kn-id> <json> Layer 3: Get action info
117
- find-skills <kn-id> <ot_id> [options] Layer 3: Recall skills for an object type
118
-
119
- Examples:
120
- kweaver context-loader tools d5iv6c9818p72mpje8pg
121
- kweaver context-loader search-schema d5iv6c9818p72mpje8pg "利润率" --scope object,metric --max 5
122
- kweaver context-loader tool-call d5iv6c9818p72mpje8pg search_schema --args '{"query":"利润率"}'
123
- kweaver context-loader kn-search d5iv6c9818p72mpje8pg "高血压 治疗 药品" --only-schema --pretty`);
124
- return 0;
679
+ return printContextLoaderHelp();
680
+ }
681
+ if (subcommand === "help") {
682
+ return printContextLoaderHelp(rest[0]);
683
+ }
684
+ if (hasHelpFlag(rest)) {
685
+ return printContextLoaderHelp(subcommand);
125
686
  }
126
687
  if (subcommand === "config") {
127
688
  return runConfigCommand(rest);
@@ -189,17 +750,7 @@ Examples:
189
750
  async function runConfigCommand(args) {
190
751
  const [action, ...rest] = args;
191
752
  if (!action || action === "--help" || action === "-h") {
192
- console.log(`kweaver context-loader config [deprecated]
193
-
194
- Subcommands:
195
- set --kn-id <id> [--name <name>] Add or update kn config (default name: default)
196
- use <name> Switch current config
197
- list List all configs and current
198
- remove <name> Remove a config
199
- show Show current config (knId + mcpUrl)
200
-
201
- Note: this command group is deprecated and will be removed in a future release.
202
- It is disabled entirely in stateless mode (\`--token\`).`);
753
+ console.log(CONTEXT_LOADER_CONFIG_HELP);
203
754
  return 0;
204
755
  }
205
756
  // Stateless mode (`--token`) does not support any context-loader config
@@ -419,6 +970,18 @@ function parseSearchSchemaScope(raw) {
419
970
  }
420
971
  return scope;
421
972
  }
973
+ function parseConceptGroups(raw) {
974
+ const seen = new Set();
975
+ const groups = [];
976
+ for (const item of raw.split(",")) {
977
+ const value = item.trim();
978
+ if (!value || seen.has(value))
979
+ continue;
980
+ seen.add(value);
981
+ groups.push(value);
982
+ }
983
+ return groups;
984
+ }
422
985
  async function runSearchSchema(options, args, pretty) {
423
986
  let query;
424
987
  let responseFormat;
@@ -426,12 +989,13 @@ async function runSearchSchema(options, args, pretty) {
426
989
  let maxConcepts;
427
990
  let schemaBrief;
428
991
  let enableRerank;
992
+ let conceptGroups;
429
993
  for (let i = 0; i < args.length; i += 1) {
430
994
  const arg = args[i];
431
995
  if ((arg === "--format" || arg === "-f") && args[i + 1]) {
432
996
  const value = args[i + 1];
433
997
  if (value !== "json" && value !== "toon") {
434
- console.error("Usage: kweaver context-loader search-schema <query> [--format json|toon] [--scope object,relation,action,metric] [--max N] [--brief] [--no-rerank]");
998
+ console.error("Usage: kweaver context-loader search-schema <query> [--format json|toon] [--scope object,relation,action,metric] [--concept-groups ids] [--max N] [--brief] [--no-rerank]");
435
999
  return 1;
436
1000
  }
437
1001
  responseFormat = value;
@@ -447,6 +1011,10 @@ async function runSearchSchema(options, args, pretty) {
447
1011
  }
448
1012
  i += 1;
449
1013
  }
1014
+ else if ((arg === "--concept-groups" || arg === "--concept-group") && args[i + 1]) {
1015
+ conceptGroups = parseConceptGroups(args[i + 1]);
1016
+ i += 1;
1017
+ }
450
1018
  else if ((arg === "--max" || arg === "-n") && args[i + 1]) {
451
1019
  maxConcepts = parseInt(args[i + 1], 10);
452
1020
  if (!Number.isFinite(maxConcepts)) {
@@ -466,9 +1034,15 @@ async function runSearchSchema(options, args, pretty) {
466
1034
  }
467
1035
  }
468
1036
  if (!query) {
469
- console.error("Usage: kweaver context-loader search-schema <query> [--format json|toon] [--scope object,relation,action,metric] [--max N] [--brief] [--no-rerank]");
1037
+ console.error("Usage: kweaver context-loader search-schema <query> [--format json|toon] [--scope object,relation,action,metric] [--concept-groups ids] [--max N] [--brief] [--no-rerank]");
470
1038
  return 1;
471
1039
  }
1040
+ if (conceptGroups !== undefined) {
1041
+ searchScope = {
1042
+ ...(searchScope ?? {}),
1043
+ concept_groups: conceptGroups,
1044
+ };
1045
+ }
472
1046
  const result = await searchSchema(options, {
473
1047
  query,
474
1048
  response_format: responseFormat,
@@ -529,6 +1103,7 @@ async function runKnSearch(options, args, pretty) {
529
1103
  console.error("Usage: kweaver context-loader kn-search <kn-id> <query> [--only-schema]");
530
1104
  return 1;
531
1105
  }
1106
+ console.error(DEPRECATED_KN_SEARCH_MESSAGE);
532
1107
  const raw = await knSearchHttp({
533
1108
  baseUrl: options.baseUrl,
534
1109
  accessToken: options.accessToken,
@@ -555,9 +1130,10 @@ async function runKnSchemaSearch(options, args, pretty) {
555
1130
  }
556
1131
  }
557
1132
  if (!query) {
558
- console.error("Usage: kweaver context-loader kn-schema-search <query> [--max N]");
1133
+ console.error("Usage: kweaver context-loader kn-schema-search <kn-id> <query> [--max N]");
559
1134
  return 1;
560
1135
  }
1136
+ console.error(DEPRECATED_KN_SCHEMA_SEARCH_MESSAGE);
561
1137
  const raw = await semanticSearch({
562
1138
  baseUrl: options.baseUrl,
563
1139
  accessToken: options.accessToken,