@phi-code-admin/phi-code 0.59.3 → 0.59.5
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.
- package/dist/core/default-models.json +75 -0
- package/dist/core/export-html/template.css +971 -0
- package/dist/core/export-html/template.html +54 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/light.json +84 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/package.json +5 -3
- package/scripts/migrate-sessions.sh +93 -0
- package/scripts/postinstall.cjs +40 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Session Export</title>
|
|
7
|
+
<style>
|
|
8
|
+
{{CSS}}
|
|
9
|
+
</style>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<button id="hamburger" title="Open sidebar"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="12" r="2.5"/><rect x="5" y="6" width="2" height="12"/><path d="M6 12h10c1 0 2 0 2-2V8"/></svg></button>
|
|
13
|
+
<div id="sidebar-overlay"></div>
|
|
14
|
+
<div id="app">
|
|
15
|
+
<aside id="sidebar">
|
|
16
|
+
<div class="sidebar-header">
|
|
17
|
+
<div class="sidebar-controls">
|
|
18
|
+
<input type="text" class="sidebar-search" id="tree-search" placeholder="Search...">
|
|
19
|
+
</div>
|
|
20
|
+
<div class="sidebar-filters">
|
|
21
|
+
<button class="filter-btn active" data-filter="default" title="Hide settings entries">Default</button>
|
|
22
|
+
<button class="filter-btn" data-filter="no-tools" title="Default minus tool results">No-tools</button>
|
|
23
|
+
<button class="filter-btn" data-filter="user-only" title="Only user messages">User</button>
|
|
24
|
+
<button class="filter-btn" data-filter="labeled-only" title="Only labeled entries">Labeled</button>
|
|
25
|
+
<button class="filter-btn" data-filter="all" title="Show everything">All</button>
|
|
26
|
+
<button class="sidebar-close" id="sidebar-close" title="Close">✕</button>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="tree-container" id="tree-container"></div>
|
|
30
|
+
<div class="tree-status" id="tree-status"></div>
|
|
31
|
+
</aside>
|
|
32
|
+
<main id="content">
|
|
33
|
+
<div id="header-container"></div>
|
|
34
|
+
<div id="messages"></div>
|
|
35
|
+
</main>
|
|
36
|
+
<div id="image-modal" class="image-modal">
|
|
37
|
+
<img id="modal-image" src="" alt="">
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<script id="session-data" type="application/json">{{SESSION_DATA}}</script>
|
|
42
|
+
|
|
43
|
+
<!-- Vendored libraries -->
|
|
44
|
+
<script>{{MARKED_JS}}</script>
|
|
45
|
+
|
|
46
|
+
<!-- highlight.js -->
|
|
47
|
+
<script>{{HIGHLIGHT_JS}}</script>
|
|
48
|
+
|
|
49
|
+
<!-- Main application code -->
|
|
50
|
+
<script>
|
|
51
|
+
{{JS}}
|
|
52
|
+
</script>
|
|
53
|
+
</body>
|
|
54
|
+
</html>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "dark",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cyan": "#00d7ff",
|
|
6
|
+
"blue": "#5f87ff",
|
|
7
|
+
"green": "#b5bd68",
|
|
8
|
+
"red": "#cc6666",
|
|
9
|
+
"yellow": "#ffff00",
|
|
10
|
+
"gray": "#808080",
|
|
11
|
+
"dimGray": "#666666",
|
|
12
|
+
"darkGray": "#505050",
|
|
13
|
+
"accent": "#8abeb7",
|
|
14
|
+
"selectedBg": "#3a3a4a",
|
|
15
|
+
"userMsgBg": "#343541",
|
|
16
|
+
"toolPendingBg": "#282832",
|
|
17
|
+
"toolSuccessBg": "#283228",
|
|
18
|
+
"toolErrorBg": "#3c2828",
|
|
19
|
+
"customMsgBg": "#2d2838"
|
|
20
|
+
},
|
|
21
|
+
"colors": {
|
|
22
|
+
"accent": "accent",
|
|
23
|
+
"border": "blue",
|
|
24
|
+
"borderAccent": "cyan",
|
|
25
|
+
"borderMuted": "darkGray",
|
|
26
|
+
"success": "green",
|
|
27
|
+
"error": "red",
|
|
28
|
+
"warning": "yellow",
|
|
29
|
+
"muted": "gray",
|
|
30
|
+
"dim": "dimGray",
|
|
31
|
+
"text": "",
|
|
32
|
+
"thinkingText": "gray",
|
|
33
|
+
|
|
34
|
+
"selectedBg": "selectedBg",
|
|
35
|
+
"userMessageBg": "userMsgBg",
|
|
36
|
+
"userMessageText": "",
|
|
37
|
+
"customMessageBg": "customMsgBg",
|
|
38
|
+
"customMessageText": "",
|
|
39
|
+
"customMessageLabel": "#9575cd",
|
|
40
|
+
"toolPendingBg": "toolPendingBg",
|
|
41
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
42
|
+
"toolErrorBg": "toolErrorBg",
|
|
43
|
+
"toolTitle": "",
|
|
44
|
+
"toolOutput": "gray",
|
|
45
|
+
|
|
46
|
+
"mdHeading": "#f0c674",
|
|
47
|
+
"mdLink": "#81a2be",
|
|
48
|
+
"mdLinkUrl": "dimGray",
|
|
49
|
+
"mdCode": "accent",
|
|
50
|
+
"mdCodeBlock": "green",
|
|
51
|
+
"mdCodeBlockBorder": "gray",
|
|
52
|
+
"mdQuote": "gray",
|
|
53
|
+
"mdQuoteBorder": "gray",
|
|
54
|
+
"mdHr": "gray",
|
|
55
|
+
"mdListBullet": "accent",
|
|
56
|
+
|
|
57
|
+
"toolDiffAdded": "green",
|
|
58
|
+
"toolDiffRemoved": "red",
|
|
59
|
+
"toolDiffContext": "gray",
|
|
60
|
+
|
|
61
|
+
"syntaxComment": "#6A9955",
|
|
62
|
+
"syntaxKeyword": "#569CD6",
|
|
63
|
+
"syntaxFunction": "#DCDCAA",
|
|
64
|
+
"syntaxVariable": "#9CDCFE",
|
|
65
|
+
"syntaxString": "#CE9178",
|
|
66
|
+
"syntaxNumber": "#B5CEA8",
|
|
67
|
+
"syntaxType": "#4EC9B0",
|
|
68
|
+
"syntaxOperator": "#D4D4D4",
|
|
69
|
+
"syntaxPunctuation": "#D4D4D4",
|
|
70
|
+
|
|
71
|
+
"thinkingOff": "darkGray",
|
|
72
|
+
"thinkingMinimal": "#6e6e6e",
|
|
73
|
+
"thinkingLow": "#5f87af",
|
|
74
|
+
"thinkingMedium": "#81a2be",
|
|
75
|
+
"thinkingHigh": "#b294bb",
|
|
76
|
+
"thinkingXhigh": "#d183e8",
|
|
77
|
+
|
|
78
|
+
"bashMode": "green"
|
|
79
|
+
},
|
|
80
|
+
"export": {
|
|
81
|
+
"pageBg": "#18181e",
|
|
82
|
+
"cardBg": "#1e1e24",
|
|
83
|
+
"infoBg": "#3c3728"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "light",
|
|
4
|
+
"vars": {
|
|
5
|
+
"teal": "#5a8080",
|
|
6
|
+
"blue": "#547da7",
|
|
7
|
+
"green": "#588458",
|
|
8
|
+
"red": "#aa5555",
|
|
9
|
+
"yellow": "#9a7326",
|
|
10
|
+
"mediumGray": "#6c6c6c",
|
|
11
|
+
"dimGray": "#767676",
|
|
12
|
+
"lightGray": "#b0b0b0",
|
|
13
|
+
"selectedBg": "#d0d0e0",
|
|
14
|
+
"userMsgBg": "#e8e8e8",
|
|
15
|
+
"toolPendingBg": "#e8e8f0",
|
|
16
|
+
"toolSuccessBg": "#e8f0e8",
|
|
17
|
+
"toolErrorBg": "#f0e8e8",
|
|
18
|
+
"customMsgBg": "#ede7f6"
|
|
19
|
+
},
|
|
20
|
+
"colors": {
|
|
21
|
+
"accent": "teal",
|
|
22
|
+
"border": "blue",
|
|
23
|
+
"borderAccent": "teal",
|
|
24
|
+
"borderMuted": "lightGray",
|
|
25
|
+
"success": "green",
|
|
26
|
+
"error": "red",
|
|
27
|
+
"warning": "yellow",
|
|
28
|
+
"muted": "mediumGray",
|
|
29
|
+
"dim": "dimGray",
|
|
30
|
+
"text": "",
|
|
31
|
+
"thinkingText": "mediumGray",
|
|
32
|
+
|
|
33
|
+
"selectedBg": "selectedBg",
|
|
34
|
+
"userMessageBg": "userMsgBg",
|
|
35
|
+
"userMessageText": "",
|
|
36
|
+
"customMessageBg": "customMsgBg",
|
|
37
|
+
"customMessageText": "",
|
|
38
|
+
"customMessageLabel": "#7e57c2",
|
|
39
|
+
"toolPendingBg": "toolPendingBg",
|
|
40
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
41
|
+
"toolErrorBg": "toolErrorBg",
|
|
42
|
+
"toolTitle": "",
|
|
43
|
+
"toolOutput": "mediumGray",
|
|
44
|
+
|
|
45
|
+
"mdHeading": "yellow",
|
|
46
|
+
"mdLink": "blue",
|
|
47
|
+
"mdLinkUrl": "dimGray",
|
|
48
|
+
"mdCode": "teal",
|
|
49
|
+
"mdCodeBlock": "green",
|
|
50
|
+
"mdCodeBlockBorder": "mediumGray",
|
|
51
|
+
"mdQuote": "mediumGray",
|
|
52
|
+
"mdQuoteBorder": "mediumGray",
|
|
53
|
+
"mdHr": "mediumGray",
|
|
54
|
+
"mdListBullet": "green",
|
|
55
|
+
|
|
56
|
+
"toolDiffAdded": "green",
|
|
57
|
+
"toolDiffRemoved": "red",
|
|
58
|
+
"toolDiffContext": "mediumGray",
|
|
59
|
+
|
|
60
|
+
"syntaxComment": "#008000",
|
|
61
|
+
"syntaxKeyword": "#0000FF",
|
|
62
|
+
"syntaxFunction": "#795E26",
|
|
63
|
+
"syntaxVariable": "#001080",
|
|
64
|
+
"syntaxString": "#A31515",
|
|
65
|
+
"syntaxNumber": "#098658",
|
|
66
|
+
"syntaxType": "#267F99",
|
|
67
|
+
"syntaxOperator": "#000000",
|
|
68
|
+
"syntaxPunctuation": "#000000",
|
|
69
|
+
|
|
70
|
+
"thinkingOff": "lightGray",
|
|
71
|
+
"thinkingMinimal": "#767676",
|
|
72
|
+
"thinkingLow": "blue",
|
|
73
|
+
"thinkingMedium": "teal",
|
|
74
|
+
"thinkingHigh": "#875f87",
|
|
75
|
+
"thinkingXhigh": "#8b008b",
|
|
76
|
+
|
|
77
|
+
"bashMode": "green"
|
|
78
|
+
},
|
|
79
|
+
"export": {
|
|
80
|
+
"pageBg": "#f8f8f8",
|
|
81
|
+
"cardBg": "#ffffff",
|
|
82
|
+
"infoBg": "#fffae6"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Pi Coding Agent Theme",
|
|
4
|
+
"description": "Theme schema for Pi coding agent",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["name", "colors"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "JSON schema reference"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Theme name"
|
|
15
|
+
},
|
|
16
|
+
"vars": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"description": "Reusable color variables",
|
|
19
|
+
"additionalProperties": {
|
|
20
|
+
"oneOf": [
|
|
21
|
+
{
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "integer",
|
|
27
|
+
"minimum": 0,
|
|
28
|
+
"maximum": 255,
|
|
29
|
+
"description": "256-color palette index (0-255)"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"colors": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"description": "Theme color definitions (all required)",
|
|
37
|
+
"required": [
|
|
38
|
+
"accent",
|
|
39
|
+
"border",
|
|
40
|
+
"borderAccent",
|
|
41
|
+
"borderMuted",
|
|
42
|
+
"success",
|
|
43
|
+
"error",
|
|
44
|
+
"warning",
|
|
45
|
+
"muted",
|
|
46
|
+
"dim",
|
|
47
|
+
"text",
|
|
48
|
+
"thinkingText",
|
|
49
|
+
"selectedBg",
|
|
50
|
+
"userMessageBg",
|
|
51
|
+
"userMessageText",
|
|
52
|
+
"customMessageBg",
|
|
53
|
+
"customMessageText",
|
|
54
|
+
"customMessageLabel",
|
|
55
|
+
"toolPendingBg",
|
|
56
|
+
"toolSuccessBg",
|
|
57
|
+
"toolErrorBg",
|
|
58
|
+
"toolTitle",
|
|
59
|
+
"toolOutput",
|
|
60
|
+
"mdHeading",
|
|
61
|
+
"mdLink",
|
|
62
|
+
"mdLinkUrl",
|
|
63
|
+
"mdCode",
|
|
64
|
+
"mdCodeBlock",
|
|
65
|
+
"mdCodeBlockBorder",
|
|
66
|
+
"mdQuote",
|
|
67
|
+
"mdQuoteBorder",
|
|
68
|
+
"mdHr",
|
|
69
|
+
"mdListBullet",
|
|
70
|
+
"toolDiffAdded",
|
|
71
|
+
"toolDiffRemoved",
|
|
72
|
+
"toolDiffContext",
|
|
73
|
+
"syntaxComment",
|
|
74
|
+
"syntaxKeyword",
|
|
75
|
+
"syntaxFunction",
|
|
76
|
+
"syntaxVariable",
|
|
77
|
+
"syntaxString",
|
|
78
|
+
"syntaxNumber",
|
|
79
|
+
"syntaxType",
|
|
80
|
+
"syntaxOperator",
|
|
81
|
+
"syntaxPunctuation",
|
|
82
|
+
"thinkingOff",
|
|
83
|
+
"thinkingMinimal",
|
|
84
|
+
"thinkingLow",
|
|
85
|
+
"thinkingMedium",
|
|
86
|
+
"thinkingHigh",
|
|
87
|
+
"thinkingXhigh",
|
|
88
|
+
"bashMode"
|
|
89
|
+
],
|
|
90
|
+
"properties": {
|
|
91
|
+
"accent": {
|
|
92
|
+
"$ref": "#/$defs/colorValue",
|
|
93
|
+
"description": "Primary accent color (logo, selected items, cursor)"
|
|
94
|
+
},
|
|
95
|
+
"border": {
|
|
96
|
+
"$ref": "#/$defs/colorValue",
|
|
97
|
+
"description": "Normal borders"
|
|
98
|
+
},
|
|
99
|
+
"borderAccent": {
|
|
100
|
+
"$ref": "#/$defs/colorValue",
|
|
101
|
+
"description": "Highlighted borders"
|
|
102
|
+
},
|
|
103
|
+
"borderMuted": {
|
|
104
|
+
"$ref": "#/$defs/colorValue",
|
|
105
|
+
"description": "Subtle borders"
|
|
106
|
+
},
|
|
107
|
+
"success": {
|
|
108
|
+
"$ref": "#/$defs/colorValue",
|
|
109
|
+
"description": "Success states"
|
|
110
|
+
},
|
|
111
|
+
"error": {
|
|
112
|
+
"$ref": "#/$defs/colorValue",
|
|
113
|
+
"description": "Error states"
|
|
114
|
+
},
|
|
115
|
+
"warning": {
|
|
116
|
+
"$ref": "#/$defs/colorValue",
|
|
117
|
+
"description": "Warning states"
|
|
118
|
+
},
|
|
119
|
+
"muted": {
|
|
120
|
+
"$ref": "#/$defs/colorValue",
|
|
121
|
+
"description": "Secondary/dimmed text"
|
|
122
|
+
},
|
|
123
|
+
"dim": {
|
|
124
|
+
"$ref": "#/$defs/colorValue",
|
|
125
|
+
"description": "Very dimmed text (more subtle than muted)"
|
|
126
|
+
},
|
|
127
|
+
"text": {
|
|
128
|
+
"$ref": "#/$defs/colorValue",
|
|
129
|
+
"description": "Default text color (usually empty string)"
|
|
130
|
+
},
|
|
131
|
+
"thinkingText": {
|
|
132
|
+
"$ref": "#/$defs/colorValue",
|
|
133
|
+
"description": "Thinking block text color"
|
|
134
|
+
},
|
|
135
|
+
"selectedBg": {
|
|
136
|
+
"$ref": "#/$defs/colorValue",
|
|
137
|
+
"description": "Selected item background"
|
|
138
|
+
},
|
|
139
|
+
"userMessageBg": {
|
|
140
|
+
"$ref": "#/$defs/colorValue",
|
|
141
|
+
"description": "User message background"
|
|
142
|
+
},
|
|
143
|
+
"userMessageText": {
|
|
144
|
+
"$ref": "#/$defs/colorValue",
|
|
145
|
+
"description": "User message text color"
|
|
146
|
+
},
|
|
147
|
+
"customMessageBg": {
|
|
148
|
+
"$ref": "#/$defs/colorValue",
|
|
149
|
+
"description": "Custom message background (hook-injected messages)"
|
|
150
|
+
},
|
|
151
|
+
"customMessageText": {
|
|
152
|
+
"$ref": "#/$defs/colorValue",
|
|
153
|
+
"description": "Custom message text color"
|
|
154
|
+
},
|
|
155
|
+
"customMessageLabel": {
|
|
156
|
+
"$ref": "#/$defs/colorValue",
|
|
157
|
+
"description": "Custom message type label color"
|
|
158
|
+
},
|
|
159
|
+
"toolPendingBg": {
|
|
160
|
+
"$ref": "#/$defs/colorValue",
|
|
161
|
+
"description": "Tool execution box (pending state)"
|
|
162
|
+
},
|
|
163
|
+
"toolSuccessBg": {
|
|
164
|
+
"$ref": "#/$defs/colorValue",
|
|
165
|
+
"description": "Tool execution box (success state)"
|
|
166
|
+
},
|
|
167
|
+
"toolErrorBg": {
|
|
168
|
+
"$ref": "#/$defs/colorValue",
|
|
169
|
+
"description": "Tool execution box (error state)"
|
|
170
|
+
},
|
|
171
|
+
"toolTitle": {
|
|
172
|
+
"$ref": "#/$defs/colorValue",
|
|
173
|
+
"description": "Tool execution box title color"
|
|
174
|
+
},
|
|
175
|
+
"toolOutput": {
|
|
176
|
+
"$ref": "#/$defs/colorValue",
|
|
177
|
+
"description": "Tool execution box output text color"
|
|
178
|
+
},
|
|
179
|
+
"mdHeading": {
|
|
180
|
+
"$ref": "#/$defs/colorValue",
|
|
181
|
+
"description": "Markdown heading text"
|
|
182
|
+
},
|
|
183
|
+
"mdLink": {
|
|
184
|
+
"$ref": "#/$defs/colorValue",
|
|
185
|
+
"description": "Markdown link text"
|
|
186
|
+
},
|
|
187
|
+
"mdLinkUrl": {
|
|
188
|
+
"$ref": "#/$defs/colorValue",
|
|
189
|
+
"description": "Markdown link URL"
|
|
190
|
+
},
|
|
191
|
+
"mdCode": {
|
|
192
|
+
"$ref": "#/$defs/colorValue",
|
|
193
|
+
"description": "Markdown inline code"
|
|
194
|
+
},
|
|
195
|
+
"mdCodeBlock": {
|
|
196
|
+
"$ref": "#/$defs/colorValue",
|
|
197
|
+
"description": "Markdown code block content"
|
|
198
|
+
},
|
|
199
|
+
"mdCodeBlockBorder": {
|
|
200
|
+
"$ref": "#/$defs/colorValue",
|
|
201
|
+
"description": "Markdown code block fences"
|
|
202
|
+
},
|
|
203
|
+
"mdQuote": {
|
|
204
|
+
"$ref": "#/$defs/colorValue",
|
|
205
|
+
"description": "Markdown blockquote text"
|
|
206
|
+
},
|
|
207
|
+
"mdQuoteBorder": {
|
|
208
|
+
"$ref": "#/$defs/colorValue",
|
|
209
|
+
"description": "Markdown blockquote border"
|
|
210
|
+
},
|
|
211
|
+
"mdHr": {
|
|
212
|
+
"$ref": "#/$defs/colorValue",
|
|
213
|
+
"description": "Markdown horizontal rule"
|
|
214
|
+
},
|
|
215
|
+
"mdListBullet": {
|
|
216
|
+
"$ref": "#/$defs/colorValue",
|
|
217
|
+
"description": "Markdown list bullets/numbers"
|
|
218
|
+
},
|
|
219
|
+
"toolDiffAdded": {
|
|
220
|
+
"$ref": "#/$defs/colorValue",
|
|
221
|
+
"description": "Added lines in tool diffs"
|
|
222
|
+
},
|
|
223
|
+
"toolDiffRemoved": {
|
|
224
|
+
"$ref": "#/$defs/colorValue",
|
|
225
|
+
"description": "Removed lines in tool diffs"
|
|
226
|
+
},
|
|
227
|
+
"toolDiffContext": {
|
|
228
|
+
"$ref": "#/$defs/colorValue",
|
|
229
|
+
"description": "Context lines in tool diffs"
|
|
230
|
+
},
|
|
231
|
+
"syntaxComment": {
|
|
232
|
+
"$ref": "#/$defs/colorValue",
|
|
233
|
+
"description": "Syntax highlighting: comments"
|
|
234
|
+
},
|
|
235
|
+
"syntaxKeyword": {
|
|
236
|
+
"$ref": "#/$defs/colorValue",
|
|
237
|
+
"description": "Syntax highlighting: keywords"
|
|
238
|
+
},
|
|
239
|
+
"syntaxFunction": {
|
|
240
|
+
"$ref": "#/$defs/colorValue",
|
|
241
|
+
"description": "Syntax highlighting: function names"
|
|
242
|
+
},
|
|
243
|
+
"syntaxVariable": {
|
|
244
|
+
"$ref": "#/$defs/colorValue",
|
|
245
|
+
"description": "Syntax highlighting: variable names"
|
|
246
|
+
},
|
|
247
|
+
"syntaxString": {
|
|
248
|
+
"$ref": "#/$defs/colorValue",
|
|
249
|
+
"description": "Syntax highlighting: string literals"
|
|
250
|
+
},
|
|
251
|
+
"syntaxNumber": {
|
|
252
|
+
"$ref": "#/$defs/colorValue",
|
|
253
|
+
"description": "Syntax highlighting: number literals"
|
|
254
|
+
},
|
|
255
|
+
"syntaxType": {
|
|
256
|
+
"$ref": "#/$defs/colorValue",
|
|
257
|
+
"description": "Syntax highlighting: type names"
|
|
258
|
+
},
|
|
259
|
+
"syntaxOperator": {
|
|
260
|
+
"$ref": "#/$defs/colorValue",
|
|
261
|
+
"description": "Syntax highlighting: operators"
|
|
262
|
+
},
|
|
263
|
+
"syntaxPunctuation": {
|
|
264
|
+
"$ref": "#/$defs/colorValue",
|
|
265
|
+
"description": "Syntax highlighting: punctuation"
|
|
266
|
+
},
|
|
267
|
+
"thinkingOff": {
|
|
268
|
+
"$ref": "#/$defs/colorValue",
|
|
269
|
+
"description": "Thinking level border: off"
|
|
270
|
+
},
|
|
271
|
+
"thinkingMinimal": {
|
|
272
|
+
"$ref": "#/$defs/colorValue",
|
|
273
|
+
"description": "Thinking level border: minimal"
|
|
274
|
+
},
|
|
275
|
+
"thinkingLow": {
|
|
276
|
+
"$ref": "#/$defs/colorValue",
|
|
277
|
+
"description": "Thinking level border: low"
|
|
278
|
+
},
|
|
279
|
+
"thinkingMedium": {
|
|
280
|
+
"$ref": "#/$defs/colorValue",
|
|
281
|
+
"description": "Thinking level border: medium"
|
|
282
|
+
},
|
|
283
|
+
"thinkingHigh": {
|
|
284
|
+
"$ref": "#/$defs/colorValue",
|
|
285
|
+
"description": "Thinking level border: high"
|
|
286
|
+
},
|
|
287
|
+
"thinkingXhigh": {
|
|
288
|
+
"$ref": "#/$defs/colorValue",
|
|
289
|
+
"description": "Thinking level border: xhigh (OpenAI codex-max only)"
|
|
290
|
+
},
|
|
291
|
+
"bashMode": {
|
|
292
|
+
"$ref": "#/$defs/colorValue",
|
|
293
|
+
"description": "Editor border color in bash mode"
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"additionalProperties": false
|
|
297
|
+
},
|
|
298
|
+
"export": {
|
|
299
|
+
"type": "object",
|
|
300
|
+
"description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
|
|
301
|
+
"properties": {
|
|
302
|
+
"pageBg": {
|
|
303
|
+
"$ref": "#/$defs/colorValue",
|
|
304
|
+
"description": "Page background color"
|
|
305
|
+
},
|
|
306
|
+
"cardBg": {
|
|
307
|
+
"$ref": "#/$defs/colorValue",
|
|
308
|
+
"description": "Card/container background color"
|
|
309
|
+
},
|
|
310
|
+
"infoBg": {
|
|
311
|
+
"$ref": "#/$defs/colorValue",
|
|
312
|
+
"description": "Info sections background (system prompt, notices)"
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
"additionalProperties": false
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"additionalProperties": false,
|
|
319
|
+
"$defs": {
|
|
320
|
+
"colorValue": {
|
|
321
|
+
"oneOf": [
|
|
322
|
+
{
|
|
323
|
+
"type": "string",
|
|
324
|
+
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"type": "integer",
|
|
328
|
+
"minimum": 0,
|
|
329
|
+
"maximum": 255,
|
|
330
|
+
"description": "256-color palette index (0-255)"
|
|
331
|
+
}
|
|
332
|
+
]
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phi-code-admin/phi-code",
|
|
3
|
-
"version": "0.59.
|
|
3
|
+
"version": "0.59.5",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"piConfig": {
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"extensions",
|
|
30
30
|
"README.md",
|
|
31
31
|
"LICENSE",
|
|
32
|
-
"CHANGELOG.md"
|
|
32
|
+
"CHANGELOG.md",
|
|
33
|
+
"scripts"
|
|
33
34
|
],
|
|
34
35
|
"scripts": {
|
|
35
36
|
"clean": "shx rm -rf dist",
|
|
@@ -39,7 +40,8 @@
|
|
|
39
40
|
"copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/",
|
|
40
41
|
"copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/",
|
|
41
42
|
"test": "vitest --run",
|
|
42
|
-
"prepublishOnly": "npm run clean && npm run build"
|
|
43
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
44
|
+
"postinstall": "node scripts/postinstall.cjs"
|
|
43
45
|
},
|
|
44
46
|
"dependencies": {
|
|
45
47
|
"@mariozechner/jiti": "^2.6.2",
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# Migrate sessions from ~/.pi/agent/*.jsonl to proper session directories.
|
|
4
|
+
# This fixes sessions created by the bug in v0.30.0 where sessions were
|
|
5
|
+
# saved to ~/.pi/agent/ instead of ~/.pi/agent/sessions/<encoded-cwd>/.
|
|
6
|
+
#
|
|
7
|
+
# Usage: ./migrate-sessions.sh [--dry-run]
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
set -e
|
|
11
|
+
|
|
12
|
+
AGENT_DIR="${PI_AGENT_DIR:-$HOME/.pi/agent}"
|
|
13
|
+
DRY_RUN=false
|
|
14
|
+
|
|
15
|
+
if [[ "$1" == "--dry-run" ]]; then
|
|
16
|
+
DRY_RUN=true
|
|
17
|
+
echo "Dry run mode - no files will be moved"
|
|
18
|
+
echo
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# Find all .jsonl files directly in agent dir (not in subdirectories)
|
|
22
|
+
shopt -s nullglob
|
|
23
|
+
files=("$AGENT_DIR"/*.jsonl)
|
|
24
|
+
shopt -u nullglob
|
|
25
|
+
|
|
26
|
+
if [[ ${#files[@]} -eq 0 ]]; then
|
|
27
|
+
echo "No session files found in $AGENT_DIR"
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo "Found ${#files[@]} session file(s) to migrate"
|
|
32
|
+
echo
|
|
33
|
+
|
|
34
|
+
migrated=0
|
|
35
|
+
failed=0
|
|
36
|
+
|
|
37
|
+
for file in "${files[@]}"; do
|
|
38
|
+
filename=$(basename "$file")
|
|
39
|
+
|
|
40
|
+
# Read first line and extract cwd using jq
|
|
41
|
+
if ! first_line=$(head -1 "$file" 2>/dev/null); then
|
|
42
|
+
echo "SKIP: $filename - cannot read file"
|
|
43
|
+
((failed++))
|
|
44
|
+
continue
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# Parse JSON and extract cwd
|
|
48
|
+
if ! cwd=$(echo "$first_line" | jq -r '.cwd // empty' 2>/dev/null); then
|
|
49
|
+
echo "SKIP: $filename - invalid JSON"
|
|
50
|
+
((failed++))
|
|
51
|
+
continue
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
if [[ -z "$cwd" ]]; then
|
|
55
|
+
echo "SKIP: $filename - no cwd in session header"
|
|
56
|
+
((failed++))
|
|
57
|
+
continue
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Encode cwd: remove leading slash, replace slashes with dashes, wrap with --
|
|
61
|
+
encoded=$(echo "$cwd" | sed 's|^/||' | sed 's|[/:\\]|-|g')
|
|
62
|
+
encoded="--${encoded}--"
|
|
63
|
+
|
|
64
|
+
target_dir="$AGENT_DIR/sessions/$encoded"
|
|
65
|
+
target_file="$target_dir/$filename"
|
|
66
|
+
|
|
67
|
+
if [[ -e "$target_file" ]]; then
|
|
68
|
+
echo "SKIP: $filename - target already exists"
|
|
69
|
+
((failed++))
|
|
70
|
+
continue
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
echo "MIGRATE: $filename"
|
|
74
|
+
echo " cwd: $cwd"
|
|
75
|
+
echo " to: $target_dir/"
|
|
76
|
+
|
|
77
|
+
if [[ "$DRY_RUN" == false ]]; then
|
|
78
|
+
mkdir -p "$target_dir"
|
|
79
|
+
mv "$file" "$target_file"
|
|
80
|
+
fi
|
|
81
|
+
|
|
82
|
+
((migrated++))
|
|
83
|
+
echo
|
|
84
|
+
done
|
|
85
|
+
|
|
86
|
+
echo "---"
|
|
87
|
+
echo "Migrated: $migrated"
|
|
88
|
+
echo "Skipped: $failed"
|
|
89
|
+
|
|
90
|
+
if [[ "$DRY_RUN" == true && $migrated -gt 0 ]]; then
|
|
91
|
+
echo
|
|
92
|
+
echo "Run without --dry-run to perform the migration"
|
|
93
|
+
fi
|