voice-mode 4.3.1__py3-none-any.whl → 4.4.0__py3-none-any.whl
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.
- voice_mode/__version__.py +1 -1
- voice_mode/cli.py +3 -2
- voice_mode/cli_commands/claude.py +6 -199
- voice_mode/cli_commands/hook.py +13 -16
- voice_mode/frontend/.next/BUILD_ID +1 -1
- voice_mode/frontend/.next/app-build-manifest.json +5 -5
- voice_mode/frontend/.next/build-manifest.json +3 -3
- voice_mode/frontend/.next/next-minimal-server.js.nft.json +1 -1
- voice_mode/frontend/.next/next-server.js.nft.json +1 -1
- voice_mode/frontend/.next/prerender-manifest.json +1 -1
- voice_mode/frontend/.next/required-server-files.json +1 -1
- voice_mode/frontend/.next/server/app/_not-found/page.js +1 -1
- voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/server/app/_not-found.html +1 -1
- voice_mode/frontend/.next/server/app/_not-found.rsc +1 -1
- voice_mode/frontend/.next/server/app/api/connection-details/route.js +2 -2
- voice_mode/frontend/.next/server/app/favicon.ico/route.js +2 -2
- voice_mode/frontend/.next/server/app/index.html +1 -1
- voice_mode/frontend/.next/server/app/index.rsc +2 -2
- voice_mode/frontend/.next/server/app/page.js +3 -3
- voice_mode/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/server/chunks/994.js +1 -1
- voice_mode/frontend/.next/server/middleware-build-manifest.js +1 -1
- voice_mode/frontend/.next/server/next-font-manifest.js +1 -1
- voice_mode/frontend/.next/server/next-font-manifest.json +1 -1
- voice_mode/frontend/.next/server/pages/404.html +1 -1
- voice_mode/frontend/.next/server/pages/500.html +1 -1
- voice_mode/frontend/.next/server/server-reference-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/BUILD_ID +1 -1
- voice_mode/frontend/.next/standalone/.next/app-build-manifest.json +5 -5
- voice_mode/frontend/.next/standalone/.next/build-manifest.json +3 -3
- voice_mode/frontend/.next/standalone/.next/prerender-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/required-server-files.json +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/index.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/index.rsc +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/page.js +3 -3
- voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/chunks/994.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/server/pages/404.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/pages/500.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/server.js +1 -1
- voice_mode/frontend/.next/static/chunks/app/{layout-b52135f331b36caf.js → layout-917e8410913fe899.js} +1 -1
- voice_mode/frontend/.next/static/chunks/app/{page-43b7b45e01f0aa87.js → page-ae0d14863ed895ea.js} +1 -1
- voice_mode/frontend/.next/static/chunks/{main-app-80dc9078926fc708.js → main-app-836e76fc70b52220.js} +1 -1
- voice_mode/frontend/.next/trace +43 -43
- voice_mode/frontend/.next/types/app/api/connection-details/route.ts +1 -1
- voice_mode/frontend/.next/types/app/layout.ts +1 -1
- voice_mode/frontend/.next/types/app/page.ts +1 -1
- voice_mode/frontend/package-lock.json +9 -9
- voice_mode/statistics_tracking.py +42 -0
- voice_mode/tools/__init__.py +41 -15
- voice_mode/tools/converse.py +1 -1
- voice_mode/tools/statistics.py +0 -33
- {voice_mode-4.3.1.dist-info → voice_mode-4.4.0.dist-info}/METADATA +33 -40
- {voice_mode-4.3.1.dist-info → voice_mode-4.4.0.dist-info}/RECORD +69 -69
- voice_mode/tools/claude_thinking.py +0 -285
- /voice_mode/frontend/.next/static/{uZHYPdRYOObTZ3MQHekp0 → WhZriRkBKVNPSmCnOFRav}/_buildManifest.js +0 -0
- /voice_mode/frontend/.next/static/{uZHYPdRYOObTZ3MQHekp0 → WhZriRkBKVNPSmCnOFRav}/_ssgManifest.js +0 -0
- {voice_mode-4.3.1.dist-info → voice_mode-4.4.0.dist-info}/WHEEL +0 -0
- {voice_mode-4.3.1.dist-info → voice_mode-4.4.0.dist-info}/entry_points.txt +0 -0
voice_mode/__version__.py
CHANGED
voice_mode/cli.py
CHANGED
@@ -1394,8 +1394,9 @@ transcribe_audio_cmd = transcribe_cmd.transcribe.commands['audio']
|
|
1394
1394
|
transcribe_audio_cmd.name = 'transcribe'
|
1395
1395
|
audio.add_command(transcribe_audio_cmd)
|
1396
1396
|
|
1397
|
-
# Add
|
1398
|
-
|
1397
|
+
# Add hooks command under claude group
|
1398
|
+
from voice_mode.cli_commands.hook import hooks
|
1399
|
+
claude.claude_group.add_command(hooks)
|
1399
1400
|
|
1400
1401
|
# Add pronounce under config group
|
1401
1402
|
config.add_command(pronounce_commands.pronounce_group)
|
@@ -1,208 +1,15 @@
|
|
1
|
-
"""CLI commands for Claude
|
1
|
+
"""CLI commands for Claude-related functionality."""
|
2
2
|
|
3
3
|
import click
|
4
|
-
import json
|
5
|
-
import os
|
6
|
-
import logging
|
7
|
-
from pathlib import Path
|
8
|
-
from typing import Optional, List
|
9
|
-
from datetime import datetime
|
10
|
-
|
11
|
-
from voice_mode.tools.claude_thinking import (
|
12
|
-
find_claude_log_file,
|
13
|
-
extract_messages_from_log,
|
14
|
-
extract_thinking_from_messages
|
15
|
-
)
|
16
|
-
|
17
|
-
logger = logging.getLogger("voice-mode")
|
18
4
|
|
19
5
|
|
20
6
|
@click.group(name='claude')
|
21
7
|
def claude_group():
|
22
|
-
"""
|
8
|
+
"""Claude-related commands."""
|
23
9
|
pass
|
24
10
|
|
25
11
|
|
26
|
-
@
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
type=click.Choice(['user', 'assistant']),
|
31
|
-
help='Filter by message type (can specify multiple)')
|
32
|
-
@click.option('--format', '-f',
|
33
|
-
type=click.Choice(['full', 'text', 'thinking']),
|
34
|
-
default='full',
|
35
|
-
help='Output format: full (complete), text (text only), thinking (thinking only)')
|
36
|
-
@click.option('--working-dir', '-d', type=click.Path(exists=True),
|
37
|
-
help='Working directory to find logs for (defaults to CWD)')
|
38
|
-
@click.option('--output', '-o', type=click.Path(),
|
39
|
-
help='Save output to file')
|
40
|
-
@click.option('--json', 'as_json', is_flag=True,
|
41
|
-
help='Output as JSON (overrides format)')
|
42
|
-
def messages_command(last_n: int, message_types: tuple, format: str,
|
43
|
-
working_dir: Optional[str], output: Optional[str],
|
44
|
-
as_json: bool):
|
45
|
-
"""
|
46
|
-
Extract recent messages from Claude Code logs.
|
47
|
-
|
48
|
-
Examples:
|
49
|
-
|
50
|
-
voicemode claude messages
|
51
|
-
|
52
|
-
voicemode claude messages -n 5 --format thinking
|
53
|
-
|
54
|
-
voicemode claude messages --type assistant --format text
|
55
|
-
|
56
|
-
voicemode claude messages --json -o messages.json
|
57
|
-
"""
|
58
|
-
# Find log file
|
59
|
-
log_file = find_claude_log_file(working_dir)
|
60
|
-
if not log_file:
|
61
|
-
click.echo(f"Error: Could not find Claude Code logs for directory: {working_dir or os.getcwd()}", err=True)
|
62
|
-
return
|
63
|
-
|
64
|
-
# Extract messages
|
65
|
-
message_type_list = list(message_types) if message_types else None
|
66
|
-
messages = extract_messages_from_log(log_file, last_n, message_type_list)
|
67
|
-
|
68
|
-
if not messages:
|
69
|
-
click.echo("No messages found in recent logs", err=True)
|
70
|
-
return
|
71
|
-
|
72
|
-
# Format output
|
73
|
-
if as_json:
|
74
|
-
content = json.dumps(messages, indent=2)
|
75
|
-
elif format == 'thinking':
|
76
|
-
thinking_texts = extract_thinking_from_messages(messages)
|
77
|
-
if not thinking_texts:
|
78
|
-
click.echo("No thinking content found", err=True)
|
79
|
-
return
|
80
|
-
content = "\n\n=== Next Thinking ===\n\n".join(thinking_texts)
|
81
|
-
elif format == 'text':
|
82
|
-
result = []
|
83
|
-
for msg in messages:
|
84
|
-
content_text = []
|
85
|
-
content_items = msg.get('content', [])
|
86
|
-
logger.debug(f"Message has {len(content_items)} content items")
|
87
|
-
for item in content_items:
|
88
|
-
if isinstance(item, dict):
|
89
|
-
item_type = item.get('type')
|
90
|
-
logger.debug(f"Content item type: {item_type}")
|
91
|
-
if item_type == 'text':
|
92
|
-
text = item.get('text', '')
|
93
|
-
if text:
|
94
|
-
content_text.append(text)
|
95
|
-
elif item_type == 'thinking':
|
96
|
-
text = item.get('text', '')
|
97
|
-
if text:
|
98
|
-
content_text.append(f"[Thinking: {text}]")
|
99
|
-
if content_text:
|
100
|
-
result.append(f"{msg['type'].title()}: {' '.join(content_text)}")
|
101
|
-
content = "\n\n".join(result)
|
102
|
-
else: # full format
|
103
|
-
# Format as human-readable
|
104
|
-
result = []
|
105
|
-
for i, msg in enumerate(messages, 1):
|
106
|
-
result.append(f"=== Message {i} ===")
|
107
|
-
result.append(f"Type: {msg['type']}")
|
108
|
-
result.append(f"Timestamp: {msg.get('timestamp', 'Unknown')}")
|
109
|
-
if msg.get('model'):
|
110
|
-
result.append(f"Model: {msg['model']}")
|
111
|
-
|
112
|
-
# Format content
|
113
|
-
content_items = msg.get('content', [])
|
114
|
-
if content_items:
|
115
|
-
result.append("Content:")
|
116
|
-
for item in content_items:
|
117
|
-
if isinstance(item, dict):
|
118
|
-
item_type = item.get('type', 'unknown')
|
119
|
-
if item_type == 'text':
|
120
|
-
result.append(f" [Text]: {item.get('text', '')}")
|
121
|
-
elif item_type == 'thinking':
|
122
|
-
result.append(f" [Thinking]: {item.get('text', '')}")
|
123
|
-
elif item_type == 'tool_use':
|
124
|
-
result.append(f" [Tool Use]: {item.get('name', '')}")
|
125
|
-
elif item_type == 'tool_result':
|
126
|
-
result.append(f" [Tool Result]: {item.get('content', '')[:100]}...")
|
127
|
-
result.append("")
|
128
|
-
content = "\n".join(result).strip()
|
129
|
-
|
130
|
-
# Output
|
131
|
-
if output:
|
132
|
-
Path(output).write_text(content)
|
133
|
-
click.echo(f"Output saved to {output}")
|
134
|
-
else:
|
135
|
-
# Debug: ensure content is printed
|
136
|
-
logger.debug(f"About to output {len(content)} characters")
|
137
|
-
click.echo(content)
|
138
|
-
logger.debug("Output complete")
|
139
|
-
|
140
|
-
|
141
|
-
@claude_group.command(name='thinking')
|
142
|
-
@click.option('--last-n', '-n', default=1, type=int,
|
143
|
-
help='Number of messages to search for thinking (default: 1)')
|
144
|
-
@click.option('--working-dir', '-d', type=click.Path(exists=True),
|
145
|
-
help='Working directory to find logs for (defaults to CWD)')
|
146
|
-
def thinking_command(last_n: int, working_dir: Optional[str]):
|
147
|
-
"""
|
148
|
-
Extract only thinking content from Claude Code logs.
|
149
|
-
|
150
|
-
Convenience command equivalent to:
|
151
|
-
voicemode claude messages --format thinking --type assistant
|
152
|
-
|
153
|
-
Examples:
|
154
|
-
|
155
|
-
voicemode claude thinking
|
156
|
-
|
157
|
-
voicemode claude thinking -n 3
|
158
|
-
"""
|
159
|
-
# Delegate to messages command with thinking format
|
160
|
-
ctx = click.get_current_context()
|
161
|
-
ctx.invoke(messages_command,
|
162
|
-
last_n=last_n,
|
163
|
-
message_types=('assistant',),
|
164
|
-
format='thinking',
|
165
|
-
working_dir=working_dir,
|
166
|
-
output=None,
|
167
|
-
as_json=False)
|
168
|
-
|
169
|
-
|
170
|
-
@claude_group.command(name='check')
|
171
|
-
def check_command():
|
172
|
-
"""
|
173
|
-
Check if Claude Code context is available.
|
174
|
-
|
175
|
-
Shows information about the Claude Code environment including:
|
176
|
-
- Whether Claude Code logs are accessible
|
177
|
-
- Current working directory
|
178
|
-
- Log file location if found
|
179
|
-
- Last update time
|
180
|
-
|
181
|
-
Example:
|
182
|
-
voicemode claude check
|
183
|
-
"""
|
184
|
-
working_dir = os.getcwd()
|
185
|
-
log_file = find_claude_log_file(working_dir)
|
186
|
-
|
187
|
-
click.echo(f"Working Directory: {working_dir}")
|
188
|
-
click.echo(f"Claude Logs Found: {'Yes' if log_file else 'No'}")
|
189
|
-
|
190
|
-
if log_file:
|
191
|
-
click.echo(f"Log File: {log_file}")
|
192
|
-
click.echo(f"Log Size: {log_file.stat().st_size:,} bytes")
|
193
|
-
|
194
|
-
mtime = datetime.fromtimestamp(log_file.stat().st_mtime)
|
195
|
-
now = datetime.now()
|
196
|
-
age = now - mtime
|
197
|
-
|
198
|
-
if age.total_seconds() < 60:
|
199
|
-
click.echo(f"Last Updated: {int(age.total_seconds())} seconds ago")
|
200
|
-
elif age.total_seconds() < 3600:
|
201
|
-
click.echo(f"Last Updated: {int(age.total_seconds() / 60)} minutes ago")
|
202
|
-
else:
|
203
|
-
click.echo(f"Last Updated: {int(age.total_seconds() / 3600)} hours ago")
|
204
|
-
else:
|
205
|
-
project_dir = working_dir.replace('/', '-')
|
206
|
-
expected_path = Path.home() / '.claude' / 'projects' / project_dir
|
207
|
-
click.echo(f"Expected Log Location: {expected_path}")
|
208
|
-
click.echo("Note: Logs are only created when using Claude Code (claude.ai/code)")
|
12
|
+
@click.group(name='hooks')
|
13
|
+
def hooks_group():
|
14
|
+
"""Manage Voice Mode hooks and event handlers for Claude Code."""
|
15
|
+
pass
|
voice_mode/cli_commands/hook.py
CHANGED
@@ -12,18 +12,18 @@ from typing import Optional
|
|
12
12
|
|
13
13
|
@click.group()
|
14
14
|
@click.help_option('-h', '--help', help='Show this message and exit')
|
15
|
-
def
|
15
|
+
def hooks():
|
16
16
|
"""Manage Voice Mode hooks and event handlers."""
|
17
17
|
pass
|
18
18
|
|
19
19
|
|
20
|
-
@
|
20
|
+
@hooks.command('receiver')
|
21
21
|
@click.option('--tool-name', help='Override tool name (for testing)')
|
22
22
|
@click.option('--action', type=click.Choice(['start', 'end']), help='Override action (for testing)')
|
23
23
|
@click.option('--subagent-type', help='Override subagent type (for testing)')
|
24
24
|
@click.option('--event', type=click.Choice(['PreToolUse', 'PostToolUse']), help='Override event (for testing)')
|
25
25
|
@click.option('--debug', is_flag=True, help='Enable debug output')
|
26
|
-
def
|
26
|
+
def receiver(tool_name, action, subagent_type, event, debug):
|
27
27
|
"""Receive and process hook events from Claude Code via stdin.
|
28
28
|
|
29
29
|
This command reads JSON from stdin when called by Claude Code hooks,
|
@@ -34,13 +34,13 @@ def stdin_receiver(tool_name, action, subagent_type, event, debug):
|
|
34
34
|
|
35
35
|
Examples:
|
36
36
|
# Called by Claude Code (reads JSON from stdin)
|
37
|
-
voicemode
|
37
|
+
voicemode claude hooks receiver
|
38
38
|
|
39
39
|
# Testing with defaults
|
40
|
-
voicemode
|
40
|
+
voicemode claude hooks receiver --debug
|
41
41
|
|
42
42
|
# Testing with specific values
|
43
|
-
voicemode
|
43
|
+
voicemode claude hooks receiver --tool-name Task --action start --subagent-type mama-bear
|
44
44
|
"""
|
45
45
|
from voice_mode.tools.sound_fonts.audio_player import Player
|
46
46
|
|
@@ -188,22 +188,19 @@ def find_sound_file(event: str, tool: str, subagent: Optional[str] = None) -> Op
|
|
188
188
|
return None
|
189
189
|
|
190
190
|
|
191
|
-
# Keep the old receiver command for backwards compatibility (deprecated)
|
192
|
-
@
|
191
|
+
# Keep the old stdin-receiver command for backwards compatibility (deprecated)
|
192
|
+
@hooks.command('stdin-receiver', hidden=True)
|
193
193
|
@click.argument('tool_name')
|
194
194
|
@click.argument('action', type=click.Choice(['start', 'end', 'complete']))
|
195
195
|
@click.argument('subagent_type', required=False)
|
196
196
|
@click.option('--debug', is_flag=True, help='Enable debug output')
|
197
|
-
def
|
198
|
-
"""[DEPRECATED] Use
|
199
|
-
#
|
200
|
-
event = 'PreToolUse' if action == 'start' else 'PostToolUse'
|
201
|
-
|
202
|
-
# Call the new command
|
197
|
+
def stdin_receiver_deprecated(tool_name, action, subagent_type, event, debug):
|
198
|
+
"""[DEPRECATED] Use receiver instead."""
|
199
|
+
# Call the new receiver command
|
203
200
|
ctx = click.get_current_context()
|
204
|
-
ctx.invoke(
|
201
|
+
ctx.invoke(receiver,
|
205
202
|
tool_name=tool_name,
|
206
|
-
action=action
|
203
|
+
action=action,
|
207
204
|
subagent_type=subagent_type,
|
208
205
|
event=event,
|
209
206
|
debug=debug)
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
WhZriRkBKVNPSmCnOFRav
|
@@ -4,25 +4,25 @@
|
|
4
4
|
"static/chunks/webpack-0ea9b80f19935b70.js",
|
5
5
|
"static/chunks/fd9d1056-af324d327b243cf1.js",
|
6
6
|
"static/chunks/117-40bc79a2b97edb21.js",
|
7
|
-
"static/chunks/main-app-
|
7
|
+
"static/chunks/main-app-836e76fc70b52220.js",
|
8
8
|
"static/chunks/app/_not-found/page-5011050e402ab9c8.js"
|
9
9
|
],
|
10
10
|
"/layout": [
|
11
11
|
"static/chunks/webpack-0ea9b80f19935b70.js",
|
12
12
|
"static/chunks/fd9d1056-af324d327b243cf1.js",
|
13
13
|
"static/chunks/117-40bc79a2b97edb21.js",
|
14
|
-
"static/chunks/main-app-
|
14
|
+
"static/chunks/main-app-836e76fc70b52220.js",
|
15
15
|
"static/css/a2f49a47752b5010.css",
|
16
|
-
"static/chunks/app/layout-
|
16
|
+
"static/chunks/app/layout-917e8410913fe899.js"
|
17
17
|
],
|
18
18
|
"/page": [
|
19
19
|
"static/chunks/webpack-0ea9b80f19935b70.js",
|
20
20
|
"static/chunks/fd9d1056-af324d327b243cf1.js",
|
21
21
|
"static/chunks/117-40bc79a2b97edb21.js",
|
22
|
-
"static/chunks/main-app-
|
22
|
+
"static/chunks/main-app-836e76fc70b52220.js",
|
23
23
|
"static/chunks/144d3bae-2d5f122b82426d88.js",
|
24
24
|
"static/chunks/471-bd4b96a33883dfa2.js",
|
25
|
-
"static/chunks/app/page-
|
25
|
+
"static/chunks/app/page-ae0d14863ed895ea.js"
|
26
26
|
]
|
27
27
|
}
|
28
28
|
}
|
@@ -5,14 +5,14 @@
|
|
5
5
|
"devFiles": [],
|
6
6
|
"ampDevFiles": [],
|
7
7
|
"lowPriorityFiles": [
|
8
|
-
"static/
|
9
|
-
"static/
|
8
|
+
"static/WhZriRkBKVNPSmCnOFRav/_buildManifest.js",
|
9
|
+
"static/WhZriRkBKVNPSmCnOFRav/_ssgManifest.js"
|
10
10
|
],
|
11
11
|
"rootMainFiles": [
|
12
12
|
"static/chunks/webpack-0ea9b80f19935b70.js",
|
13
13
|
"static/chunks/fd9d1056-af324d327b243cf1.js",
|
14
14
|
"static/chunks/117-40bc79a2b97edb21.js",
|
15
|
-
"static/chunks/main-app-
|
15
|
+
"static/chunks/main-app-836e76fc70b52220.js"
|
16
16
|
],
|
17
17
|
"pages": {
|
18
18
|
"/_app": [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":1,"files":["../node_modules/styled-jsx/index.js","../node_modules/styled-jsx/package.json","../node_modules/styled-jsx/dist/index/index.js","../node_modules/react/package.json","../node_modules/react/index.js","../node_modules/client-only/package.json","../node_modules/react/cjs/react.production.min.js","../node_modules/client-only/index.js","../node_modules/styled-jsx/style.js","../node_modules/next/dist/compiled/next-server/server.runtime.prod.js","../node_modules/next/package.json","../node_modules/next/dist/lib/constants.js","../node_modules/next/dist/server/body-streams.js","../node_modules/next/dist/lib/picocolors.js","../node_modules/next/dist/shared/lib/constants.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/client/components/app-router-headers.js","../node_modules/next/dist/server/lib/trace/tracer.js","../node_modules/next/dist/server/lib/trace/constants.js","../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../node_modules/next/dist/shared/lib/error-source.js","../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../node_modules/next/dist/compiled/debug/package.json","../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../node_modules/next/dist/shared/lib/runtime-config.external.js","../node_modules/next/dist/compiled/debug/index.js","../node_modules/next/dist/compiled/ws/package.json","../node_modules/next/dist/compiled/node-html-parser/package.json","../node_modules/next/dist/compiled/lru-cache/package.json","../node_modules/@swc/helpers/_/_interop_require_default/package.json","../node_modules/next/dist/compiled/ws/index.js","../node_modules/next/dist/compiled/node-html-parser/index.js","../node_modules/next/dist/compiled/lru-cache/index.js","../node_modules/next/dist/client/components/async-local-storage.js","../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../node_modules/@swc/helpers/package.json","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js","../node_modules/next/dist/compiled/jsonwebtoken/package.json","../node_modules/next/dist/client/components/react-dev-overlay/server/middleware.js","../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../node_modules/next/dist/compiled/jsonwebtoken/index.js","../node_modules/next/dist/compiled/browserslist/package.json","../node_modules/next/dist/compiled/browserslist/index.js","../node_modules/next/dist/client/components/react-dev-overlay/server/shared.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getRawSourceMap.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/launchEditor.js","../node_modules/next/dist/compiled/babel/code-frame.js","../node_modules/next/dist/compiled/json5/package.json","../node_modules/next/dist/compiled/semver/package.json","../node_modules/next/dist/compiled/babel/package.json","../node_modules/next/dist/lib/semver-noop.js","../node_modules/next/dist/compiled/json5/index.js","../node_modules/next/dist/compiled/semver/index.js","../node_modules/next/dist/compiled/stacktrace-parser/package.json","../node_modules/next/dist/compiled/source-map08/package.json","../node_modules/caniuse-lite/dist/unpacker/
|
1
|
+
{"version":1,"files":["../node_modules/styled-jsx/index.js","../node_modules/styled-jsx/package.json","../node_modules/styled-jsx/dist/index/index.js","../node_modules/react/package.json","../node_modules/react/index.js","../node_modules/client-only/package.json","../node_modules/react/cjs/react.production.min.js","../node_modules/client-only/index.js","../node_modules/styled-jsx/style.js","../node_modules/next/dist/compiled/next-server/server.runtime.prod.js","../node_modules/next/package.json","../node_modules/next/dist/lib/constants.js","../node_modules/next/dist/server/body-streams.js","../node_modules/next/dist/lib/picocolors.js","../node_modules/next/dist/shared/lib/constants.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/client/components/app-router-headers.js","../node_modules/next/dist/server/lib/trace/tracer.js","../node_modules/next/dist/server/lib/trace/constants.js","../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../node_modules/next/dist/shared/lib/error-source.js","../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../node_modules/next/dist/compiled/debug/package.json","../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../node_modules/next/dist/shared/lib/runtime-config.external.js","../node_modules/next/dist/compiled/debug/index.js","../node_modules/next/dist/compiled/ws/package.json","../node_modules/next/dist/compiled/node-html-parser/package.json","../node_modules/next/dist/compiled/lru-cache/package.json","../node_modules/@swc/helpers/_/_interop_require_default/package.json","../node_modules/next/dist/compiled/ws/index.js","../node_modules/next/dist/compiled/node-html-parser/index.js","../node_modules/next/dist/compiled/lru-cache/index.js","../node_modules/next/dist/client/components/async-local-storage.js","../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../node_modules/@swc/helpers/package.json","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js","../node_modules/next/dist/compiled/jsonwebtoken/package.json","../node_modules/next/dist/client/components/react-dev-overlay/server/middleware.js","../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../node_modules/next/dist/compiled/jsonwebtoken/index.js","../node_modules/next/dist/compiled/browserslist/package.json","../node_modules/next/dist/compiled/browserslist/index.js","../node_modules/next/dist/client/components/react-dev-overlay/server/shared.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getRawSourceMap.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/launchEditor.js","../node_modules/next/dist/compiled/babel/code-frame.js","../node_modules/next/dist/compiled/json5/package.json","../node_modules/next/dist/compiled/semver/package.json","../node_modules/next/dist/compiled/babel/package.json","../node_modules/next/dist/lib/semver-noop.js","../node_modules/next/dist/compiled/json5/index.js","../node_modules/next/dist/compiled/semver/index.js","../node_modules/next/dist/compiled/stacktrace-parser/package.json","../node_modules/next/dist/compiled/source-map08/package.json","../node_modules/caniuse-lite/dist/unpacker/region.js","../node_modules/caniuse-lite/dist/unpacker/feature.js","../node_modules/caniuse-lite/dist/unpacker/agents.js","../node_modules/next/dist/compiled/babel/bundle.js","../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getSourceMapUrl.js","../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../node_modules/next/dist/compiled/source-map08/source-map.js","../node_modules/caniuse-lite/package.json","../node_modules/next/dist/compiled/babel/core.js","../node_modules/caniuse-lite/data/agents.js","../node_modules/caniuse-lite/dist/unpacker/browsers.js","../node_modules/caniuse-lite/dist/unpacker/browserVersions.js","../node_modules/caniuse-lite/dist/lib/statuses.js","../node_modules/caniuse-lite/dist/lib/supported.js","../node_modules/next/dist/compiled/data-uri-to-buffer/package.json","../node_modules/next/dist/compiled/shell-quote/package.json","../node_modules/next/dist/compiled/data-uri-to-buffer/index.js","../node_modules/next/dist/compiled/shell-quote/index.js","../node_modules/caniuse-lite/data/browsers.js","../node_modules/caniuse-lite/data/browserVersions.js","../node_modules/next/dist/compiled/babel-packages/package.json","../node_modules/next/dist/compiled/babel-packages/packages-bundle.js","../node_modules/next/dist/compiled/babel/parser.js","../node_modules/next/dist/compiled/babel/traverse.js","../node_modules/next/dist/compiled/babel/types.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js"]}
|