@kilnai/core 0.1.16 → 0.9.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/agents/agent-rag.d.ts +21 -0
- package/dist/agents/agent-rag.d.ts.map +1 -0
- package/dist/agents/agent-rag.js +79 -0
- package/dist/agents/agent-rag.js.map +1 -0
- package/dist/agents/complexity-scorer.d.ts +8 -0
- package/dist/agents/complexity-scorer.d.ts.map +1 -0
- package/dist/agents/complexity-scorer.js +58 -0
- package/dist/agents/complexity-scorer.js.map +1 -0
- package/dist/agents/index.d.ts +14 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +9 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/infrastructure/deepgram-stt.d.ts +15 -0
- package/dist/agents/infrastructure/deepgram-stt.d.ts.map +1 -0
- package/dist/agents/infrastructure/deepgram-stt.js +56 -0
- package/dist/agents/infrastructure/deepgram-stt.js.map +1 -0
- package/dist/agents/infrastructure/openai-stt.d.ts +15 -0
- package/dist/agents/infrastructure/openai-stt.d.ts.map +1 -0
- package/dist/agents/infrastructure/openai-stt.js +65 -0
- package/dist/agents/infrastructure/openai-stt.js.map +1 -0
- package/dist/agents/mcp-client.d.ts +4 -0
- package/dist/agents/mcp-client.d.ts.map +1 -1
- package/dist/agents/mcp-client.js +15 -2
- package/dist/agents/mcp-client.js.map +1 -1
- package/dist/agents/model-capability-registry.d.ts +13 -0
- package/dist/agents/model-capability-registry.d.ts.map +1 -0
- package/dist/agents/model-capability-registry.js +64 -0
- package/dist/agents/model-capability-registry.js.map +1 -0
- package/dist/agents/rules-router.d.ts +14 -0
- package/dist/agents/rules-router.d.ts.map +1 -0
- package/dist/agents/rules-router.js +59 -0
- package/dist/agents/rules-router.js.map +1 -0
- package/dist/agents/sliding-window-rate-limiter.d.ts +11 -0
- package/dist/agents/sliding-window-rate-limiter.d.ts.map +1 -0
- package/dist/agents/sliding-window-rate-limiter.js +56 -0
- package/dist/agents/sliding-window-rate-limiter.js.map +1 -0
- package/dist/agents/tool-error-classifier.d.ts +4 -0
- package/dist/agents/tool-error-classifier.d.ts.map +1 -0
- package/dist/agents/tool-error-classifier.js +32 -0
- package/dist/agents/tool-error-classifier.js.map +1 -0
- package/dist/agents/tool-execution-engine.d.ts +4 -0
- package/dist/agents/tool-execution-engine.d.ts.map +1 -0
- package/dist/agents/tool-execution-engine.js +100 -0
- package/dist/agents/tool-execution-engine.js.map +1 -0
- package/dist/cost/cost-tracker.d.ts +12 -2
- package/dist/cost/cost-tracker.d.ts.map +1 -1
- package/dist/cost/cost-tracker.js +48 -15
- package/dist/cost/cost-tracker.js.map +1 -1
- package/dist/cost/index.d.ts +11 -2
- package/dist/cost/index.d.ts.map +1 -1
- package/dist/cost/index.js +1 -1
- package/dist/cost/index.js.map +1 -1
- package/dist/domain/domain-package-adapter.d.ts +1 -1
- package/dist/domain/domain-package-adapter.js +2 -2
- package/dist/domain/domain-package-adapter.js.map +1 -1
- package/dist/domains/routing-templates.d.ts +12 -0
- package/dist/domains/routing-templates.d.ts.map +1 -0
- package/dist/domains/routing-templates.js +109 -0
- package/dist/domains/routing-templates.js.map +1 -0
- package/dist/engine/domain/capability.d.ts +2 -0
- package/dist/engine/domain/capability.d.ts.map +1 -1
- package/dist/engine/domain/chunker.d.ts +4 -0
- package/dist/engine/domain/chunker.d.ts.map +1 -1
- package/dist/engine/domain/contact-memory.d.ts +30 -0
- package/dist/engine/domain/contact-memory.d.ts.map +1 -0
- package/dist/engine/domain/contact-memory.js +4 -0
- package/dist/engine/domain/contact-memory.js.map +1 -0
- package/dist/engine/domain/knowledge-config.d.ts +26 -1
- package/dist/engine/domain/knowledge-config.d.ts.map +1 -1
- package/dist/engine/domain/knowledge-config.js +41 -3
- package/dist/engine/domain/knowledge-config.js.map +1 -1
- package/dist/engine/domain/knowledge-source.d.ts +31 -0
- package/dist/engine/domain/knowledge-source.d.ts.map +1 -0
- package/dist/engine/domain/knowledge-source.js +3 -0
- package/dist/engine/domain/knowledge-source.js.map +1 -0
- package/dist/engine/domain/model-router.d.ts +87 -0
- package/dist/engine/domain/model-router.d.ts.map +1 -0
- package/dist/engine/domain/model-router.js +4 -0
- package/dist/engine/domain/model-router.js.map +1 -0
- package/dist/engine/domain/rate-limiter.d.ts +15 -0
- package/dist/engine/domain/rate-limiter.d.ts.map +1 -0
- package/dist/engine/domain/rate-limiter.js +3 -0
- package/dist/engine/domain/rate-limiter.js.map +1 -0
- package/dist/engine/domain/tool-execution.d.ts +33 -0
- package/dist/engine/domain/tool-execution.d.ts.map +1 -0
- package/dist/engine/domain/tool-execution.js +3 -0
- package/dist/engine/domain/tool-execution.js.map +1 -0
- package/dist/engine/domain/vector-store.d.ts +1 -0
- package/dist/engine/domain/vector-store.d.ts.map +1 -1
- package/dist/engine/error-catalog.d.ts.map +1 -1
- package/dist/engine/error-catalog.js +100 -0
- package/dist/engine/error-catalog.js.map +1 -1
- package/dist/engine/errors.d.ts +1 -1
- package/dist/engine/errors.d.ts.map +1 -1
- package/dist/engine/errors.js.map +1 -1
- package/dist/engine/gateway/conversation-event.d.ts +57 -1
- package/dist/engine/gateway/conversation-event.d.ts.map +1 -1
- package/dist/engine/gateway/events-config.d.ts +4 -0
- package/dist/engine/gateway/events-config.d.ts.map +1 -1
- package/dist/engine/gateway/tenant-config.d.ts +65 -0
- package/dist/engine/gateway/tenant-config.d.ts.map +1 -1
- package/dist/engine/gateway/tenant-config.js +181 -0
- package/dist/engine/gateway/tenant-config.js.map +1 -1
- package/dist/engine/index.d.ts +6 -2
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/loader/app-loader.d.ts.map +1 -1
- package/dist/engine/loader/app-loader.js +41 -0
- package/dist/engine/loader/app-loader.js.map +1 -1
- package/dist/enrichment/effort-score.d.ts +7 -0
- package/dist/enrichment/effort-score.d.ts.map +1 -0
- package/dist/enrichment/effort-score.js +15 -0
- package/dist/enrichment/effort-score.js.map +1 -0
- package/dist/enrichment/enrichment-pipeline.d.ts +13 -0
- package/dist/enrichment/enrichment-pipeline.d.ts.map +1 -0
- package/dist/enrichment/enrichment-pipeline.js +191 -0
- package/dist/enrichment/enrichment-pipeline.js.map +1 -0
- package/dist/enrichment/index.d.ts +4 -0
- package/dist/enrichment/index.d.ts.map +1 -0
- package/dist/enrichment/index.js +3 -0
- package/dist/enrichment/index.js.map +1 -0
- package/dist/enrichment/types.d.ts +105 -0
- package/dist/enrichment/types.d.ts.map +1 -0
- package/dist/enrichment/types.js +3 -0
- package/dist/enrichment/types.js.map +1 -0
- package/dist/events/index.d.ts +72 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +10 -0
- package/dist/events/index.js.map +1 -1
- package/dist/index.d.ts +18 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge/contact-memory.d.ts +26 -0
- package/dist/knowledge/contact-memory.d.ts.map +1 -0
- package/dist/knowledge/contact-memory.js +235 -0
- package/dist/knowledge/contact-memory.js.map +1 -0
- package/dist/knowledge/contextual-enricher.d.ts +16 -0
- package/dist/knowledge/contextual-enricher.d.ts.map +1 -0
- package/dist/knowledge/contextual-enricher.js +82 -0
- package/dist/knowledge/contextual-enricher.js.map +1 -0
- package/dist/knowledge/index.d.ts +16 -0
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/index.js +13 -0
- package/dist/knowledge/index.js.map +1 -1
- package/dist/knowledge/infrastructure/cohere-reranker.d.ts +13 -0
- package/dist/knowledge/infrastructure/cohere-reranker.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/cohere-reranker.js +61 -0
- package/dist/knowledge/infrastructure/cohere-reranker.js.map +1 -0
- package/dist/knowledge/infrastructure/composite-extractor.d.ts +8 -0
- package/dist/knowledge/infrastructure/composite-extractor.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/composite-extractor.js +26 -0
- package/dist/knowledge/infrastructure/composite-extractor.js.map +1 -0
- package/dist/knowledge/infrastructure/file-extractor.d.ts +6 -0
- package/dist/knowledge/infrastructure/file-extractor.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/file-extractor.js +19 -0
- package/dist/knowledge/infrastructure/file-extractor.js.map +1 -0
- package/dist/knowledge/infrastructure/json-source-store.d.ts +14 -0
- package/dist/knowledge/infrastructure/json-source-store.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/json-source-store.js +56 -0
- package/dist/knowledge/infrastructure/json-source-store.js.map +1 -0
- package/dist/knowledge/infrastructure/memory-source-store.d.ts +10 -0
- package/dist/knowledge/infrastructure/memory-source-store.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/memory-source-store.js +26 -0
- package/dist/knowledge/infrastructure/memory-source-store.js.map +1 -0
- package/dist/knowledge/infrastructure/memory-vector-store.d.ts +1 -0
- package/dist/knowledge/infrastructure/memory-vector-store.d.ts.map +1 -1
- package/dist/knowledge/infrastructure/memory-vector-store.js +10 -0
- package/dist/knowledge/infrastructure/memory-vector-store.js.map +1 -1
- package/dist/knowledge/infrastructure/pdf-extractor.d.ts +6 -0
- package/dist/knowledge/infrastructure/pdf-extractor.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/pdf-extractor.js +46 -0
- package/dist/knowledge/infrastructure/pdf-extractor.js.map +1 -0
- package/dist/knowledge/infrastructure/pgvector-store.d.ts +29 -0
- package/dist/knowledge/infrastructure/pgvector-store.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/pgvector-store.js +141 -0
- package/dist/knowledge/infrastructure/pgvector-store.js.map +1 -0
- package/dist/knowledge/infrastructure/url-extractor.d.ts +6 -0
- package/dist/knowledge/infrastructure/url-extractor.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/url-extractor.js +71 -0
- package/dist/knowledge/infrastructure/url-extractor.js.map +1 -0
- package/dist/knowledge/retrieval-pipeline.d.ts +8 -1
- package/dist/knowledge/retrieval-pipeline.d.ts.map +1 -1
- package/dist/knowledge/retrieval-pipeline.js +28 -2
- package/dist/knowledge/retrieval-pipeline.js.map +1 -1
- package/dist/knowledge/source-manager.d.ts +29 -0
- package/dist/knowledge/source-manager.d.ts.map +1 -0
- package/dist/knowledge/source-manager.js +124 -0
- package/dist/knowledge/source-manager.js.map +1 -0
- package/dist/observability/span-mapper.d.ts.map +1 -1
- package/dist/observability/span-mapper.js +100 -3
- package/dist/observability/span-mapper.js.map +1 -1
- package/dist/orchestrator/orchestrator.js +2 -2
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/safety/index.d.ts +2 -0
- package/dist/safety/index.d.ts.map +1 -1
- package/dist/safety/index.js +2 -0
- package/dist/safety/index.js.map +1 -1
- package/dist/safety/pii-scanner.d.ts.map +1 -1
- package/dist/safety/pii-scanner.js +18 -0
- package/dist/safety/pii-scanner.js.map +1 -1
- package/dist/safety/tool-result-sanitizer.d.ts +21 -0
- package/dist/safety/tool-result-sanitizer.d.ts.map +1 -0
- package/dist/safety/tool-result-sanitizer.js +62 -0
- package/dist/safety/tool-result-sanitizer.js.map +1 -0
- package/dist/security/annotation-authorizer.d.ts +13 -0
- package/dist/security/annotation-authorizer.d.ts.map +1 -0
- package/dist/security/annotation-authorizer.js +37 -0
- package/dist/security/annotation-authorizer.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1 -0
- package/dist/security/index.js.map +1 -1
- package/dist/security/types.d.ts +2 -2
- package/dist/security/types.d.ts.map +1 -1
- package/package.json +10 -2
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// ToolResultSanitizer: wraps SafetyPipeline to sanitize tool execution results
|
|
2
|
+
// Includes optional indirect prompt injection scanning on tool results
|
|
3
|
+
export class ToolResultSanitizer {
|
|
4
|
+
pipeline;
|
|
5
|
+
promptScanner;
|
|
6
|
+
eventBus;
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.pipeline = config.pipeline;
|
|
9
|
+
this.promptScanner = config.promptScanner;
|
|
10
|
+
this.eventBus = config.eventBus;
|
|
11
|
+
}
|
|
12
|
+
async sanitize(result) {
|
|
13
|
+
try {
|
|
14
|
+
const evaluation = await this.pipeline.evaluate(result, "output");
|
|
15
|
+
if (!evaluation.allowed) {
|
|
16
|
+
return {
|
|
17
|
+
content: evaluation.blockReason ?? "Tool result blocked by safety pipeline",
|
|
18
|
+
sanitized: true,
|
|
19
|
+
blocked: true,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (evaluation.redactedText) {
|
|
23
|
+
return {
|
|
24
|
+
content: evaluation.redactedText,
|
|
25
|
+
sanitized: true,
|
|
26
|
+
blocked: false,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// Prompt injection scan on tool results (indirect injection defense)
|
|
30
|
+
if (this.promptScanner) {
|
|
31
|
+
try {
|
|
32
|
+
const scanResult = this.promptScanner.scanHeuristic(result);
|
|
33
|
+
if (!scanResult.safe) {
|
|
34
|
+
const alertEvent = {
|
|
35
|
+
type: "security_alert",
|
|
36
|
+
severity: "high",
|
|
37
|
+
category: "indirect_injection",
|
|
38
|
+
message: `Tool result contains injection patterns: ${scanResult.threats.map((t) => t.pattern).join(", ")}`,
|
|
39
|
+
timestamp: new Date(),
|
|
40
|
+
sessionId: "sanitizer",
|
|
41
|
+
};
|
|
42
|
+
this.eventBus?.emit(alertEvent);
|
|
43
|
+
return {
|
|
44
|
+
content: "[Tool result blocked: potential prompt injection detected]",
|
|
45
|
+
sanitized: true,
|
|
46
|
+
blocked: true,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Fail-open: if scanner throws, proceed with original result
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { content: result, sanitized: false, blocked: false };
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Fail-open: if pipeline throws, return original result
|
|
58
|
+
return { content: result, sanitized: false, blocked: false };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=tool-result-sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-sanitizer.js","sourceRoot":"","sources":["../../src/safety/tool-result-sanitizer.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uEAAuE;AAmBvE,MAAM,OAAO,mBAAmB;IACb,QAAQ,CAAiB;IACzB,aAAa,CAAiB;IAC9B,QAAQ,CAAY;IAErC,YAAY,MAAiC;QAC3C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAElE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO;oBACL,OAAO,EAAE,UAAU,CAAC,WAAW,IAAI,wCAAwC;oBAC3E,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,UAAU,CAAC,YAAY;oBAChC,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAED,qEAAqE;YACrE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBACrB,MAAM,UAAU,GAAuB;4BACrC,IAAI,EAAE,gBAAgB;4BACtB,QAAQ,EAAE,MAAM;4BAChB,QAAQ,EAAE,oBAAoB;4BAC9B,OAAO,EAAE,4CAA4C,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BAC1G,SAAS,EAAE,IAAI,IAAI,EAAE;4BACrB,SAAS,EAAE,WAAW;yBACvB,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;wBAChC,OAAO;4BACL,OAAO,EAAE,4DAA4D;4BACrE,SAAS,EAAE,IAAI;4BACf,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,6DAA6D;gBAC/D,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CapabilityAnnotations } from "../engine/domain/capability.js";
|
|
2
|
+
import type { ToolAuthorizer, ToolAuthorizationResult, AuthorizationLevel } from "../engine/domain/tool-execution.js";
|
|
3
|
+
export interface AuthorizationPolicy {
|
|
4
|
+
readonly defaultLevel?: AuthorizationLevel;
|
|
5
|
+
readonly requireApprovalForUnknown?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class AnnotationAuthorizer implements ToolAuthorizer {
|
|
8
|
+
private readonly policy;
|
|
9
|
+
constructor(policy?: AuthorizationPolicy);
|
|
10
|
+
authorize(toolName: string, annotations?: CapabilityAnnotations): ToolAuthorizationResult;
|
|
11
|
+
private classifyLevel;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=annotation-authorizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-authorizer.d.ts","sourceRoot":"","sources":["../../src/security/annotation-authorizer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAEtH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,MAAM,CAAC,EAAE,mBAAmB;IAOxC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,qBAAqB,GAAG,uBAAuB;IAgBzF,OAAO,CAAC,aAAa;CAWtB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// AnnotationAuthorizer: classifies tool authorization level from capability annotations
|
|
2
|
+
export class AnnotationAuthorizer {
|
|
3
|
+
policy;
|
|
4
|
+
constructor(policy) {
|
|
5
|
+
this.policy = {
|
|
6
|
+
defaultLevel: policy?.defaultLevel ?? 2,
|
|
7
|
+
requireApprovalForUnknown: policy?.requireApprovalForUnknown ?? false,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
authorize(toolName, annotations) {
|
|
11
|
+
const level = this.classifyLevel(annotations);
|
|
12
|
+
if (level === 1) {
|
|
13
|
+
return { level, allowed: true, requiresApproval: false, reason: "Read-only tool, auto-execute" };
|
|
14
|
+
}
|
|
15
|
+
if (level === 2) {
|
|
16
|
+
return { level, allowed: true, requiresApproval: false, reason: "Audited execution" };
|
|
17
|
+
}
|
|
18
|
+
if (level === 3) {
|
|
19
|
+
return { level, allowed: false, requiresApproval: true, reason: `Tool "${toolName}" requires confirmation` };
|
|
20
|
+
}
|
|
21
|
+
// level === 4
|
|
22
|
+
return { level, allowed: false, requiresApproval: true, reason: `Destructive tool "${toolName}" always requires confirmation` };
|
|
23
|
+
}
|
|
24
|
+
classifyLevel(annotations) {
|
|
25
|
+
if (!annotations) {
|
|
26
|
+
return this.policy.requireApprovalForUnknown ? 3 : this.policy.defaultLevel;
|
|
27
|
+
}
|
|
28
|
+
if (annotations.destructive)
|
|
29
|
+
return 4;
|
|
30
|
+
if (annotations.readOnly)
|
|
31
|
+
return 1;
|
|
32
|
+
if (annotations.idempotent)
|
|
33
|
+
return 2;
|
|
34
|
+
return this.policy.defaultLevel;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=annotation-authorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-authorizer.js","sourceRoot":"","sources":["../../src/security/annotation-authorizer.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAUxF,MAAM,OAAO,oBAAoB;IACd,MAAM,CAAgC;IAEvD,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG;YACZ,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC;YACvC,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,IAAI,KAAK;SACtE,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE,WAAmC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QACnG,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QACxF,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,QAAQ,yBAAyB,EAAE,CAAC;QAC/G,CAAC;QACD,cAAc;QACd,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,QAAQ,gCAAgC,EAAE,CAAC;IAClI,CAAC;IAEO,aAAa,CAAC,WAAmC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9E,CAAC;QAED,IAAI,WAAW,CAAC,WAAW;YAAE,OAAO,CAAC,CAAC;QACtC,IAAI,WAAW,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC;QACnC,IAAI,WAAW,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;CACF"}
|
package/dist/security/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@ export { Guardian } from "./guardian.js";
|
|
|
7
7
|
export type { GuardianRequest } from "./guardian.js";
|
|
8
8
|
export { SelfAudit } from "./self-audit.js";
|
|
9
9
|
export type { SecurityCheckName, SecurityCheckResult, SecurityAuditReport, SelfAuditOptions, } from "./self-audit.js";
|
|
10
|
+
export { AnnotationAuthorizer } from "./annotation-authorizer.js";
|
|
11
|
+
export type { AuthorizationPolicy } from "./annotation-authorizer.js";
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/security/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export { AesSecretStore } from "./secret-store.js";
|
|
|
4
4
|
export { PromptScanner, INJECTION_PATTERNS } from "./prompt-scanner.js";
|
|
5
5
|
export { Guardian } from "./guardian.js";
|
|
6
6
|
export { SelfAudit } from "./self-audit.js";
|
|
7
|
+
export { AnnotationAuthorizer } from "./annotation-authorizer.js";
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAoB7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAoB7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/security/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Categories of auditable actions */
|
|
2
|
-
export type AuditAction = "capability_executed" | "destructive_blocked" | "destructive_approved" | "injection_detected" | "injection_cleared" | "secret_accessed" | "secret_rotated" | "tenant_created" | "tenant_updated" | "tenant_deleted" | "memory_accessed" | "memory_denied" | "session_started" | "session_ended" | "config_changed" | "self_audit_completed" | "pii_detected" | "content_classified" | "policy_evaluated";
|
|
2
|
+
export type AuditAction = "capability_executed" | "destructive_blocked" | "destructive_approved" | "injection_detected" | "injection_cleared" | "secret_accessed" | "secret_rotated" | "tenant_created" | "tenant_updated" | "tenant_deleted" | "memory_accessed" | "memory_denied" | "session_started" | "session_ended" | "config_changed" | "self_audit_completed" | "pii_detected" | "content_classified" | "policy_evaluated" | "tool_execution";
|
|
3
3
|
/** Single audit log entry */
|
|
4
4
|
export interface AuditEntry {
|
|
5
5
|
readonly id: string;
|
|
@@ -7,7 +7,7 @@ export interface AuditEntry {
|
|
|
7
7
|
readonly action: AuditAction;
|
|
8
8
|
readonly actor: string;
|
|
9
9
|
readonly resource: string;
|
|
10
|
-
readonly outcome: "allowed" | "denied" | "error";
|
|
10
|
+
readonly outcome: "allowed" | "denied" | "error" | "success" | "success_sanitized";
|
|
11
11
|
readonly metadata?: Record<string, unknown>;
|
|
12
12
|
readonly tenantId?: string;
|
|
13
13
|
readonly sessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"AAIA,sCAAsC;AACtC,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,sBAAsB,GACtB,cAAc,GACd,oBAAoB,GACpB,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kilnai/core",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Domain-agnostic AI orchestration engine -- 7 primitives, 3 composites, YAML-configured",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -45,11 +45,19 @@
|
|
|
45
45
|
"yaml": "^2.8.2"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@opentelemetry/api": "^1.9.0"
|
|
48
|
+
"@opentelemetry/api": "^1.9.0",
|
|
49
|
+
"postgres": "^3.4.0",
|
|
50
|
+
"unpdf": ">=0.12.0"
|
|
49
51
|
},
|
|
50
52
|
"peerDependenciesMeta": {
|
|
51
53
|
"@opentelemetry/api": {
|
|
52
54
|
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"postgres": {
|
|
57
|
+
"optional": true
|
|
58
|
+
},
|
|
59
|
+
"unpdf": {
|
|
60
|
+
"optional": true
|
|
53
61
|
}
|
|
54
62
|
},
|
|
55
63
|
"devDependencies": {
|