kratos-memory 1.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/AGENTS.md +25 -0
- package/LICENSE +21 -0
- package/bin/kratos-cli +7 -0
- package/dist/cli/capture-handler.d.ts +13 -0
- package/dist/cli/capture-handler.d.ts.map +1 -0
- package/dist/cli/capture-handler.js +112 -0
- package/dist/cli/capture-handler.js.map +1 -0
- package/dist/cli/commands/ask.d.ts +5 -0
- package/dist/cli/commands/ask.d.ts.map +1 -0
- package/dist/cli/commands/ask.js +64 -0
- package/dist/cli/commands/ask.js.map +1 -0
- package/dist/cli/commands/capture.d.ts +5 -0
- package/dist/cli/commands/capture.d.ts.map +1 -0
- package/dist/cli/commands/capture.js +31 -0
- package/dist/cli/commands/capture.js.map +1 -0
- package/dist/cli/commands/forget.d.ts +3 -0
- package/dist/cli/commands/forget.d.ts.map +1 -0
- package/dist/cli/commands/forget.js +12 -0
- package/dist/cli/commands/forget.js.map +1 -0
- package/dist/cli/commands/get.d.ts +3 -0
- package/dist/cli/commands/get.d.ts.map +1 -0
- package/dist/cli/commands/get.js +28 -0
- package/dist/cli/commands/get.js.map +1 -0
- package/dist/cli/commands/hooks.d.ts +2 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +136 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +5 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +56 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/recent.d.ts +6 -0
- package/dist/cli/commands/recent.d.ts.map +1 -0
- package/dist/cli/commands/recent.js +21 -0
- package/dist/cli/commands/recent.js.map +1 -0
- package/dist/cli/commands/save.d.ts +8 -0
- package/dist/cli/commands/save.d.ts.map +1 -0
- package/dist/cli/commands/save.js +31 -0
- package/dist/cli/commands/save.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +5 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +28 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/search.d.ts +8 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +45 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +89 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/switch.d.ts +3 -0
- package/dist/cli/commands/switch.d.ts.map +1 -0
- package/dist/cli/commands/switch.js +18 -0
- package/dist/cli/commands/switch.js.map +1 -0
- package/dist/cli/core.d.ts +15 -0
- package/dist/cli/core.d.ts.map +1 -0
- package/dist/cli/core.js +18 -0
- package/dist/cli/core.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +157 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output.d.ts +22 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +74 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/compression/factory.d.ts +6 -0
- package/dist/compression/factory.d.ts.map +1 -0
- package/dist/compression/factory.js +8 -0
- package/dist/compression/factory.js.map +1 -0
- package/dist/compression/index.d.ts +10 -0
- package/dist/compression/index.d.ts.map +1 -0
- package/dist/compression/index.js +2 -0
- package/dist/compression/index.js.map +1 -0
- package/dist/compression/rule-compressor.d.ts +9 -0
- package/dist/compression/rule-compressor.d.ts.map +1 -0
- package/dist/compression/rule-compressor.js +43 -0
- package/dist/compression/rule-compressor.js.map +1 -0
- package/dist/memory-server/concept-store-enhanced.d.ts +88 -0
- package/dist/memory-server/concept-store-enhanced.d.ts.map +1 -0
- package/dist/memory-server/concept-store-enhanced.js +392 -0
- package/dist/memory-server/concept-store-enhanced.js.map +1 -0
- package/dist/memory-server/concept-store.d.ts +58 -0
- package/dist/memory-server/concept-store.d.ts.map +1 -0
- package/dist/memory-server/concept-store.js +329 -0
- package/dist/memory-server/concept-store.js.map +1 -0
- package/dist/memory-server/context-broker.d.ts +63 -0
- package/dist/memory-server/context-broker.d.ts.map +1 -0
- package/dist/memory-server/context-broker.js +340 -0
- package/dist/memory-server/context-broker.js.map +1 -0
- package/dist/memory-server/database.d.ts +108 -0
- package/dist/memory-server/database.d.ts.map +1 -0
- package/dist/memory-server/database.js +690 -0
- package/dist/memory-server/database.js.map +1 -0
- package/dist/project-manager.d.ts +77 -0
- package/dist/project-manager.d.ts.map +1 -0
- package/dist/project-manager.js +226 -0
- package/dist/project-manager.js.map +1 -0
- package/dist/security/data-retention.d.ts +104 -0
- package/dist/security/data-retention.d.ts.map +1 -0
- package/dist/security/data-retention.js +444 -0
- package/dist/security/data-retention.js.map +1 -0
- package/dist/security/encryption.d.ts +48 -0
- package/dist/security/encryption.d.ts.map +1 -0
- package/dist/security/encryption.js +131 -0
- package/dist/security/encryption.js.map +1 -0
- package/dist/security/pii-detector.d.ts +61 -0
- package/dist/security/pii-detector.d.ts.map +1 -0
- package/dist/security/pii-detector.js +220 -0
- package/dist/security/pii-detector.js.map +1 -0
- package/dist/types/index.d.ts +151 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +10 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Output } from '../output.js';
|
|
2
|
+
export async function recentCommand(ctx, opts) {
|
|
3
|
+
const k = opts.limit ? parseInt(opts.limit, 10) : 10;
|
|
4
|
+
const memories = ctx.memoryDb.getRecent({
|
|
5
|
+
k,
|
|
6
|
+
path_prefix: opts.pathPrefix,
|
|
7
|
+
});
|
|
8
|
+
Output.header(`Recent memories (${ctx.project.name})`);
|
|
9
|
+
Output.dim(`Showing ${memories.length} of last ${k} requested`);
|
|
10
|
+
for (const m of memories) {
|
|
11
|
+
Output.memoryCard({
|
|
12
|
+
id: m.id,
|
|
13
|
+
summary: m.summary,
|
|
14
|
+
tags: m.tags,
|
|
15
|
+
paths: m.paths,
|
|
16
|
+
importance: m.importance,
|
|
17
|
+
created_at: m.created_at,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=recent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recent.js","sourceRoot":"","sources":["../../../src/cli/commands/recent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,IAGpD;IACC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,WAAW,EAAE,IAAI,CAAC,UAAU;KAC7B,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;IAEhE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,UAAU,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/save.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Output } from '../output.js';
|
|
2
|
+
export async function saveCommand(ctx, text, opts) {
|
|
3
|
+
const tags = opts.tags ? opts.tags.split(',').map(t => t.trim()) : [];
|
|
4
|
+
const paths = opts.paths ? opts.paths.split(',').map(p => p.trim()) : [];
|
|
5
|
+
const importance = opts.importance ? parseInt(opts.importance, 10) : 3;
|
|
6
|
+
let summary = text.substring(0, 100);
|
|
7
|
+
let fullText = text;
|
|
8
|
+
// If compress flag is set, use rule-based compression (pure logic, no AI)
|
|
9
|
+
if (opts.compress) {
|
|
10
|
+
try {
|
|
11
|
+
const { createCompressor } = await import('../../compression/factory.js');
|
|
12
|
+
const compressor = createCompressor();
|
|
13
|
+
const result = await compressor.compress(text);
|
|
14
|
+
summary = result.summary;
|
|
15
|
+
Output.dim(`Compressed: ${result.original_length} → ${result.compressed_length} chars (${Math.round(result.compression_ratio * 100)}% reduction)`);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
Output.warn('Compression failed, using raw text');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const result = ctx.memoryDb.save({
|
|
22
|
+
summary,
|
|
23
|
+
text: fullText,
|
|
24
|
+
tags,
|
|
25
|
+
paths,
|
|
26
|
+
importance,
|
|
27
|
+
});
|
|
28
|
+
Output.success(`Memory saved: ${result.id}`);
|
|
29
|
+
Output.dim(`Project: ${ctx.project.name} | Tags: ${tags.join(', ') || 'none'} | Importance: ${importance}`);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=save.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/cli/commands/save.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAe,EAAE,IAAY,EAAE,IAKhE;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,0EAA0E;IAC1E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;YAC1E,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,eAAe,MAAM,MAAM,CAAC,iBAAiB,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;QACrJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,OAAO;QACP,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,KAAK;QACL,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,iBAAkB,MAAc,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,kBAAkB,UAAU,EAAE,CAAC,CAAC;AAC9G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Output } from '../output.js';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export async function scanCommand(ctx, text, opts) {
|
|
4
|
+
const result = ctx.piiDetector.detect(text);
|
|
5
|
+
Output.header('Security Scan Results');
|
|
6
|
+
if (!result.hasPII && !result.hasSecrets) {
|
|
7
|
+
Output.success('No PII or secrets detected');
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (result.hasPII) {
|
|
11
|
+
Output.warn(chalk.yellow('PII detected!'));
|
|
12
|
+
}
|
|
13
|
+
if (result.hasSecrets) {
|
|
14
|
+
Output.error(chalk.red('Secrets detected!'));
|
|
15
|
+
}
|
|
16
|
+
console.log('');
|
|
17
|
+
for (const finding of result.findings) {
|
|
18
|
+
const icon = finding.type === 'secret' ? chalk.red('●') : chalk.yellow('●');
|
|
19
|
+
console.log(` ${icon} ${chalk.bold(finding.pattern)} (${finding.type}, confidence: ${finding.confidence})`);
|
|
20
|
+
console.log(` ${chalk.dim(finding.redacted)}`);
|
|
21
|
+
}
|
|
22
|
+
if (opts.redact) {
|
|
23
|
+
console.log('');
|
|
24
|
+
Output.header('Redacted Text');
|
|
25
|
+
console.log(result.redactedText);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAe,EAAE,IAAY,EAAE,IAEhE;IACC,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Output } from '../output.js';
|
|
2
|
+
export async function searchCommand(ctx, query, opts) {
|
|
3
|
+
const k = opts.limit ? parseInt(opts.limit, 10) : 10;
|
|
4
|
+
const tags = opts.tags ? opts.tags.split(',').map(t => t.trim()) : undefined;
|
|
5
|
+
if (opts.debug) {
|
|
6
|
+
const enhanced = ctx.memoryDb.searchWithDebug({
|
|
7
|
+
q: query,
|
|
8
|
+
k,
|
|
9
|
+
tags,
|
|
10
|
+
require_path_match: opts.pathMatch,
|
|
11
|
+
});
|
|
12
|
+
Output.header(`Search results for "${query}"`);
|
|
13
|
+
Output.dim(`Found ${enhanced.results.length} results in ${enhanced.debug_info.search_time_ms}ms`);
|
|
14
|
+
if (enhanced.debug_info.fallback_used) {
|
|
15
|
+
Output.warn(`Fallback used: ${enhanced.debug_info.fallback_used}`);
|
|
16
|
+
}
|
|
17
|
+
renderResults(enhanced.results);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
const results = ctx.memoryDb.search({
|
|
21
|
+
q: query,
|
|
22
|
+
k,
|
|
23
|
+
tags,
|
|
24
|
+
require_path_match: opts.pathMatch,
|
|
25
|
+
});
|
|
26
|
+
Output.header(`Search results for "${query}"`);
|
|
27
|
+
Output.dim(`Found ${results.length} results`);
|
|
28
|
+
renderResults(results);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function renderResults(results) {
|
|
32
|
+
for (const r of results) {
|
|
33
|
+
Output.memoryCard({
|
|
34
|
+
id: r.memory.id,
|
|
35
|
+
summary: r.memory.summary,
|
|
36
|
+
tags: r.memory.tags,
|
|
37
|
+
paths: r.memory.paths,
|
|
38
|
+
importance: r.memory.importance,
|
|
39
|
+
created_at: r.memory.created_at,
|
|
40
|
+
score: r.score,
|
|
41
|
+
snippet: r.snippet,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,KAAa,EAAE,IAKnE;IACC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC5C,CAAC,EAAE,KAAK;YACR,CAAC;YACD,IAAI;YACJ,kBAAkB,EAAE,IAAI,CAAC,SAAS;SACnC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,OAAO,CAAC,MAAM,eAAe,QAAQ,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,CAAC;QAClG,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClC,CAAC,EAAE,KAAK;YACR,CAAC;YACD,IAAI;YACJ,kBAAkB,EAAE,IAAI,CAAC,SAAS;SACnC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAE9C,aAAa,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAuB;IAC5C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,UAAU,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;YACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;YAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;YAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGlE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export async function statusCommand(ctx) {
|
|
3
|
+
// Mini banner
|
|
4
|
+
console.log('');
|
|
5
|
+
console.log(chalk.bold.red(' KRATOS') + chalk.dim(' — Memory System'));
|
|
6
|
+
console.log(chalk.dim(' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
|
|
7
|
+
// Active project box
|
|
8
|
+
console.log('');
|
|
9
|
+
console.log(chalk.bold.white(' ACTIVE PROJECT'));
|
|
10
|
+
console.log(` ${chalk.green('●')} ${chalk.bold(ctx.project.name)}`);
|
|
11
|
+
console.log(` ${chalk.dim('Root:')} ${ctx.project.root}`);
|
|
12
|
+
console.log(` ${chalk.dim('ID:')} ${ctx.project.id}`);
|
|
13
|
+
console.log(` ${chalk.dim('Data:')} ~/.kratos/projects/${ctx.project.id}/`);
|
|
14
|
+
// Memory stats
|
|
15
|
+
try {
|
|
16
|
+
const recent = ctx.memoryDb.getRecent({ k: 10000 });
|
|
17
|
+
const lastCreated = recent.length > 0
|
|
18
|
+
? new Date(recent[0].created_at).toLocaleString()
|
|
19
|
+
: 'none';
|
|
20
|
+
// Importance distribution
|
|
21
|
+
const importanceCounts = [0, 0, 0, 0, 0];
|
|
22
|
+
for (const m of recent) {
|
|
23
|
+
importanceCounts[(m.importance || 3) - 1]++;
|
|
24
|
+
}
|
|
25
|
+
console.log('');
|
|
26
|
+
console.log(chalk.bold.white(' MEMORY STATS'));
|
|
27
|
+
console.log(` ${chalk.dim('Total:')} ${chalk.bold.cyan(String(recent.length))}`);
|
|
28
|
+
console.log(` ${chalk.dim('Last saved:')} ${lastCreated}`);
|
|
29
|
+
// Importance bar
|
|
30
|
+
const maxBar = 20;
|
|
31
|
+
const maxCount = Math.max(...importanceCounts, 1);
|
|
32
|
+
console.log(` ${chalk.dim('Importance:')}`);
|
|
33
|
+
for (let i = 4; i >= 0; i--) {
|
|
34
|
+
const barLen = Math.round((importanceCounts[i] / maxCount) * maxBar);
|
|
35
|
+
const bar = '█'.repeat(barLen) + chalk.dim('░'.repeat(maxBar - barLen));
|
|
36
|
+
const colors = [chalk.dim, chalk.blue, chalk.green, chalk.yellow, chalk.red];
|
|
37
|
+
console.log(` ${chalk.dim(`${i + 1}`)} ${colors[i](bar)} ${importanceCounts[i]}`);
|
|
38
|
+
}
|
|
39
|
+
// Tags summary
|
|
40
|
+
const tagCounts = new Map();
|
|
41
|
+
for (const m of recent) {
|
|
42
|
+
for (const tag of m.tags) {
|
|
43
|
+
tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const topTags = [...tagCounts.entries()]
|
|
47
|
+
.sort((a, b) => b[1] - a[1])
|
|
48
|
+
.slice(0, 8);
|
|
49
|
+
if (topTags.length > 0) {
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log(chalk.bold.white(' TOP TAGS'));
|
|
52
|
+
console.log(' ' + topTags.map(([tag, count]) => chalk.cyan(`#${tag}`) + chalk.dim(`(${count})`)).join(' '));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
console.log('');
|
|
57
|
+
console.log(chalk.bold.white(' MEMORY STATS'));
|
|
58
|
+
console.log(` ${chalk.dim('Total:')} 0 (database not initialized)`);
|
|
59
|
+
}
|
|
60
|
+
// Features status
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log(chalk.bold.white(' FEATURES'));
|
|
63
|
+
console.log(` ${chalk.green('●')} FTS5 Full-Text Search`);
|
|
64
|
+
console.log(` ${chalk.green('●')} AES-256-GCM Encryption`);
|
|
65
|
+
console.log(` ${chalk.green('●')} PII/Secret Detection`);
|
|
66
|
+
console.log(` ${chalk.green('●')} Smart Compression`);
|
|
67
|
+
console.log(` ${chalk.green('●')} Auto-Capture Hooks`);
|
|
68
|
+
// All known projects
|
|
69
|
+
const projects = ctx.projectManager.listProjects();
|
|
70
|
+
if (projects.length > 1) {
|
|
71
|
+
console.log('');
|
|
72
|
+
console.log(chalk.bold.white(` ALL PROJECTS ${chalk.dim(`(${projects.length})`)}`));
|
|
73
|
+
for (const p of projects.slice(0, 10)) {
|
|
74
|
+
const isActive = p.id === ctx.project.id;
|
|
75
|
+
const dot = isActive ? chalk.green('●') : chalk.dim('○');
|
|
76
|
+
const name = isActive ? chalk.bold.white(p.name) : chalk.white(p.name);
|
|
77
|
+
const date = chalk.dim(new Date(p.lastAccessed).toLocaleDateString());
|
|
78
|
+
console.log(` ${dot} ${name} ${date}`);
|
|
79
|
+
}
|
|
80
|
+
if (projects.length > 10) {
|
|
81
|
+
console.log(chalk.dim(` ... and ${projects.length - 10} more`));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Footer
|
|
85
|
+
console.log('');
|
|
86
|
+
console.log(chalk.dim(` v1.0.0 | Node ${process.version} | ${process.platform}`));
|
|
87
|
+
console.log('');
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAevF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Output } from '../output.js';
|
|
2
|
+
import { MemoryDatabase } from '../../memory-server/database.js';
|
|
3
|
+
export async function switchCommand(ctx, projectPath) {
|
|
4
|
+
try {
|
|
5
|
+
const newProject = await ctx.projectManager.switchProject(projectPath);
|
|
6
|
+
// Re-initialize memory database for the new project
|
|
7
|
+
ctx.memoryDb = new MemoryDatabase(newProject.root, newProject.id);
|
|
8
|
+
ctx.project = newProject;
|
|
9
|
+
Output.success(`Switched to project: ${newProject.name}`);
|
|
10
|
+
Output.dim(`Root: ${newProject.root}`);
|
|
11
|
+
Output.dim(`Data: ~/.kratos/projects/${newProject.id}/`);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
Output.error(`Failed to switch project: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/cli/commands/switch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,WAAmB;IACtE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEvE,oDAAoD;QACpD,GAAG,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;QAEzB,MAAM,CAAC,OAAO,CAAC,wBAAwB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,4BAA4B,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MemoryDatabase } from '../memory-server/database.js';
|
|
2
|
+
import { ProjectManager, type Project } from '../project-manager.js';
|
|
3
|
+
import { PIIDetector } from '../security/pii-detector.js';
|
|
4
|
+
export interface CLIContext {
|
|
5
|
+
projectManager: ProjectManager;
|
|
6
|
+
memoryDb: MemoryDatabase;
|
|
7
|
+
piiDetector: PIIDetector;
|
|
8
|
+
project: Project;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Initialize CLI context — detects project, opens database, etc.
|
|
12
|
+
* Reuses the exact same core modules across the system.
|
|
13
|
+
*/
|
|
14
|
+
export declare function initCLIContext(): Promise<CLIContext>;
|
|
15
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/cli/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAY1D"}
|
package/dist/cli/core.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MemoryDatabase } from '../memory-server/database.js';
|
|
2
|
+
import { ProjectManager } from '../project-manager.js';
|
|
3
|
+
import { PIIDetector } from '../security/pii-detector.js';
|
|
4
|
+
/**
|
|
5
|
+
* Initialize CLI context — detects project, opens database, etc.
|
|
6
|
+
* Reuses the exact same core modules across the system.
|
|
7
|
+
*/
|
|
8
|
+
export async function initCLIContext() {
|
|
9
|
+
const projectManager = new ProjectManager();
|
|
10
|
+
const piiDetector = new PIIDetector();
|
|
11
|
+
// Auto-detect project from cwd
|
|
12
|
+
const workingDir = process.env.KRATOS_PROJECT_ROOT || process.cwd();
|
|
13
|
+
const project = await projectManager.detectProject(workingDir);
|
|
14
|
+
// Initialize memory database (isolated per-project)
|
|
15
|
+
const memoryDb = new MemoryDatabase(project.root, project.id);
|
|
16
|
+
return { projectManager, memoryDb, piiDetector, project };
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/cli/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAS1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,+BAA+B;IAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAE/D,oDAAoD;IACpD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { initCLIContext } from './core.js';
|
|
5
|
+
import { Output } from './output.js';
|
|
6
|
+
const BANNER = `
|
|
7
|
+
${chalk.bold.red(' ██╗ ██╗██████╗ █████╗ ████████╗ ██████╗ ███████╗')}
|
|
8
|
+
${chalk.bold.red(' ██║ ██╔╝██╔══██╗██╔══██╗╚══██╔══╝██╔═══██╗██╔════╝')}
|
|
9
|
+
${chalk.bold.red(' █████╔╝ ██████╔╝███████║ ██║ ██║ ██║███████╗')}
|
|
10
|
+
${chalk.bold.red(' ██╔═██╗ ██╔══██╗██╔══██║ ██║ ██║ ██║╚════██║')}
|
|
11
|
+
${chalk.bold.red(' ██║ ██╗██║ ██║██║ ██║ ██║ ╚██████╔╝███████║')}
|
|
12
|
+
${chalk.bold.red(' ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝')}
|
|
13
|
+
${chalk.dim(' ─────────────────────────────────────────────────────')}
|
|
14
|
+
${chalk.white(' The God of War remembers everything.')}
|
|
15
|
+
${chalk.dim(` v1.0.0 | CLI-first | FTS5 | Encrypted`)}
|
|
16
|
+
`;
|
|
17
|
+
const program = new Command();
|
|
18
|
+
program
|
|
19
|
+
.name('kratos')
|
|
20
|
+
.description('Kratos Memory — Persistent memory for AI coding agents')
|
|
21
|
+
.version('1.0.0')
|
|
22
|
+
.addHelpText('before', BANNER);
|
|
23
|
+
// ─── save ───────────────────────────────────────────────
|
|
24
|
+
program
|
|
25
|
+
.command('save <text>')
|
|
26
|
+
.description('Save a memory')
|
|
27
|
+
.option('-t, --tags <tags>', 'Comma-separated tags')
|
|
28
|
+
.option('-p, --paths <paths>', 'Comma-separated file paths')
|
|
29
|
+
.option('-i, --importance <level>', 'Importance 1-5 (default: 3)')
|
|
30
|
+
.option('-c, --compress', 'Compress text before saving')
|
|
31
|
+
.action(async (text, opts) => {
|
|
32
|
+
const ctx = await initCLIContext();
|
|
33
|
+
const { saveCommand } = await import('./commands/save.js');
|
|
34
|
+
await saveCommand(ctx, text, opts);
|
|
35
|
+
});
|
|
36
|
+
// ─── search ─────────────────────────────────────────────
|
|
37
|
+
program
|
|
38
|
+
.command('search <query>')
|
|
39
|
+
.description('Search memories')
|
|
40
|
+
.option('-l, --limit <n>', 'Max results (default: 10)')
|
|
41
|
+
.option('-t, --tags <tags>', 'Filter by tags')
|
|
42
|
+
.option('-d, --debug', 'Show debug info')
|
|
43
|
+
.option('--path-match', 'Require path matching')
|
|
44
|
+
.action(async (query, opts) => {
|
|
45
|
+
const ctx = await initCLIContext();
|
|
46
|
+
const { searchCommand } = await import('./commands/search.js');
|
|
47
|
+
await searchCommand(ctx, query, opts);
|
|
48
|
+
});
|
|
49
|
+
// ─── ask ────────────────────────────────────────────────
|
|
50
|
+
program
|
|
51
|
+
.command('ask <question>')
|
|
52
|
+
.description('Ask a natural language question about your memories')
|
|
53
|
+
.option('-l, --limit <n>', 'Max results (default: 10)')
|
|
54
|
+
.action(async (question, opts) => {
|
|
55
|
+
const ctx = await initCLIContext();
|
|
56
|
+
const { askCommand } = await import('./commands/ask.js');
|
|
57
|
+
await askCommand(ctx, question, opts);
|
|
58
|
+
});
|
|
59
|
+
// ─── recent ─────────────────────────────────────────────
|
|
60
|
+
program
|
|
61
|
+
.command('recent')
|
|
62
|
+
.description('Get recent memories')
|
|
63
|
+
.option('-l, --limit <n>', 'Max results (default: 10)')
|
|
64
|
+
.option('--path-prefix <prefix>', 'Filter by path prefix')
|
|
65
|
+
.action(async (opts) => {
|
|
66
|
+
const ctx = await initCLIContext();
|
|
67
|
+
const { recentCommand } = await import('./commands/recent.js');
|
|
68
|
+
await recentCommand(ctx, opts);
|
|
69
|
+
});
|
|
70
|
+
// ─── get ────────────────────────────────────────────────
|
|
71
|
+
program
|
|
72
|
+
.command('get <id>')
|
|
73
|
+
.description('Get a specific memory by ID')
|
|
74
|
+
.action(async (id) => {
|
|
75
|
+
const ctx = await initCLIContext();
|
|
76
|
+
const { getCommand } = await import('./commands/get.js');
|
|
77
|
+
await getCommand(ctx, id);
|
|
78
|
+
});
|
|
79
|
+
// ─── forget ─────────────────────────────────────────────
|
|
80
|
+
program
|
|
81
|
+
.command('forget <id>')
|
|
82
|
+
.description('Delete a memory by ID')
|
|
83
|
+
.action(async (id) => {
|
|
84
|
+
const ctx = await initCLIContext();
|
|
85
|
+
const { forgetCommand } = await import('./commands/forget.js');
|
|
86
|
+
await forgetCommand(ctx, id);
|
|
87
|
+
});
|
|
88
|
+
// ─── status ─────────────────────────────────────────────
|
|
89
|
+
program
|
|
90
|
+
.command('status')
|
|
91
|
+
.description('Show system status and statistics')
|
|
92
|
+
.action(async () => {
|
|
93
|
+
const ctx = await initCLIContext();
|
|
94
|
+
const { statusCommand } = await import('./commands/status.js');
|
|
95
|
+
await statusCommand(ctx);
|
|
96
|
+
});
|
|
97
|
+
// ─── switch ─────────────────────────────────────────────
|
|
98
|
+
program
|
|
99
|
+
.command('switch <project>')
|
|
100
|
+
.description('Switch to a different project')
|
|
101
|
+
.action(async (projectPath) => {
|
|
102
|
+
const ctx = await initCLIContext();
|
|
103
|
+
const { switchCommand } = await import('./commands/switch.js');
|
|
104
|
+
await switchCommand(ctx, projectPath);
|
|
105
|
+
});
|
|
106
|
+
// ─── scan ───────────────────────────────────────────────
|
|
107
|
+
program
|
|
108
|
+
.command('scan <text>')
|
|
109
|
+
.description('Scan text for PII and secrets')
|
|
110
|
+
.option('-r, --redact', 'Show redacted version')
|
|
111
|
+
.action(async (text, opts) => {
|
|
112
|
+
const ctx = await initCLIContext();
|
|
113
|
+
const { scanCommand } = await import('./commands/scan.js');
|
|
114
|
+
await scanCommand(ctx, text, opts);
|
|
115
|
+
});
|
|
116
|
+
// ─── migrate ────────────────────────────────────────────
|
|
117
|
+
program
|
|
118
|
+
.command('migrate')
|
|
119
|
+
.description('Verify and index existing data for CLI use')
|
|
120
|
+
.option('--from <path>', 'Custom data location')
|
|
121
|
+
.action(async (opts) => {
|
|
122
|
+
const ctx = await initCLIContext();
|
|
123
|
+
const { migrateCommand } = await import('./commands/migrate.js');
|
|
124
|
+
await migrateCommand(ctx, opts);
|
|
125
|
+
});
|
|
126
|
+
// ─── hooks ──────────────────────────────────────────────
|
|
127
|
+
program
|
|
128
|
+
.command('hooks <action>')
|
|
129
|
+
.description('Manage auto-capture hooks (install/uninstall)')
|
|
130
|
+
.action(async (action) => {
|
|
131
|
+
const { hooksCommand } = await import('./commands/hooks.js');
|
|
132
|
+
await hooksCommand(action);
|
|
133
|
+
});
|
|
134
|
+
// ─── capture (hidden — invoked by hooks) ────────────────
|
|
135
|
+
program
|
|
136
|
+
.command('capture', { hidden: true })
|
|
137
|
+
.description('Process auto-captured events (internal)')
|
|
138
|
+
.option('--event <type>', 'Event type')
|
|
139
|
+
.action(async (opts) => {
|
|
140
|
+
const ctx = await initCLIContext();
|
|
141
|
+
const { captureCommand } = await import('./commands/capture.js');
|
|
142
|
+
await captureCommand(ctx, opts);
|
|
143
|
+
});
|
|
144
|
+
// ─── Main ───────────────────────────────────────────────
|
|
145
|
+
async function main() {
|
|
146
|
+
try {
|
|
147
|
+
await program.parseAsync(process.argv);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
if (error instanceof Error) {
|
|
151
|
+
Output.error(error.message);
|
|
152
|
+
}
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
main();
|
|
157
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class Output {
|
|
2
|
+
static success(msg: string): void;
|
|
3
|
+
static error(msg: string): void;
|
|
4
|
+
static warn(msg: string): void;
|
|
5
|
+
static info(msg: string): void;
|
|
6
|
+
static dim(msg: string): void;
|
|
7
|
+
static header(msg: string): void;
|
|
8
|
+
static json(data: unknown): void;
|
|
9
|
+
static table(rows: Record<string, string | number | boolean | undefined | null>[]): void;
|
|
10
|
+
static memoryCard(memory: {
|
|
11
|
+
id: string;
|
|
12
|
+
summary: string;
|
|
13
|
+
text?: string;
|
|
14
|
+
tags?: string[];
|
|
15
|
+
paths?: string[];
|
|
16
|
+
importance?: number;
|
|
17
|
+
created_at?: number;
|
|
18
|
+
score?: number;
|
|
19
|
+
snippet?: string;
|
|
20
|
+
}): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACjB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIjC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI/B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIhC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI;IAmCxF,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;CAwBT"}
|