@numa-tech/numa 1.25.0 → 1.26.1
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/dist/business-issuer.js +3 -1
- package/dist/business-issuer.js.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/kb/catalog.js +33 -2
- package/dist/kb/catalog.js.map +1 -1
- package/dist/kb/chat-stream.d.ts +5 -0
- package/dist/kb/chat-stream.js +61 -0
- package/dist/kb/chat-stream.js.map +1 -0
- package/dist/kb/client.d.ts +75 -6
- package/dist/kb/client.js +104 -7
- package/dist/kb/client.js.map +1 -1
- package/dist/kb/commands.js +92 -7
- package/dist/kb/commands.js.map +1 -1
- package/dist/kb/config.d.ts +14 -2
- package/dist/kb/config.js +21 -7
- package/dist/kb/config.js.map +1 -1
- package/dist/kb/management-commands.d.ts +7 -0
- package/dist/kb/management-commands.js +86 -0
- package/dist/kb/management-commands.js.map +1 -0
- package/dist/kb/management-schemas.d.ts +106 -0
- package/dist/kb/management-schemas.js +33 -0
- package/dist/kb/management-schemas.js.map +1 -0
- package/dist/kb/transfers.d.ts +4 -0
- package/dist/kb/transfers.js +11 -4
- package/dist/kb/transfers.js.map +1 -1
- package/dist/kb/upload-decisions.d.ts +28 -0
- package/dist/kb/upload-decisions.js +23 -0
- package/dist/kb/upload-decisions.js.map +1 -0
- package/dist/kb/upload-state.d.ts +1 -0
- package/dist/kb/upload-state.js +1 -0
- package/dist/kb/upload-state.js.map +1 -1
- package/dist/kb/web-login.d.ts +10 -0
- package/dist/kb/web-login.js +25 -0
- package/dist/kb/web-login.js.map +1 -0
- package/dist/kb/web-page.d.ts +3 -0
- package/dist/kb/web-page.js +114 -0
- package/dist/kb/web-page.js.map +1 -0
- package/dist/kb/web-queue.d.ts +61 -0
- package/dist/kb/web-queue.js +101 -0
- package/dist/kb/web-queue.js.map +1 -0
- package/dist/kb/web.d.ts +26 -0
- package/dist/kb/web.js +234 -0
- package/dist/kb/web.js.map +1 -0
- package/dist/local-web/context-menu.d.ts +2 -0
- package/dist/local-web/context-menu.js +53 -0
- package/dist/local-web/context-menu.js.map +1 -0
- package/dist/local-web/file-workspace-style.d.ts +2 -0
- package/dist/local-web/file-workspace-style.js +58 -0
- package/dist/local-web/file-workspace-style.js.map +1 -0
- package/dist/local-web/file-workspace.d.ts +2 -0
- package/dist/local-web/file-workspace.js +39 -0
- package/dist/local-web/file-workspace.js.map +1 -0
- package/dist/local-web/security.d.ts +6 -0
- package/dist/local-web/security.js +51 -0
- package/dist/local-web/security.js.map +1 -0
- package/dist/login-recovery.js +7 -2
- package/dist/login-recovery.js.map +1 -1
- package/dist/oss/transfer-queue.d.ts +7 -51
- package/dist/oss/transfer-queue.js +15 -308
- package/dist/oss/transfer-queue.js.map +1 -1
- package/dist/oss/web-page.js +21 -103
- package/dist/oss/web-page.js.map +1 -1
- package/dist/oss/web.js +4 -45
- package/dist/oss/web.js.map +1 -1
- package/dist/platform-profile.d.ts +25 -1
- package/dist/platform-profile.js +44 -1
- package/dist/platform-profile.js.map +1 -1
- package/dist/transfers/persistent-queue.d.ts +65 -0
- package/dist/transfers/persistent-queue.js +312 -0
- package/dist/transfers/persistent-queue.js.map +1 -0
- package/docs/design/kb-capability-upgrade.md +36 -0
- package/docs/design/kb-web-workspace.md +97 -0
- package/docs/kb-access.md +72 -0
- package/package.json +9 -7
- package/scripts/export-kb-contract.py +25 -6
- package/src/kb/openapi-contract.json +2297 -566
|
@@ -31,15 +31,12 @@ AGENT_OPERATIONS = {
|
|
|
31
31
|
("post", "/upload-sessions/{session_id}/complete"): "complete_direct_upload",
|
|
32
32
|
("delete", "/upload-sessions/{session_id}"): "cancel_direct_upload",
|
|
33
33
|
("get", "/documents/{document_id}/download-ticket"): "get_document_download",
|
|
34
|
-
("post", "/archives"): "start_async_archive",
|
|
35
34
|
("get", "/archives/{archive_id}"): "get_archive_status",
|
|
36
35
|
("post", "/archives/{archive_id}/retry"): "retry_archive",
|
|
37
36
|
}
|
|
38
37
|
PREFIX = "/api/v1/external/agent"
|
|
39
38
|
OPERATIONS = {(method, PREFIX + suffix): name
|
|
40
39
|
for (method, suffix), name in AGENT_OPERATIONS.items()} | {
|
|
41
|
-
("post", "/api/v1/external/documents/batch-upload"):
|
|
42
|
-
"upload_external_documents_api_v1_external_documents_batch_upload_post",
|
|
43
40
|
("get", "/api/v1/external/batches/{batch_id}"):
|
|
44
41
|
"get_external_batch_api_v1_external_batches__batch_id__get",
|
|
45
42
|
("post", "/api/v1/external/batches/{batch_id}/retry"):
|
|
@@ -49,6 +46,24 @@ OPERATIONS = {(method, PREFIX + suffix): name
|
|
|
49
46
|
}
|
|
50
47
|
|
|
51
48
|
|
|
49
|
+
NATIVE_OPERATIONS = {
|
|
50
|
+
'/collections/{collection_id}':['get','put','delete'],
|
|
51
|
+
'/collections/{collection_id}/transfer':['post'],
|
|
52
|
+
'/collections/{collection_id}/members':['get','put'],
|
|
53
|
+
'/collections/{collection_id}/members/{global_uid}':['delete'],
|
|
54
|
+
'/users/search':['get'], '/documents':['get'],
|
|
55
|
+
'/documents/{document_id}':['get','put','delete'],
|
|
56
|
+
'/documents/{document_id}/chunks':['get'], '/documents/{document_id}/assets':['get'],
|
|
57
|
+
'/documents/{document_id}/versions':['get'], '/documents/{document_id}/change-history':['get'],
|
|
58
|
+
'/documents/{document_id}/switch-version':['post'], '/documents/{document_id}/reindex':['post'],
|
|
59
|
+
'/batches':['get'], '/batch/{batch_id}/cancel':['post'], '/ingest-jobs':['get'],
|
|
60
|
+
'/conflict-reviews':['get'], '/conflict-reviews/{conflict_id}/resolve':['post'],
|
|
61
|
+
'/chat/stream':['post'], '/chat/sessions':['get','post'], '/chat/sessions/{session_id}':['get','delete'],
|
|
62
|
+
'/upload-sessions/preflight':['post'],
|
|
63
|
+
}
|
|
64
|
+
OPERATIONS.update({(method, '/api/v1/kb'+path):None for path,methods in NATIVE_OPERATIONS.items() for method in methods})
|
|
65
|
+
|
|
66
|
+
|
|
52
67
|
def forbid_network(event: str, _args: tuple) -> None:
|
|
53
68
|
if event in {"socket.connect", "socket.connect_ex", "socket.getaddrinfo", "socket.bind"}:
|
|
54
69
|
raise RuntimeError("KB contract export must remain offline")
|
|
@@ -78,6 +93,8 @@ def export_contract(kb_root: Path) -> dict:
|
|
|
78
93
|
from fastapi import FastAPI
|
|
79
94
|
from backend.external.agent_routes import router
|
|
80
95
|
from backend.external.routes import router as external_router
|
|
96
|
+
from backend.routes.knowledge_base import router as kb_router
|
|
97
|
+
from backend.routes.direct_uploads import router as upload_router
|
|
81
98
|
from backend.knowledge_base.constants import (
|
|
82
99
|
MAX_EXTERNAL_FILES_PER_BATCH,
|
|
83
100
|
MAX_FILES_PER_BATCH,
|
|
@@ -89,11 +106,13 @@ def export_contract(kb_root: Path) -> dict:
|
|
|
89
106
|
app = FastAPI(title="Knowledge Base Agent API")
|
|
90
107
|
app.include_router(router, prefix="/api/v1")
|
|
91
108
|
app.include_router(external_router, prefix="/api/v1")
|
|
109
|
+
app.include_router(kb_router,prefix="/api/v1")
|
|
110
|
+
app.include_router(upload_router,prefix="/api/v1")
|
|
92
111
|
original = app.openapi()
|
|
93
112
|
paths = {}
|
|
94
113
|
for (method, path), operation_id in OPERATIONS.items():
|
|
95
114
|
operation = original.get("paths", {}).get(path, {}).get(method)
|
|
96
|
-
if operation is None or operation.get("operationId") != operation_id:
|
|
115
|
+
if operation is None or (operation_id is not None and operation.get("operationId") != operation_id):
|
|
97
116
|
raise ValueError(f"KB route contract changed: {method.upper()} {path}")
|
|
98
117
|
paths.setdefault(path, {})[method] = operation
|
|
99
118
|
|
|
@@ -112,10 +131,10 @@ def export_contract(kb_root: Path) -> dict:
|
|
|
112
131
|
"paths": paths,
|
|
113
132
|
"components": {"schemas": selected},
|
|
114
133
|
"x-numa-contract": {
|
|
115
|
-
"sources": ["backend/external/agent_routes.py", "backend/external/routes.py"],
|
|
134
|
+
"sources": ["backend/external/agent_routes.py", "backend/external/routes.py", "backend/routes/knowledge_base.py", "backend/routes/direct_uploads.py"],
|
|
116
135
|
"generator": "scripts/export-kb-contract.py",
|
|
117
136
|
"response_validation": "Responses are free-form upstream; validate consumed fields at runtime.",
|
|
118
|
-
"authentication": "
|
|
137
|
+
"authentication": "Keycloak Bearer JWT for native KB routes; legacy Agent API deployments may also support X-Api-Key.",
|
|
119
138
|
"parse_supported_extensions": sorted(SUPPORTED_EXTS),
|
|
120
139
|
"default_upload_limits": {
|
|
121
140
|
"max_files_per_batch": MAX_FILES_PER_BATCH,
|