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.
Files changed (120) hide show
  1. package/AGENTS.md +25 -0
  2. package/LICENSE +21 -0
  3. package/bin/kratos-cli +7 -0
  4. package/dist/cli/capture-handler.d.ts +13 -0
  5. package/dist/cli/capture-handler.d.ts.map +1 -0
  6. package/dist/cli/capture-handler.js +112 -0
  7. package/dist/cli/capture-handler.js.map +1 -0
  8. package/dist/cli/commands/ask.d.ts +5 -0
  9. package/dist/cli/commands/ask.d.ts.map +1 -0
  10. package/dist/cli/commands/ask.js +64 -0
  11. package/dist/cli/commands/ask.js.map +1 -0
  12. package/dist/cli/commands/capture.d.ts +5 -0
  13. package/dist/cli/commands/capture.d.ts.map +1 -0
  14. package/dist/cli/commands/capture.js +31 -0
  15. package/dist/cli/commands/capture.js.map +1 -0
  16. package/dist/cli/commands/forget.d.ts +3 -0
  17. package/dist/cli/commands/forget.d.ts.map +1 -0
  18. package/dist/cli/commands/forget.js +12 -0
  19. package/dist/cli/commands/forget.js.map +1 -0
  20. package/dist/cli/commands/get.d.ts +3 -0
  21. package/dist/cli/commands/get.d.ts.map +1 -0
  22. package/dist/cli/commands/get.js +28 -0
  23. package/dist/cli/commands/get.js.map +1 -0
  24. package/dist/cli/commands/hooks.d.ts +2 -0
  25. package/dist/cli/commands/hooks.d.ts.map +1 -0
  26. package/dist/cli/commands/hooks.js +136 -0
  27. package/dist/cli/commands/hooks.js.map +1 -0
  28. package/dist/cli/commands/migrate.d.ts +5 -0
  29. package/dist/cli/commands/migrate.d.ts.map +1 -0
  30. package/dist/cli/commands/migrate.js +56 -0
  31. package/dist/cli/commands/migrate.js.map +1 -0
  32. package/dist/cli/commands/recent.d.ts +6 -0
  33. package/dist/cli/commands/recent.d.ts.map +1 -0
  34. package/dist/cli/commands/recent.js +21 -0
  35. package/dist/cli/commands/recent.js.map +1 -0
  36. package/dist/cli/commands/save.d.ts +8 -0
  37. package/dist/cli/commands/save.d.ts.map +1 -0
  38. package/dist/cli/commands/save.js +31 -0
  39. package/dist/cli/commands/save.js.map +1 -0
  40. package/dist/cli/commands/scan.d.ts +5 -0
  41. package/dist/cli/commands/scan.d.ts.map +1 -0
  42. package/dist/cli/commands/scan.js +28 -0
  43. package/dist/cli/commands/scan.js.map +1 -0
  44. package/dist/cli/commands/search.d.ts +8 -0
  45. package/dist/cli/commands/search.d.ts.map +1 -0
  46. package/dist/cli/commands/search.js +45 -0
  47. package/dist/cli/commands/search.js.map +1 -0
  48. package/dist/cli/commands/status.d.ts +3 -0
  49. package/dist/cli/commands/status.d.ts.map +1 -0
  50. package/dist/cli/commands/status.js +89 -0
  51. package/dist/cli/commands/status.js.map +1 -0
  52. package/dist/cli/commands/switch.d.ts +3 -0
  53. package/dist/cli/commands/switch.d.ts.map +1 -0
  54. package/dist/cli/commands/switch.js +18 -0
  55. package/dist/cli/commands/switch.js.map +1 -0
  56. package/dist/cli/core.d.ts +15 -0
  57. package/dist/cli/core.d.ts.map +1 -0
  58. package/dist/cli/core.js +18 -0
  59. package/dist/cli/core.js.map +1 -0
  60. package/dist/cli/index.d.ts +3 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +157 -0
  63. package/dist/cli/index.js.map +1 -0
  64. package/dist/cli/output.d.ts +22 -0
  65. package/dist/cli/output.d.ts.map +1 -0
  66. package/dist/cli/output.js +74 -0
  67. package/dist/cli/output.js.map +1 -0
  68. package/dist/compression/factory.d.ts +6 -0
  69. package/dist/compression/factory.d.ts.map +1 -0
  70. package/dist/compression/factory.js +8 -0
  71. package/dist/compression/factory.js.map +1 -0
  72. package/dist/compression/index.d.ts +10 -0
  73. package/dist/compression/index.d.ts.map +1 -0
  74. package/dist/compression/index.js +2 -0
  75. package/dist/compression/index.js.map +1 -0
  76. package/dist/compression/rule-compressor.d.ts +9 -0
  77. package/dist/compression/rule-compressor.d.ts.map +1 -0
  78. package/dist/compression/rule-compressor.js +43 -0
  79. package/dist/compression/rule-compressor.js.map +1 -0
  80. package/dist/memory-server/concept-store-enhanced.d.ts +88 -0
  81. package/dist/memory-server/concept-store-enhanced.d.ts.map +1 -0
  82. package/dist/memory-server/concept-store-enhanced.js +392 -0
  83. package/dist/memory-server/concept-store-enhanced.js.map +1 -0
  84. package/dist/memory-server/concept-store.d.ts +58 -0
  85. package/dist/memory-server/concept-store.d.ts.map +1 -0
  86. package/dist/memory-server/concept-store.js +329 -0
  87. package/dist/memory-server/concept-store.js.map +1 -0
  88. package/dist/memory-server/context-broker.d.ts +63 -0
  89. package/dist/memory-server/context-broker.d.ts.map +1 -0
  90. package/dist/memory-server/context-broker.js +340 -0
  91. package/dist/memory-server/context-broker.js.map +1 -0
  92. package/dist/memory-server/database.d.ts +108 -0
  93. package/dist/memory-server/database.d.ts.map +1 -0
  94. package/dist/memory-server/database.js +690 -0
  95. package/dist/memory-server/database.js.map +1 -0
  96. package/dist/project-manager.d.ts +77 -0
  97. package/dist/project-manager.d.ts.map +1 -0
  98. package/dist/project-manager.js +226 -0
  99. package/dist/project-manager.js.map +1 -0
  100. package/dist/security/data-retention.d.ts +104 -0
  101. package/dist/security/data-retention.d.ts.map +1 -0
  102. package/dist/security/data-retention.js +444 -0
  103. package/dist/security/data-retention.js.map +1 -0
  104. package/dist/security/encryption.d.ts +48 -0
  105. package/dist/security/encryption.d.ts.map +1 -0
  106. package/dist/security/encryption.js +131 -0
  107. package/dist/security/encryption.js.map +1 -0
  108. package/dist/security/pii-detector.d.ts +61 -0
  109. package/dist/security/pii-detector.d.ts.map +1 -0
  110. package/dist/security/pii-detector.js +220 -0
  111. package/dist/security/pii-detector.js.map +1 -0
  112. package/dist/types/index.d.ts +151 -0
  113. package/dist/types/index.d.ts.map +1 -0
  114. package/dist/types/index.js +2 -0
  115. package/dist/types/index.js.map +1 -0
  116. package/dist/utils/logger.d.ts +9 -0
  117. package/dist/utils/logger.d.ts.map +1 -0
  118. package/dist/utils/logger.js +10 -0
  119. package/dist/utils/logger.js.map +1 -0
  120. package/package.json +54 -0
@@ -0,0 +1,61 @@
1
+ export interface DetectionResult {
2
+ hasPII: boolean;
3
+ hasSecrets: boolean;
4
+ redactedText: string;
5
+ findings: Finding[];
6
+ }
7
+ export interface Finding {
8
+ type: 'pii' | 'secret' | 'high-entropy';
9
+ pattern: string;
10
+ confidence: number;
11
+ redacted: string;
12
+ }
13
+ /**
14
+ * PII and Secret Detection with entropy analysis
15
+ */
16
+ export declare class PIIDetector {
17
+ private piiPatterns;
18
+ private secretPatterns;
19
+ private allowlist;
20
+ constructor(allowlist?: string[]);
21
+ /**
22
+ * Detect PII and secrets in text
23
+ */
24
+ detect(text: string): DetectionResult;
25
+ /**
26
+ * Calculate Shannon entropy
27
+ */
28
+ private calculateEntropy;
29
+ /**
30
+ * Check if string has high entropy (likely random/secret)
31
+ */
32
+ private hasHighEntropy;
33
+ /**
34
+ * Find high entropy strings in text
35
+ */
36
+ private findHighEntropyStrings;
37
+ /**
38
+ * Redact sensitive information
39
+ */
40
+ private redact;
41
+ /**
42
+ * Add items to allowlist
43
+ */
44
+ addToAllowlist(items: string[]): void;
45
+ /**
46
+ * Remove items from allowlist
47
+ */
48
+ removeFromAllowlist(items: string[]): void;
49
+ /**
50
+ * Get current allowlist
51
+ */
52
+ getAllowlist(): string[];
53
+ /**
54
+ * Scan and report (without redaction)
55
+ */
56
+ scan(text: string): {
57
+ findings: Finding[];
58
+ riskScore: number;
59
+ };
60
+ }
61
+ //# sourceMappingURL=pii-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-detector.d.ts","sourceRoot":"","sources":["../../src/security/pii-detector.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,cAAc,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,WAAW,CAajB;IAGF,OAAO,CAAC,cAAc,CAqBpB;IAEF,OAAO,CAAC,SAAS,CAA0B;gBAE/B,SAAS,CAAC,EAAE,MAAM,EAAE;IAMhC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IA2ErC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,MAAM;IAkBd;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAOrC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAO1C;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAkB/D"}
@@ -0,0 +1,220 @@
1
+ import { Logger } from '../utils/logger.js';
2
+ const logger = new Logger('PIIDetector');
3
+ /**
4
+ * PII and Secret Detection with entropy analysis
5
+ */
6
+ export class PIIDetector {
7
+ // PII Patterns
8
+ piiPatterns = [
9
+ // SSN
10
+ { name: 'SSN', regex: /\b\d{3}-\d{2}-\d{4}\b/g, type: 'pii' },
11
+ // Credit Card
12
+ { name: 'Credit Card', regex: /\b(?:\d[ -]*?){13,16}\b/g, type: 'pii' },
13
+ // Email
14
+ { name: 'Email', regex: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, type: 'pii' },
15
+ // Phone
16
+ { name: 'Phone', regex: /\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g, type: 'pii' },
17
+ // IP Address
18
+ { name: 'IP Address', regex: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g, type: 'pii' },
19
+ // Date of Birth (various formats)
20
+ { name: 'DOB', regex: /\b(?:\d{1,2}[-/]\d{1,2}[-/]\d{2,4}|\d{4}[-/]\d{1,2}[-/]\d{1,2})\b/g, type: 'pii' },
21
+ ];
22
+ // Secret Patterns
23
+ secretPatterns = [
24
+ // API Keys (generic)
25
+ { name: 'API Key', regex: /\b[A-Za-z0-9]{32,}\b/g, type: 'secret' },
26
+ // AWS Keys
27
+ { name: 'AWS Access Key', regex: /AKIA[0-9A-Z]{16}/g, type: 'secret' },
28
+ { name: 'AWS Secret Key', regex: /[0-9a-zA-Z/+=]{40}/g, type: 'secret', entropyCheck: true },
29
+ // GitHub Token
30
+ { name: 'GitHub Token', regex: /ghp_[0-9a-zA-Z]{36}/g, type: 'secret' },
31
+ { name: 'GitHub Token', regex: /gho_[0-9a-zA-Z]{36}/g, type: 'secret' },
32
+ // JWT
33
+ { name: 'JWT', regex: /eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+/g, type: 'secret' },
34
+ // Private Key
35
+ { name: 'Private Key', regex: /-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/g, type: 'secret' },
36
+ // Password in config
37
+ { name: 'Password', regex: /(?:password|passwd|pwd|pass)[\s]*[:=][\s]*["']?([^"'\s]+)["']?/gi, type: 'secret' },
38
+ // Bearer Token
39
+ { name: 'Bearer Token', regex: /Bearer\s+[A-Za-z0-9-._~+/]+=*/g, type: 'secret' },
40
+ // Slack Token
41
+ { name: 'Slack Token', regex: /xox[baprs]-[0-9]{10,13}-[0-9]{10,13}-[a-zA-Z0-9]{24,34}/g, type: 'secret' },
42
+ // Stripe Key
43
+ { name: 'Stripe Key', regex: /(?:sk|pk)_(?:test|live)_[0-9a-zA-Z]{24,}/g, type: 'secret' },
44
+ ];
45
+ allowlist = new Set();
46
+ constructor(allowlist) {
47
+ if (allowlist) {
48
+ this.allowlist = new Set(allowlist);
49
+ }
50
+ }
51
+ /**
52
+ * Detect PII and secrets in text
53
+ */
54
+ detect(text) {
55
+ const findings = [];
56
+ let redactedText = text;
57
+ // Check PII patterns
58
+ for (const pattern of this.piiPatterns) {
59
+ const matches = text.matchAll(pattern.regex);
60
+ for (const match of matches) {
61
+ const value = match[0];
62
+ // Skip if in allowlist
63
+ if (this.allowlist.has(value))
64
+ continue;
65
+ const redacted = this.redact(value, pattern.type);
66
+ findings.push({
67
+ type: pattern.type,
68
+ pattern: pattern.name,
69
+ confidence: 0.9,
70
+ redacted
71
+ });
72
+ redactedText = redactedText.replace(value, redacted);
73
+ }
74
+ }
75
+ // Check secret patterns
76
+ for (const pattern of this.secretPatterns) {
77
+ const matches = text.matchAll(pattern.regex);
78
+ for (const match of matches) {
79
+ const value = match[0];
80
+ // Skip if in allowlist
81
+ if (this.allowlist.has(value))
82
+ continue;
83
+ // Check entropy if required
84
+ if (pattern.entropyCheck && !this.hasHighEntropy(value)) {
85
+ continue;
86
+ }
87
+ const redacted = this.redact(value, pattern.type);
88
+ findings.push({
89
+ type: pattern.type,
90
+ pattern: pattern.name,
91
+ confidence: pattern.entropyCheck ? 0.7 : 0.9,
92
+ redacted
93
+ });
94
+ redactedText = redactedText.replace(value, redacted);
95
+ }
96
+ }
97
+ // Entropy-based detection for unknown secrets
98
+ const highEntropyStrings = this.findHighEntropyStrings(text);
99
+ for (const str of highEntropyStrings) {
100
+ if (this.allowlist.has(str))
101
+ continue;
102
+ const redacted = this.redact(str, 'secret');
103
+ findings.push({
104
+ type: 'high-entropy',
105
+ pattern: 'High Entropy String',
106
+ confidence: 0.6,
107
+ redacted
108
+ });
109
+ redactedText = redactedText.replace(str, redacted);
110
+ }
111
+ return {
112
+ hasPII: findings.some(f => f.type === 'pii'),
113
+ hasSecrets: findings.some(f => f.type === 'secret' || f.type === 'high-entropy'),
114
+ redactedText,
115
+ findings
116
+ };
117
+ }
118
+ /**
119
+ * Calculate Shannon entropy
120
+ */
121
+ calculateEntropy(str) {
122
+ const frequencies = new Map();
123
+ for (const char of str) {
124
+ frequencies.set(char, (frequencies.get(char) || 0) + 1);
125
+ }
126
+ let entropy = 0;
127
+ const len = str.length;
128
+ for (const freq of frequencies.values()) {
129
+ const p = freq / len;
130
+ entropy -= p * Math.log2(p);
131
+ }
132
+ return entropy;
133
+ }
134
+ /**
135
+ * Check if string has high entropy (likely random/secret)
136
+ */
137
+ hasHighEntropy(str, threshold = 4.5) {
138
+ if (str.length < 10)
139
+ return false;
140
+ return this.calculateEntropy(str) > threshold;
141
+ }
142
+ /**
143
+ * Find high entropy strings in text
144
+ */
145
+ findHighEntropyStrings(text) {
146
+ const results = [];
147
+ // Find continuous alphanumeric strings
148
+ const candidates = text.match(/[A-Za-z0-9+/=_-]{20,}/g) || [];
149
+ for (const candidate of candidates) {
150
+ if (this.hasHighEntropy(candidate)) {
151
+ results.push(candidate);
152
+ }
153
+ }
154
+ return results;
155
+ }
156
+ /**
157
+ * Redact sensitive information
158
+ */
159
+ redact(value, type) {
160
+ if (type === 'pii') {
161
+ // Show partial for PII
162
+ if (value.includes('@')) {
163
+ // Email - show domain
164
+ const parts = value.split('@');
165
+ return `[REDACTED_EMAIL]@${parts[1]}`;
166
+ }
167
+ if (value.length > 4) {
168
+ // Show last 4 chars
169
+ return `[REDACTED_${type.toUpperCase()}...${value.slice(-4)}]`;
170
+ }
171
+ }
172
+ // Complete redaction for secrets
173
+ return `[REDACTED_${type.toUpperCase()}]`;
174
+ }
175
+ /**
176
+ * Add items to allowlist
177
+ */
178
+ addToAllowlist(items) {
179
+ for (const item of items) {
180
+ this.allowlist.add(item);
181
+ }
182
+ logger.info(`Added ${items.length} items to allowlist`);
183
+ }
184
+ /**
185
+ * Remove items from allowlist
186
+ */
187
+ removeFromAllowlist(items) {
188
+ for (const item of items) {
189
+ this.allowlist.delete(item);
190
+ }
191
+ logger.info(`Removed ${items.length} items from allowlist`);
192
+ }
193
+ /**
194
+ * Get current allowlist
195
+ */
196
+ getAllowlist() {
197
+ return Array.from(this.allowlist);
198
+ }
199
+ /**
200
+ * Scan and report (without redaction)
201
+ */
202
+ scan(text) {
203
+ const result = this.detect(text);
204
+ // Calculate risk score
205
+ let riskScore = 0;
206
+ for (const finding of result.findings) {
207
+ if (finding.type === 'secret' || finding.type === 'high-entropy') {
208
+ riskScore += finding.confidence * 10;
209
+ }
210
+ else if (finding.type === 'pii') {
211
+ riskScore += finding.confidence * 5;
212
+ }
213
+ }
214
+ return {
215
+ findings: result.findings,
216
+ riskScore: Math.min(riskScore, 100)
217
+ };
218
+ }
219
+ }
220
+ //# sourceMappingURL=pii-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-detector.js","sourceRoot":"","sources":["../../src/security/pii-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ export interface PRD {
2
+ id: string;
3
+ projectName: string;
4
+ version: string;
5
+ createdAt: Date;
6
+ updatedAt: Date;
7
+ pages: PageDefinition[];
8
+ apiEndpoints: APIEndpoint[];
9
+ dataStructures: DataStructure[];
10
+ userFlows: UserFlow[];
11
+ edgeCases: EdgeCase[];
12
+ integrations: Integration[];
13
+ }
14
+ export interface PageDefinition {
15
+ path: string;
16
+ name: string;
17
+ description: string;
18
+ components: string[];
19
+ dataRequirements: string[];
20
+ }
21
+ export interface APIEndpoint {
22
+ method: string;
23
+ path: string;
24
+ description: string;
25
+ requestBody?: object;
26
+ responseBody?: object;
27
+ authentication: boolean;
28
+ }
29
+ export interface DataStructure {
30
+ name: string;
31
+ schema: object;
32
+ relationships: string[];
33
+ }
34
+ export interface UserFlow {
35
+ name: string;
36
+ steps: string[];
37
+ entryPoint: string;
38
+ exitPoints: string[];
39
+ }
40
+ export interface EdgeCase {
41
+ scenario: string;
42
+ handling: string;
43
+ priority: 'low' | 'medium' | 'high';
44
+ }
45
+ export interface Integration {
46
+ name: string;
47
+ type: string;
48
+ configuration: object;
49
+ }
50
+ export interface Memory {
51
+ id: string;
52
+ type: 'architecture' | 'fixed-guide' | 'open-issue' | 'audit' | 'reference' | 'progress' | 'feature';
53
+ title: string;
54
+ content: string;
55
+ metadata: MemoryMetadata;
56
+ createdAt: Date;
57
+ updatedAt: Date;
58
+ }
59
+ export interface MemoryMetadata {
60
+ tags: string[];
61
+ relatedFiles: string[];
62
+ category?: string;
63
+ priority?: 'low' | 'medium' | 'high';
64
+ autoSaved: boolean;
65
+ conversationId?: string;
66
+ }
67
+ export interface PromptTemplate {
68
+ id: string;
69
+ name: string;
70
+ role: string;
71
+ stack: string[];
72
+ goal: string;
73
+ scopeConstraints: string[];
74
+ fileContext: string[];
75
+ plan: string[];
76
+ memoryRecall: string[];
77
+ verification: string[];
78
+ }
79
+ export interface ContextRule {
80
+ id: string;
81
+ name: string;
82
+ trigger: RuleTrigger;
83
+ action: RuleAction;
84
+ priority: number;
85
+ enabled: boolean;
86
+ }
87
+ export interface RuleTrigger {
88
+ type: 'always' | 'intelligent' | 'file-pattern' | 'manual';
89
+ patterns?: string[];
90
+ keywords?: string[];
91
+ conditions?: object;
92
+ }
93
+ export interface RuleAction {
94
+ type: 'inject-memory' | 'inject-prd' | 'inject-context' | 'warn';
95
+ targets: string[];
96
+ message?: string;
97
+ }
98
+ export interface AutoMemoryConfig {
99
+ enabled: boolean;
100
+ triggers: {
101
+ bugFixes: boolean;
102
+ architecture: boolean;
103
+ features: boolean;
104
+ optimizations: boolean;
105
+ };
106
+ excludePatterns: string[];
107
+ requireConfirmation: boolean;
108
+ smartMerge: boolean;
109
+ }
110
+ export interface ConversationAnalysis {
111
+ hasBugFix: boolean;
112
+ hasArchitectureDecision: boolean;
113
+ hasFeatureImplementation: boolean;
114
+ hasOptimization: boolean;
115
+ extractedTitle?: string;
116
+ extractedContent?: string;
117
+ suggestedType?: Memory['type'];
118
+ confidence: number;
119
+ }
120
+ export interface ConversationMemory {
121
+ id: string;
122
+ projectId: string;
123
+ timestamp: Date;
124
+ conversation: ConversationTurn[];
125
+ extractedInsights: ExtractedInsights;
126
+ tags: string[];
127
+ importance: 'low' | 'medium' | 'high';
128
+ summary?: string;
129
+ }
130
+ export interface ConversationTurn {
131
+ role: 'user' | 'assistant';
132
+ content: string;
133
+ timestamp: Date;
134
+ }
135
+ export interface ExtractedInsights {
136
+ decisions: string[];
137
+ implementations: string[];
138
+ problems: string[];
139
+ solutions: string[];
140
+ learnings: string[];
141
+ codeSnippets: CodeSnippet[];
142
+ dependencies: string[];
143
+ todos: string[];
144
+ }
145
+ export interface CodeSnippet {
146
+ language: string;
147
+ code: string;
148
+ description?: string;
149
+ file?: string;
150
+ }
151
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare class Logger {
2
+ private prefix;
3
+ constructor(prefix: string);
4
+ info(...args: any[]): void;
5
+ warn(...args: any[]): void;
6
+ error(...args: any[]): void;
7
+ debug(...args: any[]): void;
8
+ }
9
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;gBACX,MAAM,EAAE,MAAM;IAC1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IACnB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IACnB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IACpB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CACrB"}
@@ -0,0 +1,10 @@
1
+ export class Logger {
2
+ prefix;
3
+ constructor(prefix) { this.prefix = prefix; }
4
+ info(...args) { console.error(`[${this.prefix}]`, ...args); }
5
+ warn(...args) { console.error(`[${this.prefix}] WARN:`, ...args); }
6
+ error(...args) { console.error(`[${this.prefix}] ERROR:`, ...args); }
7
+ debug(...args) { if (process.env.KRATOS_DEBUG === 'true')
8
+ console.error(`[${this.prefix}] DEBUG:`, ...args); }
9
+ }
10
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACT,MAAM,CAAS;IACvB,YAAY,MAAc,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,IAAW,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG,IAAW,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,CAAC,GAAG,IAAW,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,KAAK,CAAC,GAAG,IAAW,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM;QAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;CACtH"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "kratos-memory",
3
+ "version": "1.0.0",
4
+ "description": "Persistent memory for AI coding agents — CLI-first, encrypted, local",
5
+ "main": "dist/cli/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "kratos-memory": "./bin/kratos-cli",
9
+ "kratos": "./bin/kratos-cli"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/ceorkm/kratos-cli.git"
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsx src/cli/index.ts",
18
+ "start": "node dist/cli/index.js",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "keywords": ["cli", "ai-memory", "ai-agents", "claude-code", "codex", "cursor", "sqlite", "fts5", "memory", "persistent"],
22
+ "author": "",
23
+ "license": "MIT",
24
+ "dependencies": {
25
+ "better-sqlite3": "^9.2.2",
26
+ "chalk": "^5.3.0",
27
+ "commander": "^12.1.0",
28
+ "crypto-js": "^4.2.0",
29
+ "fs-extra": "^11.2.0",
30
+ "js-yaml": "^4.1.0",
31
+ "node-forge": "^1.3.1",
32
+ "sodium-native": "^5.0.6",
33
+ "winston": "^3.11.0",
34
+ "zod": "^3.22.4"
35
+ },
36
+ "devDependencies": {
37
+ "@types/better-sqlite3": "^7.6.8",
38
+ "@types/fs-extra": "^11.0.4",
39
+ "@types/js-yaml": "^4.0.9",
40
+ "@types/node": "^20.0.0",
41
+ "tsx": "^4.0.0",
42
+ "typescript": "^5.0.0"
43
+ },
44
+ "engines": {
45
+ "node": ">=18.0.0"
46
+ },
47
+ "files": [
48
+ "dist/**/*",
49
+ "bin/**/*",
50
+ "README.md",
51
+ "LICENSE",
52
+ "AGENTS.md"
53
+ ]
54
+ }