@farukada/langchain-ts-rms 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +446 -0
- package/dist/app/freshness/evaluator.d.ts +23 -0
- package/dist/app/freshness/evaluator.d.ts.map +1 -0
- package/dist/app/freshness/evaluator.js +72 -0
- package/dist/app/freshness/evaluator.js.map +1 -0
- package/dist/app/governance/guardrails.d.ts +51 -0
- package/dist/app/governance/guardrails.d.ts.map +1 -0
- package/dist/app/governance/guardrails.js +68 -0
- package/dist/app/governance/guardrails.js.map +1 -0
- package/dist/app/graph/workflow.d.ts +1159 -0
- package/dist/app/graph/workflow.d.ts.map +1 -0
- package/dist/app/graph/workflow.js +468 -0
- package/dist/app/graph/workflow.js.map +1 -0
- package/dist/app/queryPlanning/planner.d.ts +18 -0
- package/dist/app/queryPlanning/planner.d.ts.map +1 -0
- package/dist/app/queryPlanning/planner.js +80 -0
- package/dist/app/queryPlanning/planner.js.map +1 -0
- package/dist/app/queryRewriting/rewriter.d.ts +32 -0
- package/dist/app/queryRewriting/rewriter.d.ts.map +1 -0
- package/dist/app/queryRewriting/rewriter.js +111 -0
- package/dist/app/queryRewriting/rewriter.js.map +1 -0
- package/dist/app/reranking/reranker.d.ts +27 -0
- package/dist/app/reranking/reranker.d.ts.map +1 -0
- package/dist/app/reranking/reranker.js +67 -0
- package/dist/app/reranking/reranker.js.map +1 -0
- package/dist/app/state/schema.d.ts +121 -0
- package/dist/app/state/schema.d.ts.map +1 -0
- package/dist/app/state/schema.js +88 -0
- package/dist/app/state/schema.js.map +1 -0
- package/dist/app/summarization/summarizationSchema.d.ts +34 -0
- package/dist/app/summarization/summarizationSchema.d.ts.map +1 -0
- package/dist/app/summarization/summarizationSchema.js +65 -0
- package/dist/app/summarization/summarizationSchema.js.map +1 -0
- package/dist/app/summarization/summarizer.d.ts +51 -0
- package/dist/app/summarization/summarizer.d.ts.map +1 -0
- package/dist/app/summarization/summarizer.js +181 -0
- package/dist/app/summarization/summarizer.js.map +1 -0
- package/dist/app/summarization/synthesisSchema.d.ts +16 -0
- package/dist/app/summarization/synthesisSchema.d.ts.map +1 -0
- package/dist/app/summarization/synthesisSchema.js +43 -0
- package/dist/app/summarization/synthesisSchema.js.map +1 -0
- package/dist/app/summarization/synthesizer.d.ts +21 -0
- package/dist/app/summarization/synthesizer.d.ts.map +1 -0
- package/dist/app/summarization/synthesizer.js +86 -0
- package/dist/app/summarization/synthesizer.js.map +1 -0
- package/dist/config/env.d.ts +49 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +54 -0
- package/dist/config/env.js.map +1 -0
- package/dist/domain/contracts.d.ts +59 -0
- package/dist/domain/contracts.d.ts.map +1 -0
- package/dist/domain/contracts.js +52 -0
- package/dist/domain/contracts.js.map +1 -0
- package/dist/domain/ports.d.ts +63 -0
- package/dist/domain/ports.d.ts.map +1 -0
- package/dist/domain/ports.js +2 -0
- package/dist/domain/ports.js.map +1 -0
- package/dist/domain/researchUtils.d.ts +51 -0
- package/dist/domain/researchUtils.d.ts.map +1 -0
- package/dist/domain/researchUtils.js +85 -0
- package/dist/domain/researchUtils.js.map +1 -0
- package/dist/infra/chat/chatModelProvider.d.ts +4 -0
- package/dist/infra/chat/chatModelProvider.d.ts.map +1 -0
- package/dist/infra/chat/chatModelProvider.js +13 -0
- package/dist/infra/chat/chatModelProvider.js.map +1 -0
- package/dist/infra/checkpoint/checkpointerFactory.d.ts +38 -0
- package/dist/infra/checkpoint/checkpointerFactory.d.ts.map +1 -0
- package/dist/infra/checkpoint/checkpointerFactory.js +54 -0
- package/dist/infra/checkpoint/checkpointerFactory.js.map +1 -0
- package/dist/infra/content/contentExtractor.d.ts +58 -0
- package/dist/infra/content/contentExtractor.d.ts.map +1 -0
- package/dist/infra/content/contentExtractor.js +296 -0
- package/dist/infra/content/contentExtractor.js.map +1 -0
- package/dist/infra/embeddings/embeddingProvider.d.ts +4 -0
- package/dist/infra/embeddings/embeddingProvider.d.ts.map +1 -0
- package/dist/infra/embeddings/embeddingProvider.js +11 -0
- package/dist/infra/embeddings/embeddingProvider.js.map +1 -0
- package/dist/infra/healthCheck.d.ts +23 -0
- package/dist/infra/healthCheck.d.ts.map +1 -0
- package/dist/infra/healthCheck.js +57 -0
- package/dist/infra/healthCheck.js.map +1 -0
- package/dist/infra/observability/tokenCounter.d.ts +30 -0
- package/dist/infra/observability/tokenCounter.d.ts.map +1 -0
- package/dist/infra/observability/tokenCounter.js +46 -0
- package/dist/infra/observability/tokenCounter.js.map +1 -0
- package/dist/infra/observability/tracing.d.ts +38 -0
- package/dist/infra/observability/tracing.d.ts.map +1 -0
- package/dist/infra/observability/tracing.js +92 -0
- package/dist/infra/observability/tracing.js.map +1 -0
- package/dist/infra/rateLimit/circuitBreaker.d.ts +54 -0
- package/dist/infra/rateLimit/circuitBreaker.d.ts.map +1 -0
- package/dist/infra/rateLimit/circuitBreaker.js +97 -0
- package/dist/infra/rateLimit/circuitBreaker.js.map +1 -0
- package/dist/infra/rateLimit/rateLimiter.d.ts +42 -0
- package/dist/infra/rateLimit/rateLimiter.d.ts.map +1 -0
- package/dist/infra/rateLimit/rateLimiter.js +89 -0
- package/dist/infra/rateLimit/rateLimiter.js.map +1 -0
- package/dist/infra/search/searxngClient.d.ts +29 -0
- package/dist/infra/search/searxngClient.d.ts.map +1 -0
- package/dist/infra/search/searxngClient.js +85 -0
- package/dist/infra/search/searxngClient.js.map +1 -0
- package/dist/infra/search/urlBlocklist.d.ts +28 -0
- package/dist/infra/search/urlBlocklist.d.ts.map +1 -0
- package/dist/infra/search/urlBlocklist.js +78 -0
- package/dist/infra/search/urlBlocklist.js.map +1 -0
- package/dist/infra/vector/qdrantClient.d.ts +18 -0
- package/dist/infra/vector/qdrantClient.d.ts.map +1 -0
- package/dist/infra/vector/qdrantClient.js +82 -0
- package/dist/infra/vector/qdrantClient.js.map +1 -0
- package/dist/infra/vector/researchRepository.d.ts +39 -0
- package/dist/infra/vector/researchRepository.d.ts.map +1 -0
- package/dist/infra/vector/researchRepository.js +294 -0
- package/dist/infra/vector/researchRepository.js.map +1 -0
- package/dist/lib/helpers.d.ts +50 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +124 -0
- package/dist/lib/helpers.js.map +1 -0
- package/dist/lib/index.d.ts +65 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +61 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/rmsTool.d.ts +28 -0
- package/dist/lib/rmsTool.d.ts.map +1 -0
- package/dist/lib/rmsTool.js +79 -0
- package/dist/lib/rmsTool.js.map +1 -0
- package/dist/lib/schemas/lifecycleSchemas.d.ts +42 -0
- package/dist/lib/schemas/lifecycleSchemas.d.ts.map +1 -0
- package/dist/lib/schemas/lifecycleSchemas.js +176 -0
- package/dist/lib/schemas/lifecycleSchemas.js.map +1 -0
- package/dist/lib/schemas/researchSchemas.d.ts +23 -0
- package/dist/lib/schemas/researchSchemas.d.ts.map +1 -0
- package/dist/lib/schemas/researchSchemas.js +83 -0
- package/dist/lib/schemas/researchSchemas.js.map +1 -0
- package/dist/lib/tools/deleteResearch.d.ts +19 -0
- package/dist/lib/tools/deleteResearch.d.ts.map +1 -0
- package/dist/lib/tools/deleteResearch.js +37 -0
- package/dist/lib/tools/deleteResearch.js.map +1 -0
- package/dist/lib/tools/getDatetime.d.ts +7 -0
- package/dist/lib/tools/getDatetime.d.ts.map +1 -0
- package/dist/lib/tools/getDatetime.js +26 -0
- package/dist/lib/tools/getDatetime.js.map +1 -0
- package/dist/lib/tools/getResearch.d.ts +19 -0
- package/dist/lib/tools/getResearch.d.ts.map +1 -0
- package/dist/lib/tools/getResearch.js +32 -0
- package/dist/lib/tools/getResearch.js.map +1 -0
- package/dist/lib/tools/listResearch.d.ts +25 -0
- package/dist/lib/tools/listResearch.d.ts.map +1 -0
- package/dist/lib/tools/listResearch.js +41 -0
- package/dist/lib/tools/listResearch.js.map +1 -0
- package/dist/lib/tools/refreshResearch.d.ts +27 -0
- package/dist/lib/tools/refreshResearch.d.ts.map +1 -0
- package/dist/lib/tools/refreshResearch.js +81 -0
- package/dist/lib/tools/refreshResearch.js.map +1 -0
- package/dist/lib/tools/research.d.ts +108 -0
- package/dist/lib/tools/research.d.ts.map +1 -0
- package/dist/lib/tools/research.js +273 -0
- package/dist/lib/tools/research.js.map +1 -0
- package/dist/lib/tools/searchResearch.d.ts +25 -0
- package/dist/lib/tools/searchResearch.d.ts.map +1 -0
- package/dist/lib/tools/searchResearch.js +45 -0
- package/dist/lib/tools/searchResearch.js.map +1 -0
- package/dist/lib/types.d.ts +51 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +12 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +45 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +440 -0
- package/dist/mcp/server.js.map +1 -0
- package/package.json +132 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research guardrails: policy enforcement for research queries.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors GMS's governance/guardrails.ts pattern but adapted for
|
|
5
|
+
* research operations (subject filtering, result count limits, HITL gating).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default forbidden patterns (case-insensitive) that block research queries.
|
|
9
|
+
* These prevent the system from searching for harmful or inappropriate content.
|
|
10
|
+
*/
|
|
11
|
+
export const DEFAULT_FORBIDDEN_PATTERNS = [
|
|
12
|
+
"how to hack",
|
|
13
|
+
"exploit vulnerability",
|
|
14
|
+
"bypass security",
|
|
15
|
+
"create malware",
|
|
16
|
+
"illegal drugs",
|
|
17
|
+
"weapons manufacturing",
|
|
18
|
+
"personal information",
|
|
19
|
+
"doxxing",
|
|
20
|
+
];
|
|
21
|
+
/** Default maximum search result count before requiring human approval. */
|
|
22
|
+
export const DEFAULT_MAX_SEARCH_COUNT = 50;
|
|
23
|
+
/** Default threshold for low-confidence summarizations that trigger review. */
|
|
24
|
+
export const DEFAULT_MIN_CONFIDENCE = 0.3;
|
|
25
|
+
/**
|
|
26
|
+
* Policy guardrail: checks a research subject against forbidden patterns.
|
|
27
|
+
* Returns { allowed: false, reason } if the subject violates policy.
|
|
28
|
+
*/
|
|
29
|
+
export function checkGuardrail(subject, options = {}) {
|
|
30
|
+
const patterns = options.forbiddenPatterns ?? DEFAULT_FORBIDDEN_PATTERNS;
|
|
31
|
+
const lowerSubject = subject.toLowerCase();
|
|
32
|
+
for (const pattern of patterns) {
|
|
33
|
+
if (lowerSubject.includes(pattern.toLowerCase())) {
|
|
34
|
+
return {
|
|
35
|
+
allowed: false,
|
|
36
|
+
reason: `Research subject violates policy: "${pattern}" detected in "${subject}"`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { allowed: true };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Determines if a research operation requires human approval.
|
|
44
|
+
* Triggers on high result counts or low confidence scores.
|
|
45
|
+
*/
|
|
46
|
+
export function requiresHumanApproval(resultCount, confidenceScore, options = {}) {
|
|
47
|
+
const maxCount = options.maxSearchCount ?? DEFAULT_MAX_SEARCH_COUNT;
|
|
48
|
+
if (resultCount > maxCount)
|
|
49
|
+
return true;
|
|
50
|
+
if (confidenceScore !== undefined) {
|
|
51
|
+
const minConf = options.minConfidence ?? DEFAULT_MIN_CONFIDENCE;
|
|
52
|
+
if (confidenceScore < minConf)
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Evaluate both policy guardrails and human-approval requirements
|
|
59
|
+
* for a research operation.
|
|
60
|
+
*/
|
|
61
|
+
export function evaluateGuardrails(subject, resultCount, guardOpts = {}, approvalOpts = {}, confidenceScore) {
|
|
62
|
+
const check = checkGuardrail(subject, guardOpts);
|
|
63
|
+
const needsHumanApproval = check.allowed
|
|
64
|
+
? requiresHumanApproval(resultCount, confidenceScore, approvalOpts)
|
|
65
|
+
: false;
|
|
66
|
+
return { check, needsHumanApproval };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=guardrails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../../src/app/governance/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,aAAa;IACb,uBAAuB;IACvB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,uBAAuB;IACvB,sBAAsB;IACtB,SAAS;CACV,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAgB1C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,UAA4B,EAAE;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,0BAA0B,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,sCAAsC,OAAO,kBAAkB,OAAO,GAAG;aAClF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAmB,EACnB,eAAwB,EACxB,UAAgC,EAAE;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;IACpE,IAAI,WAAW,GAAG,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAC;QAChE,IAAI,eAAe,GAAG,OAAO;YAAE,OAAO,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,WAAmB,EACnB,YAA8B,EAAE,EAChC,eAAqC,EAAE,EACvC,eAAwB;IAExB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO;QACtC,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC;QACnE,CAAC,CAAC,KAAK,CAAC;IACV,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AACvC,CAAC"}
|