ghagga-core 2.9.0 → 3.0.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/dist/acp/adapter.d.ts.map +1 -1
- package/dist/acp/adapter.js +1 -1
- package/dist/acp/adapter.js.map +1 -1
- package/dist/acp/index.d.ts +1 -1
- package/dist/acp/index.d.ts.map +1 -1
- package/dist/acp/index.js.map +1 -1
- package/dist/acp/types.d.ts.map +1 -1
- package/dist/agents/consensus.d.ts.map +1 -1
- package/dist/agents/consensus.js +7 -2
- package/dist/agents/consensus.js.map +1 -1
- package/dist/agents/diagnostic.d.ts.map +1 -1
- package/dist/agents/diagnostic.js +7 -2
- package/dist/agents/diagnostic.js.map +1 -1
- package/dist/agents/fan-out-lenses.d.ts.map +1 -1
- package/dist/agents/fan-out-lenses.js +7 -2
- package/dist/agents/fan-out-lenses.js.map +1 -1
- package/dist/agents/prompts.d.ts +49 -1
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +133 -5
- package/dist/agents/prompts.js.map +1 -1
- package/dist/agents/simple.d.ts +1 -1
- package/dist/agents/simple.d.ts.map +1 -1
- package/dist/agents/simple.js +6 -4
- package/dist/agents/simple.js.map +1 -1
- package/dist/agents/workflow.d.ts.map +1 -1
- package/dist/agents/workflow.js +13 -4
- package/dist/agents/workflow.js.map +1 -1
- package/dist/critique/critique.d.ts.map +1 -1
- package/dist/critique/critique.js +14 -6
- package/dist/critique/critique.js.map +1 -1
- package/dist/critique/cross-model.d.ts.map +1 -1
- package/dist/critique/cross-model.js +1 -3
- package/dist/critique/cross-model.js.map +1 -1
- package/dist/critique/index.d.ts +1 -2
- package/dist/critique/index.d.ts.map +1 -1
- package/dist/critique/index.js +1 -2
- package/dist/critique/index.js.map +1 -1
- package/dist/diff/index.d.ts +12 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +11 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/parse.d.ts +41 -0
- package/dist/diff/parse.d.ts.map +1 -0
- package/dist/diff/parse.js +303 -0
- package/dist/diff/parse.js.map +1 -0
- package/dist/diff/types.d.ts +106 -0
- package/dist/diff/types.d.ts.map +1 -0
- package/dist/diff/types.js +23 -0
- package/dist/diff/types.js.map +1 -0
- package/dist/embed.d.ts +5 -2
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +7 -3
- package/dist/embed.js.map +1 -1
- package/dist/enhance/prompt.d.ts +5 -1
- package/dist/enhance/prompt.d.ts.map +1 -1
- package/dist/enhance/prompt.js +9 -2
- package/dist/enhance/prompt.js.map +1 -1
- package/dist/format.d.ts +31 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +256 -15
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -8
- package/dist/index.js.map +1 -1
- package/dist/memory/pageindex/chunker.d.ts +1 -1
- package/dist/memory/pageindex/chunker.d.ts.map +1 -1
- package/dist/memory/pageindex/chunker.js +5 -5
- package/dist/memory/pageindex/chunker.js.map +1 -1
- package/dist/memory/pageindex/example.d.ts +1 -1
- package/dist/memory/pageindex/example.d.ts.map +1 -1
- package/dist/memory/pageindex/example.js +1 -2
- package/dist/memory/pageindex/example.js.map +1 -1
- package/dist/memory/pageindex/index.d.ts +3 -3
- package/dist/memory/pageindex/index.d.ts.map +1 -1
- package/dist/memory/pageindex/index.js +1 -1
- package/dist/memory/pageindex/index.js.map +1 -1
- package/dist/memory/pageindex/service.d.ts +11 -2
- package/dist/memory/pageindex/service.d.ts.map +1 -1
- package/dist/memory/pageindex/service.js +12 -11
- package/dist/memory/pageindex/service.js.map +1 -1
- package/dist/memory/persist.d.ts.map +1 -1
- package/dist/memory/persist.js +10 -3
- package/dist/memory/persist.js.map +1 -1
- package/dist/memory/privacy.d.ts.map +1 -1
- package/dist/memory/privacy.js +45 -6
- package/dist/memory/privacy.js.map +1 -1
- package/dist/memory/sqlite.d.ts +1 -13
- package/dist/memory/sqlite.d.ts.map +1 -1
- package/dist/memory/sqlite.js +45 -27
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/memory/taxonomy.d.ts.map +1 -1
- package/dist/memory/taxonomy.js +6 -1
- package/dist/memory/taxonomy.js.map +1 -1
- package/dist/pipeline/degrade.d.ts +61 -0
- package/dist/pipeline/degrade.d.ts.map +1 -0
- package/dist/pipeline/degrade.js +58 -0
- package/dist/pipeline/degrade.js.map +1 -0
- package/dist/pipeline/enrich.d.ts +29 -0
- package/dist/pipeline/enrich.d.ts.map +1 -0
- package/dist/pipeline/enrich.js +271 -0
- package/dist/pipeline/enrich.js.map +1 -0
- package/dist/pipeline/execute.d.ts +22 -0
- package/dist/pipeline/execute.d.ts.map +1 -0
- package/dist/pipeline/execute.js +250 -0
- package/dist/pipeline/execute.js.map +1 -0
- package/dist/pipeline/finalize.d.ts +26 -0
- package/dist/pipeline/finalize.d.ts.map +1 -0
- package/dist/pipeline/finalize.js +52 -0
- package/dist/pipeline/finalize.js.map +1 -0
- package/dist/pipeline/gather-context.d.ts +25 -0
- package/dist/pipeline/gather-context.d.ts.map +1 -0
- package/dist/pipeline/gather-context.js +169 -0
- package/dist/pipeline/gather-context.js.map +1 -0
- package/dist/pipeline/gather-safe.d.ts +39 -0
- package/dist/pipeline/gather-safe.d.ts.map +1 -0
- package/dist/pipeline/gather-safe.js +127 -0
- package/dist/pipeline/gather-safe.js.map +1 -0
- package/dist/pipeline/prepare-graph.d.ts +54 -0
- package/dist/pipeline/prepare-graph.d.ts.map +1 -0
- package/dist/pipeline/prepare-graph.js +174 -0
- package/dist/pipeline/prepare-graph.js.map +1 -0
- package/dist/pipeline/prepare.d.ts +40 -0
- package/dist/pipeline/prepare.d.ts.map +1 -0
- package/dist/pipeline/prepare.js +233 -0
- package/dist/pipeline/prepare.js.map +1 -0
- package/dist/pipeline/providers.d.ts +54 -0
- package/dist/pipeline/providers.d.ts.map +1 -0
- package/dist/pipeline/providers.js +163 -0
- package/dist/pipeline/providers.js.map +1 -0
- package/dist/pipeline/results.d.ts +35 -0
- package/dist/pipeline/results.d.ts.map +1 -0
- package/dist/pipeline/results.js +122 -0
- package/dist/pipeline/results.js.map +1 -0
- package/dist/pipeline/state.d.ts +92 -0
- package/dist/pipeline/state.d.ts.map +1 -0
- package/dist/pipeline/state.js +13 -0
- package/dist/pipeline/state.js.map +1 -0
- package/dist/pipeline.d.ts +10 -9
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +36 -1213
- package/dist/pipeline.js.map +1 -1
- package/dist/providers/gateway.d.ts.map +1 -1
- package/dist/providers/gateway.js +8 -0
- package/dist/providers/gateway.js.map +1 -1
- package/dist/recursive/index.d.ts +1 -0
- package/dist/recursive/index.d.ts.map +1 -1
- package/dist/recursive/index.js +7 -3
- package/dist/recursive/index.js.map +1 -1
- package/dist/recursive/patch-extractor.d.ts +58 -6
- package/dist/recursive/patch-extractor.d.ts.map +1 -1
- package/dist/recursive/patch-extractor.js +207 -26
- package/dist/recursive/patch-extractor.js.map +1 -1
- package/dist/sanitize.d.ts +51 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +90 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/scope/diff-mapper.d.ts +12 -0
- package/dist/scope/diff-mapper.d.ts.map +1 -1
- package/dist/scope/diff-mapper.js +25 -18
- package/dist/scope/diff-mapper.js.map +1 -1
- package/dist/scope/entity-diff.d.ts +21 -4
- package/dist/scope/entity-diff.d.ts.map +1 -1
- package/dist/scope/entity-diff.js +132 -34
- package/dist/scope/entity-diff.js.map +1 -1
- package/dist/scope/types.d.ts +10 -0
- package/dist/scope/types.d.ts.map +1 -1
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js.map +1 -1
- package/dist/search/indexer.d.ts.map +1 -1
- package/dist/search/indexer.js +33 -4
- package/dist/search/indexer.js.map +1 -1
- package/dist/search/searcher.d.ts.map +1 -1
- package/dist/search/searcher.js.map +1 -1
- package/dist/semantic-diff/index.d.ts +25 -2
- package/dist/semantic-diff/index.d.ts.map +1 -1
- package/dist/semantic-diff/index.js +147 -53
- package/dist/semantic-diff/index.js.map +1 -1
- package/dist/tools/gitleaks-config.toml +35 -0
- package/dist/tools/plugins/gitleaks.d.ts +10 -0
- package/dist/tools/plugins/gitleaks.d.ts.map +1 -1
- package/dist/tools/plugins/gitleaks.js +29 -2
- package/dist/tools/plugins/gitleaks.js.map +1 -1
- package/dist/tools/plugins/semgrep.d.ts +11 -0
- package/dist/tools/plugins/semgrep.d.ts.map +1 -1
- package/dist/tools/plugins/semgrep.js +30 -1
- package/dist/tools/plugins/semgrep.js.map +1 -1
- package/dist/tools/semgrep-rules.yml +305 -0
- package/dist/types.d.ts +51 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/diff.d.ts +22 -2
- package/dist/utils/diff.d.ts.map +1 -1
- package/dist/utils/diff.js +36 -40
- package/dist/utils/diff.js.map +1 -1
- package/package.json +21 -22
- package/dist/providers/fallback.d.ts +0 -54
- package/dist/providers/fallback.d.ts.map +0 -1
- package/dist/providers/fallback.js +0 -102
- package/dist/providers/fallback.js.map +0 -1
- package/dist/providers/index.d.ts +0 -49
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -146
- package/dist/providers/index.js.map +0 -1
|
@@ -19,14 +19,14 @@ export function extractTopics(content) {
|
|
|
19
19
|
// Headers (### Topic)
|
|
20
20
|
const headers = content.match(/^#{1,3}\s+(.+)$/gm);
|
|
21
21
|
if (headers) {
|
|
22
|
-
headers.slice(0, 5).forEach(h => {
|
|
22
|
+
headers.slice(0, 5).forEach((h) => {
|
|
23
23
|
topics.push(h.replace(/^#+\s+/, '').slice(0, 50));
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
// Bold text (**topic**)
|
|
27
27
|
const bold = content.match(/\*\*(.+?)\*\*/g);
|
|
28
28
|
if (bold && topics.length < 10) {
|
|
29
|
-
bold.slice(0, 3).forEach(b => {
|
|
29
|
+
bold.slice(0, 3).forEach((b) => {
|
|
30
30
|
const topic = b.replace(/\*\*/g, '').slice(0, 50);
|
|
31
31
|
if (!topics.includes(topic))
|
|
32
32
|
topics.push(topic);
|
|
@@ -40,9 +40,9 @@ export function extractTopics(content) {
|
|
|
40
40
|
export function extractFileRefs(content) {
|
|
41
41
|
const refs = [];
|
|
42
42
|
// File paths (src/... or **/*.ts)
|
|
43
|
-
const paths = content.match(/(?:src\/|apps\/|packages\/)[\w
|
|
43
|
+
const paths = content.match(/(?:src\/|apps\/|packages\/)[\w/-]+\.\w+/g);
|
|
44
44
|
if (paths) {
|
|
45
|
-
paths.slice(0, 10).forEach(p => {
|
|
45
|
+
paths.slice(0, 10).forEach((p) => {
|
|
46
46
|
if (!refs.includes(p))
|
|
47
47
|
refs.push(p);
|
|
48
48
|
});
|
|
@@ -50,7 +50,7 @@ export function extractFileRefs(content) {
|
|
|
50
50
|
// Glob patterns
|
|
51
51
|
const globs = content.match(/\*\*\/\*\.\w+/g);
|
|
52
52
|
if (globs) {
|
|
53
|
-
globs.slice(0, 5).forEach(g => {
|
|
53
|
+
globs.slice(0, 5).forEach((g) => {
|
|
54
54
|
if (!refs.includes(g))
|
|
55
55
|
refs.push(g);
|
|
56
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../../src/memory/pageindex/chunker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,EAAE;CACnB,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,sBAAsB;IACtB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACnD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../../src/memory/pageindex/chunker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Demonstrates how to use ProjectPageIndexService in review workflows.
|
|
5
5
|
*/
|
|
6
|
-
import { ProjectPageIndexService } from './index.js';
|
|
6
|
+
import { type ProjectPageIndexService } from './index.js';
|
|
7
7
|
export declare function exampleReviewWorkflow(pageIndex: ProjectPageIndexService, projectId: string, pr: {
|
|
8
8
|
title: string;
|
|
9
9
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../src/memory/pageindex/example.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../src/memory/pageindex/example.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAGzE,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,uBAAuB,EAClC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3D,cAAc,GAAE,MAAa;;;;;GAqE9B;AAGD,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,uBAAuB,EAClC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM;;;GAUtB;AAGD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,uBAAuB,EAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,UA+BnB"}
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { PageDirection } from './index.js';
|
|
7
7
|
// Example: Using PageIndex in a review workflow
|
|
8
|
-
export async function exampleReviewWorkflow(pageIndex, projectId, pr, modelMaxTokens = 4096
|
|
9
|
-
) {
|
|
8
|
+
export async function exampleReviewWorkflow(pageIndex, projectId, pr, modelMaxTokens = 4096) {
|
|
10
9
|
// Step 1: Check if we need pagination
|
|
11
10
|
const compactionCheck = pageIndex.checkCompaction(projectId, modelMaxTokens);
|
|
12
11
|
if (compactionCheck.shouldCompact) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../src/memory/pageindex/example.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../src/memory/pageindex/example.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAgC,MAAM,YAAY,CAAC;AAEzE,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAkC,EAClC,SAAiB,EACjB,EAA2D,EAC3D,iBAAyB,IAAI;IAE7B,sCAAsC;IACtC,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE7E,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,qBAAqB,eAAe,CAAC,aAAa,kCAAkC,cAAc,QAAQ,CAC3G,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAChD,SAAS;QACT,SAAS,EAAE;YACT,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,KAAK,EAAE,EAAE,CAAC,KAAK;SAChB;QACD,QAAQ,EAAE,CAAC,EAAE,qCAAqC;KACnD,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAE/D,4CAA4C;IAC5C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,+CAA+C;QAC/C,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,oCAAoC,CAAC,CAAC;YAC/E,MAAM;QACR,CAAC;QAED,OAAO,IAAI,gBAAgB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,QAAQ,CAAC;QACnE,OAAO,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjD,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QACxB,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,gBAAgB,aAAa,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC;IAExE,8DAA8D;IAC9D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzD,IAAI,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;gBAClC,SAAS;gBACT,cAAc,EAAE,QAAQ,CAAC,OAAO;gBAChC,SAAS,EAAE,aAAa,CAAC,IAAI;aAC9B,CAAC,CAAC;YAEH,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,aAAa,CAAC,MAAM;QAC/B,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,GAAG;KACzC,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAkC,EAClC,SAAiB,EACjB,aAAqB;IAErB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEtF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,oBAAoB,CAClC,SAAkC,EAClC,SAAiB,EACjB,UAAkB;IAElB,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,yBAAyB,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC;QACnC,SAAS;QACT,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,CAAC,EAAE,uCAAuC;KACvD,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT,sBAAsB,OAAO,CAAC,aAAa,CAAC,MAAM,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM,QAAQ,CAC/F,CAAC;IACF,OAAO,CAAC,GAAG,CACT,uBAAuB,OAAO,CAAC,cAAc,WAAW,OAAO,CAAC,WAAW,UAAU,CACtF,CAAC;IAEF,0BAA0B;IAC1B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QACzC,WAAW,IAAI,gBAAgB,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzF,CAAC;IAED,WAAW,IAAI,mBAAmB,OAAO,CAAC,WAAW,CAAC,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC;IAEnG,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACrC,WAAW,IAAI,gBAAgB,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzF,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Exports all PageIndex components for navigable project memory.
|
|
5
5
|
*/
|
|
6
|
-
export * from './types.js';
|
|
7
6
|
export * from './chunker.js';
|
|
8
7
|
export * from './service.js';
|
|
9
|
-
|
|
8
|
+
export * from './types.js';
|
|
9
|
+
import { type DatabaseWithParams, ProjectPageIndexService } from './service.js';
|
|
10
10
|
export { ProjectPageIndexService };
|
|
11
11
|
/**
|
|
12
12
|
* Quick factory function
|
|
13
13
|
*/
|
|
14
|
-
export declare function createProjectPageIndex(db:
|
|
14
|
+
export declare function createProjectPageIndex(db: DatabaseWithParams): ProjectPageIndexService;
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/pageindex/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/pageindex/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,KAAK,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,kBAAkB,2BAE5D"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Exports all PageIndex components for navigable project memory.
|
|
5
5
|
*/
|
|
6
|
-
export * from './types.js';
|
|
7
6
|
export * from './chunker.js';
|
|
8
7
|
export * from './service.js';
|
|
8
|
+
export * from './types.js';
|
|
9
9
|
import { ProjectPageIndexService } from './service.js';
|
|
10
10
|
export { ProjectPageIndexService };
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/pageindex/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/pageindex/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,OAAO,EAA2B,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAsB;IAC3D,OAAO,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -4,10 +4,19 @@
|
|
|
4
4
|
* Manages paginated project memory using GHAGGA's sql.js database.
|
|
5
5
|
*/
|
|
6
6
|
import type { Database } from 'fts5-sql-bundle';
|
|
7
|
-
import type {
|
|
7
|
+
import type { CompactionCheck, PageContextRequest, PageContextResponse, PageNavigationRequest, ProjectPageChunk, RelevantPageRequest } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Extended Database interface matching GHAGGA's sqlite.ts
|
|
10
|
+
*/
|
|
11
|
+
export interface DatabaseWithParams extends Database {
|
|
12
|
+
exec(sql: string, params?: (string | number | Buffer | null)[]): Array<{
|
|
13
|
+
columns: string[];
|
|
14
|
+
values: unknown[][];
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
8
17
|
export declare class ProjectPageIndexService {
|
|
9
18
|
private db;
|
|
10
|
-
constructor(db:
|
|
19
|
+
constructor(db: DatabaseWithParams);
|
|
11
20
|
private initSchema;
|
|
12
21
|
/**
|
|
13
22
|
* Create page index for project memory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/memory/pageindex/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/memory/pageindex/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,IAAI,CACF,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAC3C,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;CACtD;AAID,qBAAa,uBAAuB;IAClC,OAAO,CAAC,EAAE,CAAqB;gBAEnB,EAAE,EAAE,kBAAkB;IAKlC,OAAO,CAAC,UAAU;IA4BlB;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAwD7C;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAapE;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB;IAiC5D;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,gBAAgB,GAAG,IAAI;IAmBjE;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,EAAE;IA4CnE;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,eAAe;IAO3E;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAoBrE;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,gBAAgB;CAMzB"}
|
|
@@ -58,7 +58,7 @@ export class ProjectPageIndexService {
|
|
|
58
58
|
`;
|
|
59
59
|
const pageIds = [];
|
|
60
60
|
for (const chunk of chunks) {
|
|
61
|
-
|
|
61
|
+
this.db.exec(insertSql, [
|
|
62
62
|
chunk.projectId,
|
|
63
63
|
chunk.pageNum,
|
|
64
64
|
chunk.totalPages,
|
|
@@ -105,8 +105,8 @@ export class ProjectPageIndexService {
|
|
|
105
105
|
WHERE project_id = ? AND page_num BETWEEN ? AND ?
|
|
106
106
|
ORDER BY page_num`, [projectId, startPage, endPage]);
|
|
107
107
|
const pages = result[0] ? this.rowsToPageChunks(result[0]) : [];
|
|
108
|
-
const previousPages = pages.filter(p => p.pageNum < pageNum);
|
|
109
|
-
const nextPages = pages.filter(p => p.pageNum > pageNum);
|
|
108
|
+
const previousPages = pages.filter((p) => p.pageNum < pageNum);
|
|
109
|
+
const nextPages = pages.filter((p) => p.pageNum > pageNum);
|
|
110
110
|
const totalTokens = pages.reduce((sum, p) => sum + p.tokenCount, 0);
|
|
111
111
|
return {
|
|
112
112
|
currentPage: current,
|
|
@@ -128,9 +128,10 @@ export class ProjectPageIndexService {
|
|
|
128
128
|
return this.getPage(projectId, currentPageNum - 1);
|
|
129
129
|
case PageDirection.FIRST:
|
|
130
130
|
return this.getPage(projectId, 1);
|
|
131
|
-
case PageDirection.LAST:
|
|
131
|
+
case PageDirection.LAST: {
|
|
132
132
|
const stats = this.getProjectStats(projectId);
|
|
133
133
|
return stats.pages > 0 ? this.getPage(projectId, stats.pages) : null;
|
|
134
|
+
}
|
|
134
135
|
default:
|
|
135
136
|
return null;
|
|
136
137
|
}
|
|
@@ -144,30 +145,30 @@ export class ProjectPageIndexService {
|
|
|
144
145
|
const keywords = [
|
|
145
146
|
...prContext.title.toLowerCase().split(/\s+/),
|
|
146
147
|
...prContext.description.toLowerCase().split(/\s+/),
|
|
147
|
-
...prContext.files.map(f => f.toLowerCase()),
|
|
148
|
-
].filter(k => k.length > 2);
|
|
148
|
+
...prContext.files.map((f) => f.toLowerCase()),
|
|
149
|
+
].filter((k) => k.length > 2);
|
|
149
150
|
// Get all pages for project
|
|
150
151
|
const result = this.db.exec(`SELECT * FROM project_page_index WHERE project_id = ? ORDER BY page_num`, [projectId]);
|
|
151
152
|
if (!result[0])
|
|
152
153
|
return [];
|
|
153
154
|
const pages = this.rowsToPageChunks(result[0]);
|
|
154
155
|
// Score pages by keyword matches
|
|
155
|
-
const scored = pages.map(page => {
|
|
156
|
-
const content =
|
|
156
|
+
const scored = pages.map((page) => {
|
|
157
|
+
const content = `${page.content} ${page.topics.join(' ')}`.toLowerCase();
|
|
157
158
|
const score = keywords.reduce((sum, kw) => {
|
|
158
159
|
const matches = (content.match(new RegExp(kw, 'g')) || []).length;
|
|
159
160
|
return sum + matches;
|
|
160
161
|
}, 0);
|
|
161
162
|
// Bonus for file ref matches
|
|
162
|
-
const fileMatches = page.fileRefs.filter(ref => prContext.files.some(f => f.includes(ref) || ref.includes(f))).length;
|
|
163
|
+
const fileMatches = page.fileRefs.filter((ref) => prContext.files.some((f) => f.includes(ref) || ref.includes(f))).length;
|
|
163
164
|
return { page, score: score + fileMatches * 3 };
|
|
164
165
|
});
|
|
165
166
|
// Sort by score and return top N
|
|
166
167
|
return scored
|
|
167
|
-
.filter(s => s.score > 0)
|
|
168
|
+
.filter((s) => s.score > 0)
|
|
168
169
|
.sort((a, b) => b.score - a.score)
|
|
169
170
|
.slice(0, maxPages)
|
|
170
|
-
.map(s => s.page);
|
|
171
|
+
.map((s) => s.page);
|
|
171
172
|
}
|
|
172
173
|
/**
|
|
173
174
|
* Check if compaction is needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/memory/pageindex/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/memory/pageindex/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../src/memory/persist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAkC,YAAY,EAAE,MAAM,aAAa,CAAC;AAwC/F;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../src/memory/persist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAkC,YAAY,EAAE,MAAM,aAAa,CAAC;AAwC/F;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|
package/dist/memory/persist.js
CHANGED
|
@@ -64,12 +64,17 @@ export async function persistReviewObservations(storage, project, prNumber, resu
|
|
|
64
64
|
const sanitizedSuggestion = finding.suggestion
|
|
65
65
|
? stripPrivateData(finding.suggestion)
|
|
66
66
|
: undefined;
|
|
67
|
+
// finding.file is attacker-influenceable (it ultimately derives from the
|
|
68
|
+
// PR diff) and is persisted verbatim. Strip secrets from it the same way
|
|
69
|
+
// message/suggestion are stripped, so a credential smuggled into a path
|
|
70
|
+
// (e.g. "src/sk-ant-.../x.ts") is redacted rather than stored.
|
|
71
|
+
const sanitizedFile = stripPrivateData(finding.file);
|
|
67
72
|
const observationTitle = `${finding.category}: ${sanitizedMessage.slice(0, 80)}`;
|
|
68
73
|
const taxonomyTag = classifyObservation(sanitizedMessage, observationTitle);
|
|
69
74
|
const categoryLabel = taxonomyTag.category.toUpperCase().replace('_', ' ');
|
|
70
75
|
const content = [
|
|
71
76
|
`[${categoryLabel}] [${finding.severity.toUpperCase()}] ${finding.category}`,
|
|
72
|
-
`File: ${
|
|
77
|
+
`File: ${sanitizedFile}${finding.line ? `:${finding.line}` : ''}`,
|
|
73
78
|
`Issue: ${sanitizedMessage}`,
|
|
74
79
|
sanitizedSuggestion ? `Fix: ${sanitizedSuggestion}` : '',
|
|
75
80
|
]
|
|
@@ -81,7 +86,7 @@ export async function persistReviewObservations(storage, project, prNumber, resu
|
|
|
81
86
|
type: findingToObservationType(finding),
|
|
82
87
|
title: `[${categoryLabel}] ${observationTitle}`,
|
|
83
88
|
content,
|
|
84
|
-
filePaths: [
|
|
89
|
+
filePaths: [sanitizedFile],
|
|
85
90
|
severity: finding.severity,
|
|
86
91
|
});
|
|
87
92
|
}
|
|
@@ -93,7 +98,9 @@ export async function persistReviewObservations(storage, project, prNumber, resu
|
|
|
93
98
|
title: `PR #${prNumber} review: ${result.status}`,
|
|
94
99
|
content: stripPrivateData(result.summary),
|
|
95
100
|
topicKey: `pr-${prNumber}-review`,
|
|
96
|
-
|
|
101
|
+
// Sanitize file paths here too — a secret smuggled into a path must not
|
|
102
|
+
// survive in the summary observation's filePaths array.
|
|
103
|
+
filePaths: significantFindings.map((f) => stripPrivateData(f.file)),
|
|
97
104
|
});
|
|
98
105
|
// End the session with a summary
|
|
99
106
|
await storage.endSession(session.id, `Review of PR #${prNumber}: ${result.status} with ${significantFindings.length} significant findings.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../src/memory/persist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,mEAAmE;AAEnE;;;GAGG;AACH,SAAS,wBAAwB,CAAC,OAAsB;IACtD,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO,CAAC;QACb,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC;QACnB,KAAK,gBAAgB;YACnB,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,OAAsB;IAClD,OAAO,CACL,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAChG,CAAC;AACJ,CAAC;AAED,mEAAmE;AAEnE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAsB,EACtB,OAAe,EACf,QAAgB,EAChB,MAAoB;IAEpB,IAAI,CAAC;QACH,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACzE,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE7C,0CAA0C;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnE,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU;gBAC5C,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;gBACtC,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,gBAAgB,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACjF,MAAM,WAAW,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;YAC5E,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG;gBACd,IAAI,aAAa,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC5E,SAAS,
|
|
1
|
+
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../src/memory/persist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/memory/privacy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/memory/privacy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuHH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD"}
|
package/dist/memory/privacy.js
CHANGED
|
@@ -17,9 +17,11 @@ const SENSITIVE_PATTERNS = [
|
|
|
17
17
|
{ pattern: /sk-[a-zA-Z0-9_-]{20,}/g, replacement: '[REDACTED_OPENAI_KEY]' },
|
|
18
18
|
// AWS Access Key IDs
|
|
19
19
|
{ pattern: /AKIA[0-9A-Z]{16}/g, replacement: '[REDACTED_AWS_KEY]' },
|
|
20
|
-
// AWS Secret Access Keys (typically 40 chars, base64-ish)
|
|
20
|
+
// AWS Secret Access Keys (typically 40 chars, base64-ish).
|
|
21
|
+
// Supports `=` and `:` separators (env files vs YAML) and an optional
|
|
22
|
+
// opening quote — the previous lookbehind broke on quoted values.
|
|
21
23
|
{
|
|
22
|
-
pattern: /(?<=AWS_SECRET_ACCESS_KEY\s
|
|
24
|
+
pattern: /(?<=AWS_SECRET_ACCESS_KEY\s*[:=]\s*['"]?)[A-Za-z0-9/+=]{40}/g,
|
|
23
25
|
replacement: '[REDACTED_AWS_SECRET]',
|
|
24
26
|
},
|
|
25
27
|
// GitHub tokens (classic and fine-grained)
|
|
@@ -28,10 +30,25 @@ const SENSITIVE_PATTERNS = [
|
|
|
28
30
|
{ pattern: /ghs_[a-zA-Z0-9]{36,}/g, replacement: '[REDACTED_GITHUB_APP]' },
|
|
29
31
|
{ pattern: /ghr_[a-zA-Z0-9]{36,}/g, replacement: '[REDACTED_GITHUB_REFRESH]' },
|
|
30
32
|
{ pattern: /github_pat_[a-zA-Z0-9_]{22,}/g, replacement: '[REDACTED_GITHUB_FINE_PAT]' },
|
|
33
|
+
// GitLab personal access tokens
|
|
34
|
+
{ pattern: /glpat-[A-Za-z0-9_-]{20,}/g, replacement: '[REDACTED_GITLAB_PAT]' },
|
|
35
|
+
// npm tokens
|
|
36
|
+
{ pattern: /npm_[A-Za-z0-9]{36,}/g, replacement: '[REDACTED_NPM_TOKEN]' },
|
|
37
|
+
// Stripe secret/restricted keys (sk_live_, sk_test_, rk_live_, rk_test_)
|
|
38
|
+
{ pattern: /(?:sk|rk)_(?:live|test)_[A-Za-z0-9]{16,}/g, replacement: '[REDACTED_STRIPE_KEY]' },
|
|
39
|
+
// Stripe webhook signing secrets
|
|
40
|
+
{ pattern: /whsec_[A-Za-z0-9]{16,}/g, replacement: '[REDACTED_STRIPE_WEBHOOK_SECRET]' },
|
|
41
|
+
// Hugging Face tokens
|
|
42
|
+
{ pattern: /hf_[A-Za-z0-9]{30,}/g, replacement: '[REDACTED_HF_TOKEN]' },
|
|
43
|
+
// SendGrid API keys (SG.<id>.<secret>)
|
|
44
|
+
{
|
|
45
|
+
pattern: /SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,
|
|
46
|
+
replacement: '[REDACTED_SENDGRID_KEY]',
|
|
47
|
+
},
|
|
31
48
|
// Google API keys
|
|
32
49
|
{ pattern: /AIza[0-9A-Za-z_-]{35}/g, replacement: '[REDACTED_GOOGLE_KEY]' },
|
|
33
|
-
// Slack tokens
|
|
34
|
-
{ pattern: /xox[
|
|
50
|
+
// Slack tokens (bot/user/app-level: xoxb-, xoxp-, xoxa-, xapp-, etc.)
|
|
51
|
+
{ pattern: /(?:xox[abpors]|xapp)-[0-9a-zA-Z-]{10,}/g, replacement: '[REDACTED_SLACK_TOKEN]' },
|
|
35
52
|
// Generic Bearer tokens in headers
|
|
36
53
|
{ pattern: /Bearer\s+[a-zA-Z0-9._-]{20,}/gi, replacement: 'Bearer [REDACTED_TOKEN]' },
|
|
37
54
|
// Generic "password" / "secret" / "token" assignments
|
|
@@ -46,9 +63,17 @@ const SENSITIVE_PATTERNS = [
|
|
|
46
63
|
pattern: /(?<=(SECRET|KEY|TOKEN|CREDENTIAL|PASSWORD)\s*[:=]\s*['"]?)[A-Za-z0-9+/]{64,}={0,2}(?=['"]?)/gi,
|
|
47
64
|
replacement: '[REDACTED_BASE64]',
|
|
48
65
|
},
|
|
49
|
-
// Private keys (PEM format)
|
|
66
|
+
// Private keys (PEM format). Broad label match covers RSA/EC/DSA as well as
|
|
67
|
+
// OPENSSH, PKCS8 ("PRIVATE KEY"), ENCRYPTED, and PGP ("PRIVATE KEY BLOCK")
|
|
68
|
+
// variants — the previous allowlist (RSA|EC|DSA) let modern formats through.
|
|
69
|
+
//
|
|
70
|
+
// The between-markers span is BOUNDED to {0,8192} (was an unbounded
|
|
71
|
+
// `[\s\S]*?`). A real PEM body is a few KB at most; an UNTERMINATED header
|
|
72
|
+
// in a large diff would otherwise make the lazy match scan all the way to
|
|
73
|
+
// EOF before failing. The bound makes an unterminated header fail fast while
|
|
74
|
+
// still covering every legitimate key. (4096-bit RSA PEM ≈ 3.2KB.)
|
|
50
75
|
{
|
|
51
|
-
pattern: /-----BEGIN (?:
|
|
76
|
+
pattern: /-----BEGIN [A-Z0-9 ]*PRIVATE KEY(?: BLOCK)?-----[\s\S]{0,8192}?-----END [A-Z0-9 ]*PRIVATE KEY(?: BLOCK)?-----/g,
|
|
52
77
|
replacement: '[REDACTED_PRIVATE_KEY]',
|
|
53
78
|
},
|
|
54
79
|
// JWT tokens (three base64url segments separated by dots)
|
|
@@ -56,6 +81,20 @@ const SENSITIVE_PATTERNS = [
|
|
|
56
81
|
pattern: /eyJ[a-zA-Z0-9_-]{10,}\.eyJ[a-zA-Z0-9_-]{10,}\.[a-zA-Z0-9_-]{10,}/g,
|
|
57
82
|
replacement: '[REDACTED_JWT]',
|
|
58
83
|
},
|
|
84
|
+
// Unquoted `.env`-style assignments: SECRET=..., DB_PASSWORD: ..., MY_API_KEY=...
|
|
85
|
+
// Key part is case-insensitive; only the value is redacted. The 8-char floor
|
|
86
|
+
// and the (?!\[REDACTED) guard (don't re-redact labels already inserted by
|
|
87
|
+
// earlier, more specific patterns) keep false positives down.
|
|
88
|
+
{
|
|
89
|
+
pattern: /(?<=(?:SECRET|TOKEN|PASSWORD|API_?KEY|CREDENTIAL)[A-Z0-9_]*\s*[:=]\s*['"]?)(?!\[REDACTED)[^\s'"]{8,}/gi,
|
|
90
|
+
replacement: '[REDACTED]',
|
|
91
|
+
},
|
|
92
|
+
// Passwords embedded in URL userinfo: https://user:pass@host/...
|
|
93
|
+
// Redacts only the password portion, preserving scheme, user, and host.
|
|
94
|
+
{
|
|
95
|
+
pattern: /(?<=:\/\/[^:/\s]+:)[^@\s]+(?=@)/g,
|
|
96
|
+
replacement: '[REDACTED_URL_PASSWORD]',
|
|
97
|
+
},
|
|
59
98
|
];
|
|
60
99
|
// ─── Main Function ──────────────────────────────────────────────
|
|
61
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../src/memory/privacy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,kBAAkB,GAAoD;IAC1E,qBAAqB;IACrB,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAElF,+EAA+E;IAC/E,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAE3E,qBAAqB;IACrB,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAEnE,
|
|
1
|
+
{"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../src/memory/privacy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,kBAAkB,GAAoD;IAC1E,qBAAqB;IACrB,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAElF,+EAA+E;IAC/E,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAE3E,qBAAqB;IACrB,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAEnE,2DAA2D;IAC3D,sEAAsE;IACtE,kEAAkE;IAClE;QACE,OAAO,EAAE,8DAA8D;QACvE,WAAW,EAAE,uBAAuB;KACrC;IAED,2CAA2C;IAC3C,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC1E,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC5E,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC1E,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC9E,EAAE,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAEvF,gCAAgC;IAChC,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAE9E,aAAa;IACb,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAEzE,yEAAyE;IACzE,EAAE,OAAO,EAAE,2CAA2C,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAE9F,iCAAiC;IACjC,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,kCAAkC,EAAE;IAEvF,sBAAsB;IACtB,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,qBAAqB,EAAE;IAEvE,uCAAuC;IACvC;QACE,OAAO,EAAE,6CAA6C;QACtD,WAAW,EAAE,yBAAyB;KACvC;IAED,kBAAkB;IAClB,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAE3E,sEAAsE;IACtE,EAAE,OAAO,EAAE,yCAAyC,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAE7F,mCAAmC;IACnC,EAAE,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAErF,sDAAsD;IACtD,yEAAyE;IACzE;QACE,OAAO,EAAE,sFAAsF;QAC/F,WAAW,EAAE,YAAY;KAC1B;IAED,0EAA0E;IAC1E,mEAAmE;IACnE;QACE,OAAO,EACL,+FAA+F;QACjG,WAAW,EAAE,mBAAmB;KACjC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,EAAE;IACF,oEAAoE;IACpE,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,mEAAmE;IACnE;QACE,OAAO,EACL,gHAAgH;QAClH,WAAW,EAAE,wBAAwB;KACtC;IAED,0DAA0D;IAC1D;QACE,OAAO,EAAE,mEAAmE;QAC5E,WAAW,EAAE,gBAAgB;KAC9B;IAED,kFAAkF;IAClF,6EAA6E;IAC7E,2EAA2E;IAC3E,8DAA8D;IAC9D;QACE,OAAO,EACL,wGAAwG;QAC1G,WAAW,EAAE,YAAY;KAC1B;IAED,iEAAiE;IACjE,wEAAwE;IACxE;QACE,OAAO,EAAE,kCAAkC;QAC3C,WAAW,EAAE,yBAAyB;KACvC;CACF,CAAC;AAEF,mEAAmE;AAEnE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,kBAAkB,EAAE,CAAC;QAC1D,oEAAoE;QACpE,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/memory/sqlite.d.ts
CHANGED
|
@@ -5,21 +5,10 @@
|
|
|
5
5
|
* database with manual file persistence via close(). Designed for single-process
|
|
6
6
|
* environments (CLI, GitHub Action).
|
|
7
7
|
*/
|
|
8
|
-
import { type Database } from 'fts5-sql-bundle';
|
|
9
8
|
import { type EmbeddingProvider } from '../embed.js';
|
|
10
9
|
import type { AuthorTrustScore, ListObservationsOptions, MemoryObservationDetail, MemoryObservationRow, MemoryStats, MemoryStorage, NegativeExample } from '../types.js';
|
|
11
10
|
import { type DecayConfig } from '../types.js';
|
|
12
|
-
import { ProjectPageIndexService } from './pageindex/service.js';
|
|
13
|
-
/**
|
|
14
|
-
* Extended Database interface — fts5-sql-bundle types omit the params overload
|
|
15
|
-
* for exec(), but the runtime (sql.js core) supports it.
|
|
16
|
-
*/
|
|
17
|
-
interface DatabaseWithParams extends Database {
|
|
18
|
-
exec(sql: string, params?: (string | number | Buffer | null)[]): Array<{
|
|
19
|
-
columns: string[];
|
|
20
|
-
values: unknown[][];
|
|
21
|
-
}>;
|
|
22
|
-
}
|
|
11
|
+
import { type DatabaseWithParams, ProjectPageIndexService } from './pageindex/service.js';
|
|
23
12
|
export interface SqliteMemoryStorageOptions {
|
|
24
13
|
/** Dedup window in minutes. Observations with the same content hash within this window are deduplicated. Defaults to 15. */
|
|
25
14
|
dedupWindowMinutes?: number;
|
|
@@ -138,5 +127,4 @@ export declare class SqliteMemoryStorage implements MemoryStorage {
|
|
|
138
127
|
deleteNegativeExample(findingHash: string): boolean;
|
|
139
128
|
close(): Promise<void>;
|
|
140
129
|
}
|
|
141
|
-
export {};
|
|
142
130
|
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/memory/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/memory/sqlite.ts"],"names":[],"mappings":"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"}
|