@kweaver-ai/kweaver-sdk 0.5.1 → 0.6.0

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 (95) hide show
  1. package/README.md +25 -2
  2. package/README.zh.md +24 -1
  3. package/dist/api/agent-chat.d.ts +8 -2
  4. package/dist/api/agent-chat.js +150 -44
  5. package/dist/api/agent-list.d.ts +35 -0
  6. package/dist/api/agent-list.js +95 -21
  7. package/dist/api/bkn-backend.d.ts +60 -0
  8. package/dist/api/bkn-backend.js +103 -10
  9. package/dist/api/business-domains.js +9 -5
  10. package/dist/api/context-loader.js +4 -1
  11. package/dist/api/conversations.d.ts +6 -3
  12. package/dist/api/conversations.js +29 -35
  13. package/dist/api/dataflow.js +1 -10
  14. package/dist/api/dataflow2.d.ts +95 -0
  15. package/dist/api/dataflow2.js +80 -0
  16. package/dist/api/datasources.js +1 -10
  17. package/dist/api/dataviews.js +1 -10
  18. package/dist/api/headers.d.ts +11 -0
  19. package/dist/api/headers.js +30 -0
  20. package/dist/api/knowledge-networks.d.ts +41 -0
  21. package/dist/api/knowledge-networks.js +69 -22
  22. package/dist/api/ontology-query.d.ts +14 -1
  23. package/dist/api/ontology-query.js +63 -49
  24. package/dist/api/semantic-search.js +2 -12
  25. package/dist/api/skills.d.ts +141 -0
  26. package/dist/api/skills.js +208 -0
  27. package/dist/api/vega.d.ts +54 -7
  28. package/dist/api/vega.js +112 -25
  29. package/dist/auth/oauth.d.ts +5 -1
  30. package/dist/auth/oauth.js +351 -95
  31. package/dist/cli.js +49 -5
  32. package/dist/client.d.ts +12 -0
  33. package/dist/client.js +52 -8
  34. package/dist/commands/agent.d.ts +33 -1
  35. package/dist/commands/agent.js +721 -49
  36. package/dist/commands/auth.js +226 -55
  37. package/dist/commands/bkn-ops.d.ts +77 -0
  38. package/dist/commands/bkn-ops.js +1056 -0
  39. package/dist/commands/bkn-query.d.ts +14 -0
  40. package/dist/commands/bkn-query.js +370 -0
  41. package/dist/commands/bkn-schema.d.ts +135 -0
  42. package/dist/commands/bkn-schema.js +1483 -0
  43. package/dist/commands/bkn-utils.d.ts +36 -0
  44. package/dist/commands/bkn-utils.js +102 -0
  45. package/dist/commands/bkn.d.ts +7 -113
  46. package/dist/commands/bkn.js +175 -2429
  47. package/dist/commands/call.js +8 -5
  48. package/dist/commands/dataflow.d.ts +1 -0
  49. package/dist/commands/dataflow.js +251 -0
  50. package/dist/commands/dataview.d.ts +7 -0
  51. package/dist/commands/dataview.js +38 -2
  52. package/dist/commands/ds.d.ts +1 -0
  53. package/dist/commands/ds.js +8 -1
  54. package/dist/commands/explore-bkn.d.ts +79 -0
  55. package/dist/commands/explore-bkn.js +273 -0
  56. package/dist/commands/explore-chat.d.ts +3 -0
  57. package/dist/commands/explore-chat.js +193 -0
  58. package/dist/commands/explore-vega.d.ts +3 -0
  59. package/dist/commands/explore-vega.js +71 -0
  60. package/dist/commands/explore.d.ts +9 -0
  61. package/dist/commands/explore.js +258 -0
  62. package/dist/commands/import-csv.d.ts +2 -0
  63. package/dist/commands/import-csv.js +3 -2
  64. package/dist/commands/skill.d.ts +26 -0
  65. package/dist/commands/skill.js +524 -0
  66. package/dist/commands/vega.js +372 -117
  67. package/dist/config/jwt.d.ts +6 -0
  68. package/dist/config/jwt.js +21 -0
  69. package/dist/config/no-auth.d.ts +3 -0
  70. package/dist/config/no-auth.js +5 -0
  71. package/dist/config/store.d.ts +45 -5
  72. package/dist/config/store.js +385 -30
  73. package/dist/index.d.ts +6 -1
  74. package/dist/index.js +5 -1
  75. package/dist/kweaver.d.ts +5 -0
  76. package/dist/kweaver.js +32 -2
  77. package/dist/resources/bkn.d.ts +4 -0
  78. package/dist/resources/bkn.js +6 -3
  79. package/dist/resources/conversations.d.ts +5 -2
  80. package/dist/resources/conversations.js +17 -3
  81. package/dist/resources/knowledge-networks.js +3 -8
  82. package/dist/resources/skills.d.ts +47 -0
  83. package/dist/resources/skills.js +47 -0
  84. package/dist/resources/vega.d.ts +11 -6
  85. package/dist/resources/vega.js +37 -10
  86. package/dist/templates/explorer/app.js +136 -0
  87. package/dist/templates/explorer/bkn.js +747 -0
  88. package/dist/templates/explorer/chat.js +980 -0
  89. package/dist/templates/explorer/dashboard.js +82 -0
  90. package/dist/templates/explorer/index.html +35 -0
  91. package/dist/templates/explorer/style.css +2440 -0
  92. package/dist/templates/explorer/vega.js +291 -0
  93. package/dist/utils/http.d.ts +3 -0
  94. package/dist/utils/http.js +37 -1
  95. package/package.json +9 -5
@@ -1,14 +1,5 @@
1
- import { HttpError } from "../utils/http.js";
2
- function buildHeaders(accessToken, businessDomain) {
3
- return {
4
- accept: "application/json, text/plain, */*",
5
- "accept-language": "zh-CN",
6
- authorization: `Bearer ${accessToken}`,
7
- token: accessToken,
8
- "x-business-domain": businessDomain,
9
- "x-language": "zh-CN",
10
- };
11
- }
1
+ import { HttpError, fetchWithRetry } from "../utils/http.js";
2
+ import { buildHeaders } from "./headers.js";
12
3
  export async function listAgents(options) {
13
4
  const { baseUrl, accessToken, businessDomain = "bd_public", name = "", offset = 0, limit = 50, category_id = "", custom_space_id = "", is_to_square = 1, } = options;
14
5
  const base = baseUrl.replace(/\/+$/, "");
@@ -21,7 +12,7 @@ export async function listAgents(options) {
21
12
  custom_space_id,
22
13
  is_to_square,
23
14
  });
24
- const response = await fetch(url, {
15
+ const response = await fetchWithRetry(url, {
25
16
  method: "POST",
26
17
  headers: buildHeaders(accessToken, businessDomain),
27
18
  body,
@@ -36,7 +27,7 @@ export async function getAgent(options) {
36
27
  const { baseUrl, accessToken, agentId, businessDomain = "bd_public", } = options;
37
28
  const base = baseUrl.replace(/\/+$/, "");
38
29
  const url = `${base}/api/agent-factory/v3/agent/${encodeURIComponent(agentId)}`;
39
- const response = await fetch(url, {
30
+ const response = await fetchWithRetry(url, {
40
31
  method: "GET",
41
32
  headers: buildHeaders(accessToken, businessDomain),
42
33
  });
@@ -50,7 +41,7 @@ export async function getAgentByKey(options) {
50
41
  const { baseUrl, accessToken, key, businessDomain = "bd_public", } = options;
51
42
  const base = baseUrl.replace(/\/+$/, "");
52
43
  const url = `${base}/api/agent-factory/v3/agent/by-key/${encodeURIComponent(key)}`;
53
- const response = await fetch(url, {
44
+ const response = await fetchWithRetry(url, {
54
45
  method: "GET",
55
46
  headers: buildHeaders(accessToken, businessDomain),
56
47
  });
@@ -64,7 +55,7 @@ export async function createAgent(options) {
64
55
  const { baseUrl, accessToken, body, businessDomain = "bd_public", } = options;
65
56
  const base = baseUrl.replace(/\/+$/, "");
66
57
  const url = `${base}/api/agent-factory/v3/agent`;
67
- const response = await fetch(url, {
58
+ const response = await fetchWithRetry(url, {
68
59
  method: "POST",
69
60
  headers: {
70
61
  ...buildHeaders(accessToken, businessDomain),
@@ -82,7 +73,7 @@ export async function updateAgent(options) {
82
73
  const { baseUrl, accessToken, agentId, body, businessDomain = "bd_public", } = options;
83
74
  const base = baseUrl.replace(/\/+$/, "");
84
75
  const url = `${base}/api/agent-factory/v3/agent/${encodeURIComponent(agentId)}`;
85
- const response = await fetch(url, {
76
+ const response = await fetchWithRetry(url, {
86
77
  method: "PUT",
87
78
  headers: {
88
79
  ...buildHeaders(accessToken, businessDomain),
@@ -100,7 +91,7 @@ export async function deleteAgent(options) {
100
91
  const { baseUrl, accessToken, agentId, businessDomain = "bd_public", } = options;
101
92
  const base = baseUrl.replace(/\/+$/, "");
102
93
  const url = `${base}/api/agent-factory/v3/agent/${encodeURIComponent(agentId)}`;
103
- const response = await fetch(url, {
94
+ const response = await fetchWithRetry(url, {
104
95
  method: "DELETE",
105
96
  headers: buildHeaders(accessToken, businessDomain),
106
97
  });
@@ -110,16 +101,25 @@ export async function deleteAgent(options) {
110
101
  }
111
102
  }
112
103
  export async function publishAgent(options) {
113
- const { baseUrl, accessToken, agentId, body = "{}", businessDomain = "bd_public", } = options;
104
+ const { baseUrl, accessToken, agentId, body, categoryId, businessDomain = "bd_public", } = options;
114
105
  const base = baseUrl.replace(/\/+$/, "");
115
106
  const url = `${base}/api/agent-factory/v3/agent/${encodeURIComponent(agentId)}/publish`;
116
- const response = await fetch(url, {
107
+ // Build default body if not provided
108
+ const requestBody = body || JSON.stringify({
109
+ business_domain_id: "bd_public",
110
+ category_ids: categoryId ? [categoryId] : [],
111
+ description: "",
112
+ publish_to_where: ["square"],
113
+ publish_to_bes: ["skill_agent"],
114
+ pms_control: null,
115
+ });
116
+ const response = await fetchWithRetry(url, {
117
117
  method: "POST",
118
118
  headers: {
119
119
  ...buildHeaders(accessToken, businessDomain),
120
120
  "content-type": "application/json",
121
121
  },
122
- body,
122
+ body: requestBody,
123
123
  });
124
124
  const responseBody = await response.text();
125
125
  if (!response.ok) {
@@ -131,7 +131,7 @@ export async function unpublishAgent(options) {
131
131
  const { baseUrl, accessToken, agentId, businessDomain = "bd_public", } = options;
132
132
  const base = baseUrl.replace(/\/+$/, "");
133
133
  const url = `${base}/api/agent-factory/v3/agent/${encodeURIComponent(agentId)}/unpublish`;
134
- const response = await fetch(url, {
134
+ const response = await fetchWithRetry(url, {
135
135
  method: "PUT",
136
136
  headers: buildHeaders(accessToken, businessDomain),
137
137
  });
@@ -140,3 +140,77 @@ export async function unpublishAgent(options) {
140
140
  throw new HttpError(response.status, response.statusText, responseBody);
141
141
  }
142
142
  }
143
+ export async function listPersonalAgents(options) {
144
+ const { baseUrl, accessToken, businessDomain = "bd_public", name = "", pagination_marker_str = "", publish_status = "", publish_to_be = "", size = 48, } = options;
145
+ const base = baseUrl.replace(/\/+$/, "");
146
+ const params = new URLSearchParams();
147
+ if (name)
148
+ params.append("name", name);
149
+ if (pagination_marker_str)
150
+ params.append("pagination_marker_str", pagination_marker_str);
151
+ if (publish_status)
152
+ params.append("publish_status", publish_status);
153
+ if (publish_to_be)
154
+ params.append("publish_to_be", publish_to_be);
155
+ params.append("size", String(size));
156
+ const url = `${base}/api/agent-factory/v3/personal-space/agent-list?${params.toString()}`;
157
+ const response = await fetchWithRetry(url, {
158
+ method: "GET",
159
+ headers: buildHeaders(accessToken, businessDomain),
160
+ });
161
+ const responseBody = await response.text();
162
+ if (!response.ok) {
163
+ throw new HttpError(response.status, response.statusText, responseBody);
164
+ }
165
+ return responseBody;
166
+ }
167
+ export async function listPublishedAgentTemplates(options) {
168
+ const { baseUrl, accessToken, businessDomain = "bd_public", category_id = "", name = "", pagination_marker_str = "", size = 48, } = options;
169
+ const base = baseUrl.replace(/\/+$/, "");
170
+ const params = new URLSearchParams();
171
+ if (category_id)
172
+ params.append("category_id", category_id);
173
+ if (name)
174
+ params.append("name", name);
175
+ if (pagination_marker_str)
176
+ params.append("pagination_marker_str", pagination_marker_str);
177
+ params.append("size", String(size));
178
+ const url = `${base}/api/agent-factory/v3/published/agent-tpl?${params.toString()}`;
179
+ const response = await fetchWithRetry(url, {
180
+ method: "GET",
181
+ headers: buildHeaders(accessToken, businessDomain),
182
+ });
183
+ const responseBody = await response.text();
184
+ if (!response.ok) {
185
+ throw new HttpError(response.status, response.statusText, responseBody);
186
+ }
187
+ return responseBody;
188
+ }
189
+ export async function getPublishedAgentTemplate(options) {
190
+ const { baseUrl, accessToken, templateId, businessDomain = "bd_public", } = options;
191
+ const base = baseUrl.replace(/\/+$/, "");
192
+ const url = `${base}/api/agent-factory/v3/published/agent-tpl/${encodeURIComponent(templateId)}`;
193
+ const response = await fetchWithRetry(url, {
194
+ method: "GET",
195
+ headers: buildHeaders(accessToken, businessDomain),
196
+ });
197
+ const responseBody = await response.text();
198
+ if (!response.ok) {
199
+ throw new HttpError(response.status, response.statusText, responseBody);
200
+ }
201
+ return responseBody;
202
+ }
203
+ export async function listAgentCategories(options) {
204
+ const { baseUrl, accessToken, businessDomain = "bd_public", } = options;
205
+ const base = baseUrl.replace(/\/+$/, "");
206
+ const url = `${base}/api/agent-factory/v3/category`;
207
+ const response = await fetchWithRetry(url, {
208
+ method: "GET",
209
+ headers: buildHeaders(accessToken, businessDomain),
210
+ });
211
+ const responseBody = await response.text();
212
+ if (!response.ok) {
213
+ throw new HttpError(response.status, response.statusText, responseBody);
214
+ }
215
+ return responseBody;
216
+ }
@@ -6,6 +6,66 @@ export interface UploadBknOptions {
6
6
  branch?: string;
7
7
  }
8
8
  export declare function uploadBkn(options: UploadBknOptions): Promise<string>;
9
+ export interface BknBackendBaseOptions {
10
+ baseUrl: string;
11
+ accessToken: string;
12
+ businessDomain?: string;
13
+ }
14
+ export interface BknBackendKnOptions extends BknBackendBaseOptions {
15
+ knId: string;
16
+ }
17
+ export interface ConceptGroupOptions extends BknBackendKnOptions {
18
+ cgId: string;
19
+ }
20
+ export interface ConceptGroupBodyOptions extends BknBackendKnOptions {
21
+ body: string;
22
+ }
23
+ export interface ConceptGroupMutateOptions extends ConceptGroupOptions {
24
+ body: string;
25
+ }
26
+ export interface ConceptGroupRemoveMembersOptions extends ConceptGroupOptions {
27
+ otIds: string;
28
+ }
29
+ export declare function listConceptGroups(opts: BknBackendKnOptions): Promise<string>;
30
+ export declare function getConceptGroup(opts: ConceptGroupOptions): Promise<string>;
31
+ export declare function createConceptGroup(opts: ConceptGroupBodyOptions): Promise<string>;
32
+ export declare function updateConceptGroup(opts: ConceptGroupMutateOptions): Promise<string>;
33
+ export declare function deleteConceptGroup(opts: ConceptGroupOptions): Promise<string>;
34
+ export declare function addConceptGroupMembers(opts: ConceptGroupMutateOptions): Promise<string>;
35
+ export declare function removeConceptGroupMembers(opts: ConceptGroupRemoveMembersOptions): Promise<string>;
36
+ export interface ActionScheduleOptions extends BknBackendKnOptions {
37
+ scheduleId: string;
38
+ }
39
+ export interface ActionScheduleBodyOptions extends BknBackendKnOptions {
40
+ body: string;
41
+ }
42
+ export interface ActionScheduleMutateOptions extends ActionScheduleOptions {
43
+ body: string;
44
+ }
45
+ export interface ActionScheduleDeleteOptions extends BknBackendKnOptions {
46
+ scheduleIds: string;
47
+ }
48
+ export declare function listActionSchedules(opts: BknBackendKnOptions): Promise<string>;
49
+ export declare function getActionSchedule(opts: ActionScheduleOptions): Promise<string>;
50
+ export declare function createActionSchedule(opts: ActionScheduleBodyOptions): Promise<string>;
51
+ export declare function updateActionSchedule(opts: ActionScheduleMutateOptions): Promise<string>;
52
+ export declare function setActionScheduleStatus(opts: ActionScheduleMutateOptions): Promise<string>;
53
+ export declare function deleteActionSchedules(opts: ActionScheduleDeleteOptions): Promise<string>;
54
+ export interface JobOptions extends BknBackendKnOptions {
55
+ jobId: string;
56
+ }
57
+ export interface JobDeleteOptions extends BknBackendKnOptions {
58
+ jobIds: string;
59
+ }
60
+ export declare function listJobs(opts: BknBackendKnOptions): Promise<string>;
61
+ export declare function getJob(opts: JobOptions): Promise<string>;
62
+ export declare function getJobTasks(opts: JobOptions): Promise<string>;
63
+ export declare function deleteJobs(opts: JobDeleteOptions): Promise<string>;
64
+ export interface RelationTypePathsOptions extends BknBackendKnOptions {
65
+ body: string;
66
+ }
67
+ export declare function queryRelationTypePaths(opts: RelationTypePathsOptions): Promise<string>;
68
+ export declare function listBknResources(opts: BknBackendBaseOptions): Promise<string>;
9
69
  export interface DownloadBknOptions {
10
70
  baseUrl: string;
11
71
  accessToken: string;
@@ -1,14 +1,5 @@
1
1
  import { HttpError } from "../utils/http.js";
2
- function buildHeaders(accessToken, businessDomain) {
3
- return {
4
- accept: "application/json, text/plain, */*",
5
- "accept-language": "zh-cn",
6
- authorization: `Bearer ${accessToken}`,
7
- token: accessToken,
8
- "x-business-domain": businessDomain,
9
- "x-language": "zh-cn",
10
- };
11
- }
2
+ import { buildHeaders } from "./headers.js";
12
3
  export async function uploadBkn(options) {
13
4
  const { baseUrl, accessToken, tarBuffer, businessDomain = "bd_public", branch = "main", } = options;
14
5
  const base = baseUrl.replace(/\/+$/, "");
@@ -28,6 +19,108 @@ export async function uploadBkn(options) {
28
19
  }
29
20
  return body;
30
21
  }
22
+ const BKN_BASE = "/api/bkn-backend/v1";
23
+ function knUrl(baseUrl, knId, path) {
24
+ const base = baseUrl.replace(/\/+$/, "");
25
+ return `${base}${BKN_BASE}/knowledge-networks/${encodeURIComponent(knId)}/${path}`;
26
+ }
27
+ function baseUrlOnly(baseUrl, path) {
28
+ const base = baseUrl.replace(/\/+$/, "");
29
+ return `${base}${BKN_BASE}/${path}`;
30
+ }
31
+ async function bknGet(url, accessToken, businessDomain = "bd_public") {
32
+ const response = await fetch(url, { method: "GET", headers: buildHeaders(accessToken, businessDomain) });
33
+ const body = await response.text();
34
+ if (!response.ok)
35
+ throw new HttpError(response.status, response.statusText, body);
36
+ return body;
37
+ }
38
+ async function bknPost(url, accessToken, reqBody, businessDomain = "bd_public") {
39
+ const response = await fetch(url, {
40
+ method: "POST",
41
+ headers: { ...buildHeaders(accessToken, businessDomain), "content-type": "application/json" },
42
+ body: reqBody,
43
+ });
44
+ const body = await response.text();
45
+ if (!response.ok)
46
+ throw new HttpError(response.status, response.statusText, body);
47
+ return body;
48
+ }
49
+ async function bknPut(url, accessToken, reqBody, businessDomain = "bd_public") {
50
+ const response = await fetch(url, {
51
+ method: "PUT",
52
+ headers: { ...buildHeaders(accessToken, businessDomain), "content-type": "application/json" },
53
+ body: reqBody,
54
+ });
55
+ const body = await response.text();
56
+ if (!response.ok)
57
+ throw new HttpError(response.status, response.statusText, body);
58
+ return body;
59
+ }
60
+ async function bknDelete(url, accessToken, businessDomain = "bd_public") {
61
+ const response = await fetch(url, { method: "DELETE", headers: buildHeaders(accessToken, businessDomain) });
62
+ const body = await response.text();
63
+ if (!response.ok)
64
+ throw new HttpError(response.status, response.statusText, body);
65
+ return body;
66
+ }
67
+ export function listConceptGroups(opts) {
68
+ return bknGet(knUrl(opts.baseUrl, opts.knId, "concept-groups"), opts.accessToken, opts.businessDomain);
69
+ }
70
+ export function getConceptGroup(opts) {
71
+ return bknGet(knUrl(opts.baseUrl, opts.knId, `concept-groups/${encodeURIComponent(opts.cgId)}`), opts.accessToken, opts.businessDomain);
72
+ }
73
+ export function createConceptGroup(opts) {
74
+ return bknPost(knUrl(opts.baseUrl, opts.knId, "concept-groups"), opts.accessToken, opts.body, opts.businessDomain);
75
+ }
76
+ export function updateConceptGroup(opts) {
77
+ return bknPut(knUrl(opts.baseUrl, opts.knId, `concept-groups/${encodeURIComponent(opts.cgId)}`), opts.accessToken, opts.body, opts.businessDomain);
78
+ }
79
+ export function deleteConceptGroup(opts) {
80
+ return bknDelete(knUrl(opts.baseUrl, opts.knId, `concept-groups/${encodeURIComponent(opts.cgId)}`), opts.accessToken, opts.businessDomain);
81
+ }
82
+ export function addConceptGroupMembers(opts) {
83
+ return bknPost(knUrl(opts.baseUrl, opts.knId, `concept-groups/${encodeURIComponent(opts.cgId)}/object-types`), opts.accessToken, opts.body, opts.businessDomain);
84
+ }
85
+ export function removeConceptGroupMembers(opts) {
86
+ return bknDelete(knUrl(opts.baseUrl, opts.knId, `concept-groups/${encodeURIComponent(opts.cgId)}/object-types/${opts.otIds}`), opts.accessToken, opts.businessDomain);
87
+ }
88
+ export function listActionSchedules(opts) {
89
+ return bknGet(knUrl(opts.baseUrl, opts.knId, "action-schedules"), opts.accessToken, opts.businessDomain);
90
+ }
91
+ export function getActionSchedule(opts) {
92
+ return bknGet(knUrl(opts.baseUrl, opts.knId, `action-schedules/${encodeURIComponent(opts.scheduleId)}`), opts.accessToken, opts.businessDomain);
93
+ }
94
+ export function createActionSchedule(opts) {
95
+ return bknPost(knUrl(opts.baseUrl, opts.knId, "action-schedules"), opts.accessToken, opts.body, opts.businessDomain);
96
+ }
97
+ export function updateActionSchedule(opts) {
98
+ return bknPut(knUrl(opts.baseUrl, opts.knId, `action-schedules/${encodeURIComponent(opts.scheduleId)}`), opts.accessToken, opts.body, opts.businessDomain);
99
+ }
100
+ export function setActionScheduleStatus(opts) {
101
+ return bknPut(knUrl(opts.baseUrl, opts.knId, `action-schedules/${encodeURIComponent(opts.scheduleId)}/status`), opts.accessToken, opts.body, opts.businessDomain);
102
+ }
103
+ export function deleteActionSchedules(opts) {
104
+ return bknDelete(knUrl(opts.baseUrl, opts.knId, `action-schedules/${opts.scheduleIds}`), opts.accessToken, opts.businessDomain);
105
+ }
106
+ export function listJobs(opts) {
107
+ return bknGet(knUrl(opts.baseUrl, opts.knId, "jobs"), opts.accessToken, opts.businessDomain);
108
+ }
109
+ export function getJob(opts) {
110
+ return bknGet(knUrl(opts.baseUrl, opts.knId, `jobs/${encodeURIComponent(opts.jobId)}`), opts.accessToken, opts.businessDomain);
111
+ }
112
+ export function getJobTasks(opts) {
113
+ return bknGet(knUrl(opts.baseUrl, opts.knId, `jobs/${encodeURIComponent(opts.jobId)}/tasks`), opts.accessToken, opts.businessDomain);
114
+ }
115
+ export function deleteJobs(opts) {
116
+ return bknDelete(knUrl(opts.baseUrl, opts.knId, `jobs/${opts.jobIds}`), opts.accessToken, opts.businessDomain);
117
+ }
118
+ export function queryRelationTypePaths(opts) {
119
+ return bknPost(knUrl(opts.baseUrl, opts.knId, "relation-type-paths"), opts.accessToken, opts.body, opts.businessDomain);
120
+ }
121
+ export function listBknResources(opts) {
122
+ return bknGet(baseUrlOnly(opts.baseUrl, "resources"), opts.accessToken, opts.businessDomain);
123
+ }
31
124
  export async function downloadBkn(options) {
32
125
  const { baseUrl, accessToken, knId, businessDomain = "bd_public", branch = "main", } = options;
33
126
  const base = baseUrl.replace(/\/+$/, "");
@@ -1,3 +1,4 @@
1
+ import { isNoAuth } from "../config/no-auth.js";
1
2
  import { HttpError } from "../utils/http.js";
2
3
  async function withTlsInsecure(tlsInsecure, fn) {
3
4
  if (!tlsInsecure) {
@@ -26,13 +27,16 @@ export async function listBusinessDomains(options) {
26
27
  const base = baseUrl.replace(/\/+$/, "");
27
28
  const url = `${base}/api/business-system/v1/business-domain`;
28
29
  return withTlsInsecure(tlsInsecure, async () => {
30
+ const headers = {
31
+ accept: "application/json, text/plain, */*",
32
+ };
33
+ if (!isNoAuth(accessToken)) {
34
+ headers.authorization = `Bearer ${accessToken}`;
35
+ headers.token = accessToken;
36
+ }
29
37
  const response = await fetch(url, {
30
38
  method: "GET",
31
- headers: {
32
- accept: "application/json, text/plain, */*",
33
- authorization: `Bearer ${accessToken}`,
34
- token: accessToken,
35
- },
39
+ headers,
36
40
  });
37
41
  const body = await response.text();
38
42
  if (!response.ok) {
@@ -1,3 +1,4 @@
1
+ import { isNoAuth } from "../config/no-auth.js";
1
2
  import { fetchTextOrThrow } from "../utils/http.js";
2
3
  const MCP_PROTOCOL_VERSION = "2024-11-05";
3
4
  const SESSION_TTL_MS = 300_000; // 5 minutes
@@ -9,10 +10,12 @@ function buildHeaders(options, sessionId) {
9
10
  const headers = {
10
11
  "Content-Type": "application/json",
11
12
  Accept: "application/json, text/event-stream",
12
- Authorization: `Bearer ${options.accessToken}`,
13
13
  "X-Kn-ID": options.knId,
14
14
  "MCP-Protocol-Version": MCP_PROTOCOL_VERSION,
15
15
  };
16
+ if (!isNoAuth(options.accessToken)) {
17
+ headers.Authorization = `Bearer ${options.accessToken}`;
18
+ }
16
19
  if (sessionId) {
17
20
  headers["MCP-Session-Id"] = sessionId;
18
21
  }
@@ -1,21 +1,24 @@
1
1
  export interface ListConversationsOptions {
2
2
  baseUrl: string;
3
3
  accessToken: string;
4
- agentId: string;
4
+ agentKey: string;
5
5
  businessDomain?: string;
6
- limit?: number;
6
+ page?: number;
7
+ size?: number;
7
8
  }
8
9
  export interface ListMessagesOptions {
9
10
  baseUrl: string;
10
11
  accessToken: string;
12
+ agentKey: string;
11
13
  conversationId: string;
12
14
  businessDomain?: string;
13
- limit?: number;
14
15
  }
15
16
  export interface GetTracesOptions {
16
17
  baseUrl: string;
17
18
  accessToken: string;
19
+ agentId: string;
18
20
  conversationId: string;
21
+ businessDomain?: string;
19
22
  }
20
23
  /**
21
24
  * List conversations for an agent.
@@ -1,53 +1,55 @@
1
- function buildConversationsUrl(baseUrl, agentId) {
1
+ import { buildHeaders } from "./headers.js";
2
+ function buildConversationsUrl(baseUrl, agentKey) {
2
3
  const base = baseUrl.replace(/\/+$/, "");
3
- return `${base}/api/agent-app/v1/app/${agentId}/conversations`;
4
+ return `${base}/api/agent-factory/v1/app/${agentKey}/conversation`;
4
5
  }
5
- function buildMessagesUrl(baseUrl, conversationId) {
6
+ function buildMessagesUrl(baseUrl, agentKey, conversationId) {
6
7
  const base = baseUrl.replace(/\/+$/, "");
7
- return `${base}/api/agent-app/v1/conversations/${conversationId}/messages`;
8
+ return `${base}/api/agent-factory/v1/app/${agentKey}/conversation/${conversationId}`;
8
9
  }
9
10
  /**
10
11
  * List conversations for an agent.
11
12
  * Returns empty array on 404 (endpoint may not be available in all deployments).
12
13
  */
13
14
  export async function listConversations(opts) {
14
- const { baseUrl, accessToken, agentId, businessDomain = "bd_public", limit } = opts;
15
- const url = new URL(buildConversationsUrl(baseUrl, agentId));
16
- if (limit !== undefined) {
17
- url.searchParams.set("limit", String(limit));
18
- }
15
+ const { baseUrl, accessToken, agentKey, businessDomain = "bd_public", page = 1, size = 10 } = opts;
16
+ const url = new URL(buildConversationsUrl(baseUrl, agentKey));
17
+ url.searchParams.set("page", String(page));
18
+ url.searchParams.set("size", String(size));
19
19
  const response = await fetch(url.toString(), {
20
20
  method: "GET",
21
21
  headers: {
22
22
  accept: "application/json",
23
- authorization: `Bearer ${accessToken}`,
24
- token: accessToken,
25
- "x-business-domain": businessDomain,
23
+ ...buildHeaders(accessToken, businessDomain),
26
24
  },
27
25
  });
28
- if (response.status === 404) {
29
- return "[]";
30
- }
31
26
  const body = await response.text();
32
27
  if (!response.ok) {
33
28
  throw new Error(`listConversations failed: HTTP ${response.status} ${response.statusText} — ${body.slice(0, 200)}`);
34
29
  }
35
30
  return body || "[]";
36
31
  }
37
- function buildTracesUrl(baseUrl, conversationId) {
32
+ function buildTracesUrl(baseUrl, agentId, conversationId) {
38
33
  const base = baseUrl.replace(/\/+$/, "");
39
- return `${base}/api/agent-observability/v1/traces/by-conversation?conversation_id=${conversationId}`;
34
+ return `${base}/api/agent-factory/v1/observability/agent/${agentId}/conversation/${conversationId}/session`;
40
35
  }
41
36
  export async function getTracesByConversation(opts) {
42
- const { baseUrl, accessToken, conversationId } = opts;
43
- const url = buildTracesUrl(baseUrl, conversationId);
37
+ const { baseUrl, accessToken, agentId, conversationId, businessDomain = "bd_public" } = opts;
38
+ const url = buildTracesUrl(baseUrl, agentId, conversationId);
44
39
  const response = await fetch(url, {
45
- method: "GET",
40
+ method: "POST",
46
41
  headers: {
42
+ "Content-Type": "application/json",
47
43
  accept: "application/json",
48
- authorization: `Bearer ${accessToken}`,
49
- token: accessToken,
44
+ ...buildHeaders(accessToken, businessDomain),
50
45
  },
46
+ body: JSON.stringify({
47
+ agent_id: agentId,
48
+ start_time: 1,
49
+ end_time: Date.now() + 86400000,
50
+ page: 1,
51
+ size: 50,
52
+ }),
51
53
  });
52
54
  const body = await response.text();
53
55
  if (!response.ok) {
@@ -60,26 +62,18 @@ export async function getTracesByConversation(opts) {
60
62
  * Returns empty array on 404 (endpoint may not be available in all deployments).
61
63
  */
62
64
  export async function listMessages(opts) {
63
- const { baseUrl, accessToken, conversationId, businessDomain = "bd_public", limit } = opts;
64
- const url = new URL(buildMessagesUrl(baseUrl, conversationId));
65
- if (limit !== undefined) {
66
- url.searchParams.set("limit", String(limit));
67
- }
68
- const response = await fetch(url.toString(), {
65
+ const { baseUrl, accessToken, agentKey, conversationId, businessDomain = "bd_public" } = opts;
66
+ const url = buildMessagesUrl(baseUrl, agentKey, conversationId);
67
+ const response = await fetch(url, {
69
68
  method: "GET",
70
69
  headers: {
71
70
  accept: "application/json",
72
- authorization: `Bearer ${accessToken}`,
73
- token: accessToken,
74
- "x-business-domain": businessDomain,
71
+ ...buildHeaders(accessToken, businessDomain),
75
72
  },
76
73
  });
77
- if (response.status === 404) {
78
- return "[]";
79
- }
80
74
  const body = await response.text();
81
75
  if (!response.ok) {
82
76
  throw new Error(`listMessages failed: HTTP ${response.status} ${response.statusText} — ${body.slice(0, 200)}`);
83
77
  }
84
- return body || "[]";
78
+ return body || "{}";
85
79
  }
@@ -1,14 +1,5 @@
1
1
  import { HttpError } from "../utils/http.js";
2
- function buildHeaders(accessToken, businessDomain) {
3
- return {
4
- accept: "application/json, text/plain, */*",
5
- "accept-language": "zh-cn",
6
- authorization: `Bearer ${accessToken}`,
7
- token: accessToken,
8
- "x-business-domain": businessDomain,
9
- "x-language": "zh-cn",
10
- };
11
- }
2
+ import { buildHeaders } from "./headers.js";
12
3
  function debugLog(method, url, headers, body) {
13
4
  if (!process.env["KWEAVER_DEBUG_HTTP"])
14
5
  return;
@@ -0,0 +1,95 @@
1
+ export interface DataflowListItem {
2
+ id: string;
3
+ title?: string;
4
+ status?: string;
5
+ trigger?: string;
6
+ creator?: string;
7
+ updated_at?: number;
8
+ version_id?: string;
9
+ }
10
+ export interface DataflowListResponse {
11
+ dags: DataflowListItem[];
12
+ limit?: number;
13
+ page?: number;
14
+ total?: number;
15
+ }
16
+ export interface DataflowRunSource {
17
+ name?: string;
18
+ content_type?: string;
19
+ size?: number;
20
+ [key: string]: unknown;
21
+ }
22
+ export interface DataflowRunItem {
23
+ id: string;
24
+ status?: string;
25
+ started_at?: number;
26
+ ended_at?: number | null;
27
+ reason?: string | null;
28
+ source?: DataflowRunSource;
29
+ }
30
+ export interface DataflowRunsResponse {
31
+ results: DataflowRunItem[];
32
+ limit?: number;
33
+ page?: number;
34
+ total?: number;
35
+ }
36
+ export interface DataflowLogMetadata {
37
+ duration?: number;
38
+ [key: string]: unknown;
39
+ }
40
+ export interface DataflowLogItem {
41
+ id: string;
42
+ operator?: string;
43
+ status?: string;
44
+ started_at?: number;
45
+ updated_at?: number;
46
+ inputs?: unknown;
47
+ outputs?: unknown;
48
+ taskId?: string;
49
+ metadata?: DataflowLogMetadata;
50
+ }
51
+ export interface DataflowLogsResponse {
52
+ results: DataflowLogItem[];
53
+ limit?: number;
54
+ page?: number;
55
+ total?: number;
56
+ }
57
+ export interface DataflowRunResponse {
58
+ dag_instance_id: string;
59
+ }
60
+ interface BaseOptions {
61
+ baseUrl: string;
62
+ accessToken: string;
63
+ businessDomain?: string;
64
+ }
65
+ export interface RunDataflowWithFileOptions extends BaseOptions {
66
+ dagId: string;
67
+ fileName: string;
68
+ fileBytes: Uint8Array;
69
+ }
70
+ export interface RunDataflowWithRemoteUrlOptions extends BaseOptions {
71
+ dagId: string;
72
+ url: string;
73
+ name: string;
74
+ }
75
+ export interface ListDataflowRunsOptions extends BaseOptions {
76
+ dagId: string;
77
+ page?: number;
78
+ limit?: number;
79
+ sortBy?: string;
80
+ order?: string;
81
+ startTime?: number;
82
+ endTime?: number;
83
+ }
84
+ export interface GetDataflowLogsPageOptions extends BaseOptions {
85
+ dagId: string;
86
+ instanceId: string;
87
+ page: number;
88
+ limit?: number;
89
+ }
90
+ export declare function listDataflows(options: BaseOptions): Promise<DataflowListResponse>;
91
+ export declare function runDataflowWithFile(options: RunDataflowWithFileOptions): Promise<DataflowRunResponse>;
92
+ export declare function runDataflowWithRemoteUrl(options: RunDataflowWithRemoteUrlOptions): Promise<DataflowRunResponse>;
93
+ export declare function listDataflowRuns(options: ListDataflowRunsOptions): Promise<DataflowRunsResponse>;
94
+ export declare function getDataflowLogsPage(options: GetDataflowLogsPageOptions): Promise<DataflowLogsResponse>;
95
+ export {};