aiexecode 1.0.94 → 1.0.96

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.

Potentially problematic release.


This version of aiexecode might be problematic. Click here for more details.

Files changed (51) hide show
  1. package/README.md +210 -87
  2. package/index.js +33 -1
  3. package/package.json +3 -3
  4. package/payload_viewer/out/404/index.html +1 -1
  5. package/payload_viewer/out/404.html +1 -1
  6. package/payload_viewer/out/_next/static/chunks/{37d0cd2587a38f79.js → b6c0459f3789d25c.js} +1 -1
  7. package/payload_viewer/out/_next/static/chunks/b75131b58f8ca46a.css +3 -0
  8. package/payload_viewer/out/index.html +1 -1
  9. package/payload_viewer/out/index.txt +3 -3
  10. package/payload_viewer/web_server.js +361 -0
  11. package/src/LLMClient/client.js +392 -16
  12. package/src/LLMClient/converters/responses-to-claude.js +67 -18
  13. package/src/LLMClient/converters/responses-to-zai.js +608 -0
  14. package/src/LLMClient/errors.js +18 -4
  15. package/src/LLMClient/index.js +5 -0
  16. package/src/ai_based/completion_judge.js +35 -4
  17. package/src/ai_based/orchestrator.js +146 -35
  18. package/src/commands/agents.js +70 -0
  19. package/src/commands/commands.js +51 -0
  20. package/src/commands/debug.js +52 -0
  21. package/src/commands/help.js +11 -1
  22. package/src/commands/model.js +43 -7
  23. package/src/commands/skills.js +46 -0
  24. package/src/config/ai_models.js +96 -5
  25. package/src/config/constants.js +71 -0
  26. package/src/frontend/components/HelpView.js +106 -2
  27. package/src/frontend/components/SetupWizard.js +53 -8
  28. package/src/frontend/utils/toolUIFormatter.js +261 -0
  29. package/src/system/agents_loader.js +289 -0
  30. package/src/system/ai_request.js +147 -9
  31. package/src/system/command_parser.js +33 -3
  32. package/src/system/conversation_state.js +265 -0
  33. package/src/system/custom_command_loader.js +386 -0
  34. package/src/system/session.js +59 -35
  35. package/src/system/skill_loader.js +318 -0
  36. package/src/system/tool_approval.js +10 -0
  37. package/src/tools/file_reader.js +49 -9
  38. package/src/tools/glob.js +0 -3
  39. package/src/tools/ripgrep.js +5 -7
  40. package/src/tools/skill_tool.js +122 -0
  41. package/src/tools/web_downloader.js +0 -3
  42. package/src/util/clone.js +174 -0
  43. package/src/util/config.js +38 -2
  44. package/src/util/config_migration.js +174 -0
  45. package/src/util/path_validator.js +178 -0
  46. package/src/util/prompt_loader.js +68 -1
  47. package/src/util/safe_fs.js +43 -3
  48. package/payload_viewer/out/_next/static/chunks/ecd2072ebf41611f.css +0 -3
  49. /package/payload_viewer/out/_next/static/{wkEKh6i9XPSyP6rjDRvHn → lHmNygVpv4N1VR0LdnwkJ}/_buildManifest.js +0 -0
  50. /package/payload_viewer/out/_next/static/{wkEKh6i9XPSyP6rjDRvHn → lHmNygVpv4N1VR0LdnwkJ}/_clientMiddlewareManifest.json +0 -0
  51. /package/payload_viewer/out/_next/static/{wkEKh6i9XPSyP6rjDRvHn → lHmNygVpv4N1VR0LdnwkJ}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
- **AI-Powered Autonomous Coding Assistant**
5
+ **AI-Powered Autonomous Coding Agent**
6
6
 
7
7
  *by 코드깎는노인*
8
8
 
@@ -12,19 +12,26 @@
12
12
 
13
13
  ---
14
14
 
15
- ## What is this
15
+ ## What is AIEXEcode?
16
16
 
17
- **AIEXEcode** is a CLI tool where you simply describe what you want in natural language, and AI handles the coding for you.
17
+ **AIEXEcode** is a CLI-based AI coding agent that autonomously handles software development tasks. Simply describe what you want in natural language, and the AI will analyze, plan, and execute the work for you.
18
18
 
19
- Just say things like "fix the lint errors in this file" or "add login functionality", and the AI will analyze the code, create a plan, and execute it. No complex commands or configurations needed - just speak naturally.
19
+ ### Key Features
20
20
 
21
- ### What you can do
21
+ - **Natural Language Interface**: Just describe what you want - no complex commands needed
22
+ - **Autonomous Execution**: AI analyzes code, creates plans, and executes them automatically
23
+ - **Session Management**: Pause and resume work anytime with session IDs
24
+ - **Log Viewer**: Web-based UI to review AI's actions and decisions
25
+ - **MCP Integration**: Extend capabilities with Model Context Protocol servers
26
+ - **Multi-Provider Support**: Works with OpenAI and Z.AI models
22
27
 
23
- - 🐛 **Bug Fixes**: "Fix the error that occurs during login"
24
- - ✨ **Add Features**: "Create a profile editing feature"
25
- - 🔄 **Refactoring**: "Clean up auth.js to make it more readable"
26
- - 🧪 **Write Tests**: "Write test code for all APIs"
27
- - 📝 **Documentation**: "Add description comments to main functions"
28
+ ### What You Can Do
29
+
30
+ - **Bug Fixes**: "Fix the authentication error in login.js"
31
+ - **Add Features**: "Create a user profile editing feature"
32
+ - **Refactoring**: "Clean up the auth module for better readability"
33
+ - **Write Tests**: "Write unit tests for all API endpoints"
34
+ - **Documentation**: "Add JSDoc comments to main functions"
28
35
 
29
36
  ---
30
37
 
@@ -32,13 +39,14 @@ Just say things like "fix the lint errors in this file" or "add login functional
32
39
 
33
40
  ### System Requirements
34
41
 
35
- **Supported Operating Systems:**
36
- - macOS
37
- - Linux
38
-
39
- **⚠️ Windows is not currently supported.**
42
+ | Requirement | Details |
43
+ |-------------|---------|
44
+ | **OS** | macOS, Linux (Windows not supported) |
45
+ | **Node.js** | 18.0.0 or higher |
46
+ | **npm** | 8.0.0 or higher |
47
+ | **ripgrep** | Required for code search |
40
48
 
41
- ### 1. Install ripgrep (Required)
49
+ ### Step 1: Install ripgrep
42
50
 
43
51
  **macOS:**
44
52
  ```bash
@@ -60,177 +68,292 @@ sudo dnf install ripgrep
60
68
  sudo pacman -S ripgrep
61
69
  ```
62
70
 
63
- ### 2. Install AIEXEcode
71
+ ### Step 2: Install AIEXEcode
64
72
 
65
73
  ```bash
66
74
  npm install -g aiexecode
67
75
  ```
68
76
 
69
- Done! The `aiexecode` command is now available everywhere.
70
-
71
77
  ---
72
78
 
73
79
  ## Getting Started
74
80
 
75
- ### Step 1: Initial Setup (First Time Only)
81
+ ### First Run Setup
76
82
 
77
83
  ```bash
78
84
  aiexecode
79
85
  ```
80
86
 
81
- On first run, the setup wizard appears:
82
- 1. Enter API key
83
- 2. Select model
87
+ On first run, the setup wizard will guide you through:
88
+
89
+ 1. **Enter API Key** - Your OpenAI or Z.AI API key
90
+ 2. **Select Model** - Choose from available models
91
+ 3. **Reasoning Effort** (OpenAI only) - Set AI's thinking depth
84
92
 
85
93
  **Where to get API keys:**
86
- - OpenAI: https://platform.openai.com/account/api-keys
87
- - Anthropic: https://console.anthropic.com/settings/keys
94
+ - **OpenAI**: https://platform.openai.com/account/api-keys
95
+ - **Z.AI**: https://z.ai/manage-apikey/apikey-list
88
96
 
89
- ### Step 2: Using It
97
+ ### Basic Usage
90
98
 
91
99
  **Interactive Mode (Recommended):**
92
100
  ```bash
93
101
  aiexecode
94
102
  ```
95
103
 
96
- A prompt appears, and you can enter your desired task:
104
+ Then enter your requests naturally:
97
105
  ```
98
- > Refactor the user authentication module
99
- > Fix all lint errors
106
+ > Fix all lint errors in src/
107
+ > Add input validation to the signup form
100
108
  > /exit
101
109
  ```
102
110
 
103
- **Quick Execution (Optional):**
111
+ **Direct Execution:**
112
+ ```bash
113
+ aiexecode "create a REST API for user management"
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Supported Models
119
+
120
+ ### OpenAI (GPT-5 Series)
121
+
122
+ | Model | Description | Context | Max Output |
123
+ |-------|-------------|---------|------------|
124
+ | `gpt-5` | Full-featured model | 400K | 128K |
125
+ | `gpt-5-mini` | Default, balanced | 400K | 128K |
126
+ | `gpt-5-nano` | Lightweight, fast | 400K | 128K |
127
+ | `gpt-5-codex` | Coding optimized | 400K | 128K |
128
+
129
+ - Supports **Reasoning Effort**: minimal, low, medium (default), high
130
+
131
+ ### Z.AI (GLM Series)
132
+
133
+ | Model | Description | Context | Max Output |
134
+ |-------|-------------|---------|------------|
135
+ | `glm-4.7` | Latest model | 128K | 8K |
136
+ | `glm-4.5-air` | Fast, lightweight | 128K | 8K |
137
+ | `glm-4.5` | Standard model | 128K | 8K |
138
+
139
+ - Supports **Thinking Mode**, prompt caching, and server-side web search
140
+
141
+ Use `/model list` to see all models or `/model <name>` to switch.
142
+
143
+ ---
144
+
145
+ ## Commands
146
+
147
+ ### CLI Options
148
+
104
149
  ```bash
105
- aiexecode "simple task"
150
+ aiexecode # Interactive mode
151
+ aiexecode "task description" # Direct execution
152
+ aiexecode -c <session_id> # Continue previous session
153
+ aiexecode -c <session_id> "new task" # Continue with new task
154
+ aiexecode --init # Initialize project prompts
155
+ aiexecode --viewer # Start log viewer (port 3300)
156
+ aiexecode --viewer --port 8080 # Log viewer on custom port
157
+ aiexecode --dangerously-skip-permissions "task" # Skip approval prompts
106
158
  ```
107
159
 
108
- That's all there is to it!
160
+ ### Interactive Commands
161
+
162
+ | Command | Description |
163
+ |---------|-------------|
164
+ | `/help` | Show all available commands |
165
+ | `/exit` | Exit the application |
166
+ | `/clear` | Clear the screen |
167
+ | `/apikey` | Change API key |
168
+ | `/model` | Select AI model |
169
+ | `/model list` | List all available models |
170
+ | `/reasoning_effort` | Set reasoning level (OpenAI) |
171
+ | `/tools` | Enable/disable tools |
172
+ | `/mcp` | View MCP server status |
173
+ | `/agents` | Show AGENTS.md content |
174
+ | `/skills` | List project skills |
175
+ | `/commands` | List custom commands |
109
176
 
110
177
  ---
111
178
 
112
- ## Frequently Used Features
179
+ ## Session Management
113
180
 
114
- ### Continue Previous Work
181
+ AIEXEcode automatically saves your work sessions, allowing you to pause and resume later.
115
182
 
116
- You can pause work and continue later:
183
+ ### How It Works
117
184
 
118
185
  ```bash
119
- # First start
186
+ # Start a new session
120
187
  aiexecode
121
- > Create large file processing feature
122
- # Output: New session ID: abc1234567890def
188
+ > Create a large file processing feature
189
+ # Output: Session ID: abc1234567890def
123
190
 
124
191
  # Continue later
125
192
  aiexecode -c abc1234567890def
126
- > Now add error handling too
193
+ > Now add error handling
127
194
  ```
128
195
 
129
- ### View Logs
196
+ Sessions are stored in `.aiexe/<session_id>/` and include:
197
+ - Complete conversation history
198
+ - Tool execution logs
199
+ - File modification records
200
+
201
+ ---
202
+
203
+ ## Log Viewer
130
204
 
131
- If you're curious what the AI did, you can view it in a web browser:
205
+ Review what the AI did through a web-based interface.
132
206
 
133
207
  ```bash
134
208
  aiexecode --viewer
135
209
  ```
136
210
 
137
- Open `http://localhost:3300` in your browser to see:
211
+ Open `http://localhost:3300` to see:
138
212
  - Commands executed by AI
139
213
  - File modification history
140
214
  - AI's thinking process
215
+ - API request/response logs
141
216
 
142
- ### Interactive Commands
217
+ ---
218
+
219
+ ## MCP Server Integration
143
220
 
144
- Convenient commands you can use during conversation:
221
+ Extend AIEXEcode's capabilities by connecting Model Context Protocol (MCP) servers.
145
222
 
223
+ ### Adding MCP Servers
224
+
225
+ **stdio-based server:**
146
226
  ```bash
147
- /help # Help
148
- /exit # Exit
149
- /clear # Clear screen
150
- /apikey # Change API key
151
- /model # Change model
227
+ aiexecode mcp add --transport stdio github -- npx -y @modelcontextprotocol/server-github
152
228
  ```
153
229
 
154
- ---
230
+ **HTTP-based server:**
231
+ ```bash
232
+ aiexecode mcp add --transport http myserver http://localhost:3000
233
+ ```
155
234
 
156
- ## Supported Models
235
+ **JSON configuration:**
236
+ ```bash
237
+ aiexecode mcp add-json github '{"type":"stdio","command":"npx","args":["-y","@modelcontextprotocol/server-github"]}'
238
+ ```
157
239
 
158
- AIEXEcode supports OpenAI GPT-5 series models:
159
- - gpt-5
160
- - gpt-5-mini (default)
161
- - gpt-5-nano
162
- - gpt-5-codex
240
+ ### Managing MCP Servers
163
241
 
164
- Use `/model list` to see all available models or `/model <model-name>` to switch models.
242
+ ```bash
243
+ aiexecode mcp list # List all servers
244
+ aiexecode mcp get <name> # Get server details
245
+ aiexecode mcp remove <name> # Remove a server
246
+ ```
247
+
248
+ ### In Interactive Mode
249
+
250
+ ```bash
251
+ /mcp # Show all MCP servers and tools
252
+ /mcp <server-name> # Show specific server's tools
253
+ ```
165
254
 
166
255
  ---
167
256
 
168
- ## Advanced Features
257
+ ## Project Customization
169
258
 
170
- ### Project-Specific Customization
259
+ ### Custom Prompts
171
260
 
172
- If you want different AI behavior for each project:
261
+ Initialize project-specific AI behavior:
173
262
 
174
263
  ```bash
175
264
  aiexecode --init
176
265
  ```
177
266
 
178
- A `.aiexe/prompts/` folder is created where you can customize AI behavior.
267
+ This creates `.aiexe/prompts/` where you can customize how AI behaves for your project.
179
268
 
180
- ### Extend with MCP Servers
269
+ ### Custom Commands
181
270
 
182
- If you need more powerful features, you can connect MCP servers:
271
+ Add JavaScript files to `.aiexe/commands/` for project-specific slash commands.
183
272
 
184
- ```bash
185
- # Connect GitHub
186
- aiexecode mcp add --transport stdio github -- npx -y @modelcontextprotocol/server-github
273
+ ### Skills
187
274
 
188
- # View connected servers
189
- aiexecode mcp list
190
- ```
275
+ Add JavaScript files to `.aiexe/skills/` for reusable AI capabilities.
276
+
277
+ ### AGENTS.md
278
+
279
+ Create an `AGENTS.md` file in your project root to provide additional context to the AI about your project's conventions and requirements.
280
+
281
+ ---
282
+
283
+ ## Configuration
284
+
285
+ ### Settings Location
286
+
287
+ | Path | Description |
288
+ |------|-------------|
289
+ | `~/.aiexe/settings.json` | Main configuration |
290
+ | `~/.aiexe/mcp_config.json` | MCP server settings |
291
+ | `~/.aiexe/skills/` | Personal skills |
292
+ | `~/.aiexe/commands/` | Personal commands |
293
+ | `.aiexe/` | Project-specific settings |
294
+
295
+ ### Available Tools
296
+
297
+ AIEXEcode provides these built-in tools for AI:
298
+
299
+ - `edit_file_range` - Edit specific line ranges
300
+ - `edit_file_replace` - Replace exact strings
301
+ - `write_file` - Create or overwrite files
302
+ - `read_file` - Read entire files
303
+ - `read_file_range` - Read specific line ranges
304
+ - `bash` - Execute shell commands
305
+ - `run_python_code` - Run Python scripts
306
+ - `fetch_web_page` - Fetch web content
307
+ - `ripgrep` - Search code with ripgrep
308
+ - `glob_search` - Find files by pattern
309
+
310
+ Enable/disable tools with `/tools enable|disable <tool-name>`.
191
311
 
192
312
  ---
193
313
 
194
- ## Requirements
314
+ ## Requirements Summary
195
315
 
196
316
  **Required:**
197
- - macOS or Linux (Windows not supported)
198
- - Node.js 14 or higher
199
- - ripgrep (code search tool)
200
- - OpenAI API key
317
+ - macOS or Linux
318
+ - Node.js 18+
319
+ - npm 8+
320
+ - ripgrep
321
+ - API key (OpenAI or Z.AI)
201
322
 
202
323
  **Optional:**
203
- - Python 3 (for Python code execution support)
324
+ - Python 3 (for Python code execution)
204
325
 
205
326
  ---
206
327
 
207
328
  ## Contact
208
329
 
209
- - Website: https://aiexecode.com
210
- - Report bugs: https://github.com/kstost/aiexecode/issues
330
+ - **Website**: https://aiexecode.com
331
+ - **Issues**: https://github.com/kstost/aiexecode/issues
211
332
 
212
333
  ---
213
334
 
214
335
  ## Disclaimer
215
336
 
216
- **THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED.**
337
+ **THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.**
338
+
339
+ **IN NO EVENT SHALL THE AUTHORS, COPYRIGHT HOLDERS, OR CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**
217
340
 
218
- AIEXEcode is an experimental project. By using this software, you acknowledge and agree that:
341
+ This includes, without limitation:
342
+ - Data loss or corruption
343
+ - System damage or malfunction
344
+ - Security breaches or vulnerabilities
345
+ - Financial losses
346
+ - Any direct, indirect, incidental, special, exemplary, or consequential damages
219
347
 
220
- - This tool is provided for experimental and educational purposes
221
- - The developers and contributors are not liable for any damages, data loss, or issues arising from the use of this software
222
- - Users assume all risks associated with using an AI-powered code modification tool
223
- - Always review AI-generated code changes before committing them to production
224
- - Maintain proper backups of your codebase before using this tool
225
- - The software may produce unexpected results or behaviors
348
+ **The user assumes full responsibility for all consequences arising from the use of this software, regardless of whether such use was intended, authorized, or anticipated.**
226
349
 
227
- **USE AT YOUR OWN RISK.** The authors and contributors shall not be held responsible for any direct, indirect, incidental, special, exemplary, or consequential damages arising from the use of this software.
350
+ **USE AT YOUR OWN RISK.**
228
351
 
229
352
  ---
230
353
 
231
354
  <div align="center">
232
355
 
233
- **AIEXEcode** - AI Coding Assistant for Developers
356
+ **AIEXEcode** - AI Coding Agent for Developers
234
357
 
235
358
  Made by 코드깎는노인
236
359
 
package/index.js CHANGED
@@ -39,6 +39,7 @@ program
39
39
  .option('--viewer', 'Start payload viewer web server')
40
40
  .option('-p, --port <port>', 'Port for payload viewer (default: 3300)', '3300')
41
41
  .option('--init', 'Initialize project-specific prompts in current directory')
42
+ .option('--dangerously-skip-permissions', 'Skip all tool approval prompts (use with caution)')
42
43
  .argument('[mission]', 'Natural language task description (e.g., "refactor auth module")')
43
44
  .action((mission, options) => {
44
45
  // 메인 커맨드 action 핸들러
@@ -58,6 +59,8 @@ Examples:
58
59
  Start payload viewer on default port (3300)
59
60
  $ aiexecode --viewer --port 8000
60
61
  Start payload viewer on custom port
62
+ $ aiexecode --dangerously-skip-permissions "build the project"
63
+ Run without tool approval prompts (use with caution)
61
64
 
62
65
  Available Slash Commands (in interactive mode):
63
66
  /help Show all available commands
@@ -105,6 +108,7 @@ const shouldContinue = options.continue;
105
108
  const viewerMode = options.viewer;
106
109
  const initMode = options.init;
107
110
  const viewerPort = parseInt(options.port, 10);
111
+ const dangerouslySkipPermissions = options.dangerouslySkipPermissions || false;
108
112
  let mission = args[0];
109
113
 
110
114
  // Init 모드 처리
@@ -170,6 +174,7 @@ if (viewerMode) {
170
174
  // 전역 설정
171
175
  process.app_custom = {};
172
176
  process.app_custom.__dirname = dirname(fileURLToPath(import.meta.url));
177
+ process.app_custom.dangerouslySkipPermissions = dangerouslySkipPermissions;
173
178
 
174
179
  // 개발 모드 감지: 현재 디렉토리에서 node index.js로 실행했는지 확인
175
180
  // (글로벌 설치 후 aiexecode 명령으로 실행 시에는 다른 경로에서 실행됨)
@@ -451,7 +456,34 @@ async function handleSubmit(text) {
451
456
  // 슬래시 커맨드 처리
452
457
  if (isCommand(text)) {
453
458
  try {
454
- await commandRegistry.execute(text);
459
+ const result = await commandRegistry.execute(text);
460
+
461
+ // 커스텀 커맨드가 반환된 경우 AI에게 전달하여 실행
462
+ if (result && result.type === 'custom_command') {
463
+ debugLog(`Custom command invoked: ${result.commandName}`);
464
+ uiEvents.addSystemMessage(`📋 Command: ${result.commandName}`);
465
+
466
+ // 커맨드의 프롬프트를 미션으로 사용하여 세션 실행
467
+ await runSession({
468
+ mission: result.prompt,
469
+ maxIterations: 50,
470
+ mcpToolSchemas,
471
+ mcpToolFunctions
472
+ });
473
+ }
474
+ // 스킬이 반환된 경우 AI에게 전달하여 실행
475
+ else if (result && result.type === 'skill') {
476
+ debugLog(`Skill invoked: ${result.skillName}`);
477
+ uiEvents.addSystemMessage(`🎯 Skill: ${result.skillName}`);
478
+
479
+ // 스킬의 프롬프트를 미션으로 사용하여 세션 실행
480
+ await runSession({
481
+ mission: result.prompt,
482
+ maxIterations: 50,
483
+ mcpToolSchemas,
484
+ mcpToolFunctions
485
+ });
486
+ }
455
487
  } catch (err) {
456
488
  debugLog(`Command execution error: ${err.message}`);
457
489
  uiEvents.addErrorMessage(`${err.message}\nType /help to see available commands`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiexecode",
3
- "version": "1.0.94",
3
+ "version": "1.0.96",
4
4
  "description": "A CLI-based AI Coding Agent",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -21,8 +21,8 @@
21
21
  "LICENSE"
22
22
  ],
23
23
  "engines": {
24
- "node": ">= 14.0.0",
25
- "npm": ">= 6.0.0"
24
+ "node": ">= 18.0.0",
25
+ "npm": ">= 8.0.0"
26
26
  },
27
27
  "homepage": "https://aiexecode.com",
28
28
  "repository": {
@@ -1 +1 @@
1
- <!DOCTYPE html><!--wkEKh6i9XPSyP6rjDRvHn--><html lang="ko" class="dark h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/ecd2072ebf41611f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e411019f55d87c42.js"/><script src="/_next/static/chunks/103c802c8f4a5ea1.js" async=""></script><script src="/_next/static/chunks/305b077a9873cf54.js" async=""></script><script src="/_next/static/chunks/turbopack-0ac29803ce3c3c7a.js" async=""></script><script src="/_next/static/chunks/060f9a97930f3d04.js" async=""></script><script src="/_next/static/chunks/cdd12d5c1a5a6064.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Payload Log Viewer</title><meta name="description" content="AI Agent 로그 파일 뷰어 및 편집기"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div data-rht-toaster="" style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><script src="/_next/static/chunks/e411019f55d87c42.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n4:I[5766,[\"/_next/static/chunks/cdd12d5c1a5a6064.js\"],\"Toaster\"]\n5:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"OutletBoundary\"]\n7:I[11533,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"AsyncMetadataOutlet\"]\n9:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[68027,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n:HL[\"/_next/static/chunks/ecd2072ebf41611f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"wkEKh6i9XPSyP6rjDRvHn\",\"p\":\"\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/ecd2072ebf41611f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/cdd12d5c1a5a6064.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"dark h-full\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{\"position\":\"bottom-right\",\"toastOptions\":{\"duration\":4000,\"style\":{\"background\":\"hsl(var(--background))\",\"color\":\"hsl(var(--foreground))\",\"border\":\"1px solid hsl(var(--border))\"}}}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"IconMark\"]\n8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Payload Log Viewer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Agent 로그 파일 뷰어 및 편집기\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--lHmNygVpv4N1VR0LdnwkJ--><html lang="ko" class="dark h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/b75131b58f8ca46a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e411019f55d87c42.js"/><script src="/_next/static/chunks/103c802c8f4a5ea1.js" async=""></script><script src="/_next/static/chunks/305b077a9873cf54.js" async=""></script><script src="/_next/static/chunks/turbopack-0ac29803ce3c3c7a.js" async=""></script><script src="/_next/static/chunks/060f9a97930f3d04.js" async=""></script><script src="/_next/static/chunks/cdd12d5c1a5a6064.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Payload Log Viewer</title><meta name="description" content="AI Agent 로그 파일 뷰어 및 편집기"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div data-rht-toaster="" style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><script src="/_next/static/chunks/e411019f55d87c42.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n4:I[5766,[\"/_next/static/chunks/cdd12d5c1a5a6064.js\"],\"Toaster\"]\n5:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"OutletBoundary\"]\n7:I[11533,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"AsyncMetadataOutlet\"]\n9:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[68027,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n:HL[\"/_next/static/chunks/b75131b58f8ca46a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"lHmNygVpv4N1VR0LdnwkJ\",\"p\":\"\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/b75131b58f8ca46a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/cdd12d5c1a5a6064.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"dark h-full\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{\"position\":\"bottom-right\",\"toastOptions\":{\"duration\":4000,\"style\":{\"background\":\"hsl(var(--background))\",\"color\":\"hsl(var(--foreground))\",\"border\":\"1px solid hsl(var(--border))\"}}}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"IconMark\"]\n8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Payload Log Viewer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Agent 로그 파일 뷰어 및 편집기\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><!--wkEKh6i9XPSyP6rjDRvHn--><html lang="ko" class="dark h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/ecd2072ebf41611f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e411019f55d87c42.js"/><script src="/_next/static/chunks/103c802c8f4a5ea1.js" async=""></script><script src="/_next/static/chunks/305b077a9873cf54.js" async=""></script><script src="/_next/static/chunks/turbopack-0ac29803ce3c3c7a.js" async=""></script><script src="/_next/static/chunks/060f9a97930f3d04.js" async=""></script><script src="/_next/static/chunks/cdd12d5c1a5a6064.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Payload Log Viewer</title><meta name="description" content="AI Agent 로그 파일 뷰어 및 편집기"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div data-rht-toaster="" style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><script src="/_next/static/chunks/e411019f55d87c42.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n4:I[5766,[\"/_next/static/chunks/cdd12d5c1a5a6064.js\"],\"Toaster\"]\n5:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"OutletBoundary\"]\n7:I[11533,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"AsyncMetadataOutlet\"]\n9:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[68027,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n:HL[\"/_next/static/chunks/ecd2072ebf41611f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"wkEKh6i9XPSyP6rjDRvHn\",\"p\":\"\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/ecd2072ebf41611f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/cdd12d5c1a5a6064.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"dark h-full\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{\"position\":\"bottom-right\",\"toastOptions\":{\"duration\":4000,\"style\":{\"background\":\"hsl(var(--background))\",\"color\":\"hsl(var(--foreground))\",\"border\":\"1px solid hsl(var(--border))\"}}}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"IconMark\"]\n8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Payload Log Viewer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Agent 로그 파일 뷰어 및 편집기\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--lHmNygVpv4N1VR0LdnwkJ--><html lang="ko" class="dark h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/b75131b58f8ca46a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e411019f55d87c42.js"/><script src="/_next/static/chunks/103c802c8f4a5ea1.js" async=""></script><script src="/_next/static/chunks/305b077a9873cf54.js" async=""></script><script src="/_next/static/chunks/turbopack-0ac29803ce3c3c7a.js" async=""></script><script src="/_next/static/chunks/060f9a97930f3d04.js" async=""></script><script src="/_next/static/chunks/cdd12d5c1a5a6064.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Payload Log Viewer</title><meta name="description" content="AI Agent 로그 파일 뷰어 및 편집기"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div data-rht-toaster="" style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><script src="/_next/static/chunks/e411019f55d87c42.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n4:I[5766,[\"/_next/static/chunks/cdd12d5c1a5a6064.js\"],\"Toaster\"]\n5:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"OutletBoundary\"]\n7:I[11533,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"AsyncMetadataOutlet\"]\n9:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[68027,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"default\"]\n:HL[\"/_next/static/chunks/b75131b58f8ca46a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"lHmNygVpv4N1VR0LdnwkJ\",\"p\":\"\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/b75131b58f8ca46a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/cdd12d5c1a5a6064.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"dark h-full\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased h-screen overflow-hidden\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{\"position\":\"bottom-right\",\"toastOptions\":{\"duration\":4000,\"style\":{\"background\":\"hsl(var(--background))\",\"color\":\"hsl(var(--foreground))\",\"border\":\"1px solid hsl(var(--border))\"}}}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:0:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/060f9a97930f3d04.js\"],\"IconMark\"]\n8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Payload Log Viewer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Agent 로그 파일 뷰어 및 편집기\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>