@kweaver-ai/kweaver-sdk 0.8.1 → 0.8.2

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 (183) hide show
  1. package/README.md +19 -5
  2. package/README.zh.md +19 -5
  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/semantic-search.d.ts +5 -0
  20. package/dist/api/semantic-search.js +5 -0
  21. package/dist/api/skills.d.ts +75 -2
  22. package/dist/api/skills.js +108 -12
  23. package/dist/api/trace.d.ts +5 -0
  24. package/dist/api/trace.js +4 -0
  25. package/dist/cli.js +7 -5
  26. package/dist/commands/agent/mode.d.ts +6 -0
  27. package/dist/commands/agent/mode.js +75 -0
  28. package/dist/commands/agent.js +101 -29
  29. package/dist/commands/context-loader.js +608 -38
  30. package/dist/commands/skill.d.ts +21 -1
  31. package/dist/commands/skill.js +389 -1
  32. package/dist/commands/trace.d.ts +26 -1
  33. package/dist/commands/trace.js +515 -15
  34. package/dist/index.d.ts +2 -2
  35. package/dist/index.js +1 -1
  36. package/dist/resources/bkn.d.ts +5 -0
  37. package/dist/resources/bkn.js +5 -0
  38. package/dist/resources/skills.d.ts +17 -1
  39. package/dist/resources/skills.js +32 -1
  40. package/dist/trace-ai/diagnose/agent-binding.d.ts +67 -0
  41. package/dist/trace-ai/diagnose/agent-binding.js +257 -0
  42. package/dist/trace-ai/diagnose/builtin-rules/tool-retry-intent-mismatch.yaml +68 -0
  43. package/dist/trace-ai/diagnose/index.d.ts +32 -0
  44. package/dist/trace-ai/diagnose/index.js +246 -0
  45. package/dist/trace-ai/diagnose/output-schema-converter.d.ts +24 -0
  46. package/dist/trace-ai/diagnose/output-schema-converter.js +81 -0
  47. package/dist/trace-ai/diagnose/query-extractor.d.ts +14 -0
  48. package/dist/trace-ai/diagnose/query-extractor.js +45 -0
  49. package/dist/trace-ai/diagnose/report-assembler.d.ts +31 -0
  50. package/dist/{trace-core → trace-ai}/diagnose/report-assembler.js +19 -9
  51. package/dist/trace-ai/diagnose/report-markdown.d.ts +18 -0
  52. package/dist/trace-ai/diagnose/report-markdown.js +192 -0
  53. package/dist/{trace-core → trace-ai}/diagnose/rule-loader.js +42 -8
  54. package/dist/{trace-core → trace-ai}/diagnose/schemas.d.ts +77 -2
  55. package/dist/trace-ai/diagnose/schemas.js +154 -0
  56. package/dist/trace-ai/diagnose/signal-probe.d.ts +17 -0
  57. package/dist/trace-ai/diagnose/signal-probe.js +39 -0
  58. package/dist/trace-ai/diagnose/synthesizer-agent.d.ts +40 -0
  59. package/dist/trace-ai/diagnose/synthesizer-agent.js +158 -0
  60. package/dist/{trace-core → trace-ai}/diagnose/trace-shaper.js +1 -0
  61. package/dist/{trace-core → trace-ai}/diagnose/types.d.ts +55 -6
  62. package/dist/trace-ai/eval-set/assertion-evaluator.d.ts +29 -0
  63. package/dist/trace-ai/eval-set/assertion-evaluator.js +100 -0
  64. package/dist/trace-ai/eval-set/builder.d.ts +36 -0
  65. package/dist/trace-ai/eval-set/builder.js +126 -0
  66. package/dist/trace-ai/eval-set/index.d.ts +15 -0
  67. package/dist/trace-ai/eval-set/index.js +10 -0
  68. package/dist/trace-ai/eval-set/output-writer.d.ts +27 -0
  69. package/dist/trace-ai/eval-set/output-writer.js +126 -0
  70. package/dist/trace-ai/eval-set/query-picker.d.ts +37 -0
  71. package/dist/trace-ai/eval-set/query-picker.js +147 -0
  72. package/dist/trace-ai/eval-set/redactor.d.ts +42 -0
  73. package/dist/trace-ai/eval-set/redactor.js +133 -0
  74. package/dist/trace-ai/eval-set/rubric-templates/answer-match-reference.prompt.md +19 -0
  75. package/dist/trace-ai/eval-set/schemas.d.ts +136 -0
  76. package/dist/trace-ai/eval-set/schemas.js +130 -0
  77. package/dist/trace-ai/eval-set/semantic-match-provider.d.ts +33 -0
  78. package/dist/trace-ai/eval-set/semantic-match-provider.js +51 -0
  79. package/dist/trace-ai/eval-set/test-runner.d.ts +34 -0
  80. package/dist/trace-ai/eval-set/test-runner.js +153 -0
  81. package/dist/trace-ai/eval-set/types.d.ts +46 -0
  82. package/dist/trace-ai/eval-set/types.js +8 -0
  83. package/dist/trace-ai/exp/bundle-writer.d.ts +10 -0
  84. package/dist/trace-ai/exp/bundle-writer.js +54 -0
  85. package/dist/trace-ai/exp/claude-binary.d.ts +5 -0
  86. package/dist/trace-ai/exp/claude-binary.js +30 -0
  87. package/dist/trace-ai/exp/coordinator.d.ts +45 -0
  88. package/dist/trace-ai/exp/coordinator.js +203 -0
  89. package/dist/trace-ai/exp/eval-runner.d.ts +14 -0
  90. package/dist/trace-ai/exp/eval-runner.js +47 -0
  91. package/dist/trace-ai/exp/exp-store/abort-signal.d.ts +3 -0
  92. package/dist/trace-ai/exp/exp-store/abort-signal.js +27 -0
  93. package/dist/trace-ai/exp/exp-store/candidate-lineage-yaml.d.ts +4 -0
  94. package/dist/trace-ai/exp/exp-store/candidate-lineage-yaml.js +37 -0
  95. package/dist/trace-ai/exp/exp-store/events-jsonl.d.ts +17 -0
  96. package/dist/trace-ai/exp/exp-store/events-jsonl.js +60 -0
  97. package/dist/trace-ai/exp/exp-store/exp-registry.d.ts +6 -0
  98. package/dist/trace-ai/exp/exp-store/exp-registry.js +41 -0
  99. package/dist/trace-ai/exp/exp-store/index.d.ts +46 -0
  100. package/dist/trace-ai/exp/exp-store/index.js +59 -0
  101. package/dist/trace-ai/exp/exp-store/lock.d.ts +3 -0
  102. package/dist/trace-ai/exp/exp-store/lock.js +73 -0
  103. package/dist/trace-ai/exp/exp-store/mission-md.d.ts +3 -0
  104. package/dist/trace-ai/exp/exp-store/mission-md.js +37 -0
  105. package/dist/trace-ai/exp/exp-store/readme-template.d.ts +5 -0
  106. package/dist/trace-ai/exp/exp-store/readme-template.js +25 -0
  107. package/dist/trace-ai/exp/exp-store/round-yaml.d.ts +3 -0
  108. package/dist/trace-ai/exp/exp-store/round-yaml.js +33 -0
  109. package/dist/trace-ai/exp/index.d.ts +8 -0
  110. package/dist/trace-ai/exp/index.js +238 -0
  111. package/dist/trace-ai/exp/info.d.ts +35 -0
  112. package/dist/trace-ai/exp/info.js +120 -0
  113. package/dist/trace-ai/exp/patch/agent-config.d.ts +1 -0
  114. package/dist/trace-ai/exp/patch/agent-config.js +26 -0
  115. package/dist/trace-ai/exp/patch/index.d.ts +2 -0
  116. package/dist/trace-ai/exp/patch/index.js +13 -0
  117. package/dist/trace-ai/exp/patch/skill.d.ts +1 -0
  118. package/dist/trace-ai/exp/patch/skill.js +24 -0
  119. package/dist/trace-ai/exp/providers/synthesizer-client.d.ts +14 -0
  120. package/dist/trace-ai/exp/providers/synthesizer-client.js +39 -0
  121. package/dist/trace-ai/exp/providers/triage-client.d.ts +19 -0
  122. package/dist/trace-ai/exp/providers/triage-client.js +51 -0
  123. package/dist/trace-ai/exp/schemas.d.ts +147 -0
  124. package/dist/trace-ai/exp/schemas.js +50 -0
  125. package/dist/trace-ai/exp/scoring.d.ts +2 -0
  126. package/dist/trace-ai/exp/scoring.js +46 -0
  127. package/dist/trace-ai/scan/aggregator.d.ts +20 -0
  128. package/dist/trace-ai/scan/aggregator.js +26 -0
  129. package/dist/trace-ai/scan/artifacts/paths.d.ts +12 -0
  130. package/dist/trace-ai/scan/artifacts/paths.js +18 -0
  131. package/dist/trace-ai/scan/artifacts/writer.d.ts +67 -0
  132. package/dist/trace-ai/scan/artifacts/writer.js +96 -0
  133. package/dist/trace-ai/scan/batched-rubric.d.ts +55 -0
  134. package/dist/trace-ai/scan/batched-rubric.js +159 -0
  135. package/dist/trace-ai/scan/cross-trace-synthesizer.d.ts +24 -0
  136. package/dist/trace-ai/scan/cross-trace-synthesizer.js +93 -0
  137. package/dist/trace-ai/scan/index.d.ts +31 -0
  138. package/dist/trace-ai/scan/index.js +390 -0
  139. package/dist/trace-ai/scan/prompts/builtin/cross-trace-synthesizer-v1.prompt.md +44 -0
  140. package/dist/trace-ai/scan/prompts/builtin/rubric-judge-batch-v1.prompt.md +44 -0
  141. package/dist/trace-ai/scan/runner.d.ts +25 -0
  142. package/dist/trace-ai/scan/runner.js +42 -0
  143. package/dist/trace-ai/scan/sampler.d.ts +18 -0
  144. package/dist/trace-ai/scan/sampler.js +81 -0
  145. package/dist/trace-ai/scan/scan-summary-markdown.d.ts +2 -0
  146. package/dist/trace-ai/scan/scan-summary-markdown.js +71 -0
  147. package/dist/trace-ai/scan/scan-summary-schema.d.ts +73 -0
  148. package/dist/trace-ai/scan/scan-summary-schema.js +61 -0
  149. package/dist/trace-ai/scan/single-agent-validator.d.ts +23 -0
  150. package/dist/trace-ai/scan/single-agent-validator.js +42 -0
  151. package/dist/trace-ai/scan/traces-list-parser.d.ts +15 -0
  152. package/dist/trace-ai/scan/traces-list-parser.js +46 -0
  153. package/package.json +2 -2
  154. package/dist/trace-core/diagnose/index.d.ts +0 -9
  155. package/dist/trace-core/diagnose/index.js +0 -104
  156. package/dist/trace-core/diagnose/report-assembler.d.ts +0 -12
  157. package/dist/trace-core/diagnose/schemas.js +0 -94
  158. package/dist/trace-core/diagnose/signal-probe.d.ts +0 -5
  159. package/dist/trace-core/diagnose/signal-probe.js +0 -21
  160. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.d.ts +0 -0
  161. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.js +0 -0
  162. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.yaml +0 -0
  163. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.d.ts +0 -0
  164. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.js +0 -0
  165. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.yaml +0 -0
  166. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/register.d.ts +0 -0
  167. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/register.js +0 -0
  168. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.d.ts +0 -0
  169. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.js +0 -0
  170. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.yaml +0 -0
  171. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.d.ts +0 -0
  172. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.js +0 -0
  173. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.yaml +0 -0
  174. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.d.ts +0 -0
  175. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.js +0 -0
  176. /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.yaml +0 -0
  177. /package/dist/{trace-core → trace-ai}/diagnose/predicate-registry.d.ts +0 -0
  178. /package/dist/{trace-core → trace-ai}/diagnose/predicate-registry.js +0 -0
  179. /package/dist/{trace-core → trace-ai}/diagnose/rule-loader.d.ts +0 -0
  180. /package/dist/{trace-core → trace-ai}/diagnose/synthesizer-template.d.ts +0 -0
  181. /package/dist/{trace-core → trace-ai}/diagnose/synthesizer-template.js +0 -0
  182. /package/dist/{trace-core → trace-ai}/diagnose/trace-shaper.d.ts +0 -0
  183. /package/dist/{trace-core → trace-ai}/diagnose/types.js +0 -0
@@ -8,6 +8,579 @@ const CONTEXT_LOADER_CONFIG_DEPRECATION = "[deprecated] `kweaver context-loader
8
8
  "`kweaver context-loader tools <kn-id>` (or use the `--kn-id <id>` flag).";
9
9
  const MCP_NOT_CONFIGURED = "Context-loader MCP is not configured. Run: kweaver context-loader config set --kn-id <kn-id>";
10
10
  const MCP_PATH = "/api/agent-retrieval/v1/mcp";
11
+ const DEPRECATED_KN_SEARCH_MESSAGE = "[deprecated] context-loader kn-search is deprecated. Use context-loader search-schema instead.";
12
+ const DEPRECATED_KN_SCHEMA_SEARCH_MESSAGE = "[deprecated] context-loader kn-schema-search is deprecated. Use context-loader search-schema instead.";
13
+ const CONTEXT_LOADER_HELP = `kweaver context-loader
14
+
15
+ USAGE
16
+ kweaver context-loader <subcommand> [flags]
17
+ kweaver context-loader help <subcommand>
18
+ kweaver context-loader --help
19
+ kweaver context-loader <subcommand> --help
20
+
21
+ KN SELECTION
22
+ Most runtime subcommands require a KN. Pass it as the first positional
23
+ argument or use --kn-id <id> / -k <id>. Omitting KN falls back to the
24
+ deprecated saved config managed by kweaver context-loader config.
25
+
26
+ RECOMMENDED FLOW
27
+ search-schema: Discover schema concepts
28
+ query-*: Query instances using discovered schema IDs
29
+ get-*/find-skills: Enrich instances or inspect actions
30
+ tool-call: Raw MCP debugging or unsupported tools only
31
+
32
+ SCHEMA DISCOVERY COMMANDS
33
+ search-schema: Search object/relation/action/metric schemas
34
+ kn-search: [deprecated] Use search-schema
35
+ kn-schema-search: [deprecated] Use search-schema
36
+
37
+ INSTANCE QUERY COMMANDS
38
+ query-object-instance: Query object instances
39
+ query-instance-subgraph: Query instance subgraphs
40
+
41
+ INSTANCE ENRICHMENT AND ACTION COMMANDS
42
+ get-logic-properties: Get calculated logic property values
43
+ get-action-info: Get action metadata and executable info
44
+ find-skills: Recall skills for an object type
45
+
46
+ ADVANCED MCP COMMANDS
47
+ tools: List MCP tools
48
+ resources: List MCP resources
49
+ resource: Read an MCP resource by URI
50
+ templates: List MCP resource templates
51
+ prompts: List MCP prompts
52
+ prompt: Get an MCP prompt by name
53
+ tool-call: Call any MCP tool directly
54
+
55
+ DEPRECATED CONFIGURATION COMMANDS
56
+ config: Manage legacy saved KN selection
57
+
58
+ FLAGS
59
+ -k, --kn-id <id> KN selector for runtime subcommands
60
+ --pretty Pretty-print JSON output
61
+ --compact Print compact JSON output
62
+ -h, --help Show help
63
+
64
+ LEARN MORE
65
+ Use \`kweaver context-loader <subcommand> --help\` for arguments, JSON shapes, and examples.`;
66
+ const CONTEXT_LOADER_CONFIG_HELP = `kweaver context-loader config [deprecated]
67
+
68
+ Usage:
69
+ kweaver context-loader config set --kn-id <id> [--name <name>]
70
+ kweaver context-loader config use <name>
71
+ kweaver context-loader config list
72
+ kweaver context-loader config remove <name>
73
+ kweaver context-loader config show
74
+
75
+ Description:
76
+ Manage the deprecated saved context-loader KN selection. Runtime commands should pass
77
+ <kn-id> as the first positional or use --kn-id <id> / -k <id> instead.
78
+
79
+ Arguments:
80
+ <name> Saved config name.
81
+
82
+ Options:
83
+ --kn-id <id> KN ID to save for config set.
84
+ --name <name> Saved config name for config set. Default: default.
85
+ --help, -h Show this help and exit before auth/config/network checks.
86
+
87
+ Examples:
88
+ kweaver context-loader tools d5iv6c9818p72mpje8pg
89
+ kweaver context-loader tools --kn-id d5iv6c9818p72mpje8pg
90
+
91
+ Notes:
92
+ This command group is deprecated and will be removed in a future release.
93
+ It is disabled in stateless mode (--token).`;
94
+ const CONTEXT_LOADER_SUBCOMMAND_HELP = {
95
+ tools: `kweaver context-loader tools
96
+
97
+ Usage:
98
+ kweaver context-loader tools <kn-id> [--cursor <cursor>] [--pretty]
99
+ kweaver context-loader tools --kn-id <kn-id> [--cursor <cursor>] [--pretty]
100
+
101
+ Description:
102
+ List MCP tools exposed by the context-loader server for the selected KN.
103
+
104
+ Arguments:
105
+ <kn-id> KN ID. Prefer the first positional argument.
106
+
107
+ Options:
108
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
109
+ --cursor <cursor>, -c <cursor>
110
+ Cursor returned by a previous page.
111
+ --pretty Pretty-print JSON output. This is the default.
112
+ --help, -h Show this help and exit before auth/config/network checks.
113
+
114
+ Output shape:
115
+ MCP tools/list response, usually { "tools": [...], "nextCursor": "..." }.
116
+
117
+ Examples:
118
+ kweaver context-loader tools d5iv6c9818p72mpje8pg
119
+ kweaver context-loader tools --kn-id d5iv6c9818p72mpje8pg --cursor next-page`,
120
+ resources: `kweaver context-loader resources
121
+
122
+ Usage:
123
+ kweaver context-loader resources <kn-id> [--cursor <cursor>] [--pretty]
124
+
125
+ Description:
126
+ List context-loader MCP resources for the selected KN.
127
+
128
+ Arguments:
129
+ <kn-id> KN ID. Prefer the first positional argument.
130
+
131
+ Options:
132
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
133
+ --cursor <cursor>, -c <cursor>
134
+ Cursor returned by a previous page.
135
+ --pretty Pretty-print JSON output. This is the default.
136
+ --help, -h Show this help and exit before auth/config/network checks.
137
+
138
+ Output shape:
139
+ MCP resources/list response, usually { "resources": [...], "nextCursor": "..." }.
140
+
141
+ Examples:
142
+ kweaver context-loader resources d5iv6c9818p72mpje8pg`,
143
+ resource: `kweaver context-loader resource
144
+
145
+ Usage:
146
+ kweaver context-loader resource <kn-id> <uri> [--pretty]
147
+
148
+ Description:
149
+ Read one context-loader MCP resource by URI.
150
+
151
+ Arguments:
152
+ <kn-id> KN ID. Prefer the first positional argument.
153
+ <uri> MCP resource URI returned by resources/list.
154
+
155
+ Options:
156
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
157
+ --pretty Pretty-print JSON output. This is the default.
158
+ --help, -h Show this help and exit before auth/config/network checks.
159
+
160
+ Output shape:
161
+ MCP resources/read response for the requested URI.
162
+
163
+ Examples:
164
+ kweaver context-loader resource d5iv6c9818p72mpje8pg kweaver://resource/example`,
165
+ templates: `kweaver context-loader templates
166
+
167
+ Usage:
168
+ kweaver context-loader templates <kn-id> [--cursor <cursor>] [--pretty]
169
+
170
+ Description:
171
+ List MCP resource templates exposed by context-loader.
172
+
173
+ Arguments:
174
+ <kn-id> KN ID. Prefer the first positional argument.
175
+
176
+ Options:
177
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
178
+ --cursor <cursor>, -c <cursor>
179
+ Cursor returned by a previous page.
180
+ --pretty Pretty-print JSON output. This is the default.
181
+ --help, -h Show this help and exit before auth/config/network checks.
182
+
183
+ Output shape:
184
+ MCP resources/templates/list response.
185
+
186
+ Examples:
187
+ kweaver context-loader templates d5iv6c9818p72mpje8pg`,
188
+ prompts: `kweaver context-loader prompts
189
+
190
+ Usage:
191
+ kweaver context-loader prompts <kn-id> [--cursor <cursor>] [--pretty]
192
+
193
+ Description:
194
+ List MCP prompts exposed by context-loader.
195
+
196
+ Arguments:
197
+ <kn-id> KN ID. Prefer the first positional argument.
198
+
199
+ Options:
200
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
201
+ --cursor <cursor>, -c <cursor>
202
+ Cursor returned by a previous page.
203
+ --pretty Pretty-print JSON output. This is the default.
204
+ --help, -h Show this help and exit before auth/config/network checks.
205
+
206
+ Output shape:
207
+ MCP prompts/list response.
208
+
209
+ Examples:
210
+ kweaver context-loader prompts d5iv6c9818p72mpje8pg`,
211
+ prompt: `kweaver context-loader prompt
212
+
213
+ Usage:
214
+ kweaver context-loader prompt <kn-id> <name> [--args '<json>'] [--pretty]
215
+
216
+ Description:
217
+ Get a named MCP prompt from context-loader.
218
+
219
+ Arguments:
220
+ <kn-id> KN ID. Prefer the first positional argument.
221
+ <name> Prompt name.
222
+
223
+ Options:
224
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
225
+ --args '<json>', -a '<json>' Optional prompt arguments as a JSON object.
226
+ --pretty Pretty-print JSON output. This is the default.
227
+ --help, -h Show this help and exit before auth/config/network checks.
228
+
229
+ Input JSON shape:
230
+ --args must be a JSON object, for example {"topic":"profit margin"}.
231
+
232
+ Output shape:
233
+ MCP prompts/get response.
234
+
235
+ Examples:
236
+ kweaver context-loader prompt d5iv6c9818p72mpje8pg explain --args '{"topic":"利润率"}'`,
237
+ "search-schema": `kweaver context-loader search-schema
238
+
239
+ Usage:
240
+ kweaver context-loader search-schema <kn-id> <query> [options]
241
+ kweaver context-loader search-schema --kn-id <kn-id> <query> [options]
242
+
243
+ Description:
244
+ Call the context-loader MCP search_schema tool. Use it to search schema concepts
245
+ such as object types, relation types, action types, metric types, and optional
246
+ concept_group scoped schemas.
247
+
248
+ Arguments:
249
+ <kn-id> Recommended KN selector. Alternative: --kn-id <kn-id>.
250
+ If omitted, falls back to deprecated saved config when present.
251
+ <query> Required. Natural-language query text.
252
+
253
+ Options:
254
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
255
+ --format json|toon, -f json|toon
256
+ Response format requested from search_schema.
257
+ Default: json.
258
+ --scope object,relation,action,metric
259
+ Comma-separated schema type filters.
260
+ Default: not sent; server default applies.
261
+ --concept-groups <ids> Comma-separated concept_group IDs.
262
+ Default: not sent; no concept_group filter.
263
+ --concept-group <ids> Alias of --concept-groups.
264
+ --max <n>, -n <n> Maximum concepts to request.
265
+ Default: not sent; server default applies.
266
+ --brief Request brief schema output.
267
+ Default: not sent.
268
+ --no-rerank Disable server-side rerank.
269
+ Default: not sent; server default applies.
270
+ --pretty Pretty-print JSON output. This is the default.
271
+ Default: enabled.
272
+ --help, -h Show this help and exit before auth/config/network checks.
273
+
274
+ MCP arguments:
275
+ {
276
+ "query": "<query>",
277
+ "response_format": "json|toon",
278
+ "search_scope": {
279
+ "include_object_types": true,
280
+ "include_relation_types": true,
281
+ "include_action_types": true,
282
+ "include_metric_types": true,
283
+ "concept_groups": ["group_id"]
284
+ },
285
+ "max_concepts": 5,
286
+ "schema_brief": true,
287
+ "enable_rerank": false
288
+ }
289
+
290
+ Concept group semantics:
291
+ --concept-groups maps to search_scope.concept_groups. It limits schema discovery
292
+ to the selected concept_group definitions and is not an instance-data filter.
293
+
294
+ Output shape:
295
+ MCP tools/call response for search_schema. The content may be structured JSON or
296
+ text depending on --format and server behavior.
297
+
298
+ Equivalent tool-call:
299
+ kweaver context-loader tool-call <kn-id> search_schema --args '{"query":"需求","search_scope":{"concept_groups":["group_id"]}}'
300
+
301
+ Examples:
302
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "需求"
303
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "利润率" --scope object,metric --concept-groups finance --max 5 --brief
304
+ kweaver context-loader search-schema --kn-id d5iv6c9818p72mpje8pg "需求" --format toon --no-rerank
305
+
306
+ Notes:
307
+ kn-search and kn-schema-search are deprecated. Use context-loader search-schema instead.`,
308
+ "tool-call": `kweaver context-loader tool-call
309
+
310
+ Usage:
311
+ kweaver context-loader tool-call <kn-id> <name> --args '<json>' [--pretty]
312
+
313
+ Description:
314
+ Call any context-loader MCP tool by name. Prefer dedicated CLI wrappers such as
315
+ search-schema when they exist because their arguments are easier to inspect.
316
+
317
+ Arguments:
318
+ <kn-id> KN ID. Prefer the first positional argument.
319
+ <name> MCP tool name, for example search_schema.
320
+
321
+ Options:
322
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
323
+ --args '<json>', -a '<json>' Tool arguments as a JSON object.
324
+ --pretty Pretty-print JSON output. This is the default.
325
+ --help, -h Show this help and exit before auth/config/network checks.
326
+
327
+ Input JSON shape:
328
+ --args must be a JSON object accepted by the selected MCP tool.
329
+
330
+ Output shape:
331
+ MCP tools/call response, usually { "content": [...], "isError": false }.
332
+
333
+ Examples:
334
+ kweaver context-loader tool-call d5iv6c9818p72mpje8pg search_schema --args '{"query":"需求"}'
335
+ kweaver context-loader tool-call d5iv6c9818p72mpje8pg query_object_instance --args '{"query":{"ot_id":"material"}}'`,
336
+ "query-object-instance": `kweaver context-loader query-object-instance
337
+
338
+ Usage:
339
+ kweaver context-loader query-object-instance <kn-id> '<json>' [--pretty]
340
+
341
+ Description:
342
+ Query object instances from a selected KN object type. This is an instance-data
343
+ query and is separate from schema discovery.
344
+
345
+ Arguments:
346
+ <kn-id> KN ID. Prefer the first positional argument.
347
+ <json> Query payload as a JSON object.
348
+
349
+ Options:
350
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
351
+ --pretty Pretty-print JSON output. This is the default.
352
+ --help, -h Show this help and exit before auth/config/network checks.
353
+
354
+ Input JSON shape:
355
+ {
356
+ "ot_id": "object_type_id",
357
+ "condition": {
358
+ "property": "name",
359
+ "operator": "contains",
360
+ "value_from": "const",
361
+ "value": "需求"
362
+ },
363
+ "limit": 20
364
+ }
365
+
366
+ Output shape:
367
+ MCP query_object_instance tool response, usually instance rows plus metadata.
368
+
369
+ Examples:
370
+ kweaver context-loader query-object-instance d5iv6c9818p72mpje8pg '{"ot_id":"material","condition":{"property":"name","operator":"contains","value_from":"const","value":"铜"}}'`,
371
+ "query-instance-subgraph": `kweaver context-loader query-instance-subgraph
372
+
373
+ Usage:
374
+ kweaver context-loader query-instance-subgraph <kn-id> '<json>' [--pretty]
375
+
376
+ Description:
377
+ Query a subgraph around selected object instances.
378
+
379
+ Arguments:
380
+ <kn-id> KN ID. Prefer the first positional argument.
381
+ <json> Subgraph query payload as a JSON object.
382
+
383
+ Options:
384
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
385
+ --pretty Pretty-print JSON output. This is the default.
386
+ --help, -h Show this help and exit before auth/config/network checks.
387
+
388
+ Input JSON shape:
389
+ {
390
+ "relation_type_paths": [
391
+ {
392
+ "rt_id": "relation_type_id",
393
+ "from": {
394
+ "ot_id": "source_object_type_id",
395
+ "condition": {
396
+ "property": "name",
397
+ "operator": "contains",
398
+ "value_from": "const",
399
+ "value": "需求"
400
+ }
401
+ },
402
+ "to": {
403
+ "ot_id": "target_object_type_id"
404
+ }
405
+ }
406
+ ]
407
+ }
408
+
409
+ Output shape:
410
+ MCP query_instance_subgraph tool response with nodes and relations.
411
+
412
+ Examples:
413
+ 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"}}]}'`,
414
+ "get-logic-properties": `kweaver context-loader get-logic-properties
415
+
416
+ Usage:
417
+ kweaver context-loader get-logic-properties <kn-id> '<json>' [--pretty]
418
+
419
+ Description:
420
+ Layer 3-style instance enrichment: get calculated logic property values for
421
+ object instances.
422
+
423
+ Arguments:
424
+ <kn-id> KN ID. Prefer the first positional argument.
425
+ <json> Request payload as a JSON object.
426
+
427
+ Options:
428
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
429
+ --pretty Pretty-print JSON output. This is the default.
430
+ --help, -h Show this help and exit before auth/config/network checks.
431
+
432
+ Input JSON shape:
433
+ {
434
+ "ot_id": "object_type_id",
435
+ "query": "natural-language query",
436
+ "_instance_identities": [{"id": "instance_id"}],
437
+ "properties": ["logic_property_id"],
438
+ "additional_context": "optional context"
439
+ }
440
+
441
+ Output shape:
442
+ MCP get_logic_properties tool response with property values.
443
+
444
+ Examples:
445
+ kweaver context-loader get-logic-properties d5iv6c9818p72mpje8pg '{"ot_id":"material","query":"风险评分","_instance_identities":[{"id":"m1"}],"properties":["risk_score"]}'`,
446
+ "get-action-info": `kweaver context-loader get-action-info
447
+
448
+ Usage:
449
+ kweaver context-loader get-action-info <kn-id> '<json>' [--pretty]
450
+
451
+ Description:
452
+ Layer 3-style instance action inspection: get action metadata and executable
453
+ information for selected schema or instance context.
454
+
455
+ Arguments:
456
+ <kn-id> KN ID. Prefer the first positional argument.
457
+ <json> Request payload as a JSON object.
458
+
459
+ Options:
460
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
461
+ --pretty Pretty-print JSON output. This is the default.
462
+ --help, -h Show this help and exit before auth/config/network checks.
463
+
464
+ Input JSON shape:
465
+ {
466
+ "at_id": "action_type_id",
467
+ "_instance_identity": {"id": "instance_id"}
468
+ }
469
+
470
+ Output shape:
471
+ MCP get_action_info tool response.
472
+
473
+ Examples:
474
+ kweaver context-loader get-action-info d5iv6c9818p72mpje8pg '{"at_id":"approve","_instance_identity":{"id":"r1"}}'`,
475
+ "find-skills": `kweaver context-loader find-skills
476
+
477
+ Usage:
478
+ kweaver context-loader find-skills <kn-id> <ot_id> [options]
479
+
480
+ Description:
481
+ Layer 3-style instance action discovery: recall skills related to an object type.
482
+
483
+ Arguments:
484
+ <kn-id> KN ID. Prefer the first positional argument.
485
+ <ot_id> Object type ID.
486
+
487
+ Options:
488
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
489
+ --query <text>, -q <text> Optional skill search query.
490
+ --top-k <n>, -n <n> Maximum skills to return.
491
+ --instance-identities '<json>', -i '<json>'
492
+ Optional JSON array of instance identities.
493
+ --format json|toon, -f json|toon
494
+ Response format requested from the server.
495
+ --pretty Pretty-print JSON output. This is the default.
496
+ --help, -h Show this help and exit before auth/config/network checks.
497
+
498
+ Input JSON shape:
499
+ Positional and option values are converted to:
500
+ {
501
+ "object_type_id": "object_type_id",
502
+ "skill_query": "optional query",
503
+ "top_k": 10,
504
+ "instance_identities": [{"id": "instance_id"}],
505
+ "response_format": "json|toon"
506
+ }
507
+
508
+ Output shape:
509
+ MCP find_skills tool response with matched skills.
510
+
511
+ Examples:
512
+ kweaver context-loader find-skills d5iv6c9818p72mpje8pg requirement --query "review requirement quality" --top-k 5`,
513
+ "kn-search": `kweaver context-loader kn-search [deprecated]
514
+
515
+ Usage:
516
+ kweaver context-loader kn-search <kn-id> <query> [--only-schema] [--pretty]
517
+
518
+ Description:
519
+ [deprecated] Legacy KN semantic search wrapper.
520
+
521
+ Arguments:
522
+ <kn-id> KN ID. Prefer the first positional argument.
523
+ <query> Search query text.
524
+
525
+ Options:
526
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
527
+ --only-schema Return schema-oriented results when supported.
528
+ --pretty Pretty-print JSON output. This is the default.
529
+ --help, -h Show this help and exit before auth/config/network checks.
530
+
531
+ Output shape:
532
+ Legacy semantic search response.
533
+
534
+ Examples:
535
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "需求"
536
+
537
+ Notes:
538
+ Use context-loader search-schema instead. kn-search is deprecated.`,
539
+ "kn-schema-search": `kweaver context-loader kn-schema-search [deprecated]
540
+
541
+ Usage:
542
+ kweaver context-loader kn-schema-search <kn-id> <query> [--max <n>] [--pretty]
543
+
544
+ Description:
545
+ [deprecated] Legacy schema search wrapper.
546
+
547
+ Arguments:
548
+ <kn-id> KN ID. Prefer the first positional argument.
549
+ <query> Search query text.
550
+
551
+ Options:
552
+ --kn-id <kn-id>, -k <kn-id> Alternative KN selector.
553
+ --max <n>, -n <n> Maximum results.
554
+ --pretty Pretty-print JSON output. This is the default.
555
+ --help, -h Show this help and exit before auth/config/network checks.
556
+
557
+ Output shape:
558
+ Legacy schema search response.
559
+
560
+ Examples:
561
+ kweaver context-loader search-schema d5iv6c9818p72mpje8pg "需求"
562
+
563
+ Notes:
564
+ Use context-loader search-schema instead. kn-schema-search is deprecated.`,
565
+ config: CONTEXT_LOADER_CONFIG_HELP,
566
+ };
567
+ function hasHelpFlag(args) {
568
+ return args.includes("--help") || args.includes("-h");
569
+ }
570
+ function printContextLoaderHelp(topic) {
571
+ if (!topic || topic === "--help" || topic === "-h") {
572
+ console.log(CONTEXT_LOADER_HELP);
573
+ return 0;
574
+ }
575
+ const help = CONTEXT_LOADER_SUBCOMMAND_HELP[topic];
576
+ if (!help) {
577
+ console.error(`Unknown context-loader help topic: ${topic}`);
578
+ console.error(`Available topics: ${Object.keys(CONTEXT_LOADER_SUBCOMMAND_HELP).sort().join(", ")}`);
579
+ return 1;
580
+ }
581
+ console.log(help);
582
+ return 0;
583
+ }
11
584
  function ensureContextLoaderConfig(knIdOverride) {
12
585
  const active = resolveActivePlatform();
13
586
  if (!active) {
@@ -87,41 +660,13 @@ function formatOutput(value, pretty) {
87
660
  export async function runContextLoaderCommand(args) {
88
661
  const [subcommand, ...rest] = args;
89
662
  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;
663
+ return printContextLoaderHelp();
664
+ }
665
+ if (subcommand === "help") {
666
+ return printContextLoaderHelp(rest[0]);
667
+ }
668
+ if (hasHelpFlag(rest)) {
669
+ return printContextLoaderHelp(subcommand);
125
670
  }
126
671
  if (subcommand === "config") {
127
672
  return runConfigCommand(rest);
@@ -419,6 +964,18 @@ function parseSearchSchemaScope(raw) {
419
964
  }
420
965
  return scope;
421
966
  }
967
+ function parseConceptGroups(raw) {
968
+ const seen = new Set();
969
+ const groups = [];
970
+ for (const item of raw.split(",")) {
971
+ const value = item.trim();
972
+ if (!value || seen.has(value))
973
+ continue;
974
+ seen.add(value);
975
+ groups.push(value);
976
+ }
977
+ return groups;
978
+ }
422
979
  async function runSearchSchema(options, args, pretty) {
423
980
  let query;
424
981
  let responseFormat;
@@ -426,12 +983,13 @@ async function runSearchSchema(options, args, pretty) {
426
983
  let maxConcepts;
427
984
  let schemaBrief;
428
985
  let enableRerank;
986
+ let conceptGroups;
429
987
  for (let i = 0; i < args.length; i += 1) {
430
988
  const arg = args[i];
431
989
  if ((arg === "--format" || arg === "-f") && args[i + 1]) {
432
990
  const value = args[i + 1];
433
991
  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]");
992
+ 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
993
  return 1;
436
994
  }
437
995
  responseFormat = value;
@@ -447,6 +1005,10 @@ async function runSearchSchema(options, args, pretty) {
447
1005
  }
448
1006
  i += 1;
449
1007
  }
1008
+ else if ((arg === "--concept-groups" || arg === "--concept-group") && args[i + 1]) {
1009
+ conceptGroups = parseConceptGroups(args[i + 1]);
1010
+ i += 1;
1011
+ }
450
1012
  else if ((arg === "--max" || arg === "-n") && args[i + 1]) {
451
1013
  maxConcepts = parseInt(args[i + 1], 10);
452
1014
  if (!Number.isFinite(maxConcepts)) {
@@ -466,9 +1028,15 @@ async function runSearchSchema(options, args, pretty) {
466
1028
  }
467
1029
  }
468
1030
  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]");
1031
+ 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
1032
  return 1;
471
1033
  }
1034
+ if (conceptGroups !== undefined) {
1035
+ searchScope = {
1036
+ ...(searchScope ?? {}),
1037
+ concept_groups: conceptGroups,
1038
+ };
1039
+ }
472
1040
  const result = await searchSchema(options, {
473
1041
  query,
474
1042
  response_format: responseFormat,
@@ -529,6 +1097,7 @@ async function runKnSearch(options, args, pretty) {
529
1097
  console.error("Usage: kweaver context-loader kn-search <kn-id> <query> [--only-schema]");
530
1098
  return 1;
531
1099
  }
1100
+ console.error(DEPRECATED_KN_SEARCH_MESSAGE);
532
1101
  const raw = await knSearchHttp({
533
1102
  baseUrl: options.baseUrl,
534
1103
  accessToken: options.accessToken,
@@ -555,9 +1124,10 @@ async function runKnSchemaSearch(options, args, pretty) {
555
1124
  }
556
1125
  }
557
1126
  if (!query) {
558
- console.error("Usage: kweaver context-loader kn-schema-search <query> [--max N]");
1127
+ console.error("Usage: kweaver context-loader kn-schema-search <kn-id> <query> [--max N]");
559
1128
  return 1;
560
1129
  }
1130
+ console.error(DEPRECATED_KN_SCHEMA_SEARCH_MESSAGE);
561
1131
  const raw = await semanticSearch({
562
1132
  baseUrl: options.baseUrl,
563
1133
  accessToken: options.accessToken,