@aui.io/apollo 0.1.53 → 0.1.54
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 +2 -2
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/kb.js +34 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/kb.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/package.json +3 -3
- package/node_modules/@aui.io/apollo-core/dist/src/api/download.d.ts +9 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/download.js +52 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/download.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/kbm.d.ts +58 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/kbm.js +10 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/kbm.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/knowledge.d.ts +85 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/knowledge.js +361 -10
- package/node_modules/@aui.io/apollo-core/dist/src/services/knowledge.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/package.json +1 -1
- package/node_modules/@aui.io/apollo-tui/package.json +2 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -89,8 +89,8 @@ thread create | list | get | messages | trace
|
|
|
89
89
|
mockdb provision | status | describe | export | keys | wire | delete --force
|
|
90
90
|
| collections … | seed | endpoint … | execute | session … | rotate …
|
|
91
91
|
vault set <NAME> | list | get <NAME> | rm <NAME> --force
|
|
92
|
-
kb list | status <name> | check |
|
|
93
|
-
| delete <name> --force
|
|
92
|
+
kb list | status <name> | check | create <name> | add <hub> <files…>
|
|
93
|
+
| add-url <hub> <urls…> | export <hub> | export --all | delete <name> --force
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
Run `apollo <command> --help` for the live flag list on your installed version.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ValidationError } from "@aui.io/apollo-core/errors/index.js";
|
|
2
|
-
import { addFiles, addUrls, createHub, deleteHub, getHubByName, hubRefCheck, hubStatus, listHubs, programHubRefs, } from "@aui.io/apollo-core/services/knowledge.js";
|
|
2
|
+
import { addFiles, addUrls, createHub, defaultExportRoot, deleteHub, describeHubExport, exportHubs, getHubByName, hubRefCheck, hubStatus, KNOWLEDGE_DATA_DIR, listHubs, programHubRefs, } from "@aui.io/apollo-core/services/knowledge.js";
|
|
3
3
|
function hubLine(hub) {
|
|
4
4
|
return `${hub.name.padEnd(32)} ${hub.id}`;
|
|
5
5
|
}
|
|
@@ -17,6 +17,27 @@ function uploadLines(result) {
|
|
|
17
17
|
`Indexing is asynchronous — \`apollo kb status ${result.hub.name}\` shows the outcome.`,
|
|
18
18
|
].join("\n");
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Export summary: one line per hub, then per-file failures, then where it
|
|
22
|
+
* all landed. Says "indexed" on purpose — the export is what KBM finished
|
|
23
|
+
* indexing, so anything still processing (or failed) is absent by design.
|
|
24
|
+
*/
|
|
25
|
+
function exportLines(result) {
|
|
26
|
+
if (result.hubs.length === 0)
|
|
27
|
+
return "No knowledge hubs for this agent.";
|
|
28
|
+
const lines = result.hubs.map((hub) => describeHubExport(hub, result.destination));
|
|
29
|
+
for (const hub of result.hubs) {
|
|
30
|
+
for (const failure of hub.failures) {
|
|
31
|
+
lines.push(` ✕ ${hub.hub.name}/${failure.title}: ${failure.error}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (result.unlisted.length > 0) {
|
|
35
|
+
lines.push(`not exported (visible to the scope but not owned by this agent): ${result.unlisted.join(", ")}`);
|
|
36
|
+
}
|
|
37
|
+
const count = result.hubs.length === 1 ? "1 hub" : `${result.hubs.length} hubs`;
|
|
38
|
+
lines.push(`Exported ${count} to ${result.destination} — indexed content only; \`apollo kb status <name>\` shows pending or failed jobs.`);
|
|
39
|
+
return lines.join("\n");
|
|
40
|
+
}
|
|
20
41
|
export function registerKb(program, runtime) {
|
|
21
42
|
const kb = program
|
|
22
43
|
.command("kb")
|
|
@@ -106,6 +127,18 @@ export function registerKb(program, runtime) {
|
|
|
106
127
|
return lines.join("\n");
|
|
107
128
|
});
|
|
108
129
|
});
|
|
130
|
+
kb.command("export [name]")
|
|
131
|
+
.description(`Download a hub's indexed content and original files into ${KNOWLEDGE_DATA_DIR}/<hub>/ — a sibling of bundle/, never part of push`)
|
|
132
|
+
.option("--all", "export every hub of the agent")
|
|
133
|
+
.action(async (name, options) => {
|
|
134
|
+
const run = runtime();
|
|
135
|
+
const result = await exportHubs(run.context, {
|
|
136
|
+
...(name === undefined ? {} : { hub: name }),
|
|
137
|
+
...(options.all === true ? { all: true } : {}),
|
|
138
|
+
destination: defaultExportRoot(run.context.agentRoot),
|
|
139
|
+
}, { onProgress: (message) => run.output.progress(message) });
|
|
140
|
+
run.output.result(result, () => exportLines(result));
|
|
141
|
+
});
|
|
109
142
|
kb.command("delete <name>")
|
|
110
143
|
.description("Permanently delete a hub and all its resources")
|
|
111
144
|
.option("--force", "required confirmation flag")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb.js","sourceRoot":"","sources":["../../../src/commands/kb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,OAAO,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,cAAc,
|
|
1
|
+
{"version":3,"file":"kb.js","sourceRoot":"","sources":["../../../src/commands/kb.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.54",
|
|
4
4
|
"description": "Command-line client for the Apollo runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"test": "vitest run"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@aui.io/apollo-core": "0.1.
|
|
36
|
+
"@aui.io/apollo-core": "0.1.54",
|
|
37
37
|
"commander": "^14.0.3",
|
|
38
38
|
"picocolors": "^1.1.1"
|
|
39
39
|
},
|
|
40
40
|
"optionalDependencies": {
|
|
41
|
-
"@aui.io/apollo-tui": "0.1.
|
|
41
|
+
"@aui.io/apollo-tui": "0.1.54"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@eslint/js": "^9.39.5",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface DownloadOptions {
|
|
2
|
+
fetch?: typeof globalThis.fetch;
|
|
3
|
+
/** Per-download ceiling; binaries can be large, so this floors well above the API default. */
|
|
4
|
+
timeoutMs?: number;
|
|
5
|
+
}
|
|
6
|
+
/** The URL without its query string — signatures must not reach logs or error text. */
|
|
7
|
+
export declare function describeUrl(url: string): string;
|
|
8
|
+
export declare function downloadBytes(url: string, options?: DownloadOptions): Promise<Uint8Array>;
|
|
9
|
+
export declare function downloadText(url: string, options?: DownloadOptions): Promise<string>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plain GETs against presigned links — GCS signed URLs and KBM's tokenized
|
|
3
|
+
* `/knowledge-bases/view/…` redirects. Deliberately NOT the Transport: these
|
|
4
|
+
* URLs carry their own credential in the query string, so a bearer header
|
|
5
|
+
* would either be rejected by the bucket or hand the session token to a
|
|
6
|
+
* third party. No auth, no service base URL, redirects followed, bytes back.
|
|
7
|
+
*/
|
|
8
|
+
import { CliError } from "../errors/index.js";
|
|
9
|
+
const DEFAULT_TIMEOUT_MS = 120_000;
|
|
10
|
+
/** The URL without its query string — signatures must not reach logs or error text. */
|
|
11
|
+
export function describeUrl(url) {
|
|
12
|
+
try {
|
|
13
|
+
const parsed = new URL(url);
|
|
14
|
+
return `${parsed.origin}${parsed.pathname}`;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return url.split("?")[0] ?? url;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export async function downloadBytes(url, options = {}) {
|
|
21
|
+
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
22
|
+
const timeoutMs = Math.max(options.timeoutMs ?? 0, DEFAULT_TIMEOUT_MS);
|
|
23
|
+
const controller = new AbortController();
|
|
24
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
25
|
+
try {
|
|
26
|
+
const response = await fetchImpl(url, {
|
|
27
|
+
method: "GET",
|
|
28
|
+
redirect: "follow",
|
|
29
|
+
signal: controller.signal,
|
|
30
|
+
});
|
|
31
|
+
if (!response.ok) {
|
|
32
|
+
throw new CliError(`Download failed (${response.status}) for ${describeUrl(url)}.`, {
|
|
33
|
+
code: "DOWNLOAD_FAILED",
|
|
34
|
+
suggestion: "Signed links expire about an hour after the export starts — re-run the command.",
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (controller.signal.aborted) {
|
|
41
|
+
throw new CliError(`Download timed out after ${timeoutMs}ms for ${describeUrl(url)}.`, { code: "REQUEST_TIMEOUT", cause: error });
|
|
42
|
+
}
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export async function downloadText(url, options = {}) {
|
|
50
|
+
return new TextDecoder().decode(await downloadBytes(url, options));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=download.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/api/download.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQ9C,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,uFAAuF;AACvF,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,UAA2B,EAAE;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,EAC/D;gBACE,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EACR,iFAAiF;aACpF,CACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,QAAQ,CAChB,4BAA4B,SAAS,UAAU,WAAW,CAAC,GAAG,CAAC,GAAG,EAClE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,CAC1C,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,UAA2B,EAAE;IAE7B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -64,6 +64,56 @@ export interface UploadFilePart {
|
|
|
64
64
|
content: Uint8Array | string;
|
|
65
65
|
contentType?: string;
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* `/knowledge-bases/view/export` acceptance. Only a pointer: the manifest
|
|
69
|
+
* itself sits behind `json_url`, a presigned link. Everything the export
|
|
70
|
+
* hands out expires at `expires_at` (~1h) — download in the same run.
|
|
71
|
+
*/
|
|
72
|
+
export interface ViewExportResponse {
|
|
73
|
+
json_url: string;
|
|
74
|
+
expires_at: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* One indexed FILE / single_resource inside the export manifest.
|
|
78
|
+
* `download_url` is the extracted body (assembled markdown, or a JSON rows
|
|
79
|
+
* array for tabular sources); `original_download_url` is the uploaded
|
|
80
|
+
* binary and is only set for file resources whose original still exists.
|
|
81
|
+
*/
|
|
82
|
+
export interface ViewExportFile {
|
|
83
|
+
title: string;
|
|
84
|
+
/** "file" | "single_resource" | "website" */
|
|
85
|
+
source: string;
|
|
86
|
+
url?: string | null;
|
|
87
|
+
download_url?: string | null;
|
|
88
|
+
original_download_url?: string | null;
|
|
89
|
+
created_at?: string | null;
|
|
90
|
+
updated_at?: string | null;
|
|
91
|
+
created_by?: string | null;
|
|
92
|
+
}
|
|
93
|
+
/** One scraped website inside the export manifest — the URL is its identity. */
|
|
94
|
+
export interface ViewExportWebsite {
|
|
95
|
+
url: string;
|
|
96
|
+
title?: string | null;
|
|
97
|
+
download_url?: string | null;
|
|
98
|
+
created_at?: string | null;
|
|
99
|
+
updated_at?: string | null;
|
|
100
|
+
created_by?: string | null;
|
|
101
|
+
}
|
|
102
|
+
export interface ViewExportKnowledgeBase {
|
|
103
|
+
name: string;
|
|
104
|
+
description?: string | null;
|
|
105
|
+
settings?: Record<string, unknown> | null;
|
|
106
|
+
tabular_files?: ViewExportFile[];
|
|
107
|
+
markdown_files?: ViewExportFile[];
|
|
108
|
+
websites?: ViewExportWebsite[];
|
|
109
|
+
created_at?: string | null;
|
|
110
|
+
updated_at?: string | null;
|
|
111
|
+
created_by?: string | null;
|
|
112
|
+
}
|
|
113
|
+
/** The JSON behind `ViewExportResponse.json_url`. */
|
|
114
|
+
export interface ViewExportManifest {
|
|
115
|
+
knowledge_bases: ViewExportKnowledgeBase[];
|
|
116
|
+
}
|
|
67
117
|
export declare class KbmClient {
|
|
68
118
|
private readonly http;
|
|
69
119
|
constructor(http: HttpClient);
|
|
@@ -71,6 +121,14 @@ export declare class KbmClient {
|
|
|
71
121
|
listKnowledgeBases(agentId: string): Promise<KnowledgeBase[]>;
|
|
72
122
|
/** Latest indexing jobs for one hub (newest page only). */
|
|
73
123
|
indexingJobs(kbId: string): Promise<IndexingJob[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Start a view export of every hub in the agent's scope (`agent_id`
|
|
126
|
+
* resolves the scope server-side, like the list). Read-only: KBM writes
|
|
127
|
+
* the manifest to storage and answers with a presigned pointer to it.
|
|
128
|
+
* Only INDEXED resources appear — pending and failed ones don't, so
|
|
129
|
+
* `indexingJobs` stays the place to learn about those.
|
|
130
|
+
*/
|
|
131
|
+
exportView(agentId: string): Promise<ViewExportResponse>;
|
|
74
132
|
/** Delete a whole hub (its resources included) — irreversible. */
|
|
75
133
|
deleteKnowledgeBase(kbId: string): Promise<void>;
|
|
76
134
|
/**
|
|
@@ -29,6 +29,16 @@ export class KbmClient {
|
|
|
29
29
|
const result = await this.http.request(`/v1/indexing-jobs/knowledge-base/${encodeURIComponent(kbId)}`, { query: { page: 1, size: PAGE_SIZE } });
|
|
30
30
|
return Array.isArray(result) ? result : result.items;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Start a view export of every hub in the agent's scope (`agent_id`
|
|
34
|
+
* resolves the scope server-side, like the list). Read-only: KBM writes
|
|
35
|
+
* the manifest to storage and answers with a presigned pointer to it.
|
|
36
|
+
* Only INDEXED resources appear — pending and failed ones don't, so
|
|
37
|
+
* `indexingJobs` stays the place to learn about those.
|
|
38
|
+
*/
|
|
39
|
+
async exportView(agentId) {
|
|
40
|
+
return this.http.request("/v1/knowledge-bases/view/export", { query: { agent_id: agentId } });
|
|
41
|
+
}
|
|
32
42
|
/** Delete a whole hub (its resources included) — irreversible. */
|
|
33
43
|
async deleteKnowledgeBase(kbId) {
|
|
34
44
|
await this.http.request(`/v1/knowledge-bases/${encodeURIComponent(kbId)}`, { method: "DELETE" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kbm.js","sourceRoot":"","sources":["../../../src/api/kbm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kbm.js","sourceRoot":"","sources":["../../../src/api/kbm.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,3 +71,88 @@ export declare function hubRefCheck(refs: string[], hubs: KnowledgeBase[]): {
|
|
|
71
71
|
missing: string[];
|
|
72
72
|
unreferenced: string[];
|
|
73
73
|
};
|
|
74
|
+
/** The export root, relative to the checkout. */
|
|
75
|
+
export declare const KNOWLEDGE_DATA_DIR = "knowledge-data";
|
|
76
|
+
/** Where exports go: `<checkout>/knowledge-data` (cwd-relative outside a checkout). */
|
|
77
|
+
export declare function defaultExportRoot(agentRoot: string | undefined): string;
|
|
78
|
+
/**
|
|
79
|
+
* Hub content is platform data, not program source — it must never land
|
|
80
|
+
* where a push could pick it up. An invariant on the service, not a CLI
|
|
81
|
+
* nicety: every caller gets it.
|
|
82
|
+
*/
|
|
83
|
+
export declare function assertOutsideBundle(destination: string, agentRoot: string | undefined): void;
|
|
84
|
+
/** One indexed resource as written to disk. Paths are relative to the hub directory. */
|
|
85
|
+
export interface ExportedResource {
|
|
86
|
+
kind: "markdown" | "tabular" | "website";
|
|
87
|
+
title: string;
|
|
88
|
+
/** KBM origin type: "file" | "single_resource" | "website". */
|
|
89
|
+
source: string;
|
|
90
|
+
url: string | null;
|
|
91
|
+
/** The extracted body — `.md`, or a `.json` rows array for tabular sources. */
|
|
92
|
+
content: string | null;
|
|
93
|
+
/** The original upload (files only; null when KBM no longer holds the binary). */
|
|
94
|
+
original: string | null;
|
|
95
|
+
created_at: string | null;
|
|
96
|
+
updated_at: string | null;
|
|
97
|
+
created_by: string | null;
|
|
98
|
+
}
|
|
99
|
+
/** `manifest.json` in each hub directory — the CLI's own shape, never the wire's (no signed URLs). */
|
|
100
|
+
export interface ExportManifest {
|
|
101
|
+
format: "apollo-knowledge-export/1";
|
|
102
|
+
exported_at: string;
|
|
103
|
+
agent_id: string;
|
|
104
|
+
hub: {
|
|
105
|
+
id: string | null;
|
|
106
|
+
name: string;
|
|
107
|
+
description: string | null;
|
|
108
|
+
settings: Record<string, unknown> | null;
|
|
109
|
+
};
|
|
110
|
+
resources: ExportedResource[];
|
|
111
|
+
}
|
|
112
|
+
export interface HubExport {
|
|
113
|
+
hub: {
|
|
114
|
+
id: string | null;
|
|
115
|
+
name: string;
|
|
116
|
+
};
|
|
117
|
+
/** Absolute path of the hub directory. */
|
|
118
|
+
dir: string;
|
|
119
|
+
resources: ExportedResource[];
|
|
120
|
+
/** Original binaries actually written. */
|
|
121
|
+
originals: number;
|
|
122
|
+
/** Downloads that failed — the rest of the export still lands; nothing is silent. */
|
|
123
|
+
failures: {
|
|
124
|
+
title: string;
|
|
125
|
+
error: string;
|
|
126
|
+
}[];
|
|
127
|
+
}
|
|
128
|
+
export interface HubExportResult {
|
|
129
|
+
/** Absolute export root. */
|
|
130
|
+
destination: string;
|
|
131
|
+
/** When the signed links KBM handed out stop working; null when nothing was exported. */
|
|
132
|
+
expires_at: string | null;
|
|
133
|
+
hubs: HubExport[];
|
|
134
|
+
/** Hubs KBM exported for this scope that `kb list` does not own — left on the server, reported here. */
|
|
135
|
+
unlisted: string[];
|
|
136
|
+
}
|
|
137
|
+
export interface ExportHubsParams {
|
|
138
|
+
/** One hub by name — mutually exclusive with `all`. */
|
|
139
|
+
hub?: string;
|
|
140
|
+
all?: boolean;
|
|
141
|
+
/** Export root — `defaultExportRoot(...)` for the CLI; must not be inside `bundle/`. */
|
|
142
|
+
destination: string;
|
|
143
|
+
}
|
|
144
|
+
export interface ExportHubsOptions extends KnowledgeServiceOptions {
|
|
145
|
+
/** A notice as each hub's downloads start — human-mode progress on stderr. */
|
|
146
|
+
onProgress?: (message: string) => void;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Snapshot one hub (or every hub) into `<destination>/<hub>/`:
|
|
150
|
+
* `manifest.json`, `content/` (extracted markdown / tabular JSON) and
|
|
151
|
+
* `originals/` (the uploaded binaries). Only INDEXED resources exist in
|
|
152
|
+
* KBM's export — `hubStatus` is where pending/failed jobs show. Per-file
|
|
153
|
+
* download failures are collected, not thrown; the hub's stale files from a
|
|
154
|
+
* previous export are removed so the directory reflects this run.
|
|
155
|
+
*/
|
|
156
|
+
export declare function exportHubs(context: Context, params: ExportHubsParams, options?: ExportHubsOptions): Promise<HubExportResult>;
|
|
157
|
+
/** One human line per hub — shared by progress and the CLI renderer. */
|
|
158
|
+
export declare function describeHubExport(result: HubExport, destination: string): string;
|
|
@@ -11,9 +11,15 @@
|
|
|
11
11
|
* Hubs are agent-scoped and matched BY NAME at runtime —
|
|
12
12
|
* `knowledge_base_names: [hub]` — so the local cross-check compares
|
|
13
13
|
* program `hub:` references against remote hub names.
|
|
14
|
+
*
|
|
15
|
+
* The one read of content is `exportHubs` — a one-way snapshot of what KBM
|
|
16
|
+
* has indexed, written to `knowledge-data/<hub>/` beside (never inside)
|
|
17
|
+
* `bundle/`. It is an export, not a mirror: nothing reads it back, push
|
|
18
|
+
* never sees it, and re-running it overwrites its own files only.
|
|
14
19
|
*/
|
|
15
|
-
import { readFile } from "node:fs/promises";
|
|
20
|
+
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
16
21
|
import path from "node:path";
|
|
22
|
+
import { downloadBytes, downloadText } from "../api/download.js";
|
|
17
23
|
import { readProgramFiles } from "../bundle/files.js";
|
|
18
24
|
import { CliError, ConfigError, ValidationError } from "../errors/index.js";
|
|
19
25
|
import { createClients } from "./clients.js";
|
|
@@ -42,17 +48,22 @@ export async function hubStatus(context, hub, options = {}) {
|
|
|
42
48
|
}
|
|
43
49
|
return { hub, jobs, counts };
|
|
44
50
|
}
|
|
51
|
+
/** Name match the way the runtime does it — exact first, then case-insensitive. */
|
|
52
|
+
function findByName(items, name) {
|
|
53
|
+
return (items.find((item) => item.name === name) ??
|
|
54
|
+
items.find((item) => item.name.toLowerCase() === name.toLowerCase()));
|
|
55
|
+
}
|
|
56
|
+
function hubNotFound(name) {
|
|
57
|
+
return new CliError(`Knowledge hub "${name}" not found for this agent.`, {
|
|
58
|
+
code: "NOT_FOUND",
|
|
59
|
+
suggestion: "Check the name (`apollo kb list`).",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
45
62
|
/** Resolve a hub by name (exact, then case-insensitive). */
|
|
46
63
|
export async function getHubByName(context, name, options = {}) {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (!match) {
|
|
51
|
-
throw new CliError(`Knowledge hub "${name}" not found for this agent.`, {
|
|
52
|
-
code: "NOT_FOUND",
|
|
53
|
-
suggestion: "Check the name (`apollo kb list`).",
|
|
54
|
-
});
|
|
55
|
-
}
|
|
64
|
+
const match = findByName(await listHubs(context, options), name);
|
|
65
|
+
if (!match)
|
|
66
|
+
throw hubNotFound(name);
|
|
56
67
|
return match;
|
|
57
68
|
}
|
|
58
69
|
/** Delete a whole hub — irreversible, resources included. */
|
|
@@ -213,4 +224,344 @@ export function hubRefCheck(refs, hubs) {
|
|
|
213
224
|
unreferenced: hubs.map((h) => h.name).filter((name) => !referenced.has(name)),
|
|
214
225
|
};
|
|
215
226
|
}
|
|
227
|
+
// ─── Export — a one-way snapshot of indexed content ───────────────────────
|
|
228
|
+
//
|
|
229
|
+
// `kb export` is the read side that DESIGN §4.7 left open: not a mirror
|
|
230
|
+
// that push/pull reconcile, but a download of what KBM has indexed, for
|
|
231
|
+
// inspection, backup, or re-upload elsewhere with `kb add`. It lives in
|
|
232
|
+
// `knowledge-data/` — a sibling of `bundle/`, so `status`/`diff`/`push`
|
|
233
|
+
// (which read `bundle/src` and `bundle/build` only) never see it. The CLI
|
|
234
|
+
// exposes no destination flag; the service still refuses anything inside
|
|
235
|
+
// `bundle/` so no other caller (TUI, scripts) can put content there.
|
|
236
|
+
/** The export root, relative to the checkout. */
|
|
237
|
+
export const KNOWLEDGE_DATA_DIR = "knowledge-data";
|
|
238
|
+
/** Where exports go: `<checkout>/knowledge-data` (cwd-relative outside a checkout). */
|
|
239
|
+
export function defaultExportRoot(agentRoot) {
|
|
240
|
+
return path.join(agentRoot ?? process.cwd(), KNOWLEDGE_DATA_DIR);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Hub content is platform data, not program source — it must never land
|
|
244
|
+
* where a push could pick it up. An invariant on the service, not a CLI
|
|
245
|
+
* nicety: every caller gets it.
|
|
246
|
+
*/
|
|
247
|
+
export function assertOutsideBundle(destination, agentRoot) {
|
|
248
|
+
if (agentRoot === undefined)
|
|
249
|
+
return;
|
|
250
|
+
const bundle = path.resolve(agentRoot, "bundle");
|
|
251
|
+
const target = path.resolve(destination);
|
|
252
|
+
if (target === bundle || target.startsWith(`${bundle}${path.sep}`)) {
|
|
253
|
+
throw new ValidationError(`Refusing to export knowledge into ${path.relative(agentRoot, target) || "bundle"}/ — that is the program bundle.`, `Hub content is not program source; exports belong in ${KNOWLEDGE_DATA_DIR}/, a sibling of bundle/.`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const DOWNLOAD_CONCURRENCY = 4;
|
|
257
|
+
const CONTENT_DIR = "content";
|
|
258
|
+
const ORIGINALS_DIR = "originals";
|
|
259
|
+
/**
|
|
260
|
+
* Snapshot one hub (or every hub) into `<destination>/<hub>/`:
|
|
261
|
+
* `manifest.json`, `content/` (extracted markdown / tabular JSON) and
|
|
262
|
+
* `originals/` (the uploaded binaries). Only INDEXED resources exist in
|
|
263
|
+
* KBM's export — `hubStatus` is where pending/failed jobs show. Per-file
|
|
264
|
+
* download failures are collected, not thrown; the hub's stale files from a
|
|
265
|
+
* previous export are removed so the directory reflects this run.
|
|
266
|
+
*/
|
|
267
|
+
export async function exportHubs(context, params, options = {}) {
|
|
268
|
+
if (params.hub === undefined && params.all !== true) {
|
|
269
|
+
throw new ValidationError("Name a hub to export, or pass --all.", "`apollo kb list` shows the agent's hubs.");
|
|
270
|
+
}
|
|
271
|
+
if (params.hub !== undefined && params.all === true) {
|
|
272
|
+
throw new ValidationError("Pass a hub name or --all, not both.");
|
|
273
|
+
}
|
|
274
|
+
const agentId = requireAgent(context);
|
|
275
|
+
const destination = path.resolve(params.destination);
|
|
276
|
+
assertOutsideBundle(destination, context.agentRoot);
|
|
277
|
+
const clients = clientsFor(context, options);
|
|
278
|
+
const hubs = await clients.kbm.listKnowledgeBases(agentId);
|
|
279
|
+
let targets;
|
|
280
|
+
if (params.hub !== undefined) {
|
|
281
|
+
const match = findByName(hubs, params.hub);
|
|
282
|
+
if (!match)
|
|
283
|
+
throw hubNotFound(params.hub);
|
|
284
|
+
targets = [match];
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
targets = hubs;
|
|
288
|
+
}
|
|
289
|
+
if (targets.length === 0) {
|
|
290
|
+
return { destination, expires_at: null, hubs: [], unlisted: [] };
|
|
291
|
+
}
|
|
292
|
+
const download = {
|
|
293
|
+
...(options.fetch ? { fetch: options.fetch } : {}),
|
|
294
|
+
timeoutMs: context.timeoutMs,
|
|
295
|
+
};
|
|
296
|
+
const pointer = await clients.kbm.exportView(agentId);
|
|
297
|
+
const manifest = parseManifest(await downloadText(pointer.json_url, download));
|
|
298
|
+
const exportedAt = new Date().toISOString();
|
|
299
|
+
const results = [];
|
|
300
|
+
for (const hub of targets) {
|
|
301
|
+
const remote = findByName(manifest.knowledge_bases, hub.name);
|
|
302
|
+
const planned = (remote?.markdown_files?.length ?? 0) +
|
|
303
|
+
(remote?.tabular_files?.length ?? 0) +
|
|
304
|
+
(remote?.websites?.length ?? 0);
|
|
305
|
+
options.onProgress?.(`Exporting ${hub.name} (${planned} indexed resources)…`);
|
|
306
|
+
results.push(await exportOneHub({
|
|
307
|
+
agentId,
|
|
308
|
+
hub,
|
|
309
|
+
remote,
|
|
310
|
+
dir: path.join(destination, safeSegment(hub.name)),
|
|
311
|
+
exportedAt,
|
|
312
|
+
download,
|
|
313
|
+
}));
|
|
314
|
+
}
|
|
315
|
+
const owned = new Set(hubs.map((hub) => hub.name.toLowerCase()));
|
|
316
|
+
const unlisted = manifest.knowledge_bases
|
|
317
|
+
.map((kb) => kb.name)
|
|
318
|
+
.filter((name) => !owned.has(name.toLowerCase()))
|
|
319
|
+
.sort((a, b) => a.localeCompare(b));
|
|
320
|
+
return { destination, expires_at: pointer.expires_at, hubs: results, unlisted };
|
|
321
|
+
}
|
|
322
|
+
/** One human line per hub — shared by progress and the CLI renderer. */
|
|
323
|
+
export function describeHubExport(result, destination) {
|
|
324
|
+
const where = `${path.relative(path.dirname(destination), result.dir) || result.dir}/`;
|
|
325
|
+
if (result.resources.length === 0 && result.failures.length === 0) {
|
|
326
|
+
return `${result.hub.name} → ${where} — no indexed content`;
|
|
327
|
+
}
|
|
328
|
+
const counts = {
|
|
329
|
+
markdown: 0,
|
|
330
|
+
tabular: 0,
|
|
331
|
+
website: 0,
|
|
332
|
+
};
|
|
333
|
+
for (const resource of result.resources)
|
|
334
|
+
counts[resource.kind] += 1;
|
|
335
|
+
const parts = [
|
|
336
|
+
counts.markdown > 0 ? `${counts.markdown} md` : undefined,
|
|
337
|
+
counts.tabular > 0 ? `${counts.tabular} tabular` : undefined,
|
|
338
|
+
counts.website > 0 ? `${counts.website} web` : undefined,
|
|
339
|
+
].filter((part) => part !== undefined);
|
|
340
|
+
const originals = result.originals > 0 ? `, ${result.originals} originals` : "";
|
|
341
|
+
const failed = result.failures.length > 0 ? `, ${result.failures.length} failed` : "";
|
|
342
|
+
return `${result.hub.name} → ${where} — ${result.resources.length} resources (${parts.join(", ")})${originals}${failed}`;
|
|
343
|
+
}
|
|
344
|
+
function parseManifest(text) {
|
|
345
|
+
let parsed;
|
|
346
|
+
try {
|
|
347
|
+
parsed = JSON.parse(text);
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
throw new CliError("The knowledge export manifest is not valid JSON.", {
|
|
351
|
+
code: "UPSTREAM_SHAPE",
|
|
352
|
+
cause: error,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
if (typeof parsed !== "object" ||
|
|
356
|
+
parsed === null ||
|
|
357
|
+
!Array.isArray(parsed.knowledge_bases)) {
|
|
358
|
+
throw new CliError("The knowledge export manifest has an unexpected shape.", {
|
|
359
|
+
code: "UPSTREAM_SHAPE",
|
|
360
|
+
detail: parsed,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
return parsed;
|
|
364
|
+
}
|
|
365
|
+
async function exportOneHub(input) {
|
|
366
|
+
const { hub, remote, dir } = input;
|
|
367
|
+
const previous = await readPreviousOutputs(dir);
|
|
368
|
+
const contentNames = new Set();
|
|
369
|
+
const originalNames = new Set();
|
|
370
|
+
const resources = [];
|
|
371
|
+
const jobs = [];
|
|
372
|
+
const plan = (kind, entry, title, source) => {
|
|
373
|
+
const resource = {
|
|
374
|
+
kind,
|
|
375
|
+
title,
|
|
376
|
+
source,
|
|
377
|
+
url: entry.url ?? null,
|
|
378
|
+
content: null,
|
|
379
|
+
original: null,
|
|
380
|
+
created_at: entry.created_at ?? null,
|
|
381
|
+
updated_at: entry.updated_at ?? null,
|
|
382
|
+
created_by: entry.created_by ?? null,
|
|
383
|
+
};
|
|
384
|
+
resources.push(resource);
|
|
385
|
+
if (entry.download_url) {
|
|
386
|
+
const extension = kind === "tabular" ? ".json" : ".md";
|
|
387
|
+
const relative = path.posix.join(CONTENT_DIR, uniqueName(contentNames, `${slugTitle(title)}${extension}`));
|
|
388
|
+
jobs.push({ resource, field: "content", url: entry.download_url, relative });
|
|
389
|
+
}
|
|
390
|
+
if ("original_download_url" in entry && entry.original_download_url) {
|
|
391
|
+
const relative = path.posix.join(ORIGINALS_DIR, uniqueName(originalNames, safeFilename(title)));
|
|
392
|
+
jobs.push({ resource, field: "original", url: entry.original_download_url, relative });
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
for (const entry of remote?.markdown_files ?? []) {
|
|
396
|
+
plan("markdown", entry, entry.title, entry.source);
|
|
397
|
+
}
|
|
398
|
+
for (const entry of remote?.tabular_files ?? []) {
|
|
399
|
+
plan("tabular", entry, entry.title, entry.source);
|
|
400
|
+
}
|
|
401
|
+
for (const entry of remote?.websites ?? []) {
|
|
402
|
+
plan("website", entry, websiteTitle(entry), "website");
|
|
403
|
+
}
|
|
404
|
+
await mkdir(dir, { recursive: true });
|
|
405
|
+
const failures = [];
|
|
406
|
+
let originals = 0;
|
|
407
|
+
await mapLimit(jobs, DOWNLOAD_CONCURRENCY, async (job) => {
|
|
408
|
+
try {
|
|
409
|
+
const bytes = await downloadBytes(job.url, input.download);
|
|
410
|
+
const target = path.join(dir, job.relative);
|
|
411
|
+
await mkdir(path.dirname(target), { recursive: true });
|
|
412
|
+
await writeFile(target, bytes);
|
|
413
|
+
job.resource[job.field] = job.relative;
|
|
414
|
+
if (job.field === "original")
|
|
415
|
+
originals += 1;
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
failures.push({
|
|
419
|
+
title: `${job.resource.title}${job.field === "original" ? " (original)" : ""}`,
|
|
420
|
+
error: error instanceof Error ? error.message : String(error),
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
// Stale outputs from an earlier run — only paths a previous manifest of
|
|
425
|
+
// ours named, never anything else in the directory.
|
|
426
|
+
const planned = new Set(jobs.map((job) => job.relative));
|
|
427
|
+
for (const relative of previous) {
|
|
428
|
+
if (!planned.has(relative))
|
|
429
|
+
await rm(path.join(dir, relative), { force: true });
|
|
430
|
+
}
|
|
431
|
+
const manifest = {
|
|
432
|
+
format: "apollo-knowledge-export/1",
|
|
433
|
+
exported_at: input.exportedAt,
|
|
434
|
+
agent_id: input.agentId,
|
|
435
|
+
hub: {
|
|
436
|
+
id: hub.id,
|
|
437
|
+
name: hub.name,
|
|
438
|
+
description: remote?.description ?? hub.description ?? null,
|
|
439
|
+
settings: remote?.settings ?? null,
|
|
440
|
+
},
|
|
441
|
+
resources,
|
|
442
|
+
};
|
|
443
|
+
await writeFile(path.join(dir, "manifest.json"), `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
|
|
444
|
+
return { hub: { id: hub.id, name: hub.name }, dir, resources, originals, failures };
|
|
445
|
+
}
|
|
446
|
+
/** Relative paths a previous export of ours wrote — from its own manifest, so we never touch foreign files. */
|
|
447
|
+
async function readPreviousOutputs(dir) {
|
|
448
|
+
let text;
|
|
449
|
+
try {
|
|
450
|
+
text = await readFile(path.join(dir, "manifest.json"), "utf8");
|
|
451
|
+
}
|
|
452
|
+
catch {
|
|
453
|
+
return [];
|
|
454
|
+
}
|
|
455
|
+
let parsed;
|
|
456
|
+
try {
|
|
457
|
+
parsed = JSON.parse(text);
|
|
458
|
+
}
|
|
459
|
+
catch {
|
|
460
|
+
return [];
|
|
461
|
+
}
|
|
462
|
+
const manifest = parsed;
|
|
463
|
+
if (typeof manifest !== "object" ||
|
|
464
|
+
manifest === null ||
|
|
465
|
+
typeof manifest.format !== "string" ||
|
|
466
|
+
!manifest.format.startsWith("apollo-knowledge-export/") ||
|
|
467
|
+
!Array.isArray(manifest.resources)) {
|
|
468
|
+
return [];
|
|
469
|
+
}
|
|
470
|
+
const outputs = [];
|
|
471
|
+
for (const resource of manifest.resources) {
|
|
472
|
+
for (const candidate of [resource.content, resource.original]) {
|
|
473
|
+
if (typeof candidate === "string" && isOwnedOutput(candidate))
|
|
474
|
+
outputs.push(candidate);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
return outputs;
|
|
478
|
+
}
|
|
479
|
+
/** Only `content/…` and `originals/…`, one level, no traversal — the shapes we write. */
|
|
480
|
+
function isOwnedOutput(relative) {
|
|
481
|
+
const segments = relative.split("/");
|
|
482
|
+
return (segments.length === 2 &&
|
|
483
|
+
(segments[0] === CONTENT_DIR || segments[0] === ORIGINALS_DIR) &&
|
|
484
|
+
segments[1] !== undefined &&
|
|
485
|
+
segments[1] !== "" &&
|
|
486
|
+
segments[1] !== "." &&
|
|
487
|
+
segments[1] !== "..");
|
|
488
|
+
}
|
|
489
|
+
const UNSAFE_PATH_CHARS = /[\\/:*?"<>|]/g;
|
|
490
|
+
/** Control characters have no place in a filename; drop them before the visible-char rules run. */
|
|
491
|
+
function stripControl(value) {
|
|
492
|
+
return Array.from(value)
|
|
493
|
+
.filter((char) => char.charCodeAt(0) >= 0x20)
|
|
494
|
+
.join("");
|
|
495
|
+
}
|
|
496
|
+
/** A hub name as a directory name — hub names carry no whitespace by our rules, but UI-created ones might. */
|
|
497
|
+
function safeSegment(name) {
|
|
498
|
+
const cleaned = stripControl(name)
|
|
499
|
+
.trim()
|
|
500
|
+
.replace(UNSAFE_PATH_CHARS, "-")
|
|
501
|
+
.replace(/\s+/g, "-")
|
|
502
|
+
.replace(/^\.+/, "");
|
|
503
|
+
return cleaned.length === 0 ? "hub" : cleaned;
|
|
504
|
+
}
|
|
505
|
+
/** A resource title as a content file stem: lower-case, ASCII, hyphenated, extension dropped. */
|
|
506
|
+
function slugTitle(title) {
|
|
507
|
+
const stem = title.replace(/\.[A-Za-z0-9]{1,5}$/, "");
|
|
508
|
+
const slug = stem
|
|
509
|
+
.normalize("NFKD")
|
|
510
|
+
.replace(/[\u0300-\u036f]/g, "")
|
|
511
|
+
.toLowerCase()
|
|
512
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
513
|
+
.replace(/^-+|-+$/g, "")
|
|
514
|
+
.slice(0, 80)
|
|
515
|
+
.replace(/-+$/, "");
|
|
516
|
+
return slug.length === 0 ? "untitled" : slug;
|
|
517
|
+
}
|
|
518
|
+
/** An original's display name kept as the filename (it usually IS the upload's name), made path-safe. */
|
|
519
|
+
function safeFilename(title) {
|
|
520
|
+
const cleaned = stripControl(title)
|
|
521
|
+
.trim()
|
|
522
|
+
.replace(UNSAFE_PATH_CHARS, "_")
|
|
523
|
+
.replace(/^\.+/, "");
|
|
524
|
+
return cleaned.length === 0 ? "file" : cleaned;
|
|
525
|
+
}
|
|
526
|
+
function uniqueName(taken, candidate) {
|
|
527
|
+
if (!taken.has(candidate)) {
|
|
528
|
+
taken.add(candidate);
|
|
529
|
+
return candidate;
|
|
530
|
+
}
|
|
531
|
+
const dot = candidate.lastIndexOf(".");
|
|
532
|
+
const stem = dot > 0 ? candidate.slice(0, dot) : candidate;
|
|
533
|
+
const extension = dot > 0 ? candidate.slice(dot) : "";
|
|
534
|
+
for (let n = 2;; n += 1) {
|
|
535
|
+
const next = `${stem}-${n}${extension}`;
|
|
536
|
+
if (!taken.has(next)) {
|
|
537
|
+
taken.add(next);
|
|
538
|
+
return next;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
function websiteTitle(entry) {
|
|
543
|
+
const title = entry.title?.trim();
|
|
544
|
+
if (title)
|
|
545
|
+
return title;
|
|
546
|
+
try {
|
|
547
|
+
const parsed = new URL(entry.url);
|
|
548
|
+
return `${parsed.hostname}${parsed.pathname === "/" ? "" : parsed.pathname}`;
|
|
549
|
+
}
|
|
550
|
+
catch {
|
|
551
|
+
return entry.url;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
async function mapLimit(items, limit, worker) {
|
|
555
|
+
let next = 0;
|
|
556
|
+
const lanes = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
557
|
+
for (;;) {
|
|
558
|
+
const index = next;
|
|
559
|
+
next += 1;
|
|
560
|
+
if (index >= items.length)
|
|
561
|
+
return;
|
|
562
|
+
await worker(items[index]);
|
|
563
|
+
}
|
|
564
|
+
});
|
|
565
|
+
await Promise.all(lanes);
|
|
566
|
+
}
|
|
216
567
|
//# sourceMappingURL=knowledge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/services/knowledge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/services/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo-tui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.54",
|
|
4
4
|
"description": "Interactive Apollo operator TUI built on OpenTUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"start": "node ./bin/apollo-tui.js"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@aui.io/apollo-core": "0.1.
|
|
38
|
+
"@aui.io/apollo-core": "0.1.54",
|
|
39
39
|
"@opentui/core": "^0.4.5",
|
|
40
40
|
"@opentui/react": "^0.4.5",
|
|
41
41
|
"diff": "8.0.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.54",
|
|
4
4
|
"description": "Apollo operator console — CLI + interactive TUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"postpack": "node ./scripts/clean-bundle.mjs"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@aui.io/apollo-core": "0.1.
|
|
35
|
-
"@aui.io/apollo-cli": "0.1.
|
|
36
|
-
"@aui.io/apollo-tui": "0.1.
|
|
34
|
+
"@aui.io/apollo-core": "0.1.54",
|
|
35
|
+
"@aui.io/apollo-cli": "0.1.54",
|
|
36
|
+
"@aui.io/apollo-tui": "0.1.54",
|
|
37
37
|
"picocolors": "^1.1.1",
|
|
38
38
|
"yaml": "^2.9.0",
|
|
39
39
|
"commander": "^14.0.3",
|