@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.
- package/README.md +40 -52
- package/README.zh.md +41 -46
- package/dist/agent-providers/index.d.ts +7 -0
- package/dist/agent-providers/index.js +5 -0
- package/dist/agent-providers/prompt-template.d.ts +62 -0
- package/dist/agent-providers/prompt-template.js +105 -0
- package/dist/agent-providers/prompts/rubric-judge-v1.prompt.md +51 -0
- package/dist/agent-providers/prompts/within-trace-synthesizer-v1.prompt.md +60 -0
- package/dist/agent-providers/providers/claude-code-subprocess.d.ts +74 -0
- package/dist/agent-providers/providers/claude-code-subprocess.js +259 -0
- package/dist/agent-providers/providers/stub.d.ts +47 -0
- package/dist/agent-providers/providers/stub.js +77 -0
- package/dist/agent-providers/registry.d.ts +45 -0
- package/dist/agent-providers/registry.js +77 -0
- package/dist/agent-providers/types.d.ts +91 -0
- package/dist/agent-providers/types.js +25 -0
- package/dist/api/agent-chat.js +8 -6
- package/dist/api/context-loader.d.ts +1 -0
- package/dist/api/resources.d.ts +94 -0
- package/dist/api/resources.js +166 -0
- package/dist/api/semantic-search.d.ts +5 -0
- package/dist/api/semantic-search.js +5 -0
- package/dist/api/skills.d.ts +75 -2
- package/dist/api/skills.js +108 -12
- package/dist/api/trace.d.ts +5 -0
- package/dist/api/trace.js +4 -0
- package/dist/cli.js +109 -15
- package/dist/client.d.ts +3 -3
- package/dist/client.js +5 -5
- package/dist/commands/agent/mode.d.ts +6 -0
- package/dist/commands/agent/mode.js +75 -0
- package/dist/commands/agent-members.js +27 -11
- package/dist/commands/agent.js +469 -286
- package/dist/commands/auth.js +184 -71
- package/dist/commands/bkn-metric.js +37 -16
- package/dist/commands/bkn-ops.js +164 -86
- package/dist/commands/bkn-query.js +99 -31
- package/dist/commands/bkn-schema.d.ts +3 -3
- package/dist/commands/bkn-schema.js +127 -86
- package/dist/commands/bkn.js +153 -114
- package/dist/commands/call.js +23 -13
- package/dist/commands/config.js +22 -12
- package/dist/commands/context-loader.js +625 -49
- package/dist/commands/dataflow.js +14 -6
- package/dist/commands/ds.js +52 -30
- package/dist/commands/explore.js +18 -15
- package/dist/commands/model.js +53 -42
- package/dist/commands/resource.d.ts +1 -0
- package/dist/commands/{dataview.js → resource.js} +62 -84
- package/dist/commands/skill.d.ts +21 -1
- package/dist/commands/skill.js +567 -43
- package/dist/commands/token.js +11 -0
- package/dist/commands/tool.js +46 -29
- package/dist/commands/toolbox.js +31 -15
- package/dist/commands/trace.d.ts +26 -1
- package/dist/commands/trace.js +515 -15
- package/dist/commands/vega.js +466 -250
- package/dist/help/format.d.ts +65 -0
- package/dist/help/format.js +141 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +3 -3
- package/dist/resources/bkn.d.ts +5 -0
- package/dist/resources/bkn.js +5 -0
- package/dist/resources/{dataviews.d.ts → resources.d.ts} +10 -11
- package/dist/resources/{dataviews.js → resources.js} +12 -13
- package/dist/resources/skills.d.ts +17 -1
- package/dist/resources/skills.js +32 -1
- package/dist/trace-ai/diagnose/agent-binding.d.ts +67 -0
- package/dist/trace-ai/diagnose/agent-binding.js +257 -0
- package/dist/trace-ai/diagnose/builtin-rules/tool-retry-intent-mismatch.yaml +68 -0
- package/dist/trace-ai/diagnose/index.d.ts +32 -0
- package/dist/trace-ai/diagnose/index.js +246 -0
- package/dist/trace-ai/diagnose/output-schema-converter.d.ts +24 -0
- package/dist/trace-ai/diagnose/output-schema-converter.js +81 -0
- package/dist/trace-ai/diagnose/query-extractor.d.ts +14 -0
- package/dist/trace-ai/diagnose/query-extractor.js +45 -0
- package/dist/trace-ai/diagnose/report-assembler.d.ts +31 -0
- package/dist/{trace-core → trace-ai}/diagnose/report-assembler.js +19 -9
- package/dist/trace-ai/diagnose/report-markdown.d.ts +18 -0
- package/dist/trace-ai/diagnose/report-markdown.js +192 -0
- package/dist/{trace-core → trace-ai}/diagnose/rule-loader.js +42 -8
- package/dist/{trace-core → trace-ai}/diagnose/schemas.d.ts +77 -2
- package/dist/trace-ai/diagnose/schemas.js +154 -0
- package/dist/trace-ai/diagnose/signal-probe.d.ts +17 -0
- package/dist/trace-ai/diagnose/signal-probe.js +39 -0
- package/dist/trace-ai/diagnose/synthesizer-agent.d.ts +40 -0
- package/dist/trace-ai/diagnose/synthesizer-agent.js +158 -0
- package/dist/{trace-core → trace-ai}/diagnose/trace-shaper.js +1 -0
- package/dist/{trace-core → trace-ai}/diagnose/types.d.ts +55 -6
- package/dist/trace-ai/eval-set/assertion-evaluator.d.ts +29 -0
- package/dist/trace-ai/eval-set/assertion-evaluator.js +100 -0
- package/dist/trace-ai/eval-set/builder.d.ts +36 -0
- package/dist/trace-ai/eval-set/builder.js +126 -0
- package/dist/trace-ai/eval-set/index.d.ts +15 -0
- package/dist/trace-ai/eval-set/index.js +10 -0
- package/dist/trace-ai/eval-set/output-writer.d.ts +27 -0
- package/dist/trace-ai/eval-set/output-writer.js +126 -0
- package/dist/trace-ai/eval-set/query-picker.d.ts +37 -0
- package/dist/trace-ai/eval-set/query-picker.js +147 -0
- package/dist/trace-ai/eval-set/redactor.d.ts +42 -0
- package/dist/trace-ai/eval-set/redactor.js +133 -0
- package/dist/trace-ai/eval-set/rubric-templates/answer-match-reference.prompt.md +19 -0
- package/dist/trace-ai/eval-set/schemas.d.ts +136 -0
- package/dist/trace-ai/eval-set/schemas.js +130 -0
- package/dist/trace-ai/eval-set/semantic-match-provider.d.ts +33 -0
- package/dist/trace-ai/eval-set/semantic-match-provider.js +51 -0
- package/dist/trace-ai/eval-set/test-runner.d.ts +34 -0
- package/dist/trace-ai/eval-set/test-runner.js +153 -0
- package/dist/trace-ai/eval-set/types.d.ts +46 -0
- package/dist/trace-ai/eval-set/types.js +8 -0
- package/dist/trace-ai/exp/bundle-writer.d.ts +10 -0
- package/dist/trace-ai/exp/bundle-writer.js +54 -0
- package/dist/trace-ai/exp/claude-binary.d.ts +5 -0
- package/dist/trace-ai/exp/claude-binary.js +30 -0
- package/dist/trace-ai/exp/coordinator.d.ts +45 -0
- package/dist/trace-ai/exp/coordinator.js +203 -0
- package/dist/trace-ai/exp/eval-runner.d.ts +14 -0
- package/dist/trace-ai/exp/eval-runner.js +47 -0
- package/dist/trace-ai/exp/exp-store/abort-signal.d.ts +3 -0
- package/dist/trace-ai/exp/exp-store/abort-signal.js +27 -0
- package/dist/trace-ai/exp/exp-store/candidate-lineage-yaml.d.ts +4 -0
- package/dist/trace-ai/exp/exp-store/candidate-lineage-yaml.js +37 -0
- package/dist/trace-ai/exp/exp-store/events-jsonl.d.ts +17 -0
- package/dist/trace-ai/exp/exp-store/events-jsonl.js +60 -0
- package/dist/trace-ai/exp/exp-store/exp-registry.d.ts +6 -0
- package/dist/trace-ai/exp/exp-store/exp-registry.js +41 -0
- package/dist/trace-ai/exp/exp-store/index.d.ts +46 -0
- package/dist/trace-ai/exp/exp-store/index.js +59 -0
- package/dist/trace-ai/exp/exp-store/lock.d.ts +3 -0
- package/dist/trace-ai/exp/exp-store/lock.js +73 -0
- package/dist/trace-ai/exp/exp-store/mission-md.d.ts +3 -0
- package/dist/trace-ai/exp/exp-store/mission-md.js +37 -0
- package/dist/trace-ai/exp/exp-store/readme-template.d.ts +5 -0
- package/dist/trace-ai/exp/exp-store/readme-template.js +25 -0
- package/dist/trace-ai/exp/exp-store/round-yaml.d.ts +3 -0
- package/dist/trace-ai/exp/exp-store/round-yaml.js +33 -0
- package/dist/trace-ai/exp/index.d.ts +8 -0
- package/dist/trace-ai/exp/index.js +238 -0
- package/dist/trace-ai/exp/info.d.ts +35 -0
- package/dist/trace-ai/exp/info.js +120 -0
- package/dist/trace-ai/exp/patch/agent-config.d.ts +1 -0
- package/dist/trace-ai/exp/patch/agent-config.js +26 -0
- package/dist/trace-ai/exp/patch/index.d.ts +2 -0
- package/dist/trace-ai/exp/patch/index.js +13 -0
- package/dist/trace-ai/exp/patch/skill.d.ts +1 -0
- package/dist/trace-ai/exp/patch/skill.js +24 -0
- package/dist/trace-ai/exp/providers/synthesizer-client.d.ts +14 -0
- package/dist/trace-ai/exp/providers/synthesizer-client.js +39 -0
- package/dist/trace-ai/exp/providers/triage-client.d.ts +19 -0
- package/dist/trace-ai/exp/providers/triage-client.js +51 -0
- package/dist/trace-ai/exp/schemas.d.ts +147 -0
- package/dist/trace-ai/exp/schemas.js +50 -0
- package/dist/trace-ai/exp/scoring.d.ts +2 -0
- package/dist/trace-ai/exp/scoring.js +46 -0
- package/dist/trace-ai/scan/aggregator.d.ts +20 -0
- package/dist/trace-ai/scan/aggregator.js +26 -0
- package/dist/trace-ai/scan/artifacts/paths.d.ts +12 -0
- package/dist/trace-ai/scan/artifacts/paths.js +18 -0
- package/dist/trace-ai/scan/artifacts/writer.d.ts +67 -0
- package/dist/trace-ai/scan/artifacts/writer.js +96 -0
- package/dist/trace-ai/scan/batched-rubric.d.ts +55 -0
- package/dist/trace-ai/scan/batched-rubric.js +159 -0
- package/dist/trace-ai/scan/cross-trace-synthesizer.d.ts +24 -0
- package/dist/trace-ai/scan/cross-trace-synthesizer.js +93 -0
- package/dist/trace-ai/scan/index.d.ts +31 -0
- package/dist/trace-ai/scan/index.js +390 -0
- package/dist/trace-ai/scan/prompts/builtin/cross-trace-synthesizer-v1.prompt.md +44 -0
- package/dist/trace-ai/scan/prompts/builtin/rubric-judge-batch-v1.prompt.md +44 -0
- package/dist/trace-ai/scan/runner.d.ts +25 -0
- package/dist/trace-ai/scan/runner.js +42 -0
- package/dist/trace-ai/scan/sampler.d.ts +18 -0
- package/dist/trace-ai/scan/sampler.js +81 -0
- package/dist/trace-ai/scan/scan-summary-markdown.d.ts +2 -0
- package/dist/trace-ai/scan/scan-summary-markdown.js +71 -0
- package/dist/trace-ai/scan/scan-summary-schema.d.ts +73 -0
- package/dist/trace-ai/scan/scan-summary-schema.js +61 -0
- package/dist/trace-ai/scan/single-agent-validator.d.ts +23 -0
- package/dist/trace-ai/scan/single-agent-validator.js +42 -0
- package/dist/trace-ai/scan/traces-list-parser.d.ts +15 -0
- package/dist/trace-ai/scan/traces-list-parser.js +46 -0
- package/package.json +2 -2
- package/dist/api/dataviews.d.ts +0 -117
- package/dist/api/dataviews.js +0 -265
- package/dist/commands/dataview.d.ts +0 -8
- package/dist/trace-core/diagnose/index.d.ts +0 -9
- package/dist/trace-core/diagnose/index.js +0 -104
- package/dist/trace-core/diagnose/report-assembler.d.ts +0 -12
- package/dist/trace-core/diagnose/schemas.js +0 -94
- package/dist/trace-core/diagnose/signal-probe.d.ts +0 -5
- package/dist/trace-core/diagnose/signal-probe.js +0 -21
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/excessive-tool-calls-per-turn.yaml +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/llm-response-truncated-no-continue.yaml +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/register.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/register.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/retrieval-empty-no-fallback.yaml +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-error-swallowed.yaml +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/builtin-rules/tool-loop-no-state-change.yaml +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/predicate-registry.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/predicate-registry.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/rule-loader.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/synthesizer-template.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/synthesizer-template.js +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/trace-shaper.d.ts +0 -0
- /package/dist/{trace-core → trace-ai}/diagnose/types.js +0 -0
package/dist/commands/agent.js
CHANGED
|
@@ -1,6 +1,53 @@
|
|
|
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";
|
|
50
|
+
import { AGENT_MODE_HELP, applyAgentModeToConfig, normalizeAgentConfigInput, parseAgentMode, } from "./agent/mode.js";
|
|
4
51
|
import { listAgents, getAgent, getAgentByKey, createAgent, updateAgent, deleteAgent, publishAgent, unpublishAgent, listPersonalAgents, listPublishedAgentTemplates, getPublishedAgentTemplate, listAgentCategories, } from "../api/agent-list.js";
|
|
5
52
|
import { listConversations, listMessages, getTracesByConversation } from "../api/conversations.js";
|
|
6
53
|
import { fetchAgentInfo } from "../api/agent-chat.js";
|
|
@@ -47,21 +94,21 @@ export async function resolveLlmName(options) {
|
|
|
47
94
|
}
|
|
48
95
|
}
|
|
49
96
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param path
|
|
52
|
-
* @returns
|
|
97
|
+
* Generate a timestamped file path.
|
|
98
|
+
* @param path User-provided output path.
|
|
99
|
+
* @returns The timestamped file path.
|
|
53
100
|
*/
|
|
54
101
|
function generateTimestampedPath(path) {
|
|
55
102
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-").slice(0, 19);
|
|
56
|
-
//
|
|
103
|
+
// Treat paths ending in / as directories.
|
|
57
104
|
if (path.endsWith("/")) {
|
|
58
105
|
return join(path, `agent-config-${timestamp}.json`);
|
|
59
106
|
}
|
|
60
|
-
//
|
|
107
|
+
// Insert the timestamp before the extension: config.json -> config-2025-01-15T12-30-45.json.
|
|
61
108
|
const ext = extname(path);
|
|
62
109
|
const base = basename(path, ext);
|
|
63
110
|
const dir = dirname(path);
|
|
64
|
-
//
|
|
111
|
+
// No directory prefix was provided, so return only the timestamped file name.
|
|
65
112
|
if (dir === ".") {
|
|
66
113
|
return `${base}-${timestamp}${ext}`;
|
|
67
114
|
}
|
|
@@ -537,30 +584,7 @@ export function parseAgentTraceArgs(args) {
|
|
|
537
584
|
export async function runAgentCommand(args) {
|
|
538
585
|
const [subcommand, ...rest] = args;
|
|
539
586
|
if (!subcommand || subcommand === "--help" || subcommand === "-h") {
|
|
540
|
-
console.log(
|
|
541
|
-
|
|
542
|
-
Subcommands:
|
|
543
|
-
list [options] List published agents
|
|
544
|
-
personal-list [options] List personal space agents
|
|
545
|
-
category-list [options] List agent categories
|
|
546
|
-
template-list [options] List published agent templates
|
|
547
|
-
template-get <tpl_id> Get published agent template details
|
|
548
|
-
get <agent_id> [--verbose] Get agent details
|
|
549
|
-
get-by-key <key> Get agent by key
|
|
550
|
-
create --name <n> --profile <p> Create a new agent
|
|
551
|
-
[--key <key>] [--product-key <pk>] [--system-prompt <sp>]
|
|
552
|
-
[--llm-id <id>] [--llm-max-tokens <n>]
|
|
553
|
-
update <agent_id> [options] Update an existing agent
|
|
554
|
-
delete <agent_id> [-y] Delete an agent
|
|
555
|
-
publish <agent_id> Publish an agent
|
|
556
|
-
unpublish <agent_id> Unpublish an agent
|
|
557
|
-
chat <agent_id> Start interactive chat with an agent
|
|
558
|
-
chat <agent_id> -m "message" Send a single message (non-interactive)
|
|
559
|
-
skill <verb> ... Manage skills attached to an agent (add/remove/list)
|
|
560
|
-
sessions <agent_id> List all conversations for an agent
|
|
561
|
-
history <agent_id> <conversation_id> Show message history for a conversation
|
|
562
|
-
trace <conversation_id> [--view tree|perf|evidence|reasoning|all] [--json]
|
|
563
|
-
Get trace data for a conversation`);
|
|
587
|
+
console.log(AGENT_HELP);
|
|
564
588
|
return Promise.resolve(0);
|
|
565
589
|
}
|
|
566
590
|
const dispatch = async () => {
|
|
@@ -603,177 +627,230 @@ Subcommands:
|
|
|
603
627
|
// Show subcommand-specific help inline (no retry needed)
|
|
604
628
|
if (subcommand === "chat") {
|
|
605
629
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
606
|
-
console.log(
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
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
|
+
}));
|
|
627
670
|
return Promise.resolve(0);
|
|
628
671
|
}
|
|
629
672
|
return runAgentChatCommand(rest);
|
|
630
673
|
}
|
|
631
674
|
if (subcommand === "get") {
|
|
632
675
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
633
|
-
console.log(
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
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
|
+
}));
|
|
642
688
|
return 0;
|
|
643
689
|
}
|
|
644
690
|
}
|
|
645
691
|
if (subcommand === "update") {
|
|
646
692
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
647
|
-
console.log(
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
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
|
+
}));
|
|
657
708
|
return 0;
|
|
658
709
|
}
|
|
659
710
|
}
|
|
660
711
|
if (subcommand === "list") {
|
|
661
712
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
662
|
-
console.log(
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
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
|
+
}));
|
|
676
730
|
return 0;
|
|
677
731
|
}
|
|
678
732
|
}
|
|
679
733
|
if (subcommand === "personal-list") {
|
|
680
734
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
681
|
-
console.log(
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
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
|
+
}));
|
|
694
751
|
return 0;
|
|
695
752
|
}
|
|
696
753
|
}
|
|
697
754
|
if (subcommand === "category-list") {
|
|
698
755
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
699
|
-
console.log(
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
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
|
+
}));
|
|
707
767
|
return 0;
|
|
708
768
|
}
|
|
709
769
|
}
|
|
710
770
|
if (subcommand === "template-list") {
|
|
711
771
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
712
|
-
console.log(
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
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
|
+
}));
|
|
724
787
|
return 0;
|
|
725
788
|
}
|
|
726
789
|
}
|
|
727
790
|
if (subcommand === "template-get") {
|
|
728
791
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
729
|
-
console.log(
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
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
|
+
}));
|
|
737
803
|
return 0;
|
|
738
804
|
}
|
|
739
805
|
}
|
|
740
806
|
if (subcommand === "sessions") {
|
|
741
807
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
742
|
-
console.log(
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
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
|
+
}));
|
|
750
819
|
return 0;
|
|
751
820
|
}
|
|
752
821
|
}
|
|
753
822
|
if (subcommand === "history") {
|
|
754
823
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
755
|
-
console.log(
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
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
|
+
}));
|
|
762
834
|
return 0;
|
|
763
835
|
}
|
|
764
836
|
}
|
|
765
837
|
if (subcommand === "trace") {
|
|
766
838
|
if (rest.length === 1 && (rest[0] === "--help" || rest[0] === "-h")) {
|
|
767
|
-
console.log(
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
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
|
+
}));
|
|
777
854
|
return 0;
|
|
778
855
|
}
|
|
779
856
|
}
|
|
@@ -868,15 +945,18 @@ async function runAgentGetCommand(args) {
|
|
|
868
945
|
}
|
|
869
946
|
catch (error) {
|
|
870
947
|
if (error instanceof Error && error.message === "help") {
|
|
871
|
-
console.log(
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
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
|
+
}));
|
|
880
960
|
return 0;
|
|
881
961
|
}
|
|
882
962
|
console.error(formatHttpError(error));
|
|
@@ -891,12 +971,12 @@ Options:
|
|
|
891
971
|
businessDomain: options.businessDomain,
|
|
892
972
|
});
|
|
893
973
|
if (body) {
|
|
894
|
-
//
|
|
974
|
+
// Save only the agent config object when --save-config is provided.
|
|
895
975
|
if (options.saveConfig) {
|
|
896
976
|
const parsed = JSON.parse(body);
|
|
897
977
|
const config = parsed.config ?? {};
|
|
898
978
|
const timestampedPath = generateTimestampedPath(options.saveConfig);
|
|
899
|
-
//
|
|
979
|
+
// Ensure the output directory exists.
|
|
900
980
|
const dir = dirname(timestampedPath);
|
|
901
981
|
await fs.mkdir(dir, { recursive: true });
|
|
902
982
|
await fs.writeFile(timestampedPath, JSON.stringify(config, null, 2), "utf-8");
|
|
@@ -919,20 +999,23 @@ async function runAgentListCommand(args) {
|
|
|
919
999
|
}
|
|
920
1000
|
catch (error) {
|
|
921
1001
|
if (error instanceof Error && error.message === "help") {
|
|
922
|
-
console.log(
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
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
|
+
}));
|
|
936
1019
|
return 0;
|
|
937
1020
|
}
|
|
938
1021
|
console.error(formatHttpError(error));
|
|
@@ -968,14 +1051,17 @@ async function runAgentSessionsCommand(args) {
|
|
|
968
1051
|
}
|
|
969
1052
|
catch (error) {
|
|
970
1053
|
if (error instanceof Error && error.message === "help") {
|
|
971
|
-
console.log(
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
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
|
+
}));
|
|
979
1065
|
return 0;
|
|
980
1066
|
}
|
|
981
1067
|
console.error(formatHttpError(error));
|
|
@@ -1021,13 +1107,16 @@ async function runAgentHistoryCommand(args) {
|
|
|
1021
1107
|
}
|
|
1022
1108
|
catch (error) {
|
|
1023
1109
|
if (error instanceof Error && error.message === "help") {
|
|
1024
|
-
console.log(
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
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
|
+
}));
|
|
1031
1120
|
return 0;
|
|
1032
1121
|
}
|
|
1033
1122
|
console.error(formatHttpError(error));
|
|
@@ -1074,18 +1163,21 @@ async function runAgentTraceCommand(args) {
|
|
|
1074
1163
|
}
|
|
1075
1164
|
catch (error) {
|
|
1076
1165
|
if (error instanceof Error && error.message === "help") {
|
|
1077
|
-
console.log(
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
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
|
+
}));
|
|
1089
1181
|
return 0;
|
|
1090
1182
|
}
|
|
1091
1183
|
console.error(formatHttpError(error));
|
|
@@ -1146,25 +1238,29 @@ async function runAgentCreateCommand(args) {
|
|
|
1146
1238
|
let llmMaxTokens = 4096;
|
|
1147
1239
|
let businessDomain = "";
|
|
1148
1240
|
let configStr = "";
|
|
1241
|
+
let explicitMode;
|
|
1149
1242
|
for (let i = 0; i < args.length; i += 1) {
|
|
1150
1243
|
const arg = args[i];
|
|
1151
1244
|
if (arg === "--help" || arg === "-h") {
|
|
1152
|
-
console.log(
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
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
|
+
}));
|
|
1168
1264
|
return 0;
|
|
1169
1265
|
}
|
|
1170
1266
|
if (arg === "--name") {
|
|
@@ -1195,6 +1291,17 @@ Optional:
|
|
|
1195
1291
|
llmMaxTokens = parseInt(args[++i] ?? "4096", 10);
|
|
1196
1292
|
continue;
|
|
1197
1293
|
}
|
|
1294
|
+
if (arg === "--mode") {
|
|
1295
|
+
const value = args[++i] ?? "";
|
|
1296
|
+
try {
|
|
1297
|
+
explicitMode = parseAgentMode(value);
|
|
1298
|
+
}
|
|
1299
|
+
catch (error) {
|
|
1300
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
1301
|
+
return 1;
|
|
1302
|
+
}
|
|
1303
|
+
continue;
|
|
1304
|
+
}
|
|
1198
1305
|
if (arg === "--config") {
|
|
1199
1306
|
configStr = args[++i] ?? "";
|
|
1200
1307
|
continue;
|
|
@@ -1241,13 +1348,19 @@ Optional:
|
|
|
1241
1348
|
system_prompt: systemPrompt,
|
|
1242
1349
|
};
|
|
1243
1350
|
}
|
|
1351
|
+
try {
|
|
1352
|
+
applyAgentModeToConfig(config, explicitMode);
|
|
1353
|
+
}
|
|
1354
|
+
catch (error) {
|
|
1355
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
1356
|
+
return 1;
|
|
1357
|
+
}
|
|
1244
1358
|
const payload = {
|
|
1245
1359
|
name,
|
|
1246
1360
|
profile,
|
|
1247
1361
|
avatar_type: 1,
|
|
1248
1362
|
avatar: "icon-dip-agent-default",
|
|
1249
1363
|
product_key: productKey,
|
|
1250
|
-
product_name: "DIP",
|
|
1251
1364
|
config,
|
|
1252
1365
|
};
|
|
1253
1366
|
if (key)
|
|
@@ -1276,41 +1389,81 @@ Optional:
|
|
|
1276
1389
|
// ── Update ───────────────────────────────────────────────────────────────────
|
|
1277
1390
|
async function runAgentUpdateCommand(args) {
|
|
1278
1391
|
const agentId = args[0];
|
|
1392
|
+
if (agentId === "--help" || agentId === "-h") {
|
|
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
|
+
}));
|
|
1408
|
+
return 0;
|
|
1409
|
+
}
|
|
1279
1410
|
if (!agentId || agentId.startsWith("-")) {
|
|
1280
|
-
console.error("Usage: kweaver agent update <agent_id> [--name <n>] [--profile <p>] [--system-prompt <sp>] [--knowledge-network-id <id> [--config-path <path>]]");
|
|
1411
|
+
console.error("Usage: kweaver agent update <agent_id> [--name <n>] [--profile <p>] [--system-prompt <sp>] [--mode <mode>] [--knowledge-network-id <id> [--config-path <path>]]");
|
|
1281
1412
|
return 1;
|
|
1282
1413
|
}
|
|
1283
1414
|
let knowledgeNetworkId = null;
|
|
1284
1415
|
let configPath = null;
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1416
|
+
let explicitMode;
|
|
1417
|
+
for (let i = 1; i < args.length; i += 1) {
|
|
1418
|
+
const arg = args[i];
|
|
1419
|
+
if (arg === "--mode") {
|
|
1420
|
+
const value = args[++i] ?? "";
|
|
1421
|
+
try {
|
|
1422
|
+
explicitMode = parseAgentMode(value);
|
|
1423
|
+
}
|
|
1424
|
+
catch (error) {
|
|
1425
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
1426
|
+
return 1;
|
|
1427
|
+
}
|
|
1428
|
+
continue;
|
|
1429
|
+
}
|
|
1430
|
+
if (arg === "--config-path") {
|
|
1431
|
+
configPath = args[++i] ?? "";
|
|
1293
1432
|
if (!configPath || configPath.startsWith("-")) {
|
|
1294
1433
|
console.error("Missing value for --config-path flag");
|
|
1295
1434
|
return 1;
|
|
1296
1435
|
}
|
|
1436
|
+
continue;
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
try {
|
|
1440
|
+
let current;
|
|
1441
|
+
let configFromFile = null;
|
|
1442
|
+
// Read config from file before fetching the current agent so invalid local config fails early.
|
|
1443
|
+
if (configPath) {
|
|
1297
1444
|
try {
|
|
1298
1445
|
const fileContent = await fs.readFile(configPath, "utf-8");
|
|
1299
|
-
configFromFile = JSON.parse(fileContent);
|
|
1446
|
+
configFromFile = normalizeAgentConfigInput(JSON.parse(fileContent));
|
|
1447
|
+
if (!explicitMode) {
|
|
1448
|
+
applyAgentModeToConfig(configFromFile);
|
|
1449
|
+
}
|
|
1300
1450
|
}
|
|
1301
1451
|
catch (error) {
|
|
1302
|
-
console.error(
|
|
1452
|
+
console.error(error instanceof Error && error.message.startsWith("config.mode")
|
|
1453
|
+
? error.message
|
|
1454
|
+
: `Failed to read config from ${configPath}: ${error}`);
|
|
1303
1455
|
return 1;
|
|
1304
1456
|
}
|
|
1305
1457
|
}
|
|
1306
|
-
|
|
1458
|
+
const token = await ensureValidToken();
|
|
1459
|
+
// Fetch the current agent for read-modify-write updates.
|
|
1307
1460
|
const currentRaw = await getAgent({
|
|
1308
1461
|
baseUrl: token.baseUrl,
|
|
1309
1462
|
accessToken: token.accessToken,
|
|
1310
1463
|
agentId,
|
|
1311
1464
|
});
|
|
1312
1465
|
current = JSON.parse(currentRaw);
|
|
1313
|
-
//
|
|
1466
|
+
// Replace only current.config when a config file was provided.
|
|
1314
1467
|
if (configFromFile) {
|
|
1315
1468
|
current.config = configFromFile;
|
|
1316
1469
|
}
|
|
@@ -1324,6 +1477,14 @@ async function runAgentUpdateCommand(args) {
|
|
|
1324
1477
|
current.profile = args[++i] ?? current.profile;
|
|
1325
1478
|
continue;
|
|
1326
1479
|
}
|
|
1480
|
+
if (arg === "--mode") {
|
|
1481
|
+
i += 1;
|
|
1482
|
+
continue;
|
|
1483
|
+
}
|
|
1484
|
+
if (arg === "--config-path") {
|
|
1485
|
+
i += 1;
|
|
1486
|
+
continue;
|
|
1487
|
+
}
|
|
1327
1488
|
if (arg === "--system-prompt") {
|
|
1328
1489
|
const config = (current.config ?? {});
|
|
1329
1490
|
config.system_prompt = args[++i] ?? "";
|
|
@@ -1339,21 +1500,28 @@ async function runAgentUpdateCommand(args) {
|
|
|
1339
1500
|
continue;
|
|
1340
1501
|
}
|
|
1341
1502
|
}
|
|
1342
|
-
//
|
|
1503
|
+
// Update config.data_source.knowledge_network when requested.
|
|
1343
1504
|
if (knowledgeNetworkId) {
|
|
1344
1505
|
const config = (current.config ?? {});
|
|
1345
1506
|
const dataSource = (config.data_source ?? {});
|
|
1346
|
-
// 获取知识网络名称(如果需要的话,可以查询BKN获取)
|
|
1347
1507
|
const knowledgeNetwork = [
|
|
1348
1508
|
{
|
|
1349
1509
|
knowledge_network_id: knowledgeNetworkId,
|
|
1350
|
-
knowledge_network_name: "", // 可选:通过BKN API获取名称
|
|
1351
1510
|
},
|
|
1352
1511
|
];
|
|
1353
1512
|
dataSource.knowledge_network = knowledgeNetwork;
|
|
1354
1513
|
config.data_source = dataSource;
|
|
1355
1514
|
current.config = config;
|
|
1356
1515
|
}
|
|
1516
|
+
const config = (current.config ?? {});
|
|
1517
|
+
try {
|
|
1518
|
+
applyAgentModeToConfig(config, explicitMode);
|
|
1519
|
+
}
|
|
1520
|
+
catch (error) {
|
|
1521
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
1522
|
+
return 1;
|
|
1523
|
+
}
|
|
1524
|
+
current.config = config;
|
|
1357
1525
|
const body = await updateAgent({
|
|
1358
1526
|
baseUrl: token.baseUrl,
|
|
1359
1527
|
accessToken: token.accessToken,
|
|
@@ -1428,13 +1596,16 @@ async function runAgentPublishCommand(args) {
|
|
|
1428
1596
|
continue;
|
|
1429
1597
|
}
|
|
1430
1598
|
if (arg === "--help" || arg === "-h") {
|
|
1431
|
-
console.log(
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
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
|
+
}));
|
|
1438
1609
|
return 0;
|
|
1439
1610
|
}
|
|
1440
1611
|
}
|
|
@@ -1484,19 +1655,22 @@ async function runAgentPersonalListCommand(args) {
|
|
|
1484
1655
|
}
|
|
1485
1656
|
catch (error) {
|
|
1486
1657
|
if (error instanceof Error && error.message === "help") {
|
|
1487
|
-
console.log(
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
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
|
+
}));
|
|
1500
1674
|
return 0;
|
|
1501
1675
|
}
|
|
1502
1676
|
console.error(formatHttpError(error));
|
|
@@ -1532,18 +1706,21 @@ async function runAgentTemplateListCommand(args) {
|
|
|
1532
1706
|
}
|
|
1533
1707
|
catch (error) {
|
|
1534
1708
|
if (error instanceof Error && error.message === "help") {
|
|
1535
|
-
console.log(
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
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
|
+
}));
|
|
1547
1724
|
return 0;
|
|
1548
1725
|
}
|
|
1549
1726
|
console.error(formatHttpError(error));
|
|
@@ -1578,15 +1755,18 @@ async function runAgentTemplateGetCommand(args) {
|
|
|
1578
1755
|
}
|
|
1579
1756
|
catch (error) {
|
|
1580
1757
|
if (error instanceof Error && error.message === "help") {
|
|
1581
|
-
console.log(
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
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
|
+
}));
|
|
1590
1770
|
return 0;
|
|
1591
1771
|
}
|
|
1592
1772
|
console.error(formatHttpError(error));
|
|
@@ -1601,12 +1781,12 @@ Options:
|
|
|
1601
1781
|
businessDomain: options.businessDomain,
|
|
1602
1782
|
});
|
|
1603
1783
|
if (body) {
|
|
1604
|
-
//
|
|
1784
|
+
// Save only the template config object when --save-config is provided.
|
|
1605
1785
|
if (options.saveConfig) {
|
|
1606
1786
|
const parsed = JSON.parse(body);
|
|
1607
1787
|
const config = parsed.config ?? {};
|
|
1608
1788
|
const timestampedPath = generateTimestampedPath(options.saveConfig);
|
|
1609
|
-
//
|
|
1789
|
+
// Ensure the output directory exists.
|
|
1610
1790
|
const dir = dirname(timestampedPath);
|
|
1611
1791
|
await fs.mkdir(dir, { recursive: true });
|
|
1612
1792
|
await fs.writeFile(timestampedPath, JSON.stringify(config, null, 2), "utf-8");
|
|
@@ -1630,14 +1810,17 @@ async function runAgentCategoryListCommand(args) {
|
|
|
1630
1810
|
for (let i = 0; i < args.length; i += 1) {
|
|
1631
1811
|
const arg = args[i];
|
|
1632
1812
|
if (arg === "--help" || arg === "-h") {
|
|
1633
|
-
console.log(
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
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
|
+
}));
|
|
1641
1824
|
return 0;
|
|
1642
1825
|
}
|
|
1643
1826
|
if (arg === "-bd" || arg === "--biz-domain") {
|