harper-kb 0.2.2 → 0.3.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/core/embeddings.js +2 -2
- package/dist/core/embeddings.js.map +1 -1
- package/dist/hooks.d.ts +33 -11
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +6 -6
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +10 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/resources/HistoryResource.d.ts +1 -1
- package/dist/resources/HistoryResource.d.ts.map +1 -1
- package/dist/resources/HistoryResource.js +13 -1
- package/dist/resources/HistoryResource.js.map +1 -1
- package/dist/resources/KnowledgeBaseResource.d.ts +4 -4
- package/dist/resources/KnowledgeBaseResource.d.ts.map +1 -1
- package/dist/resources/KnowledgeBaseResource.js +75 -21
- package/dist/resources/KnowledgeBaseResource.js.map +1 -1
- package/dist/resources/KnowledgeEntryResource.d.ts.map +1 -1
- package/dist/resources/KnowledgeEntryResource.js +66 -12
- package/dist/resources/KnowledgeEntryResource.js.map +1 -1
- package/dist/resources/QueryLogResource.d.ts +1 -1
- package/dist/resources/QueryLogResource.d.ts.map +1 -1
- package/dist/resources/QueryLogResource.js +22 -7
- package/dist/resources/QueryLogResource.js.map +1 -1
- package/dist/resources/ServiceKeyResource.d.ts +3 -3
- package/dist/resources/ServiceKeyResource.d.ts.map +1 -1
- package/dist/resources/ServiceKeyResource.js +65 -22
- package/dist/resources/ServiceKeyResource.js.map +1 -1
- package/dist/resources/TagResource.d.ts +1 -1
- package/dist/resources/TagResource.d.ts.map +1 -1
- package/dist/resources/TagResource.js +13 -1
- package/dist/resources/TagResource.js.map +1 -1
- package/dist/resources/TriageResource.d.ts +3 -3
- package/dist/resources/TriageResource.d.ts.map +1 -1
- package/dist/resources/TriageResource.js +68 -25
- package/dist/resources/TriageResource.js.map +1 -1
- package/dist/resources/WebhookEndpointResource.d.ts +3 -3
- package/dist/resources/WebhookEndpointResource.d.ts.map +1 -1
- package/dist/resources/WebhookEndpointResource.js +65 -22
- package/dist/resources/WebhookEndpointResource.js.map +1 -1
- package/package.json +2 -2
package/dist/core/embeddings.js
CHANGED
|
@@ -52,11 +52,11 @@ export async function initEmbeddingModel(config) {
|
|
|
52
52
|
// Try fabric-llama-embeddings first (lightweight, Fabric-optimized)
|
|
53
53
|
try {
|
|
54
54
|
backend = await initFabricBackend(modelName);
|
|
55
|
-
logger?.info?.(`Embedding model "${modelName}" loaded via fabric-
|
|
55
|
+
logger?.info?.(`Embedding model "${modelName}" loaded via harper-fabric-embeddings`);
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
58
|
catch (err) {
|
|
59
|
-
logger?.debug?.('fabric-
|
|
59
|
+
logger?.debug?.('harper-fabric-embeddings not available, will try node-llama-cpp:', err.message);
|
|
60
60
|
}
|
|
61
61
|
// Fall back to node-llama-cpp (full-featured, handles downloads)
|
|
62
62
|
backend = await initNodeLlamaCppBackend(modelName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/core/embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,IAAI,OAAO,GAA4B,IAAI,CAAC;AAE5C,8EAA8E;AAE9E,MAAM,aAAa,GAAmD;IACrE,kBAAkB,EAAE;QACnB,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,mCAAmC;KACzC;IACD,yBAAyB,EAAE;QAC1B,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,qCAAqC;KAC3C;CACD,CAAC;AAEF,+DAA+D;AAC/D,IAAI,SAAS,GAAkB,IAAI,CAAC;AAEpC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAwD;IAChG,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,EAAE,KAAK,EAAE,CAAC,qCAAqC,CAAC,CAAC;QACvD,OAAO;IACR,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,IAAI,kBAAkB,CAAC;IAC9D,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAErD,oEAAoE;IACpE,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,CAAC,oBAAoB,SAAS,
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/core/embeddings.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -8,29 +8,51 @@
|
|
|
8
8
|
*
|
|
9
9
|
* import { registerHooks } from 'harper-kb';
|
|
10
10
|
* registerHooks({
|
|
11
|
-
* onAccessCheck: async (
|
|
12
|
-
* // custom authorization logic
|
|
11
|
+
* onAccessCheck: async ({ user, kbId, resource, operation, channel }) => {
|
|
12
|
+
* // custom authorization logic for REST and MCP
|
|
13
13
|
* return { allow: true };
|
|
14
14
|
* },
|
|
15
15
|
* });
|
|
16
16
|
*/
|
|
17
17
|
import type { ValidatedCaller } from './oauth/validate.ts';
|
|
18
|
+
export interface AccessCheckContext {
|
|
19
|
+
/** Authenticated user (null if anonymous) */
|
|
20
|
+
user: {
|
|
21
|
+
id?: string;
|
|
22
|
+
username?: string;
|
|
23
|
+
role?: string;
|
|
24
|
+
} | null;
|
|
25
|
+
/** Knowledge base ID being accessed */
|
|
26
|
+
kbId: string | null;
|
|
27
|
+
/** Resource name (e.g., 'Knowledge', 'Triage', 'KnowledgeBase') */
|
|
28
|
+
resource: string;
|
|
29
|
+
/** Read or write operation */
|
|
30
|
+
operation: 'read' | 'write';
|
|
31
|
+
/** Request channel */
|
|
32
|
+
channel: 'rest' | 'mcp';
|
|
33
|
+
/** MCP caller info (only present for channel: 'mcp') */
|
|
34
|
+
caller?: ValidatedCaller;
|
|
35
|
+
}
|
|
18
36
|
export interface AccessCheckResult {
|
|
19
37
|
/** Whether to allow access */
|
|
20
38
|
allow: boolean;
|
|
21
|
-
/** Override the caller's scopes (e.g., downgrade to read-only) */
|
|
39
|
+
/** Override the caller's scopes (e.g., downgrade to read-only). MCP only. */
|
|
22
40
|
scopes?: string[];
|
|
23
41
|
/** Reason for denial (logged, not exposed to client) */
|
|
24
42
|
reason?: string;
|
|
25
43
|
}
|
|
26
44
|
export interface KnowledgeHooks {
|
|
27
45
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
46
|
+
* Universal access check for REST and MCP requests.
|
|
47
|
+
*
|
|
48
|
+
* Called before every resource operation (get, post, put, delete) and
|
|
49
|
+
* before MCP request processing.
|
|
50
|
+
*
|
|
51
|
+
* Return { allow: false } to deny access (results in 401/403).
|
|
52
|
+
* Return { allow: true, scopes: [...] } to override granted scopes (MCP).
|
|
53
|
+
* If not registered, default behavior applies (public reads, role-based writes).
|
|
32
54
|
*/
|
|
33
|
-
onAccessCheck?: (
|
|
55
|
+
onAccessCheck?: (context: AccessCheckContext) => Promise<AccessCheckResult>;
|
|
34
56
|
/**
|
|
35
57
|
* URL path for login redirect.
|
|
36
58
|
*
|
|
@@ -50,12 +72,12 @@ export interface KnowledgeHooks {
|
|
|
50
72
|
*/
|
|
51
73
|
export declare function registerHooks(newHooks: KnowledgeHooks): void;
|
|
52
74
|
/**
|
|
53
|
-
* Run the onAccessCheck hook
|
|
75
|
+
* Run the onAccessCheck hook for a resource operation.
|
|
54
76
|
*
|
|
55
|
-
* Returns null if no hook is registered (
|
|
77
|
+
* Returns null if no hook is registered (use default behavior).
|
|
56
78
|
* Returns the AccessCheckResult otherwise.
|
|
57
79
|
*/
|
|
58
|
-
export declare function checkAccess(
|
|
80
|
+
export declare function checkAccess(context: AccessCheckContext): Promise<AccessCheckResult | null>;
|
|
59
81
|
/**
|
|
60
82
|
* Get the configured login path (if any).
|
|
61
83
|
*/
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,MAAM,WAAW,iBAAiB;IACjC,8BAA8B;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,MAAM,WAAW,kBAAkB;IAClC,6CAA6C;IAC7C,IAAI,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,uCAAuC;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,sBAAsB;IACtB,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,wDAAwD;IACxD,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IACjC,8BAA8B;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC9B;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE5E;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAE5D;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAGhG;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
package/dist/hooks.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* import { registerHooks } from 'harper-kb';
|
|
10
10
|
* registerHooks({
|
|
11
|
-
* onAccessCheck: async (
|
|
12
|
-
* // custom authorization logic
|
|
11
|
+
* onAccessCheck: async ({ user, kbId, resource, operation, channel }) => {
|
|
12
|
+
* // custom authorization logic for REST and MCP
|
|
13
13
|
* return { allow: true };
|
|
14
14
|
* },
|
|
15
15
|
* });
|
|
@@ -28,15 +28,15 @@ export function registerHooks(newHooks) {
|
|
|
28
28
|
hooks = { ...hooks, ...newHooks };
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* Run the onAccessCheck hook
|
|
31
|
+
* Run the onAccessCheck hook for a resource operation.
|
|
32
32
|
*
|
|
33
|
-
* Returns null if no hook is registered (
|
|
33
|
+
* Returns null if no hook is registered (use default behavior).
|
|
34
34
|
* Returns the AccessCheckResult otherwise.
|
|
35
35
|
*/
|
|
36
|
-
export async function checkAccess(
|
|
36
|
+
export async function checkAccess(context) {
|
|
37
37
|
if (!hooks.onAccessCheck)
|
|
38
38
|
return null;
|
|
39
|
-
return hooks.onAccessCheck(
|
|
39
|
+
return hooks.onAccessCheck(context);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Get the configured login path (if any).
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAyDH,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,IAAI,KAAK,GAAmB,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAwB;IACrD,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC5D,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC3B,OAAO,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IAC1B,KAAK,GAAG,EAAE,CAAC;AACZ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export { generateEmbedding, initEmbeddingModel, dispose as disposeEmbeddings } f
|
|
|
18
18
|
export { createWebhookEndpoint, listWebhookEndpoints, deleteWebhookEndpoint } from './core/webhook-endpoints.ts';
|
|
19
19
|
export { registerHooks } from './hooks.ts';
|
|
20
20
|
export type { KnowledgeBase, KnowledgeBaseInput, KnowledgeBaseUpdate, KnowledgeEntry, KnowledgeEntryInput, KnowledgeEntryUpdate, KnowledgeEntryEdit, TriageItem, KnowledgeTag, QueryLog, ServiceKey, SearchParams, SearchResult, Reference, ApplicabilityScope, ApplicabilityContext, TriageAction, TriageProcessOptions, WebhookEndpoint, KnowledgePluginConfig, } from './types.ts';
|
|
21
|
-
export type { KnowledgeHooks, AccessCheckResult } from './hooks.ts';
|
|
21
|
+
export type { KnowledgeHooks, AccessCheckContext, AccessCheckResult } from './hooks.ts';
|
|
22
22
|
export type { ValidatedCaller } from './oauth/validate.ts';
|
|
23
23
|
/**
|
|
24
24
|
* Plugin entry point — called by Harper on each worker thread.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,OAAO,KAAK,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAC;AAG/D,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,WAAW,EACX,QAAQ,EACR,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,OAAO,KAAK,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAC;AAG/D,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,WAAW,EACX,QAAQ,EACR,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DnE"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,CACtC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,KAC1C,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,CACtC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,KAC1C,OAAO,CAAC,OAAO,CAAC,CA0IpB"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -93,7 +93,16 @@ export function createMcpMiddleware() {
|
|
|
93
93
|
kbId,
|
|
94
94
|
};
|
|
95
95
|
// Run the onAccessCheck hook (if registered by the parent app)
|
|
96
|
-
const accessResult = await checkAccess(
|
|
96
|
+
const accessResult = await checkAccess({
|
|
97
|
+
user: effectiveCaller.userId !== 'anonymous'
|
|
98
|
+
? { id: effectiveCaller.userId, username: effectiveCaller.userId }
|
|
99
|
+
: null,
|
|
100
|
+
kbId,
|
|
101
|
+
resource: 'mcp',
|
|
102
|
+
operation: 'read',
|
|
103
|
+
channel: 'mcp',
|
|
104
|
+
caller: effectiveCaller,
|
|
105
|
+
});
|
|
97
106
|
if (accessResult && !accessResult.allow) {
|
|
98
107
|
logger?.warn?.(`Access denied for ${effectiveCaller.userId} on KB ${kbId}: ${accessResult.reason || 'denied by hook'}`);
|
|
99
108
|
return new Response(JSON.stringify({
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGxD;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB;IAIlC,OAAO,KAAK,EAAE,OAAsB,EAAE,IAA8C,EAAoB,EAAE;QACzG,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAExC,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,6BAA6B;QAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,yBAAyB;QACzB,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;gBACd,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACN,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,6BAA6B,IAAI,EAAE;iBAC5C;gBACD,EAAE,EAAE,IAAI;aACR,CAAC,EACF;gBACC,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAC/C,CACD,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAElE,qDAAqD;QACrD,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;gBACd,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACN,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,cAAc;iBACvB;gBACD,EAAE,EAAE,IAAI;aACR,CAAC,EACF;gBACC,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE;oBACR,cAAc,EAAE,kBAAkB;oBAClC,kBAAkB,EAAE,6BAA6B,OAAO,yCAAyC,IAAI,GAAG;iBACxG;aACD,CACD,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,MAAM,eAAe,GAAoB,MAAM,IAAI;YAClD,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,CAAC,UAAU,CAAC;YACpB,IAAI;SACJ,CAAC;QAEF,+DAA+D;QAC/D,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export declare class HistoryResource extends HistoryResource_base {
|
|
|
12
12
|
static loadAsInstance: boolean;
|
|
13
13
|
/**
|
|
14
14
|
* GET /History/<entryId>?kbId=.. — get edit history for a knowledge entry.
|
|
15
|
-
*
|
|
15
|
+
* Default: public. Hook can restrict.
|
|
16
16
|
*/
|
|
17
17
|
get(target?: any): Promise<{
|
|
18
18
|
status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryResource.d.ts","sourceRoot":"","sources":["../../src/resources/HistoryResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"HistoryResource.d.ts","sourceRoot":"","sources":["../../src/resources/HistoryResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;AAcH,qBAAa,eAAgB,SAAQ,oBAAkB;IACtD,MAAM,CAAC,cAAc,UAAS;IAE9B;;;OAGG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;;CAoDtB"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { getHistory } from "../core/history.js";
|
|
11
11
|
import { getEntry } from "../core/entries.js";
|
|
12
|
+
import { checkAccess } from "../hooks.js";
|
|
12
13
|
function getResourceClass() {
|
|
13
14
|
return globalThis.Resource;
|
|
14
15
|
}
|
|
@@ -19,13 +20,24 @@ export class HistoryResource extends getResourceClass() {
|
|
|
19
20
|
static loadAsInstance = false;
|
|
20
21
|
/**
|
|
21
22
|
* GET /History/<entryId>?kbId=.. — get edit history for a knowledge entry.
|
|
22
|
-
*
|
|
23
|
+
* Default: public. Hook can restrict.
|
|
23
24
|
*/
|
|
24
25
|
async get(target) {
|
|
25
26
|
const kbId = extractKbId(target);
|
|
26
27
|
if (!kbId) {
|
|
27
28
|
return { status: 400, data: { error: 'kbId query parameter is required' } };
|
|
28
29
|
}
|
|
30
|
+
const accessResult = await checkAccess({
|
|
31
|
+
user: this.getCurrentUser(),
|
|
32
|
+
kbId,
|
|
33
|
+
resource: 'History',
|
|
34
|
+
operation: 'read',
|
|
35
|
+
channel: 'rest',
|
|
36
|
+
});
|
|
37
|
+
if (accessResult && !accessResult.allow) {
|
|
38
|
+
const user = this.getCurrentUser();
|
|
39
|
+
return { status: user ? 403 : 401, data: { error: accessResult.reason || 'Access denied' } };
|
|
40
|
+
}
|
|
29
41
|
const entryId = this.getId();
|
|
30
42
|
if (!entryId) {
|
|
31
43
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryResource.js","sourceRoot":"","sources":["../../src/resources/HistoryResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"HistoryResource.js","sourceRoot":"","sources":["../../src/resources/HistoryResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export declare class KnowledgeBaseResource extends KnowledgeBaseResource_base {
|
|
|
17
17
|
/**
|
|
18
18
|
* GET /KnowledgeBase/<id> — return a single KB.
|
|
19
19
|
* GET /KnowledgeBase/ — list all KBs.
|
|
20
|
-
*
|
|
20
|
+
* Default: public. Hook can restrict.
|
|
21
21
|
*/
|
|
22
22
|
get(): Promise<import("../types.ts").KnowledgeBase | import("../types.ts").KnowledgeBase[] | {
|
|
23
23
|
status: number;
|
|
@@ -27,7 +27,7 @@ export declare class KnowledgeBaseResource extends KnowledgeBaseResource_base {
|
|
|
27
27
|
}>;
|
|
28
28
|
/**
|
|
29
29
|
* POST /KnowledgeBase/ — create a new knowledge base.
|
|
30
|
-
*
|
|
30
|
+
* Default: team role required. Hook can override.
|
|
31
31
|
*/
|
|
32
32
|
post(_target: any, data: any): Promise<import("../types.ts").KnowledgeBase | {
|
|
33
33
|
status: number;
|
|
@@ -37,7 +37,7 @@ export declare class KnowledgeBaseResource extends KnowledgeBaseResource_base {
|
|
|
37
37
|
}>;
|
|
38
38
|
/**
|
|
39
39
|
* PUT /KnowledgeBase/<id> — update a knowledge base.
|
|
40
|
-
*
|
|
40
|
+
* Default: team role required. Hook can override.
|
|
41
41
|
*/
|
|
42
42
|
put(_target: any, data: any): Promise<import("../types.ts").KnowledgeBase | {
|
|
43
43
|
status: number;
|
|
@@ -47,7 +47,7 @@ export declare class KnowledgeBaseResource extends KnowledgeBaseResource_base {
|
|
|
47
47
|
}>;
|
|
48
48
|
/**
|
|
49
49
|
* DELETE /KnowledgeBase/<id> — delete a knowledge base.
|
|
50
|
-
*
|
|
50
|
+
* Default: team role required. Hook can override.
|
|
51
51
|
*/
|
|
52
52
|
delete(): Promise<true | {
|
|
53
53
|
status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeBaseResource.d.ts","sourceRoot":"","sources":["../../src/resources/KnowledgeBaseResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;;
|
|
1
|
+
{"version":3,"file":"KnowledgeBaseResource.d.ts","sourceRoot":"","sources":["../../src/resources/KnowledgeBaseResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;;AAeH,qBAAa,qBAAsB,SAAQ,0BAAkB;IAC5D,MAAM,CAAC,cAAc,UAAS;IAE9B;;;;OAIG;IACG,GAAG;;;;;;IA0BT;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;;;;;;IAwClC;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;;;;;;IAqCjC;;;OAGG;IACG,MAAM;;;;;;CAqCZ"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* DELETE /KnowledgeBase/<id> — delete a knowledge base (team role)
|
|
13
13
|
*/
|
|
14
14
|
import { createKnowledgeBase, getKnowledgeBase, updateKnowledgeBase, deleteKnowledgeBase, listKnowledgeBases, } from "../core/knowledge-base.js";
|
|
15
|
+
import { checkAccess } from "../hooks.js";
|
|
15
16
|
function getResourceClass() {
|
|
16
17
|
return globalThis.Resource;
|
|
17
18
|
}
|
|
@@ -20,10 +21,21 @@ export class KnowledgeBaseResource extends getResourceClass() {
|
|
|
20
21
|
/**
|
|
21
22
|
* GET /KnowledgeBase/<id> — return a single KB.
|
|
22
23
|
* GET /KnowledgeBase/ — list all KBs.
|
|
23
|
-
*
|
|
24
|
+
* Default: public. Hook can restrict.
|
|
24
25
|
*/
|
|
25
26
|
async get() {
|
|
26
27
|
const id = this.getId();
|
|
28
|
+
const accessResult = await checkAccess({
|
|
29
|
+
user: this.getCurrentUser(),
|
|
30
|
+
kbId: id ? String(id) : null,
|
|
31
|
+
resource: 'KnowledgeBase',
|
|
32
|
+
operation: 'read',
|
|
33
|
+
channel: 'rest',
|
|
34
|
+
});
|
|
35
|
+
if (accessResult && !accessResult.allow) {
|
|
36
|
+
const user = this.getCurrentUser();
|
|
37
|
+
return { status: user ? 403 : 401, data: { error: accessResult.reason || 'Access denied' } };
|
|
38
|
+
}
|
|
27
39
|
if (id) {
|
|
28
40
|
const kb = await getKnowledgeBase(String(id));
|
|
29
41
|
if (!kb) {
|
|
@@ -35,15 +47,29 @@ export class KnowledgeBaseResource extends getResourceClass() {
|
|
|
35
47
|
}
|
|
36
48
|
/**
|
|
37
49
|
* POST /KnowledgeBase/ — create a new knowledge base.
|
|
38
|
-
*
|
|
50
|
+
* Default: team role required. Hook can override.
|
|
39
51
|
*/
|
|
40
52
|
async post(_target, data) {
|
|
41
53
|
const user = this.getCurrentUser();
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
const accessResult = await checkAccess({
|
|
55
|
+
user,
|
|
56
|
+
kbId: data?.id || null,
|
|
57
|
+
resource: 'KnowledgeBase',
|
|
58
|
+
operation: 'write',
|
|
59
|
+
channel: 'rest',
|
|
60
|
+
});
|
|
61
|
+
if (accessResult) {
|
|
62
|
+
if (!accessResult.allow) {
|
|
63
|
+
return { status: user ? 403 : 401, data: { error: accessResult.reason || 'Access denied' } };
|
|
64
|
+
}
|
|
44
65
|
}
|
|
45
|
-
|
|
46
|
-
|
|
66
|
+
else {
|
|
67
|
+
if (!user) {
|
|
68
|
+
return { status: 401, data: { error: 'Authentication required' } };
|
|
69
|
+
}
|
|
70
|
+
if (user.role !== 'team') {
|
|
71
|
+
return { status: 403, data: { error: 'Team role required' } };
|
|
72
|
+
}
|
|
47
73
|
}
|
|
48
74
|
if (!data?.id || !data?.name) {
|
|
49
75
|
return { status: 400, data: { error: 'id and name are required' } };
|
|
@@ -51,7 +77,7 @@ export class KnowledgeBaseResource extends getResourceClass() {
|
|
|
51
77
|
try {
|
|
52
78
|
return await createKnowledgeBase({
|
|
53
79
|
...data,
|
|
54
|
-
createdBy: user
|
|
80
|
+
createdBy: user?.username || user?.id || 'unknown',
|
|
55
81
|
});
|
|
56
82
|
}
|
|
57
83
|
catch (error) {
|
|
@@ -63,20 +89,34 @@ export class KnowledgeBaseResource extends getResourceClass() {
|
|
|
63
89
|
}
|
|
64
90
|
/**
|
|
65
91
|
* PUT /KnowledgeBase/<id> — update a knowledge base.
|
|
66
|
-
*
|
|
92
|
+
* Default: team role required. Hook can override.
|
|
67
93
|
*/
|
|
68
94
|
async put(_target, data) {
|
|
69
95
|
const user = this.getCurrentUser();
|
|
70
|
-
if (!user) {
|
|
71
|
-
return { status: 401, data: { error: 'Authentication required' } };
|
|
72
|
-
}
|
|
73
|
-
if (user.role !== 'team') {
|
|
74
|
-
return { status: 403, data: { error: 'Team role required' } };
|
|
75
|
-
}
|
|
76
96
|
const id = this.getId();
|
|
77
97
|
if (!id) {
|
|
78
98
|
return { status: 400, data: { error: 'Knowledge base ID required' } };
|
|
79
99
|
}
|
|
100
|
+
const accessResult = await checkAccess({
|
|
101
|
+
user,
|
|
102
|
+
kbId: String(id),
|
|
103
|
+
resource: 'KnowledgeBase',
|
|
104
|
+
operation: 'write',
|
|
105
|
+
channel: 'rest',
|
|
106
|
+
});
|
|
107
|
+
if (accessResult) {
|
|
108
|
+
if (!accessResult.allow) {
|
|
109
|
+
return { status: user ? 403 : 401, data: { error: accessResult.reason || 'Access denied' } };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
if (!user) {
|
|
114
|
+
return { status: 401, data: { error: 'Authentication required' } };
|
|
115
|
+
}
|
|
116
|
+
if (user.role !== 'team') {
|
|
117
|
+
return { status: 403, data: { error: 'Team role required' } };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
80
120
|
try {
|
|
81
121
|
return await updateKnowledgeBase(String(id), data);
|
|
82
122
|
}
|
|
@@ -89,20 +129,34 @@ export class KnowledgeBaseResource extends getResourceClass() {
|
|
|
89
129
|
}
|
|
90
130
|
/**
|
|
91
131
|
* DELETE /KnowledgeBase/<id> — delete a knowledge base.
|
|
92
|
-
*
|
|
132
|
+
* Default: team role required. Hook can override.
|
|
93
133
|
*/
|
|
94
134
|
async delete() {
|
|
95
135
|
const user = this.getCurrentUser();
|
|
96
|
-
if (!user) {
|
|
97
|
-
return { status: 401, data: { error: 'Authentication required' } };
|
|
98
|
-
}
|
|
99
|
-
if (user.role !== 'team') {
|
|
100
|
-
return { status: 403, data: { error: 'Team role required' } };
|
|
101
|
-
}
|
|
102
136
|
const id = this.getId();
|
|
103
137
|
if (!id) {
|
|
104
138
|
return { status: 400, data: { error: 'Knowledge base ID required' } };
|
|
105
139
|
}
|
|
140
|
+
const accessResult = await checkAccess({
|
|
141
|
+
user,
|
|
142
|
+
kbId: String(id),
|
|
143
|
+
resource: 'KnowledgeBase',
|
|
144
|
+
operation: 'write',
|
|
145
|
+
channel: 'rest',
|
|
146
|
+
});
|
|
147
|
+
if (accessResult) {
|
|
148
|
+
if (!accessResult.allow) {
|
|
149
|
+
return { status: user ? 403 : 401, data: { error: accessResult.reason || 'Access denied' } };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
if (!user) {
|
|
154
|
+
return { status: 401, data: { error: 'Authentication required' } };
|
|
155
|
+
}
|
|
156
|
+
if (user.role !== 'team') {
|
|
157
|
+
return { status: 403, data: { error: 'Team role required' } };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
106
160
|
try {
|
|
107
161
|
await deleteKnowledgeBase(String(id));
|
|
108
162
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeBaseResource.js","sourceRoot":"","sources":["../../src/resources/KnowledgeBaseResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"KnowledgeBaseResource.js","sourceRoot":"","sources":["../../src/resources/KnowledgeBaseResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeEntryResource.d.ts","sourceRoot":"","sources":["../../src/resources/KnowledgeEntryResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;
|
|
1
|
+
{"version":3,"file":"KnowledgeEntryResource.d.ts","sourceRoot":"","sources":["../../src/resources/KnowledgeEntryResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;AAkBH,qBAAa,sBAAuB,SAAQ,2BAAkB;IAC7D,MAAM,CAAC,cAAc,UAAS;IAE9B;;;;OAIG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG;;;;;;IAkEtB;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;;;;;;IA+CjC;;;OAGG;IACG,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;;;;;;IAqDhC;;;OAGG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG;;;;;;CAiDzB"}
|