@magic-ingredients/tiny-brain-local 0.3.10

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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/dist/core/console-logger.d.ts +30 -0
  4. package/dist/core/console-logger.d.ts.map +1 -0
  5. package/dist/core/console-logger.js +101 -0
  6. package/dist/core/console-logger.js.map +1 -0
  7. package/dist/core/file-logger.d.ts +40 -0
  8. package/dist/core/file-logger.d.ts.map +1 -0
  9. package/dist/core/file-logger.js +223 -0
  10. package/dist/core/file-logger.js.map +1 -0
  11. package/dist/core/mcp-server.d.ts +54 -0
  12. package/dist/core/mcp-server.d.ts.map +1 -0
  13. package/dist/core/mcp-server.js +295 -0
  14. package/dist/core/mcp-server.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +37 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/prompts/index.d.ts +39 -0
  20. package/dist/prompts/index.d.ts.map +1 -0
  21. package/dist/prompts/index.js +5 -0
  22. package/dist/prompts/index.js.map +1 -0
  23. package/dist/prompts/memory/memory.prompt.d.ts +32 -0
  24. package/dist/prompts/memory/memory.prompt.d.ts.map +1 -0
  25. package/dist/prompts/memory/memory.prompt.js +204 -0
  26. package/dist/prompts/memory/memory.prompt.js.map +1 -0
  27. package/dist/prompts/persona/persona.prompt.d.ts +27 -0
  28. package/dist/prompts/persona/persona.prompt.d.ts.map +1 -0
  29. package/dist/prompts/persona/persona.prompt.js +592 -0
  30. package/dist/prompts/persona/persona.prompt.js.map +1 -0
  31. package/dist/prompts/planning/planning.prompt.d.ts +56 -0
  32. package/dist/prompts/planning/planning.prompt.d.ts.map +1 -0
  33. package/dist/prompts/planning/planning.prompt.js +1016 -0
  34. package/dist/prompts/planning/planning.prompt.js.map +1 -0
  35. package/dist/prompts/prompt-registry.d.ts +25 -0
  36. package/dist/prompts/prompt-registry.d.ts.map +1 -0
  37. package/dist/prompts/prompt-registry.js +68 -0
  38. package/dist/prompts/prompt-registry.js.map +1 -0
  39. package/dist/prompts/thinking/thinking.prompt.d.ts +29 -0
  40. package/dist/prompts/thinking/thinking.prompt.d.ts.map +1 -0
  41. package/dist/prompts/thinking/thinking.prompt.js +171 -0
  42. package/dist/prompts/thinking/thinking.prompt.js.map +1 -0
  43. package/dist/services/UpdateService.d.ts +29 -0
  44. package/dist/services/UpdateService.d.ts.map +1 -0
  45. package/dist/services/UpdateService.js +132 -0
  46. package/dist/services/UpdateService.js.map +1 -0
  47. package/dist/services/plan-watcher.service.d.ts +143 -0
  48. package/dist/services/plan-watcher.service.d.ts.map +1 -0
  49. package/dist/services/plan-watcher.service.js +914 -0
  50. package/dist/services/plan-watcher.service.js.map +1 -0
  51. package/dist/storage/local-filesystem-adapter.d.ts +39 -0
  52. package/dist/storage/local-filesystem-adapter.d.ts.map +1 -0
  53. package/dist/storage/local-filesystem-adapter.js +208 -0
  54. package/dist/storage/local-filesystem-adapter.js.map +1 -0
  55. package/dist/storage/storage-path-builder.d.ts +14 -0
  56. package/dist/storage/storage-path-builder.d.ts.map +1 -0
  57. package/dist/storage/storage-path-builder.js +43 -0
  58. package/dist/storage/storage-path-builder.js.map +1 -0
  59. package/dist/test-setup.d.ts +2 -0
  60. package/dist/test-setup.d.ts.map +1 -0
  61. package/dist/test-setup.js +12 -0
  62. package/dist/test-setup.js.map +1 -0
  63. package/dist/tools/analyse-request/analyse-request.tool.d.ts +8 -0
  64. package/dist/tools/analyse-request/analyse-request.tool.d.ts.map +1 -0
  65. package/dist/tools/analyse-request/analyse-request.tool.js +120 -0
  66. package/dist/tools/analyse-request/analyse-request.tool.js.map +1 -0
  67. package/dist/tools/index.d.ts +69 -0
  68. package/dist/tools/index.d.ts.map +1 -0
  69. package/dist/tools/index.js +24 -0
  70. package/dist/tools/index.js.map +1 -0
  71. package/dist/tools/memory/memory.tool.d.ts +15 -0
  72. package/dist/tools/memory/memory.tool.d.ts.map +1 -0
  73. package/dist/tools/memory/memory.tool.js +110 -0
  74. package/dist/tools/memory/memory.tool.js.map +1 -0
  75. package/dist/tools/persona/as.tool.d.ts +25 -0
  76. package/dist/tools/persona/as.tool.d.ts.map +1 -0
  77. package/dist/tools/persona/as.tool.js +294 -0
  78. package/dist/tools/persona/as.tool.js.map +1 -0
  79. package/dist/tools/persona/persona.tool.d.ts +8 -0
  80. package/dist/tools/persona/persona.tool.d.ts.map +1 -0
  81. package/dist/tools/persona/persona.tool.js +193 -0
  82. package/dist/tools/persona/persona.tool.js.map +1 -0
  83. package/dist/tools/plan/plan.tool.d.ts +18 -0
  84. package/dist/tools/plan/plan.tool.d.ts.map +1 -0
  85. package/dist/tools/plan/plan.tool.js +643 -0
  86. package/dist/tools/plan/plan.tool.js.map +1 -0
  87. package/dist/tools/strategy/strategy.tool.d.ts +13 -0
  88. package/dist/tools/strategy/strategy.tool.d.ts.map +1 -0
  89. package/dist/tools/strategy/strategy.tool.js +199 -0
  90. package/dist/tools/strategy/strategy.tool.js.map +1 -0
  91. package/dist/tools/thinking/thinking.tool.d.ts +13 -0
  92. package/dist/tools/thinking/thinking.tool.d.ts.map +1 -0
  93. package/dist/tools/thinking/thinking.tool.js +226 -0
  94. package/dist/tools/thinking/thinking.tool.js.map +1 -0
  95. package/dist/tools/tool-registry.d.ts +20 -0
  96. package/dist/tools/tool-registry.d.ts.map +1 -0
  97. package/dist/tools/tool-registry.js +61 -0
  98. package/dist/tools/tool-registry.js.map +1 -0
  99. package/dist/tools/update/update.tool.d.ts +15 -0
  100. package/dist/tools/update/update.tool.d.ts.map +1 -0
  101. package/dist/tools/update/update.tool.js +86 -0
  102. package/dist/tools/update/update.tool.js.map +1 -0
  103. package/dist/tools/validate-response/validate-response.tool.d.ts +13 -0
  104. package/dist/tools/validate-response/validate-response.tool.d.ts.map +1 -0
  105. package/dist/tools/validate-response/validate-response.tool.js +142 -0
  106. package/dist/tools/validate-response/validate-response.tool.js.map +1 -0
  107. package/dist/types/request-context.d.ts +7 -0
  108. package/dist/types/request-context.d.ts.map +1 -0
  109. package/dist/types/request-context.js +7 -0
  110. package/dist/types/request-context.js.map +1 -0
  111. package/package.json +77 -0
@@ -0,0 +1,193 @@
1
+ import { z } from 'zod';
2
+ import { createSuccessResult, createErrorResult, } from '../index.js';
3
+ import { PersonaService, PersonaLearningService, formatPersonaList, createDefaultProfile, formatPersona } from '@magic-ingredients/tiny-brain-core';
4
+ // Schema for 'manage_personas' tool
5
+ const ManagePersonasArgsSchema = z.object({
6
+ operation: z.enum(['list', 'create', 'update', 'archive', 'show']),
7
+ personaName: z.string().optional(),
8
+ data: z.record(z.unknown()).optional(),
9
+ includeArchived: z.boolean().optional(),
10
+ });
11
+ export class ManagePersonasTool {
12
+ static getToolDefinition() {
13
+ return {
14
+ name: 'manage_personas',
15
+ description: '📋 PERSONA MANAGER 📋\n\n⚡ COMPREHENSIVE CONTROL: Manage all your personas in one place.\n\n✅ OPERATIONS:\n • list: Show available personas (active by default, use includeArchived for all)\n • create: Create a new persona\n • update: Modify persona attributes\n • archive: Archive a persona (replaces delete)\n • show: Display detailed persona info\n\n💡 SMART FEATURES:\n • Automated profile generation\n • Context preservation\n • File association tracking\n • Safe archiving instead of deletion',
16
+ inputSchema: {
17
+ type: 'object',
18
+ properties: {
19
+ operation: {
20
+ type: 'string',
21
+ enum: ['list', 'create', 'update', 'archive', 'show'],
22
+ description: 'The persona management operation to perform',
23
+ },
24
+ personaName: {
25
+ type: 'string',
26
+ description: 'Name of the persona (required for all operations except list)',
27
+ },
28
+ data: {
29
+ type: 'object',
30
+ description: 'Data for create/update operations',
31
+ },
32
+ includeArchived: {
33
+ type: 'boolean',
34
+ description: 'Include archived personas in list (default: false)',
35
+ },
36
+ },
37
+ required: ['operation'],
38
+ },
39
+ };
40
+ }
41
+ static async execute(args, context) {
42
+ try {
43
+ const validatedArgs = ManagePersonasArgsSchema.parse(args);
44
+ // Create service with RequestContext
45
+ const service = new PersonaService(context);
46
+ switch (validatedArgs.operation) {
47
+ case 'list': {
48
+ const personas = await service.listPersonas({
49
+ includeArchived: validatedArgs.includeArchived || false
50
+ });
51
+ const activePersona = context.activePersona?.id;
52
+ const response = formatPersonaList(personas, activePersona);
53
+ return createSuccessResult(response);
54
+ }
55
+ case 'create': {
56
+ if (!validatedArgs.personaName) {
57
+ return createErrorResult('personaName is required for create operation');
58
+ }
59
+ // Check if already exists
60
+ const existing = await service.loadPersona({
61
+ personaName: validatedArgs.personaName
62
+ });
63
+ if (existing) {
64
+ return createErrorResult(`Persona "${validatedArgs.personaName}" already exists`);
65
+ }
66
+ // Create default profile
67
+ const newProfile = createDefaultProfile(validatedArgs.personaName, new Date().toISOString(), validatedArgs.data?.description, validatedArgs.data?.style);
68
+ await service.createPersona({
69
+ personaName: validatedArgs.personaName,
70
+ profile: newProfile
71
+ });
72
+ return createSuccessResult(`Created persona "${validatedArgs.personaName}"`);
73
+ }
74
+ case 'update': {
75
+ if (!validatedArgs.personaName) {
76
+ return createErrorResult('personaName is required for update operation');
77
+ }
78
+ if (!validatedArgs.data) {
79
+ return createErrorResult('data is required for update operation');
80
+ }
81
+ // Parse the structured updates from the user input
82
+ const data = validatedArgs.data;
83
+ // Check if this is a name change request
84
+ if (data.name &&
85
+ typeof data.name === 'string' &&
86
+ data.name !== validatedArgs.personaName) {
87
+ await service.renamePersona({
88
+ personaName: validatedArgs.personaName,
89
+ newPersonaName: data.name,
90
+ });
91
+ return createSuccessResult(`Renamed persona from "${validatedArgs.personaName}" to "${data.name}"`);
92
+ }
93
+ // Always evaluate for learning opportunities first
94
+ const learningEvaluation = PersonaLearningService.evaluateUpdateForLearning(data, context);
95
+ let insightsUpdated = false;
96
+ if (learningEvaluation.hasLearning && learningEvaluation.extractedLearning) {
97
+ context.logger.info(`Learning opportunity detected for persona "${validatedArgs.personaName}"`, {
98
+ learningType: learningEvaluation.learningType,
99
+ confidence: learningEvaluation.confidence,
100
+ extractedLearning: learningEvaluation.extractedLearning,
101
+ });
102
+ // Update the insights file directly with extracted learning
103
+ await service.updateInsights({
104
+ personaName: validatedArgs.personaName,
105
+ insights: learningEvaluation.extractedLearning,
106
+ });
107
+ insightsUpdated = true;
108
+ }
109
+ // Handle profile content updates
110
+ let profileUpdated = false;
111
+ if (data.profile && typeof data.profile === 'string') {
112
+ await service.savePersona({
113
+ personaName: validatedArgs.personaName,
114
+ profile: data.profile
115
+ });
116
+ profileUpdated = true;
117
+ }
118
+ // Build response message based on what was updated
119
+ const updatedItems = [];
120
+ if (insightsUpdated) {
121
+ updatedItems.push(`${learningEvaluation.learningType} (confidence: ${learningEvaluation.confidence?.toFixed(1)})`);
122
+ }
123
+ if (profileUpdated) {
124
+ updatedItems.push('profile');
125
+ }
126
+ if (updatedItems.length > 0) {
127
+ return createSuccessResult(`Updated persona "${validatedArgs.personaName}": ${updatedItems.join(', ')}`);
128
+ }
129
+ // If no recognized structured update, fall back to old append behavior
130
+ const updates = JSON.stringify(data, null, 2);
131
+ const existingPersona = await service.loadPersona({
132
+ personaName: validatedArgs.personaName
133
+ });
134
+ if (!existingPersona) {
135
+ return createErrorResult(`Persona "${validatedArgs.personaName}" not found`);
136
+ }
137
+ // Get the profile as string for backward compatibility
138
+ const profileString = typeof existingPersona.profile === 'string'
139
+ ? existingPersona.profile
140
+ : 'No profile content';
141
+ // For now, just return the existing profile with updates applied
142
+ const updatedProfile = profileString + '\n\n## Updates\n' + JSON.stringify(updates, null, 2);
143
+ await service.savePersona({
144
+ personaName: validatedArgs.personaName,
145
+ profile: updatedProfile
146
+ });
147
+ return createSuccessResult(`Updated persona "${validatedArgs.personaName}" profile (fallback)`);
148
+ }
149
+ case 'archive': {
150
+ if (!validatedArgs.personaName) {
151
+ return createErrorResult('personaName is required for archive operation');
152
+ }
153
+ // Extract archiveReason from data if provided
154
+ const archiveReason = validatedArgs.data?.reason;
155
+ await service.archivePersona({
156
+ personaName: validatedArgs.personaName,
157
+ reason: archiveReason,
158
+ });
159
+ return createSuccessResult(`Archived persona "${validatedArgs.personaName}"`);
160
+ }
161
+ case 'show': {
162
+ if (!validatedArgs.personaName) {
163
+ return createErrorResult('personaName is required for show operation');
164
+ }
165
+ const persona = await service.loadPersona({
166
+ personaName: validatedArgs.personaName
167
+ });
168
+ if (!persona) {
169
+ return createErrorResult(`Persona "${validatedArgs.personaName}" not found`);
170
+ }
171
+ const files = await service.listPersonaFiles({
172
+ personaName: validatedArgs.personaName
173
+ });
174
+ // Format using the Persona module
175
+ const formattedPersona = formatPersona(persona?.profile || null, validatedArgs.personaName);
176
+ let response = `Persona: ${validatedArgs.personaName}\n`;
177
+ response += `Files: ${files.length}\n\n`;
178
+ response += `Profile:\n${formattedPersona}`;
179
+ return createSuccessResult(response);
180
+ }
181
+ default:
182
+ return createErrorResult(`Unknown operation: ${validatedArgs.operation}`);
183
+ }
184
+ }
185
+ catch (error) {
186
+ if (error instanceof z.ZodError) {
187
+ return createErrorResult(`Invalid arguments: ${error.errors.map((e) => e.message).join(', ')}`);
188
+ }
189
+ return createErrorResult(error instanceof Error ? error.message : 'Unknown error occurred');
190
+ }
191
+ }
192
+ }
193
+ //# sourceMappingURL=persona.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona.tool.js","sourceRoot":"","sources":["../../../src/tools/persona/persona.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type ToolResult } from '../index.js';
2
+ import type { RequestContext } from '../../types/request-context.js';
3
+ import { Tool as MCPTool } from '@modelcontextprotocol/sdk/types.js';
4
+ export declare function clearWatcherInstance(): void;
5
+ export declare class PlanTool {
6
+ static getToolDefinition(): MCPTool;
7
+ static execute(args: Record<string, unknown>, context: RequestContext): Promise<ToolResult>;
8
+ private static handleAccept;
9
+ private static handleUpdate;
10
+ private static handleStatus;
11
+ private static handleReport;
12
+ private static handleList;
13
+ private static handleArchive;
14
+ private static handleSwitch;
15
+ private static handleWatch;
16
+ private static handleStopWatch;
17
+ }
18
+ //# sourceMappingURL=plan.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/plan/plan.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AA6ErE,wBAAgB,oBAAoB,SAEnC;AAED,qBAAa,QAAQ;IACnB,MAAM,CAAC,iBAAiB,IAAI,OAAO;WAiJtB,OAAO,CAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;mBA2CD,YAAY;mBAkIZ,YAAY;mBAqDZ,YAAY;mBA0DZ,YAAY;mBAoCZ,UAAU;mBAoEV,aAAa;mBA8Cb,YAAY;mBAuCZ,WAAW;mBAqDX,eAAe;CAyBrC"}