linguclaw 0.4.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 (168) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -0
  3. package/dist/agent-system.d.ts +196 -0
  4. package/dist/agent-system.d.ts.map +1 -0
  5. package/dist/agent-system.js +738 -0
  6. package/dist/agent-system.js.map +1 -0
  7. package/dist/alphabeta.d.ts +54 -0
  8. package/dist/alphabeta.d.ts.map +1 -0
  9. package/dist/alphabeta.js +193 -0
  10. package/dist/alphabeta.js.map +1 -0
  11. package/dist/browser.d.ts +62 -0
  12. package/dist/browser.d.ts.map +1 -0
  13. package/dist/browser.js +224 -0
  14. package/dist/browser.js.map +1 -0
  15. package/dist/cli.d.ts +7 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +565 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/code-parser.d.ts +39 -0
  20. package/dist/code-parser.d.ts.map +1 -0
  21. package/dist/code-parser.js +385 -0
  22. package/dist/code-parser.js.map +1 -0
  23. package/dist/config.d.ts +66 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +232 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/core/engine.d.ts +359 -0
  28. package/dist/core/engine.d.ts.map +1 -0
  29. package/dist/core/engine.js +127 -0
  30. package/dist/core/engine.js.map +1 -0
  31. package/dist/daemon.d.ts +29 -0
  32. package/dist/daemon.d.ts.map +1 -0
  33. package/dist/daemon.js +212 -0
  34. package/dist/daemon.js.map +1 -0
  35. package/dist/email-receiver.d.ts +63 -0
  36. package/dist/email-receiver.d.ts.map +1 -0
  37. package/dist/email-receiver.js +553 -0
  38. package/dist/email-receiver.js.map +1 -0
  39. package/dist/git-integration.d.ts +180 -0
  40. package/dist/git-integration.d.ts.map +1 -0
  41. package/dist/git-integration.js +850 -0
  42. package/dist/git-integration.js.map +1 -0
  43. package/dist/inbox.d.ts +84 -0
  44. package/dist/inbox.d.ts.map +1 -0
  45. package/dist/inbox.js +198 -0
  46. package/dist/inbox.js.map +1 -0
  47. package/dist/index.d.ts +6 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +41 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/languages/cpp.d.ts +51 -0
  52. package/dist/languages/cpp.d.ts.map +1 -0
  53. package/dist/languages/cpp.js +930 -0
  54. package/dist/languages/cpp.js.map +1 -0
  55. package/dist/languages/csharp.d.ts +79 -0
  56. package/dist/languages/csharp.d.ts.map +1 -0
  57. package/dist/languages/csharp.js +1776 -0
  58. package/dist/languages/csharp.js.map +1 -0
  59. package/dist/languages/go.d.ts +50 -0
  60. package/dist/languages/go.d.ts.map +1 -0
  61. package/dist/languages/go.js +882 -0
  62. package/dist/languages/go.js.map +1 -0
  63. package/dist/languages/java.d.ts +47 -0
  64. package/dist/languages/java.d.ts.map +1 -0
  65. package/dist/languages/java.js +649 -0
  66. package/dist/languages/java.js.map +1 -0
  67. package/dist/languages/python.d.ts +47 -0
  68. package/dist/languages/python.d.ts.map +1 -0
  69. package/dist/languages/python.js +655 -0
  70. package/dist/languages/python.js.map +1 -0
  71. package/dist/languages/rust.d.ts +61 -0
  72. package/dist/languages/rust.d.ts.map +1 -0
  73. package/dist/languages/rust.js +1064 -0
  74. package/dist/languages/rust.js.map +1 -0
  75. package/dist/logger.d.ts +20 -0
  76. package/dist/logger.d.ts.map +1 -0
  77. package/dist/logger.js +133 -0
  78. package/dist/logger.js.map +1 -0
  79. package/dist/longterm-memory.d.ts +47 -0
  80. package/dist/longterm-memory.d.ts.map +1 -0
  81. package/dist/longterm-memory.js +300 -0
  82. package/dist/longterm-memory.js.map +1 -0
  83. package/dist/memory.d.ts +42 -0
  84. package/dist/memory.d.ts.map +1 -0
  85. package/dist/memory.js +274 -0
  86. package/dist/memory.js.map +1 -0
  87. package/dist/messaging.d.ts +103 -0
  88. package/dist/messaging.d.ts.map +1 -0
  89. package/dist/messaging.js +645 -0
  90. package/dist/messaging.js.map +1 -0
  91. package/dist/multi-provider.d.ts +69 -0
  92. package/dist/multi-provider.d.ts.map +1 -0
  93. package/dist/multi-provider.js +484 -0
  94. package/dist/multi-provider.js.map +1 -0
  95. package/dist/orchestrator.d.ts +65 -0
  96. package/dist/orchestrator.d.ts.map +1 -0
  97. package/dist/orchestrator.js +441 -0
  98. package/dist/orchestrator.js.map +1 -0
  99. package/dist/plugins.d.ts +52 -0
  100. package/dist/plugins.d.ts.map +1 -0
  101. package/dist/plugins.js +215 -0
  102. package/dist/plugins.js.map +1 -0
  103. package/dist/prism-orchestrator.d.ts +26 -0
  104. package/dist/prism-orchestrator.d.ts.map +1 -0
  105. package/dist/prism-orchestrator.js +191 -0
  106. package/dist/prism-orchestrator.js.map +1 -0
  107. package/dist/prism.d.ts +46 -0
  108. package/dist/prism.d.ts.map +1 -0
  109. package/dist/prism.js +188 -0
  110. package/dist/prism.js.map +1 -0
  111. package/dist/privacy.d.ts +23 -0
  112. package/dist/privacy.d.ts.map +1 -0
  113. package/dist/privacy.js +220 -0
  114. package/dist/privacy.js.map +1 -0
  115. package/dist/proactive.d.ts +30 -0
  116. package/dist/proactive.d.ts.map +1 -0
  117. package/dist/proactive.js +260 -0
  118. package/dist/proactive.js.map +1 -0
  119. package/dist/refactoring-engine.d.ts +100 -0
  120. package/dist/refactoring-engine.d.ts.map +1 -0
  121. package/dist/refactoring-engine.js +717 -0
  122. package/dist/refactoring-engine.js.map +1 -0
  123. package/dist/resilience.d.ts +43 -0
  124. package/dist/resilience.d.ts.map +1 -0
  125. package/dist/resilience.js +200 -0
  126. package/dist/resilience.js.map +1 -0
  127. package/dist/safety.d.ts +40 -0
  128. package/dist/safety.d.ts.map +1 -0
  129. package/dist/safety.js +133 -0
  130. package/dist/safety.js.map +1 -0
  131. package/dist/sandbox.d.ts +33 -0
  132. package/dist/sandbox.d.ts.map +1 -0
  133. package/dist/sandbox.js +173 -0
  134. package/dist/sandbox.js.map +1 -0
  135. package/dist/scheduler.d.ts +72 -0
  136. package/dist/scheduler.d.ts.map +1 -0
  137. package/dist/scheduler.js +374 -0
  138. package/dist/scheduler.js.map +1 -0
  139. package/dist/semantic-memory.d.ts +70 -0
  140. package/dist/semantic-memory.d.ts.map +1 -0
  141. package/dist/semantic-memory.js +430 -0
  142. package/dist/semantic-memory.js.map +1 -0
  143. package/dist/skills.d.ts +97 -0
  144. package/dist/skills.d.ts.map +1 -0
  145. package/dist/skills.js +575 -0
  146. package/dist/skills.js.map +1 -0
  147. package/dist/static/dashboard.html +853 -0
  148. package/dist/static/hub.html +772 -0
  149. package/dist/static/index.html +818 -0
  150. package/dist/static/logo.svg +24 -0
  151. package/dist/static/workflow-editor.html +913 -0
  152. package/dist/tools.d.ts +67 -0
  153. package/dist/tools.d.ts.map +1 -0
  154. package/dist/tools.js +303 -0
  155. package/dist/tools.js.map +1 -0
  156. package/dist/types.d.ts +295 -0
  157. package/dist/types.d.ts.map +1 -0
  158. package/dist/types.js +90 -0
  159. package/dist/types.js.map +1 -0
  160. package/dist/web.d.ts +76 -0
  161. package/dist/web.d.ts.map +1 -0
  162. package/dist/web.js +2139 -0
  163. package/dist/web.js.map +1 -0
  164. package/dist/workflow-engine.d.ts +114 -0
  165. package/dist/workflow-engine.d.ts.map +1 -0
  166. package/dist/workflow-engine.js +855 -0
  167. package/dist/workflow-engine.js.map +1 -0
  168. package/package.json +77 -0
package/dist/prism.js ADDED
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ /**
3
+ * Prism - Multi-Faceted Architecture
4
+ * TypeScript equivalent of Python prism.py
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Prism = void 0;
8
+ exports.getPrism = getPrism;
9
+ const logger_1 = require("./logger");
10
+ const logger = (0, logger_1.getLogger)();
11
+ // Default configuration
12
+ const DEFAULT_CONFIG = {
13
+ max_facets: 5,
14
+ confidence_threshold: 0.7,
15
+ auto_branch: true,
16
+ reflection_depth: 2
17
+ };
18
+ // Prism engine
19
+ class Prism {
20
+ facets;
21
+ currentFacet;
22
+ branches;
23
+ config;
24
+ reflectionCount;
25
+ constructor(config = {}) {
26
+ this.facets = new Map();
27
+ this.branches = new Map();
28
+ this.config = { ...DEFAULT_CONFIG, ...config };
29
+ this.currentFacet = null;
30
+ this.reflectionCount = 0;
31
+ }
32
+ // Register a facet
33
+ addFacet(facet) {
34
+ this.facets.set(facet.id, {
35
+ ...facet,
36
+ complete: false,
37
+ confidence: 0
38
+ });
39
+ logger.info(`Added facet: ${facet.name} (${facet.id})`);
40
+ }
41
+ // Execute a facet
42
+ async executeFacet(facetId, context, llmComplete) {
43
+ const facet = this.facets.get(facetId);
44
+ if (!facet) {
45
+ throw new Error(`Facet ${facetId} not found`);
46
+ }
47
+ this.currentFacet = facetId;
48
+ logger.info(`Executing facet: ${facet.name}`);
49
+ // Build prompt with context
50
+ const prompt = this.buildPrompt(facet, context);
51
+ try {
52
+ // Call LLM
53
+ const output = await llmComplete(prompt);
54
+ // Calculate confidence (simplified)
55
+ const confidence = this.calculateConfidence(output);
56
+ // Mark facet as complete
57
+ facet.complete = true;
58
+ facet.result = output;
59
+ facet.confidence = confidence;
60
+ // Determine next facet
61
+ const nextFacet = this.determineNextFacet(facet, confidence);
62
+ logger.info(`Facet ${facetId} complete (confidence: ${confidence.toFixed(2)})`);
63
+ return {
64
+ output,
65
+ confidence,
66
+ next_facet: nextFacet,
67
+ complete: confidence >= this.config.confidence_threshold
68
+ };
69
+ }
70
+ catch (error) {
71
+ logger.error(`Facet ${facetId} execution failed: ${error}`);
72
+ throw error;
73
+ }
74
+ }
75
+ // Build facet prompt
76
+ buildPrompt(facet, context) {
77
+ let prompt = facet.prompt;
78
+ // Add context
79
+ if (context.previous) {
80
+ prompt += `\n\nPrevious result:\n${context.previous}`;
81
+ }
82
+ if (context.goals) {
83
+ prompt += `\n\nGoals:\n${context.goals.join('\n')}`;
84
+ }
85
+ return prompt;
86
+ }
87
+ // Calculate confidence score (placeholder)
88
+ calculateConfidence(output) {
89
+ // Simplified confidence calculation
90
+ // In real implementation, use token probabilities or quality metrics
91
+ const length = output.length;
92
+ const hasStructure = output.includes('```') || output.includes(':') || output.includes('-');
93
+ const hasExplanation = output.toLowerCase().includes('because') || output.toLowerCase().includes('therefore');
94
+ let score = 0.5;
95
+ if (length > 100)
96
+ score += 0.1;
97
+ if (hasStructure)
98
+ score += 0.15;
99
+ if (hasExplanation)
100
+ score += 0.15;
101
+ return Math.min(score, 0.95);
102
+ }
103
+ // Determine next facet to execute
104
+ determineNextFacet(facet, confidence) {
105
+ if (confidence >= this.config.confidence_threshold) {
106
+ return null; // Done
107
+ }
108
+ if (facet.next && facet.next.length > 0) {
109
+ // Find first incomplete next facet
110
+ for (const nextId of facet.next) {
111
+ const nextFacet = this.facets.get(nextId);
112
+ if (nextFacet && !nextFacet.complete) {
113
+ return nextId;
114
+ }
115
+ }
116
+ }
117
+ return null;
118
+ }
119
+ // Create a new branch
120
+ createBranch(strategy) {
121
+ const id = `branch_${Date.now()}`;
122
+ const branch = {
123
+ id,
124
+ name: `${strategy}_${this.branches.size}`,
125
+ strategy,
126
+ risk_threshold: strategy === 'conservative' ? 30 : strategy === 'experimental' ? 70 : 50,
127
+ fitness: 0
128
+ };
129
+ this.branches.set(id, branch);
130
+ logger.info(`Created branch: ${id} (${strategy})`);
131
+ return branch;
132
+ }
133
+ // Merge branches
134
+ mergeBranches(branchIds) {
135
+ const branches = branchIds.map(id => this.branches.get(id)).filter(b => b);
136
+ if (branches.length === 0) {
137
+ throw new Error('No valid branches to merge');
138
+ }
139
+ // Select best branch based on fitness
140
+ const bestBranch = branches.reduce((best, current) => current.fitness > best.fitness ? current : best);
141
+ logger.info(`Merged ${branches.length} branches, best: ${bestBranch.id}`);
142
+ return bestBranch;
143
+ }
144
+ // Reflection - analyze and improve
145
+ async reflect(output, context, llmComplete) {
146
+ if (this.reflectionCount >= this.config.reflection_depth) {
147
+ return output;
148
+ }
149
+ this.reflectionCount++;
150
+ const reflectionPrompt = `Review and improve the following output:\n\n${output}\n\nIdentify issues and provide a better version.`;
151
+ try {
152
+ const improved = await llmComplete(reflectionPrompt);
153
+ logger.info(`Reflection ${this.reflectionCount} complete`);
154
+ return improved;
155
+ }
156
+ catch (error) {
157
+ logger.error(`Reflection failed: ${error}`);
158
+ return output;
159
+ }
160
+ }
161
+ // Reset prism state
162
+ reset() {
163
+ this.facets.clear();
164
+ this.branches.clear();
165
+ this.currentFacet = null;
166
+ this.reflectionCount = 0;
167
+ logger.info('Prism reset');
168
+ }
169
+ // Get current state
170
+ getState() {
171
+ return {
172
+ facets: Array.from(this.facets.values()),
173
+ branches: Array.from(this.branches.values()),
174
+ currentFacet: this.currentFacet,
175
+ reflectionCount: this.reflectionCount
176
+ };
177
+ }
178
+ }
179
+ exports.Prism = Prism;
180
+ // Global instance
181
+ let prismInstance = null;
182
+ function getPrism(config) {
183
+ if (!prismInstance) {
184
+ prismInstance = new Prism(config);
185
+ }
186
+ return prismInstance;
187
+ }
188
+ //# sourceMappingURL=prism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism.js","sourceRoot":"","sources":["../src/prism.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA2OH,4BAKC;AA9OD,qCAAqC;AAGrC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;AAsB3B,wBAAwB;AACxB,MAAM,cAAc,GAAgB;IAClC,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,GAAG;IACzB,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,eAAe;AACf,MAAa,KAAK;IAChB,MAAM,CAAqB;IAC3B,YAAY,CAAgB;IAC5B,QAAQ,CAAsB;IAC9B,MAAM,CAAc;IACZ,eAAe,CAAS;IAEhC,YAAY,SAA+B,EAAE;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,mBAAmB;IACnB,QAAQ,CAAC,KAA6C;QACpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;YACxB,GAAG,KAAK;YACR,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,OAAY,EAAE,WAAgD;QAChG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,YAAY,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9C,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,WAAW;YACX,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,oCAAoC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEpD,yBAAyB;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACtB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAE9B,uBAAuB;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAE7D,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,0BAA0B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhF,OAAO;gBACL,MAAM;gBACN,UAAU;gBACV,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB;aACzD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,sBAAsB,KAAK,EAAE,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,qBAAqB;IACb,WAAW,CAAC,KAAY,EAAE,OAAY;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE1B,cAAc;QACd,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,yBAAyB,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,eAAe,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2CAA2C;IACnC,mBAAmB,CAAC,MAAc;QACxC,oCAAoC;QACpC,qEAAqE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5F,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE9G,IAAI,KAAK,GAAG,GAAG,CAAC;QAChB,IAAI,MAAM,GAAG,GAAG;YAAE,KAAK,IAAI,GAAG,CAAC;QAC/B,IAAI,YAAY;YAAE,KAAK,IAAI,IAAI,CAAC;QAChC,IAAI,cAAc;YAAE,KAAK,IAAI,IAAI,CAAC;QAElC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,kCAAkC;IAC1B,kBAAkB,CAAC,KAAY,EAAE,UAAkB;QACzD,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,CAAC,OAAO;QACtB,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,mCAAmC;YACnC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACrC,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,YAAY,CAAC,QAAoD;QAC/D,MAAM,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,MAAM,MAAM,GAAW;YACrB,EAAE;YACF,IAAI,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACzC,QAAQ;YACR,cAAc,EAAE,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACxF,OAAO,EAAE,CAAC;SACX,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,QAAQ,GAAG,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iBAAiB;IACjB,aAAa,CAAC,SAAmB;QAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAa,CAAC;QAEvF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,sCAAsC;QACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACnD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAChD,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,oBAAoB,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAY,EAAE,WAAgD;QAC1F,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,gBAAgB,GAAG,+CAA+C,MAAM,mDAAmD,CAAC;QAElI,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,eAAe,WAAW,CAAC,CAAC;YAC3D,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC;IAED,oBAAoB;IACpB,QAAQ;QAMN,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;IACJ,CAAC;CACF;AAlMD,sBAkMC;AAED,kBAAkB;AAClB,IAAI,aAAa,GAAiB,IAAI,CAAC;AAEvC,SAAgB,QAAQ,CAAC,MAA6B;IACpD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Privacy and data control settings
3
+ * TypeScript equivalent of Python privacy.py
4
+ */
5
+ import { PrivacySettings } from './types';
6
+ export declare class PrivacyManager {
7
+ configPath: string;
8
+ settings: PrivacySettings;
9
+ constructor(configPath?: string);
10
+ private loadSettings;
11
+ private saveSettings;
12
+ getSettings(): PrivacySettings;
13
+ updateSettings(settings: PrivacySettings): void;
14
+ clearConversations(): number;
15
+ clearLogs(): number;
16
+ exportData(outputPath: string): boolean;
17
+ deleteAllData(): boolean;
18
+ canUseCloudLLM(): boolean;
19
+ getPrivacyReport(): any;
20
+ private getRecommendations;
21
+ }
22
+ export declare function getPrivacyManager(): PrivacyManager;
23
+ //# sourceMappingURL=privacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAA2B,MAAM,SAAS,CAAC;AAyBnE,qBAAa,cAAc;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;gBAEd,UAAU,CAAC,EAAE,MAAM;IAK/B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAYpB,WAAW,IAAI,eAAe;IAI9B,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAM/C,kBAAkB,IAAI,MAAM;IAc5B,SAAS,IAAI,MAAM;IA6BnB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAmBvC,aAAa,IAAI,OAAO;IAiCxB,cAAc,IAAI,OAAO;IAKzB,gBAAgB,IAAI,GAAG;IAmBvB,OAAO,CAAC,kBAAkB;CAmB3B;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ /**
3
+ * Privacy and data control settings
4
+ * TypeScript equivalent of Python privacy.py
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PrivacyManager = void 0;
11
+ exports.getPrivacyManager = getPrivacyManager;
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const types_1 = require("./types");
15
+ const logger_1 = require("./logger");
16
+ const logger = (0, logger_1.getLogger)();
17
+ const DEFAULT_SETTINGS = {
18
+ conversation_retention: types_1.DataRetention.THIRTY_DAYS,
19
+ memory_retention: types_1.DataRetention.FOREVER,
20
+ log_retention: types_1.DataRetention.SEVEN_DAYS,
21
+ log_level: types_1.LogLevel.MINIMAL,
22
+ log_to_cloud: false,
23
+ share_analytics: false,
24
+ share_crashes: false,
25
+ allow_remote_commands: false,
26
+ prefer_local_models: true,
27
+ offline_mode: false,
28
+ encrypt_memory: true,
29
+ encrypt_logs: false,
30
+ secure_delete: true,
31
+ require_auth: false,
32
+ allowed_users: [],
33
+ admin_users: [],
34
+ data_dir: path_1.default.join(process.env.HOME || '~', '.linguclaw'),
35
+ };
36
+ class PrivacyManager {
37
+ configPath;
38
+ settings;
39
+ constructor(configPath) {
40
+ this.configPath = configPath || path_1.default.join(process.env.HOME || '~', '.linguclaw', 'privacy.json');
41
+ this.settings = this.loadSettings();
42
+ }
43
+ loadSettings() {
44
+ if (fs_1.default.existsSync(this.configPath)) {
45
+ try {
46
+ const data = JSON.parse(fs_1.default.readFileSync(this.configPath, 'utf-8'));
47
+ return { ...DEFAULT_SETTINGS, ...data };
48
+ }
49
+ catch (error) {
50
+ logger.error(`Failed to load privacy settings: ${error}`);
51
+ }
52
+ }
53
+ this.saveSettings(DEFAULT_SETTINGS);
54
+ return DEFAULT_SETTINGS;
55
+ }
56
+ saveSettings(settings) {
57
+ try {
58
+ const dir = path_1.default.dirname(this.configPath);
59
+ if (!fs_1.default.existsSync(dir)) {
60
+ fs_1.default.mkdirSync(dir, { recursive: true });
61
+ }
62
+ fs_1.default.writeFileSync(this.configPath, JSON.stringify(settings, null, 2));
63
+ }
64
+ catch (error) {
65
+ logger.error(`Failed to save privacy settings: ${error}`);
66
+ }
67
+ }
68
+ getSettings() {
69
+ return this.settings;
70
+ }
71
+ updateSettings(settings) {
72
+ this.settings = settings;
73
+ this.saveSettings(settings);
74
+ logger.info('Privacy settings updated');
75
+ }
76
+ clearConversations() {
77
+ try {
78
+ // Clear conversation data from memory
79
+ const dataDir = this.settings.data_dir;
80
+ const memoryDb = path_1.default.join(dataDir, 'memory.db');
81
+ // In real implementation, would clear from SQLite
82
+ logger.info('Cleared conversation entries');
83
+ return 0;
84
+ }
85
+ catch (error) {
86
+ logger.error(`Failed to clear conversations: ${error}`);
87
+ return 0;
88
+ }
89
+ }
90
+ clearLogs() {
91
+ try {
92
+ const logDir = path_1.default.join(this.settings.data_dir, 'logs');
93
+ if (!fs_1.default.existsSync(logDir))
94
+ return 0;
95
+ let count = 0;
96
+ const files = fs_1.default.readdirSync(logDir);
97
+ for (const file of files) {
98
+ if (file.endsWith('.log')) {
99
+ const filePath = path_1.default.join(logDir, file);
100
+ if (this.settings.secure_delete) {
101
+ // Overwrite with random data before delete
102
+ const stats = fs_1.default.statSync(filePath);
103
+ const randomBuf = Buffer.alloc(Math.min(stats.size, 1024 * 1024));
104
+ for (let i = 0; i < randomBuf.length; i++)
105
+ randomBuf[i] = Math.floor(Math.random() * 256);
106
+ fs_1.default.writeFileSync(filePath, randomBuf);
107
+ }
108
+ fs_1.default.unlinkSync(filePath);
109
+ count++;
110
+ }
111
+ }
112
+ logger.info(`Cleared ${count} log files`);
113
+ return count;
114
+ }
115
+ catch (error) {
116
+ logger.error(`Failed to clear logs: ${error}`);
117
+ return 0;
118
+ }
119
+ }
120
+ exportData(outputPath) {
121
+ try {
122
+ const export_data = {
123
+ export_date: new Date().toISOString(),
124
+ settings: this.settings,
125
+ conversations: [],
126
+ memory: {},
127
+ preferences: {},
128
+ };
129
+ fs_1.default.writeFileSync(outputPath, JSON.stringify(export_data, null, 2));
130
+ logger.info(`Data exported to ${outputPath}`);
131
+ return true;
132
+ }
133
+ catch (error) {
134
+ logger.error(`Failed to export data: ${error}`);
135
+ return false;
136
+ }
137
+ }
138
+ deleteAllData() {
139
+ try {
140
+ this.clearConversations();
141
+ this.clearLogs();
142
+ // Delete memory database
143
+ const memoryDb = path_1.default.join(this.settings.data_dir, 'memory.db');
144
+ if (fs_1.default.existsSync(memoryDb)) {
145
+ if (this.settings.secure_delete) {
146
+ const stats = fs_1.default.statSync(memoryDb);
147
+ fs_1.default.writeFileSync(memoryDb, Buffer.alloc(stats.size, 0));
148
+ }
149
+ fs_1.default.unlinkSync(memoryDb);
150
+ }
151
+ // Delete proactive database
152
+ const proactiveDb = path_1.default.join(this.settings.data_dir, 'proactive.db');
153
+ if (fs_1.default.existsSync(proactiveDb)) {
154
+ if (this.settings.secure_delete) {
155
+ const stats = fs_1.default.statSync(proactiveDb);
156
+ fs_1.default.writeFileSync(proactiveDb, Buffer.alloc(stats.size, 0));
157
+ }
158
+ fs_1.default.unlinkSync(proactiveDb);
159
+ }
160
+ logger.info('All user data deleted');
161
+ return true;
162
+ }
163
+ catch (error) {
164
+ logger.error(`Failed to delete all data: ${error}`);
165
+ return false;
166
+ }
167
+ }
168
+ canUseCloudLLM() {
169
+ if (this.settings.offline_mode)
170
+ return false;
171
+ return true;
172
+ }
173
+ getPrivacyReport() {
174
+ return {
175
+ settings_summary: {
176
+ data_stored_locally: true,
177
+ cloud_logging_disabled: !this.settings.log_to_cloud,
178
+ analytics_disabled: !this.settings.share_analytics,
179
+ offline_capable: this.settings.offline_mode || this.settings.prefer_local_models,
180
+ encryption_enabled: this.settings.encrypt_memory,
181
+ },
182
+ data_stats: { total_entries: 0 },
183
+ retention_policies: {
184
+ conversations: this.settings.conversation_retention,
185
+ memory: this.settings.memory_retention,
186
+ logs: this.settings.log_retention,
187
+ },
188
+ recommendations: this.getRecommendations(),
189
+ };
190
+ }
191
+ getRecommendations() {
192
+ const recs = [];
193
+ if (!this.settings.encrypt_memory) {
194
+ recs.push('Enable memory encryption for better security');
195
+ }
196
+ if (this.settings.log_level === types_1.LogLevel.FULL) {
197
+ recs.push('Consider using minimal log level for better privacy');
198
+ }
199
+ if (this.settings.share_analytics) {
200
+ recs.push('Disable analytics sharing for maximum privacy');
201
+ }
202
+ if (!this.settings.offline_mode && !this.settings.prefer_local_models) {
203
+ recs.push('Enable prefer local models to reduce cloud dependency');
204
+ }
205
+ if (recs.length === 0) {
206
+ recs.push('Your privacy settings look good!');
207
+ }
208
+ return recs;
209
+ }
210
+ }
211
+ exports.PrivacyManager = PrivacyManager;
212
+ // Global instance
213
+ let privacyManagerInstance = null;
214
+ function getPrivacyManager() {
215
+ if (!privacyManagerInstance) {
216
+ privacyManagerInstance = new PrivacyManager();
217
+ }
218
+ return privacyManagerInstance;
219
+ }
220
+ //# sourceMappingURL=privacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Proactive behavior system - reminders, alerts, briefings
3
+ * TypeScript equivalent of Python proactive.py
4
+ */
5
+ import { ProactiveTask } from './types';
6
+ export declare class ProactiveEngine {
7
+ dbPath: string;
8
+ private db;
9
+ private tasks;
10
+ private running;
11
+ private checkInterval;
12
+ constructor(dbPath?: string);
13
+ init(): Promise<boolean>;
14
+ private createTable;
15
+ private loadTasks;
16
+ private saveTask;
17
+ addTask(task: ProactiveTask): string;
18
+ removeTask(taskId: string): boolean;
19
+ enableTask(taskId: string): boolean;
20
+ disableTask(taskId: string): boolean;
21
+ private checkTriggers;
22
+ private executeTask;
23
+ start(): void;
24
+ stop(): void;
25
+ addReminder(name: string, description: string, time: Date, message: string, channels?: string[]): string;
26
+ addDailyBriefing(timeStr?: string, channels?: string[]): string;
27
+ listTasks(tag?: string): ProactiveTask[];
28
+ }
29
+ export declare function getProactiveEngine(): ProactiveEngine;
30
+ //# sourceMappingURL=proactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proactive.d.ts","sourceRoot":"","sources":["../src/proactive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAA2B,MAAM,SAAS,CAAC;AAKjE,qBAAa,eAAe;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAAwB;gBAEjC,MAAM,CAAC,EAAE,MAAM;IAQrB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAY9B,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM;IAOpC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAWnC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUnC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUpC,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,WAAW;IAwBnB,KAAK,IAAI,IAAI;IAeb,IAAI,IAAI,IAAI;IASZ,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAiBxG,gBAAgB,CAAC,OAAO,GAAE,MAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAwBxE,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;CAOzC;AAKD,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD"}