agentstudio 0.1.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 (115) hide show
  1. package/.env +15 -0
  2. package/README.md +85 -0
  3. package/dist/bin/agentstudio.d.ts +3 -0
  4. package/dist/bin/agentstudio.d.ts.map +1 -0
  5. package/dist/bin/agentstudio.js +141 -0
  6. package/dist/bin/agentstudio.js.map +1 -0
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +87 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/middleware/auth.d.ts +7 -0
  12. package/dist/middleware/auth.d.ts.map +1 -0
  13. package/dist/middleware/auth.js +21 -0
  14. package/dist/middleware/auth.js.map +1 -0
  15. package/dist/routes/agents.d.ts +4 -0
  16. package/dist/routes/agents.d.ts.map +1 -0
  17. package/dist/routes/agents.js +804 -0
  18. package/dist/routes/agents.js.map +1 -0
  19. package/dist/routes/auth.d.ts +4 -0
  20. package/dist/routes/auth.d.ts.map +1 -0
  21. package/dist/routes/auth.js +60 -0
  22. package/dist/routes/auth.js.map +1 -0
  23. package/dist/routes/files.d.ts +4 -0
  24. package/dist/routes/files.d.ts.map +1 -0
  25. package/dist/routes/files.js +301 -0
  26. package/dist/routes/files.js.map +1 -0
  27. package/dist/routes/mcp.d.ts +4 -0
  28. package/dist/routes/mcp.d.ts.map +1 -0
  29. package/dist/routes/mcp.js +652 -0
  30. package/dist/routes/mcp.js.map +1 -0
  31. package/dist/routes/media.d.ts +5 -0
  32. package/dist/routes/media.d.ts.map +1 -0
  33. package/dist/routes/media.js +117 -0
  34. package/dist/routes/media.js.map +1 -0
  35. package/dist/routes/slides.d.ts +4 -0
  36. package/dist/routes/slides.d.ts.map +1 -0
  37. package/dist/routes/slides.js +146 -0
  38. package/dist/routes/slides.js.map +1 -0
  39. package/dist/services/claudeSession.d.ts +83 -0
  40. package/dist/services/claudeSession.d.ts.map +1 -0
  41. package/dist/services/claudeSession.js +255 -0
  42. package/dist/services/claudeSession.js.map +1 -0
  43. package/dist/services/messageQueue.d.ts +31 -0
  44. package/dist/services/messageQueue.d.ts.map +1 -0
  45. package/dist/services/messageQueue.js +67 -0
  46. package/dist/services/messageQueue.js.map +1 -0
  47. package/dist/services/sessionManager.d.ts +132 -0
  48. package/dist/services/sessionManager.d.ts.map +1 -0
  49. package/dist/services/sessionManager.js +439 -0
  50. package/dist/services/sessionManager.js.map +1 -0
  51. package/dist/types/claude-history.d.ts +48 -0
  52. package/dist/types/claude-history.d.ts.map +1 -0
  53. package/dist/types/claude-history.js +2 -0
  54. package/dist/types/claude-history.js.map +1 -0
  55. package/dist/types/claude-versions.d.ts +31 -0
  56. package/dist/types/claude-versions.d.ts.map +1 -0
  57. package/dist/types/claude-versions.js +2 -0
  58. package/dist/types/claude-versions.js.map +1 -0
  59. package/dist/types/commands.d.ts +32 -0
  60. package/dist/types/commands.d.ts.map +1 -0
  61. package/dist/types/commands.js +2 -0
  62. package/dist/types/commands.js.map +1 -0
  63. package/dist/types/index.d.ts +81 -0
  64. package/dist/types/index.d.ts.map +1 -0
  65. package/dist/types/index.js +150 -0
  66. package/dist/types/index.js.map +1 -0
  67. package/dist/types/subagents.d.ts +88 -0
  68. package/dist/types/subagents.d.ts.map +1 -0
  69. package/dist/types/subagents.js +2 -0
  70. package/dist/types/subagents.js.map +1 -0
  71. package/dist/utils/agentStorage.d.ts +19 -0
  72. package/dist/utils/agentStorage.d.ts.map +1 -0
  73. package/dist/utils/agentStorage.js +110 -0
  74. package/dist/utils/agentStorage.js.map +1 -0
  75. package/dist/utils/claudeVersionStorage.d.ts +33 -0
  76. package/dist/utils/claudeVersionStorage.d.ts.map +1 -0
  77. package/dist/utils/claudeVersionStorage.js +168 -0
  78. package/dist/utils/claudeVersionStorage.js.map +1 -0
  79. package/dist/utils/jwt.d.ts +15 -0
  80. package/dist/utils/jwt.d.ts.map +1 -0
  81. package/dist/utils/jwt.js +28 -0
  82. package/dist/utils/jwt.js.map +1 -0
  83. package/dist/utils/projectMetadataStorage.d.ts +21 -0
  84. package/dist/utils/projectMetadataStorage.d.ts.map +1 -0
  85. package/dist/utils/projectMetadataStorage.js +68 -0
  86. package/dist/utils/projectMetadataStorage.js.map +1 -0
  87. package/frontend/dist/index.html +86 -0
  88. package/package.json +66 -0
  89. package/src/bin/agentstudio.ts +161 -0
  90. package/src/index.ts +100 -0
  91. package/src/middleware/auth.ts +26 -0
  92. package/src/routes/agents.ts +885 -0
  93. package/src/routes/auth.ts +73 -0
  94. package/src/routes/commands.ts.bak +441 -0
  95. package/src/routes/files.ts +352 -0
  96. package/src/routes/mcp.ts +751 -0
  97. package/src/routes/media.ts +140 -0
  98. package/src/routes/projects.ts.bak +601 -0
  99. package/src/routes/sessions.ts.bak +809 -0
  100. package/src/routes/settings.ts.bak +718 -0
  101. package/src/routes/slides.ts +170 -0
  102. package/src/routes/subagents.ts.bak +364 -0
  103. package/src/services/claudeSession.ts +293 -0
  104. package/src/services/messageQueue.ts +71 -0
  105. package/src/services/sessionManager.ts +532 -0
  106. package/src/types/claude-history.ts +50 -0
  107. package/src/types/claude-versions.ts +33 -0
  108. package/src/types/commands.ts +35 -0
  109. package/src/types/index.ts +248 -0
  110. package/src/types/subagents.ts +106 -0
  111. package/src/utils/agentStorage.ts +126 -0
  112. package/src/utils/claudeVersionStorage.ts +199 -0
  113. package/src/utils/jwt.ts +36 -0
  114. package/src/utils/projectMetadataStorage.ts +86 -0
  115. package/tsconfig.json +26 -0
@@ -0,0 +1,81 @@
1
+ export interface AgentTool {
2
+ name: string;
3
+ enabled: boolean;
4
+ permissions?: {
5
+ requireConfirmation?: boolean;
6
+ allowedPaths?: string[];
7
+ blockedPaths?: string[];
8
+ };
9
+ }
10
+ export interface AgentConfig {
11
+ id: string;
12
+ name: string;
13
+ description: string;
14
+ version: string;
15
+ systemPrompt: string;
16
+ maxTurns: number;
17
+ permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan';
18
+ model: string;
19
+ allowedTools: AgentTool[];
20
+ ui: {
21
+ icon: string;
22
+ primaryColor: string;
23
+ headerTitle: string;
24
+ headerDescription: string;
25
+ welcomeMessage?: string;
26
+ componentType: 'slides' | 'chat' | 'documents' | 'code' | 'custom';
27
+ customComponent?: string;
28
+ };
29
+ workingDirectory?: string;
30
+ dataDirectory?: string;
31
+ fileTypes?: string[];
32
+ author: string;
33
+ homepage?: string;
34
+ tags: string[];
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ enabled: boolean;
38
+ projects?: string[];
39
+ }
40
+ export interface AgentSession {
41
+ id: string;
42
+ agentId: string;
43
+ title: string;
44
+ createdAt: number;
45
+ lastUpdated: number;
46
+ messages: AgentMessage[];
47
+ claudeVersionId?: string;
48
+ customData?: Record<string, unknown>;
49
+ }
50
+ export interface AgentMessage {
51
+ id: string;
52
+ role: 'user' | 'assistant';
53
+ content: string;
54
+ timestamp: number;
55
+ messageParts?: MessagePart[];
56
+ agentId: string;
57
+ }
58
+ export interface MessagePart {
59
+ id: string;
60
+ type: 'text' | 'tool' | 'command' | 'compactSummary' | 'image';
61
+ content?: string;
62
+ toolData?: {
63
+ id: string;
64
+ toolName: string;
65
+ toolInput: Record<string, unknown>;
66
+ toolResult?: string;
67
+ isExecuting: boolean;
68
+ isError?: boolean;
69
+ claudeId?: string;
70
+ };
71
+ imageData?: {
72
+ id: string;
73
+ data: string;
74
+ mediaType: string;
75
+ filename?: string;
76
+ };
77
+ order: number;
78
+ originalContent?: string;
79
+ }
80
+ export declare const BUILTIN_AGENTS: Partial<AgentConfig>[];
81
+ //# 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,150 @@
1
+ // Built-in agent templates
2
+ export const BUILTIN_AGENTS = [
3
+ {
4
+ id: 'ppt-editor',
5
+ name: 'PPT编辑助手',
6
+ description: '专门用于创建和编辑HTML演示文稿的AI助手',
7
+ systemPrompt: `You are an AI assistant specialized in helping users create and edit HTML presentations.
8
+ You can help with:
9
+ - Content creation and editing
10
+ - Design suggestions
11
+ - Structure improvements
12
+ - HTML/CSS modifications
13
+ - Presentation flow optimization
14
+ - File operations for slide management
15
+
16
+ The presentation uses HTML slides with embedded CSS styling. Each slide should be self-contained with a 1280x720 viewport.
17
+ Slides are stored in the ../slides/ directory relative to the backend.
18
+
19
+ Always provide helpful, specific suggestions and when possible, include code examples.
20
+ Please respond in Chinese.`,
21
+ allowedTools: [
22
+ { name: 'Write', enabled: true },
23
+ { name: 'Read', enabled: true },
24
+ { name: 'Edit', enabled: true },
25
+ { name: 'Glob', enabled: true },
26
+ { name: 'MultiEdit', enabled: true },
27
+ { name: 'Bash', enabled: true }
28
+ ],
29
+ ui: {
30
+ icon: '🎯',
31
+ primaryColor: '#3B82F6',
32
+ headerTitle: 'AI PPT助手',
33
+ headerDescription: '与AI聊天来编辑你的演示文稿',
34
+ welcomeMessage: '你好!我是你的AI PPT助手,可以帮你创建、编辑和优化HTML演示文稿。有什么需要帮助的吗?',
35
+ componentType: 'slides'
36
+ },
37
+ workingDirectory: '../slides',
38
+ dataDirectory: '.ai-sessions',
39
+ fileTypes: ['.html', '.css', '.js'],
40
+ tags: ['presentation', 'html', 'css', 'slides'],
41
+ enabled: true
42
+ },
43
+ {
44
+ id: 'code-assistant',
45
+ name: '代码助手',
46
+ description: '通用代码开发和审查助手',
47
+ systemPrompt: `You are a professional software development assistant. You can help with:
48
+ - Code review and optimization
49
+ - Bug fixing and debugging
50
+ - Architecture design
51
+ - Best practices implementation
52
+ - Documentation writing
53
+ - Testing strategies
54
+
55
+ You have access to file system operations and can directly modify code files.
56
+ Always follow coding best practices and maintain clean, readable code.
57
+ Please respond in Chinese.`,
58
+ allowedTools: [
59
+ { name: 'Write', enabled: true },
60
+ { name: 'Read', enabled: true },
61
+ { name: 'Edit', enabled: true },
62
+ { name: 'Glob', enabled: true },
63
+ { name: 'MultiEdit', enabled: true },
64
+ { name: 'Bash', enabled: true },
65
+ { name: 'Task', enabled: true }
66
+ ],
67
+ ui: {
68
+ icon: '💻',
69
+ primaryColor: '#10B981',
70
+ headerTitle: '代码助手',
71
+ headerDescription: '专业的软件开发和代码审查助手',
72
+ welcomeMessage: '你好!我是专业的代码助手,可以帮你进行代码开发、审查、调试和优化。请告诉我你想要解决的编程问题!',
73
+ componentType: 'code'
74
+ },
75
+ tags: ['coding', 'development', 'review', 'debugging'],
76
+ enabled: false
77
+ },
78
+ {
79
+ id: 'document-writer',
80
+ name: '文档助手',
81
+ description: '专注于文档创建和编辑的助手',
82
+ systemPrompt: `You are a professional document writing assistant. You can help with:
83
+ - Creating and editing documentation
84
+ - Technical writing
85
+ - Content structuring
86
+ - Markdown formatting
87
+ - Research and information gathering
88
+ - Proofreading and editing
89
+
90
+ You work primarily with text files and markdown documents.
91
+ Focus on clarity, accuracy, and professional presentation.
92
+ Please respond in Chinese.`,
93
+ allowedTools: [
94
+ { name: 'Write', enabled: true },
95
+ { name: 'Read', enabled: true },
96
+ { name: 'Edit', enabled: true },
97
+ { name: 'Glob', enabled: true },
98
+ { name: 'WebFetch', enabled: true },
99
+ { name: 'WebSearch', enabled: true }
100
+ ],
101
+ ui: {
102
+ icon: '📝',
103
+ primaryColor: '#8B5CF6',
104
+ headerTitle: '文档助手',
105
+ headerDescription: '专业的文档创建和编辑助手',
106
+ welcomeMessage: '你好!我是文档助手,专门帮助你创建、编辑和优化各种文档。无论是技术文档还是普通文档,我都能为你提供专业建议!',
107
+ componentType: 'documents'
108
+ },
109
+ fileTypes: ['.md', '.txt', '.rst', '.adoc'],
110
+ tags: ['documentation', 'writing', 'markdown', 'content'],
111
+ enabled: true
112
+ },
113
+ {
114
+ id: 'general-chat',
115
+ name: '通用聊天助手',
116
+ description: '通用的AI聊天助手,适用于各种对话和咨询',
117
+ systemPrompt: `You are a general-purpose AI assistant. You can help with:
118
+ - General questions and conversations
119
+ - Problem-solving and brainstorming
120
+ - Information and explanations
121
+ - Creative tasks and writing
122
+ - Analysis and research
123
+ - File operations when needed
124
+
125
+ You are helpful, harmless, and honest. Always strive to provide accurate and useful information.
126
+ Please respond in Chinese unless the user specifically requests another language.`,
127
+ allowedTools: [
128
+ { name: 'Write', enabled: true },
129
+ { name: 'Read', enabled: true },
130
+ { name: 'Edit', enabled: true },
131
+ { name: 'Glob', enabled: true },
132
+ { name: 'MultiEdit', enabled: true },
133
+ { name: 'Bash', enabled: true },
134
+ { name: 'Task', enabled: true },
135
+ { name: 'WebFetch', enabled: true },
136
+ { name: 'WebSearch', enabled: true }
137
+ ],
138
+ ui: {
139
+ icon: '💬',
140
+ primaryColor: '#6366F1',
141
+ headerTitle: '通用聊天',
142
+ headerDescription: '与AI进行自由对话和咨询',
143
+ welcomeMessage: '你好!我是通用AI助手,可以帮你解答问题、进行对话、处理各种任务。有什么我可以帮助你的吗?',
144
+ componentType: 'chat'
145
+ },
146
+ tags: ['general', 'chat', 'conversation', 'assistant'],
147
+ enabled: true
148
+ }
149
+ ];
150
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ export interface SubagentTool {
2
+ name: string;
3
+ enabled: boolean;
4
+ permissions?: {
5
+ requireConfirmation?: boolean;
6
+ allowedPaths?: string[];
7
+ blockedPaths?: string[];
8
+ };
9
+ }
10
+ export interface Subagent {
11
+ id: string;
12
+ name: string;
13
+ description: string;
14
+ version: string;
15
+ systemPrompt: string;
16
+ maxTurns: number;
17
+ permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan';
18
+ model: string;
19
+ allowedTools: SubagentTool[];
20
+ ui: {
21
+ icon: string;
22
+ primaryColor: string;
23
+ headerTitle: string;
24
+ headerDescription: string;
25
+ welcomeMessage?: string;
26
+ componentType: 'slides' | 'chat' | 'documents' | 'code' | 'custom';
27
+ customComponent?: string;
28
+ };
29
+ workingDirectory?: string;
30
+ dataDirectory?: string;
31
+ fileTypes?: string[];
32
+ author: string;
33
+ homepage?: string;
34
+ tags: string[];
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ enabled: boolean;
38
+ projects?: string[];
39
+ }
40
+ export interface SubagentCreate {
41
+ name: string;
42
+ description: string;
43
+ systemPrompt: string;
44
+ model: string;
45
+ allowedTools: SubagentTool[];
46
+ ui: {
47
+ icon: string;
48
+ primaryColor: string;
49
+ headerTitle: string;
50
+ headerDescription: string;
51
+ welcomeMessage?: string;
52
+ componentType: 'slides' | 'chat' | 'documents' | 'code' | 'custom';
53
+ customComponent?: string;
54
+ };
55
+ workingDirectory?: string;
56
+ dataDirectory?: string;
57
+ fileTypes?: string[];
58
+ author: string;
59
+ tags: string[];
60
+ }
61
+ export interface SubagentUpdate {
62
+ name?: string;
63
+ description?: string;
64
+ systemPrompt?: string;
65
+ model?: string;
66
+ allowedTools?: SubagentTool[];
67
+ ui?: {
68
+ icon?: string;
69
+ primaryColor?: string;
70
+ headerTitle?: string;
71
+ headerDescription?: string;
72
+ welcomeMessage?: string;
73
+ componentType?: 'slides' | 'chat' | 'documents' | 'code' | 'custom';
74
+ customComponent?: string;
75
+ };
76
+ workingDirectory?: string;
77
+ dataDirectory?: string;
78
+ fileTypes?: string[];
79
+ author?: string;
80
+ tags?: string[];
81
+ enabled?: boolean;
82
+ }
83
+ export interface SubagentFilter {
84
+ search?: string;
85
+ tags?: string[];
86
+ enabled?: boolean;
87
+ }
88
+ //# sourceMappingURL=subagents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents.d.ts","sourceRoot":"","sources":["../../src/types/subagents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=subagents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents.js","sourceRoot":"","sources":["../../src/types/subagents.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { AgentConfig } from '../types/index.js';
2
+ export declare class AgentStorage {
3
+ private dataDir;
4
+ constructor(dataDir?: string);
5
+ private getAgentPath;
6
+ saveAgent(agent: AgentConfig): Promise<void>;
7
+ loadAgent(agentId: string): Promise<AgentConfig | null>;
8
+ deleteAgent(agentId: string): Promise<void>;
9
+ listAgents(): Promise<AgentConfig[]>;
10
+ agentExists(agentId: string): Promise<boolean>;
11
+ getAllAgents(): Promise<AgentConfig[]>;
12
+ getAgent(agentId: string): Promise<AgentConfig | null>;
13
+ createAgent(agentData: Omit<AgentConfig, 'createdAt' | 'updatedAt'>): Promise<AgentConfig>;
14
+ getAgentSessions(agentId: string, search?: string): Promise<any[]>;
15
+ getSession(agentId: string, sessionId: string): Promise<any | null>;
16
+ createSession(agentId: string, title: string): Promise<any>;
17
+ deleteSession(agentId: string, sessionId: string): Promise<boolean>;
18
+ }
19
+ //# sourceMappingURL=agentStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentStorage.d.ts","sourceRoot":"","sources":["../../src/utils/agentStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAI5B,OAAO,CAAC,YAAY;IAId,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAYvD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAsBpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpD,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKtC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAKhD,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAahG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAKlE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAKnE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAW3D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIpE"}
@@ -0,0 +1,110 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+ export class AgentStorage {
7
+ dataDir;
8
+ constructor(dataDir) {
9
+ this.dataDir = dataDir || path.join(__dirname, '../../data/agents');
10
+ }
11
+ getAgentPath(agentId) {
12
+ return path.join(this.dataDir, `${agentId}.json`);
13
+ }
14
+ async saveAgent(agent) {
15
+ await fs.ensureDir(this.dataDir);
16
+ const agentPath = this.getAgentPath(agent.id);
17
+ await fs.writeJson(agentPath, agent, { spaces: 2 });
18
+ }
19
+ async loadAgent(agentId) {
20
+ const agentPath = this.getAgentPath(agentId);
21
+ try {
22
+ if (await fs.pathExists(agentPath)) {
23
+ return await fs.readJson(agentPath);
24
+ }
25
+ }
26
+ catch (error) {
27
+ console.error(`Error loading agent ${agentId}:`, error);
28
+ }
29
+ return null;
30
+ }
31
+ async deleteAgent(agentId) {
32
+ const agentPath = this.getAgentPath(agentId);
33
+ try {
34
+ if (await fs.pathExists(agentPath)) {
35
+ await fs.remove(agentPath);
36
+ }
37
+ }
38
+ catch (error) {
39
+ console.error(`Error deleting agent ${agentId}:`, error);
40
+ throw error;
41
+ }
42
+ }
43
+ async listAgents() {
44
+ await fs.ensureDir(this.dataDir);
45
+ const files = await fs.readdir(this.dataDir);
46
+ const agents = [];
47
+ for (const file of files) {
48
+ if (file.endsWith('.json')) {
49
+ const agentId = path.basename(file, '.json');
50
+ try {
51
+ const agent = await this.loadAgent(agentId);
52
+ if (agent) {
53
+ agents.push(agent);
54
+ }
55
+ }
56
+ catch (error) {
57
+ console.error(`Error loading agent from file ${file}:`, error);
58
+ }
59
+ }
60
+ }
61
+ return agents;
62
+ }
63
+ async agentExists(agentId) {
64
+ const agentPath = this.getAgentPath(agentId);
65
+ return await fs.pathExists(agentPath);
66
+ }
67
+ // Alias for listAgents to match route usage
68
+ getAllAgents() {
69
+ return this.listAgents();
70
+ }
71
+ // Alias for loadAgent to match route usage
72
+ getAgent(agentId) {
73
+ return this.loadAgent(agentId);
74
+ }
75
+ // Create agent method
76
+ async createAgent(agentData) {
77
+ const now = new Date().toISOString();
78
+ const agent = {
79
+ ...agentData,
80
+ createdAt: now,
81
+ updatedAt: now
82
+ };
83
+ await this.saveAgent(agent);
84
+ return agent;
85
+ }
86
+ // Session-related methods (stubs for now)
87
+ getAgentSessions(agentId, search) {
88
+ // This would need session storage implementation
89
+ return Promise.resolve([]);
90
+ }
91
+ getSession(agentId, sessionId) {
92
+ // This would need session storage implementation
93
+ return Promise.resolve(null);
94
+ }
95
+ createSession(agentId, title) {
96
+ // This would need session storage implementation
97
+ const session = {
98
+ id: `session-${Date.now()}`,
99
+ title,
100
+ createdAt: new Date().toISOString(),
101
+ updatedAt: new Date().toISOString()
102
+ };
103
+ return Promise.resolve(session);
104
+ }
105
+ deleteSession(agentId, sessionId) {
106
+ // This would need session storage implementation
107
+ return Promise.resolve(true);
108
+ }
109
+ }
110
+ //# sourceMappingURL=agentStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentStorage.js","sourceRoot":"","sources":["../../src/utils/agentStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export interface ClaudeVersion {
2
+ id: string;
3
+ name: string;
4
+ model: string;
5
+ description: string;
6
+ isDefault: boolean;
7
+ executablePath: string;
8
+ environmentVariables: Record<string, string>;
9
+ alias?: string;
10
+ createdAt: string;
11
+ updatedAt: string;
12
+ }
13
+ export declare class ClaudeVersionStorage {
14
+ private dataDir;
15
+ constructor(dataDir?: string);
16
+ private getVersionsPath;
17
+ saveVersions(versions: ClaudeVersion[]): Promise<void>;
18
+ loadVersions(): Promise<ClaudeVersion[]>;
19
+ getDefaultVersionId(): Promise<string>;
20
+ setDefaultVersion(versionId: string): Promise<void>;
21
+ createVersion(version: Omit<ClaudeVersion, 'id' | 'createdAt' | 'updatedAt'>): Promise<ClaudeVersion>;
22
+ updateVersion(versionId: string, updates: Partial<ClaudeVersion>): Promise<ClaudeVersion | null>;
23
+ deleteVersion(versionId: string): Promise<boolean>;
24
+ initializeSystemVersion(): Promise<void>;
25
+ }
26
+ export declare const getAllVersions: () => Promise<ClaudeVersion[]>;
27
+ export declare const getDefaultVersionId: () => Promise<string>;
28
+ export declare const setDefaultVersion: (versionId: string) => Promise<void>;
29
+ export declare const createVersion: (version: Omit<ClaudeVersion, "id" | "createdAt" | "updatedAt">) => Promise<ClaudeVersion>;
30
+ export declare const updateVersion: (versionId: string, updates: Partial<ClaudeVersion>) => Promise<ClaudeVersion | null>;
31
+ export declare const deleteVersion: (versionId: string) => Promise<boolean>;
32
+ export declare const initializeSystemVersion: () => Promise<void>;
33
+ //# sourceMappingURL=claudeVersionStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeVersionStorage.d.ts","sourceRoot":"","sources":["../../src/utils/claudeVersionStorage.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAI5B,OAAO,CAAC,eAAe;IAIjB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAoDxC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMtC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAcrG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAchG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB/C;AAGD,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,aAAa,EAAE,CAG9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,MAAM,CAG1D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAGvE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,SAAS,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,KAAG,OAAO,CAAC,aAAa,CAGzH,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,WAAW,MAAM,EAAE,SAAS,OAAO,CAAC,aAAa,CAAC,KAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAGpH,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAGtE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAa,OAAO,CAAC,IAAI,CAG5D,CAAC"}