priiisk 0.2.4 → 0.2.5-linux-arm64
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/README.md +2 -40
- package/bin/priiisk +0 -0
- package/bin/theme/dark.json +87 -0
- package/bin/theme/light.json +86 -0
- package/bin/theme/theme-schema.json +340 -0
- package/package.json +13 -17
- package/profiles/_base/instructions.md +38 -0
- package/profiles/assayer/instructions.md +13 -0
- package/profiles/prospector/instructions.md +13 -0
- package/profiles/wright/instructions.md +18 -0
- package/worker-skills/codegraph/SKILL.md +21 -0
- package/bin/priiisk.mjs +0 -65
package/README.md
CHANGED
|
@@ -1,41 +1,3 @@
|
|
|
1
|
-
# priiisk
|
|
1
|
+
# priiisk for linux arm64
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
воркеров, дает им задания и наблюдает за ними из общей кабины.
|
|
5
|
-
|
|
6
|
-
Воркер — не одноразовый процесс, а живая session: у него есть роль, модель,
|
|
7
|
-
уровень мышления, свой набор инструментов и transcript, который переживает
|
|
8
|
-
перезапуск.
|
|
9
|
-
|
|
10
|
-
## Установка
|
|
11
|
-
|
|
12
|
-
```sh
|
|
13
|
-
npm install -g priiisk
|
|
14
|
-
priiisk --version
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Нужен Node 24.12 или новее.
|
|
18
|
-
|
|
19
|
-
## Быстрый старт
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
priiisk camp up # поднять лагерь для текущего репозитория
|
|
23
|
-
priiisk hire "Разбери падение тестов" --alias scout --role prospector
|
|
24
|
-
priiisk status scout # что с воркером сейчас
|
|
25
|
-
priiisk send scout "Проверь еще миграции"
|
|
26
|
-
priiisk transcript scout --last-turn # что он ответил
|
|
27
|
-
priiisk camp down # остановить лагерь
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
`priiisk --help` перечисляет остальные команды.
|
|
31
|
-
|
|
32
|
-
Лагерь привязан к каноническому корню репозитория: один проект — один лагерь,
|
|
33
|
-
один сокет, один управляющий оркестратор.
|
|
34
|
-
|
|
35
|
-
## Конфигурация
|
|
36
|
-
|
|
37
|
-
Модели, роли, пресеты найма и MCP-серверы описываются одним TOML-файлом
|
|
38
|
-
`~/.config/priiisk/config.toml`.
|
|
39
|
-
|
|
40
|
-
Провайдеры, модели и авторизация берутся из вашего агент-рантайма: priiisk не
|
|
41
|
-
хранит токены и не копирует чужой model registry.
|
|
3
|
+
Platform build of priiisk, installed automatically as an optional dependency of the `priiisk` command. There is nothing to run here directly.
|
package/bin/priiisk
ADDED
|
Binary file
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/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
|
+
"text": "#d4d4d4",
|
|
11
|
+
"gray": "#808080",
|
|
12
|
+
"dimGray": "#666666",
|
|
13
|
+
"darkGray": "#505050",
|
|
14
|
+
"accent": "#8abeb7",
|
|
15
|
+
"selectedBg": "#3a3a4a",
|
|
16
|
+
"userMsgBg": "#343541",
|
|
17
|
+
"toolPendingBg": "#282832",
|
|
18
|
+
"toolSuccessBg": "#283228",
|
|
19
|
+
"toolErrorBg": "#3c2828",
|
|
20
|
+
"customMsgBg": "#2d2838"
|
|
21
|
+
},
|
|
22
|
+
"colors": {
|
|
23
|
+
"accent": "accent",
|
|
24
|
+
"border": "blue",
|
|
25
|
+
"borderAccent": "cyan",
|
|
26
|
+
"borderMuted": "darkGray",
|
|
27
|
+
"success": "green",
|
|
28
|
+
"error": "red",
|
|
29
|
+
"warning": "yellow",
|
|
30
|
+
"muted": "gray",
|
|
31
|
+
"dim": "dimGray",
|
|
32
|
+
"text": "text",
|
|
33
|
+
"thinkingText": "gray",
|
|
34
|
+
|
|
35
|
+
"selectedBg": "selectedBg",
|
|
36
|
+
"userMessageBg": "userMsgBg",
|
|
37
|
+
"userMessageText": "text",
|
|
38
|
+
"customMessageBg": "customMsgBg",
|
|
39
|
+
"customMessageText": "text",
|
|
40
|
+
"customMessageLabel": "#9575cd",
|
|
41
|
+
"toolPendingBg": "toolPendingBg",
|
|
42
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
43
|
+
"toolErrorBg": "toolErrorBg",
|
|
44
|
+
"toolTitle": "text",
|
|
45
|
+
"toolOutput": "gray",
|
|
46
|
+
|
|
47
|
+
"mdHeading": "#f0c674",
|
|
48
|
+
"mdLink": "#81a2be",
|
|
49
|
+
"mdLinkUrl": "dimGray",
|
|
50
|
+
"mdCode": "accent",
|
|
51
|
+
"mdCodeBlock": "green",
|
|
52
|
+
"mdCodeBlockBorder": "gray",
|
|
53
|
+
"mdQuote": "gray",
|
|
54
|
+
"mdQuoteBorder": "gray",
|
|
55
|
+
"mdHr": "gray",
|
|
56
|
+
"mdListBullet": "accent",
|
|
57
|
+
|
|
58
|
+
"toolDiffAdded": "green",
|
|
59
|
+
"toolDiffRemoved": "red",
|
|
60
|
+
"toolDiffContext": "gray",
|
|
61
|
+
|
|
62
|
+
"syntaxComment": "#6A9955",
|
|
63
|
+
"syntaxKeyword": "#569CD6",
|
|
64
|
+
"syntaxFunction": "#DCDCAA",
|
|
65
|
+
"syntaxVariable": "#9CDCFE",
|
|
66
|
+
"syntaxString": "#CE9178",
|
|
67
|
+
"syntaxNumber": "#B5CEA8",
|
|
68
|
+
"syntaxType": "#4EC9B0",
|
|
69
|
+
"syntaxOperator": "#D4D4D4",
|
|
70
|
+
"syntaxPunctuation": "#D4D4D4",
|
|
71
|
+
|
|
72
|
+
"thinkingOff": "darkGray",
|
|
73
|
+
"thinkingMinimal": "#6e6e6e",
|
|
74
|
+
"thinkingLow": "#5f87af",
|
|
75
|
+
"thinkingMedium": "#81a2be",
|
|
76
|
+
"thinkingHigh": "#b294bb",
|
|
77
|
+
"thinkingXhigh": "#d183e8",
|
|
78
|
+
"thinkingMax": "#ff5fff",
|
|
79
|
+
|
|
80
|
+
"bashMode": "green"
|
|
81
|
+
},
|
|
82
|
+
"export": {
|
|
83
|
+
"pageBg": "#18181e",
|
|
84
|
+
"cardBg": "#1e1e24",
|
|
85
|
+
"infoBg": "#3c3728"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/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
|
+
"text": "#1f2328",
|
|
11
|
+
"mediumGray": "#6c6c6c",
|
|
12
|
+
"dimGray": "#767676",
|
|
13
|
+
"lightGray": "#b0b0b0",
|
|
14
|
+
"selectedBg": "#d0d0e0",
|
|
15
|
+
"userMsgBg": "#e8e8e8",
|
|
16
|
+
"toolPendingBg": "#e8e8f0",
|
|
17
|
+
"toolSuccessBg": "#e8f0e8",
|
|
18
|
+
"toolErrorBg": "#f0e8e8",
|
|
19
|
+
"customMsgBg": "#ede7f6"
|
|
20
|
+
},
|
|
21
|
+
"colors": {
|
|
22
|
+
"accent": "teal",
|
|
23
|
+
"border": "blue",
|
|
24
|
+
"borderAccent": "teal",
|
|
25
|
+
"borderMuted": "lightGray",
|
|
26
|
+
"success": "green",
|
|
27
|
+
"error": "red",
|
|
28
|
+
"warning": "yellow",
|
|
29
|
+
"muted": "mediumGray",
|
|
30
|
+
"dim": "dimGray",
|
|
31
|
+
"text": "text",
|
|
32
|
+
"thinkingText": "mediumGray",
|
|
33
|
+
|
|
34
|
+
"selectedBg": "selectedBg",
|
|
35
|
+
"userMessageBg": "userMsgBg",
|
|
36
|
+
"userMessageText": "text",
|
|
37
|
+
"customMessageBg": "customMsgBg",
|
|
38
|
+
"customMessageText": "text",
|
|
39
|
+
"customMessageLabel": "#7e57c2",
|
|
40
|
+
"toolPendingBg": "toolPendingBg",
|
|
41
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
42
|
+
"toolErrorBg": "toolErrorBg",
|
|
43
|
+
"toolTitle": "text",
|
|
44
|
+
"toolOutput": "mediumGray",
|
|
45
|
+
|
|
46
|
+
"mdHeading": "yellow",
|
|
47
|
+
"mdLink": "blue",
|
|
48
|
+
"mdLinkUrl": "dimGray",
|
|
49
|
+
"mdCode": "teal",
|
|
50
|
+
"mdCodeBlock": "green",
|
|
51
|
+
"mdCodeBlockBorder": "mediumGray",
|
|
52
|
+
"mdQuote": "mediumGray",
|
|
53
|
+
"mdQuoteBorder": "mediumGray",
|
|
54
|
+
"mdHr": "mediumGray",
|
|
55
|
+
"mdListBullet": "green",
|
|
56
|
+
|
|
57
|
+
"toolDiffAdded": "green",
|
|
58
|
+
"toolDiffRemoved": "red",
|
|
59
|
+
"toolDiffContext": "mediumGray",
|
|
60
|
+
|
|
61
|
+
"syntaxComment": "#008000",
|
|
62
|
+
"syntaxKeyword": "#0000FF",
|
|
63
|
+
"syntaxFunction": "#795E26",
|
|
64
|
+
"syntaxVariable": "#001080",
|
|
65
|
+
"syntaxString": "#A31515",
|
|
66
|
+
"syntaxNumber": "#098658",
|
|
67
|
+
"syntaxType": "#267F99",
|
|
68
|
+
"syntaxOperator": "#000000",
|
|
69
|
+
"syntaxPunctuation": "#000000",
|
|
70
|
+
|
|
71
|
+
"thinkingOff": "lightGray",
|
|
72
|
+
"thinkingMinimal": "#767676",
|
|
73
|
+
"thinkingLow": "blue",
|
|
74
|
+
"thinkingMedium": "teal",
|
|
75
|
+
"thinkingHigh": "#875f87",
|
|
76
|
+
"thinkingXhigh": "#8b008b",
|
|
77
|
+
"thinkingMax": "#af005f",
|
|
78
|
+
|
|
79
|
+
"bashMode": "green"
|
|
80
|
+
},
|
|
81
|
+
"export": {
|
|
82
|
+
"pageBg": "#f8f8f8",
|
|
83
|
+
"cardBg": "#ffffff",
|
|
84
|
+
"infoBg": "#fffae6"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,340 @@
|
|
|
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
|
+
"pattern": "^[^/]+$",
|
|
15
|
+
"description": "Theme name. Must not contain '/' because it is reserved for automatic light/dark theme settings."
|
|
16
|
+
},
|
|
17
|
+
"vars": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"description": "Reusable color variables",
|
|
20
|
+
"additionalProperties": {
|
|
21
|
+
"oneOf": [
|
|
22
|
+
{
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "integer",
|
|
28
|
+
"minimum": 0,
|
|
29
|
+
"maximum": 255,
|
|
30
|
+
"description": "256-color palette index (0-255)"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"colors": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"description": "Theme color definitions (thinkingMax is optional and falls back to thinkingXhigh)",
|
|
38
|
+
"required": [
|
|
39
|
+
"accent",
|
|
40
|
+
"border",
|
|
41
|
+
"borderAccent",
|
|
42
|
+
"borderMuted",
|
|
43
|
+
"success",
|
|
44
|
+
"error",
|
|
45
|
+
"warning",
|
|
46
|
+
"muted",
|
|
47
|
+
"dim",
|
|
48
|
+
"text",
|
|
49
|
+
"thinkingText",
|
|
50
|
+
"selectedBg",
|
|
51
|
+
"userMessageBg",
|
|
52
|
+
"userMessageText",
|
|
53
|
+
"customMessageBg",
|
|
54
|
+
"customMessageText",
|
|
55
|
+
"customMessageLabel",
|
|
56
|
+
"toolPendingBg",
|
|
57
|
+
"toolSuccessBg",
|
|
58
|
+
"toolErrorBg",
|
|
59
|
+
"toolTitle",
|
|
60
|
+
"toolOutput",
|
|
61
|
+
"mdHeading",
|
|
62
|
+
"mdLink",
|
|
63
|
+
"mdLinkUrl",
|
|
64
|
+
"mdCode",
|
|
65
|
+
"mdCodeBlock",
|
|
66
|
+
"mdCodeBlockBorder",
|
|
67
|
+
"mdQuote",
|
|
68
|
+
"mdQuoteBorder",
|
|
69
|
+
"mdHr",
|
|
70
|
+
"mdListBullet",
|
|
71
|
+
"toolDiffAdded",
|
|
72
|
+
"toolDiffRemoved",
|
|
73
|
+
"toolDiffContext",
|
|
74
|
+
"syntaxComment",
|
|
75
|
+
"syntaxKeyword",
|
|
76
|
+
"syntaxFunction",
|
|
77
|
+
"syntaxVariable",
|
|
78
|
+
"syntaxString",
|
|
79
|
+
"syntaxNumber",
|
|
80
|
+
"syntaxType",
|
|
81
|
+
"syntaxOperator",
|
|
82
|
+
"syntaxPunctuation",
|
|
83
|
+
"thinkingOff",
|
|
84
|
+
"thinkingMinimal",
|
|
85
|
+
"thinkingLow",
|
|
86
|
+
"thinkingMedium",
|
|
87
|
+
"thinkingHigh",
|
|
88
|
+
"thinkingXhigh",
|
|
89
|
+
"bashMode"
|
|
90
|
+
],
|
|
91
|
+
"properties": {
|
|
92
|
+
"accent": {
|
|
93
|
+
"$ref": "#/$defs/colorValue",
|
|
94
|
+
"description": "Primary accent color (logo, selected items, cursor)"
|
|
95
|
+
},
|
|
96
|
+
"border": {
|
|
97
|
+
"$ref": "#/$defs/colorValue",
|
|
98
|
+
"description": "Normal borders"
|
|
99
|
+
},
|
|
100
|
+
"borderAccent": {
|
|
101
|
+
"$ref": "#/$defs/colorValue",
|
|
102
|
+
"description": "Highlighted borders"
|
|
103
|
+
},
|
|
104
|
+
"borderMuted": {
|
|
105
|
+
"$ref": "#/$defs/colorValue",
|
|
106
|
+
"description": "Subtle borders"
|
|
107
|
+
},
|
|
108
|
+
"success": {
|
|
109
|
+
"$ref": "#/$defs/colorValue",
|
|
110
|
+
"description": "Success states"
|
|
111
|
+
},
|
|
112
|
+
"error": {
|
|
113
|
+
"$ref": "#/$defs/colorValue",
|
|
114
|
+
"description": "Error states"
|
|
115
|
+
},
|
|
116
|
+
"warning": {
|
|
117
|
+
"$ref": "#/$defs/colorValue",
|
|
118
|
+
"description": "Warning states"
|
|
119
|
+
},
|
|
120
|
+
"muted": {
|
|
121
|
+
"$ref": "#/$defs/colorValue",
|
|
122
|
+
"description": "Secondary/dimmed text"
|
|
123
|
+
},
|
|
124
|
+
"dim": {
|
|
125
|
+
"$ref": "#/$defs/colorValue",
|
|
126
|
+
"description": "Very dimmed text (more subtle than muted)"
|
|
127
|
+
},
|
|
128
|
+
"text": {
|
|
129
|
+
"$ref": "#/$defs/colorValue",
|
|
130
|
+
"description": "Default text color (usually empty string)"
|
|
131
|
+
},
|
|
132
|
+
"thinkingText": {
|
|
133
|
+
"$ref": "#/$defs/colorValue",
|
|
134
|
+
"description": "Thinking block text color"
|
|
135
|
+
},
|
|
136
|
+
"selectedBg": {
|
|
137
|
+
"$ref": "#/$defs/colorValue",
|
|
138
|
+
"description": "Selected item background"
|
|
139
|
+
},
|
|
140
|
+
"userMessageBg": {
|
|
141
|
+
"$ref": "#/$defs/colorValue",
|
|
142
|
+
"description": "User message background"
|
|
143
|
+
},
|
|
144
|
+
"userMessageText": {
|
|
145
|
+
"$ref": "#/$defs/colorValue",
|
|
146
|
+
"description": "User message text color"
|
|
147
|
+
},
|
|
148
|
+
"customMessageBg": {
|
|
149
|
+
"$ref": "#/$defs/colorValue",
|
|
150
|
+
"description": "Custom message background (hook-injected messages)"
|
|
151
|
+
},
|
|
152
|
+
"customMessageText": {
|
|
153
|
+
"$ref": "#/$defs/colorValue",
|
|
154
|
+
"description": "Custom message text color"
|
|
155
|
+
},
|
|
156
|
+
"customMessageLabel": {
|
|
157
|
+
"$ref": "#/$defs/colorValue",
|
|
158
|
+
"description": "Custom message type label color"
|
|
159
|
+
},
|
|
160
|
+
"toolPendingBg": {
|
|
161
|
+
"$ref": "#/$defs/colorValue",
|
|
162
|
+
"description": "Tool execution box (pending state)"
|
|
163
|
+
},
|
|
164
|
+
"toolSuccessBg": {
|
|
165
|
+
"$ref": "#/$defs/colorValue",
|
|
166
|
+
"description": "Tool execution box (success state)"
|
|
167
|
+
},
|
|
168
|
+
"toolErrorBg": {
|
|
169
|
+
"$ref": "#/$defs/colorValue",
|
|
170
|
+
"description": "Tool execution box (error state)"
|
|
171
|
+
},
|
|
172
|
+
"toolTitle": {
|
|
173
|
+
"$ref": "#/$defs/colorValue",
|
|
174
|
+
"description": "Tool execution box title color"
|
|
175
|
+
},
|
|
176
|
+
"toolOutput": {
|
|
177
|
+
"$ref": "#/$defs/colorValue",
|
|
178
|
+
"description": "Tool execution box output text color"
|
|
179
|
+
},
|
|
180
|
+
"mdHeading": {
|
|
181
|
+
"$ref": "#/$defs/colorValue",
|
|
182
|
+
"description": "Markdown heading text"
|
|
183
|
+
},
|
|
184
|
+
"mdLink": {
|
|
185
|
+
"$ref": "#/$defs/colorValue",
|
|
186
|
+
"description": "Markdown link text"
|
|
187
|
+
},
|
|
188
|
+
"mdLinkUrl": {
|
|
189
|
+
"$ref": "#/$defs/colorValue",
|
|
190
|
+
"description": "Markdown link URL"
|
|
191
|
+
},
|
|
192
|
+
"mdCode": {
|
|
193
|
+
"$ref": "#/$defs/colorValue",
|
|
194
|
+
"description": "Markdown inline code"
|
|
195
|
+
},
|
|
196
|
+
"mdCodeBlock": {
|
|
197
|
+
"$ref": "#/$defs/colorValue",
|
|
198
|
+
"description": "Markdown code block content"
|
|
199
|
+
},
|
|
200
|
+
"mdCodeBlockBorder": {
|
|
201
|
+
"$ref": "#/$defs/colorValue",
|
|
202
|
+
"description": "Markdown code block fences"
|
|
203
|
+
},
|
|
204
|
+
"mdQuote": {
|
|
205
|
+
"$ref": "#/$defs/colorValue",
|
|
206
|
+
"description": "Markdown blockquote text"
|
|
207
|
+
},
|
|
208
|
+
"mdQuoteBorder": {
|
|
209
|
+
"$ref": "#/$defs/colorValue",
|
|
210
|
+
"description": "Markdown blockquote border"
|
|
211
|
+
},
|
|
212
|
+
"mdHr": {
|
|
213
|
+
"$ref": "#/$defs/colorValue",
|
|
214
|
+
"description": "Markdown horizontal rule"
|
|
215
|
+
},
|
|
216
|
+
"mdListBullet": {
|
|
217
|
+
"$ref": "#/$defs/colorValue",
|
|
218
|
+
"description": "Markdown list bullets/numbers"
|
|
219
|
+
},
|
|
220
|
+
"toolDiffAdded": {
|
|
221
|
+
"$ref": "#/$defs/colorValue",
|
|
222
|
+
"description": "Added lines in tool diffs"
|
|
223
|
+
},
|
|
224
|
+
"toolDiffRemoved": {
|
|
225
|
+
"$ref": "#/$defs/colorValue",
|
|
226
|
+
"description": "Removed lines in tool diffs"
|
|
227
|
+
},
|
|
228
|
+
"toolDiffContext": {
|
|
229
|
+
"$ref": "#/$defs/colorValue",
|
|
230
|
+
"description": "Context lines in tool diffs"
|
|
231
|
+
},
|
|
232
|
+
"syntaxComment": {
|
|
233
|
+
"$ref": "#/$defs/colorValue",
|
|
234
|
+
"description": "Syntax highlighting: comments"
|
|
235
|
+
},
|
|
236
|
+
"syntaxKeyword": {
|
|
237
|
+
"$ref": "#/$defs/colorValue",
|
|
238
|
+
"description": "Syntax highlighting: keywords"
|
|
239
|
+
},
|
|
240
|
+
"syntaxFunction": {
|
|
241
|
+
"$ref": "#/$defs/colorValue",
|
|
242
|
+
"description": "Syntax highlighting: function names"
|
|
243
|
+
},
|
|
244
|
+
"syntaxVariable": {
|
|
245
|
+
"$ref": "#/$defs/colorValue",
|
|
246
|
+
"description": "Syntax highlighting: variable names"
|
|
247
|
+
},
|
|
248
|
+
"syntaxString": {
|
|
249
|
+
"$ref": "#/$defs/colorValue",
|
|
250
|
+
"description": "Syntax highlighting: string literals"
|
|
251
|
+
},
|
|
252
|
+
"syntaxNumber": {
|
|
253
|
+
"$ref": "#/$defs/colorValue",
|
|
254
|
+
"description": "Syntax highlighting: number literals"
|
|
255
|
+
},
|
|
256
|
+
"syntaxType": {
|
|
257
|
+
"$ref": "#/$defs/colorValue",
|
|
258
|
+
"description": "Syntax highlighting: type names"
|
|
259
|
+
},
|
|
260
|
+
"syntaxOperator": {
|
|
261
|
+
"$ref": "#/$defs/colorValue",
|
|
262
|
+
"description": "Syntax highlighting: operators"
|
|
263
|
+
},
|
|
264
|
+
"syntaxPunctuation": {
|
|
265
|
+
"$ref": "#/$defs/colorValue",
|
|
266
|
+
"description": "Syntax highlighting: punctuation"
|
|
267
|
+
},
|
|
268
|
+
"thinkingOff": {
|
|
269
|
+
"$ref": "#/$defs/colorValue",
|
|
270
|
+
"description": "Thinking level border: off"
|
|
271
|
+
},
|
|
272
|
+
"thinkingMinimal": {
|
|
273
|
+
"$ref": "#/$defs/colorValue",
|
|
274
|
+
"description": "Thinking level border: minimal"
|
|
275
|
+
},
|
|
276
|
+
"thinkingLow": {
|
|
277
|
+
"$ref": "#/$defs/colorValue",
|
|
278
|
+
"description": "Thinking level border: low"
|
|
279
|
+
},
|
|
280
|
+
"thinkingMedium": {
|
|
281
|
+
"$ref": "#/$defs/colorValue",
|
|
282
|
+
"description": "Thinking level border: medium"
|
|
283
|
+
},
|
|
284
|
+
"thinkingHigh": {
|
|
285
|
+
"$ref": "#/$defs/colorValue",
|
|
286
|
+
"description": "Thinking level border: high"
|
|
287
|
+
},
|
|
288
|
+
"thinkingXhigh": {
|
|
289
|
+
"$ref": "#/$defs/colorValue",
|
|
290
|
+
"description": "Thinking level border: xhigh"
|
|
291
|
+
},
|
|
292
|
+
"thinkingMax": {
|
|
293
|
+
"$ref": "#/$defs/colorValue",
|
|
294
|
+
"description": "Thinking level border: max (falls back to thinkingXhigh when omitted)"
|
|
295
|
+
},
|
|
296
|
+
"bashMode": {
|
|
297
|
+
"$ref": "#/$defs/colorValue",
|
|
298
|
+
"description": "Editor border color in bash mode"
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"additionalProperties": false
|
|
302
|
+
},
|
|
303
|
+
"export": {
|
|
304
|
+
"type": "object",
|
|
305
|
+
"description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
|
|
306
|
+
"properties": {
|
|
307
|
+
"pageBg": {
|
|
308
|
+
"$ref": "#/$defs/colorValue",
|
|
309
|
+
"description": "Page background color"
|
|
310
|
+
},
|
|
311
|
+
"cardBg": {
|
|
312
|
+
"$ref": "#/$defs/colorValue",
|
|
313
|
+
"description": "Card/container background color"
|
|
314
|
+
},
|
|
315
|
+
"infoBg": {
|
|
316
|
+
"$ref": "#/$defs/colorValue",
|
|
317
|
+
"description": "Info sections background (system prompt, notices)"
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"additionalProperties": false
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"additionalProperties": false,
|
|
324
|
+
"$defs": {
|
|
325
|
+
"colorValue": {
|
|
326
|
+
"oneOf": [
|
|
327
|
+
{
|
|
328
|
+
"type": "string",
|
|
329
|
+
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"type": "integer",
|
|
333
|
+
"minimum": 0,
|
|
334
|
+
"maximum": 255,
|
|
335
|
+
"description": "256-color palette index (0-255)"
|
|
336
|
+
}
|
|
337
|
+
]
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
package/package.json
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "priiisk",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
"version": "0.2.5-linux-arm64",
|
|
4
|
+
"description": "priiisk executable for linux arm64",
|
|
5
|
+
"os": [
|
|
6
|
+
"linux"
|
|
7
|
+
],
|
|
8
|
+
"cpu": [
|
|
9
|
+
"arm64"
|
|
10
|
+
],
|
|
9
11
|
"files": [
|
|
10
|
-
"bin/priiisk
|
|
12
|
+
"bin/priiisk",
|
|
13
|
+
"bin/theme",
|
|
14
|
+
"profiles",
|
|
15
|
+
"worker-skills",
|
|
11
16
|
"README.md"
|
|
12
|
-
]
|
|
13
|
-
"engines": {
|
|
14
|
-
"node": ">=20"
|
|
15
|
-
},
|
|
16
|
-
"optionalDependencies": {
|
|
17
|
-
"priiisk-linux-x64": "npm:priiisk@0.2.4-linux-x64",
|
|
18
|
-
"priiisk-linux-arm64": "npm:priiisk@0.2.4-linux-arm64",
|
|
19
|
-
"priiisk-darwin-x64": "npm:priiisk@0.2.4-darwin-x64",
|
|
20
|
-
"priiisk-darwin-arm64": "npm:priiisk@0.2.4-darwin-arm64"
|
|
21
|
-
}
|
|
17
|
+
]
|
|
22
18
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Общий протокол воркера
|
|
2
|
+
|
|
3
|
+
Ты работаешь внутри camp под управлением одного оркестратора. Выполняй только
|
|
4
|
+
назначенную задачу. Сообщения оркестратора приоритетнее твоего текущего плана.
|
|
5
|
+
|
|
6
|
+
## Границы
|
|
7
|
+
|
|
8
|
+
- Не общайся с другими воркерами напрямую. Нужный контекст передает
|
|
9
|
+
оркестратор.
|
|
10
|
+
- Не запускай вложенных агентов и не пытайся управлять camp.
|
|
11
|
+
- Не расширяй задачу без явного указания.
|
|
12
|
+
- Соблюдай инструкции и ограничения целевого проекта.
|
|
13
|
+
- Не скрывай ошибки, пропущенные проверки и неуверенность.
|
|
14
|
+
|
|
15
|
+
## Связь с оркестратором
|
|
16
|
+
|
|
17
|
+
Если без решения оркестратора нельзя безопасно продолжить, вызови
|
|
18
|
+
`priiisk_ask` с `blocking = true`. Сформулируй одну конкретную развилку. Срок
|
|
19
|
+
ожидания задает лагерь, а не ты: назначать его не нужно и нечем. Обычное
|
|
20
|
+
сообщение оркестратора приходит как новый `steer` и требует немедленно
|
|
21
|
+
пересмотреть текущий план.
|
|
22
|
+
|
|
23
|
+
Не используй обычный текст ответа вместо обязательного вопроса: текст завершит
|
|
24
|
+
ход, а blocking ask сохранит явное ожидающее состояние.
|
|
25
|
+
|
|
26
|
+
## Работа
|
|
27
|
+
|
|
28
|
+
1. Сначала прочитай задачу и локальные инструкции проекта.
|
|
29
|
+
2. Проверь существующее состояние до изменений.
|
|
30
|
+
3. Делай минимальный достаточный объем работы.
|
|
31
|
+
4. Проверяй результат соразмерно риску.
|
|
32
|
+
5. В финале перечисли факты: что сделано, чем проверено, что осталось.
|
|
33
|
+
|
|
34
|
+
Каждое утверждение «работает» подкрепляй наблюдаемым результатом. Не проверял —
|
|
35
|
+
так и напиши. Не восстанавливай содержимое файлов по памяти: перечитай источник.
|
|
36
|
+
|
|
37
|
+
Отчет держи компактным. Код, сообщения коммитов и документацию пиши обычным
|
|
38
|
+
человеческим языком по правилам проекта.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Роль: assayer
|
|
2
|
+
|
|
3
|
+
Ты read-only верификатор. Проверяешь результат по заданным критериям, ничего не
|
|
4
|
+
меняешь и не чинишь.
|
|
5
|
+
|
|
6
|
+
1. Прочитай критерии приемки.
|
|
7
|
+
2. Для каждого критерия получи наблюдаемое подтверждение.
|
|
8
|
+
3. Отделяй новые дефекты от существующего состояния проекта.
|
|
9
|
+
4. Не считай отсутствие проверки подтверждением корректности.
|
|
10
|
+
5. Верни итоговый `PASS` либо `FAIL` с главной причиной и координатами фактов.
|
|
11
|
+
|
|
12
|
+
Если проверка требует выбора, доступа или изменения состояния вне разрешенного
|
|
13
|
+
scope, вызови blocking `priiisk_ask`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Роль: prospector
|
|
2
|
+
|
|
3
|
+
Ты read-only исследователь. Не меняешь файлы и внешнее состояние.
|
|
4
|
+
|
|
5
|
+
Ответь на вопрос задания прямо. Покажи устройство найденной области, ключевые
|
|
6
|
+
файлы и связи, пригодные для повторного использования abstractions и ловушки.
|
|
7
|
+
Факты отделяй от предположений.
|
|
8
|
+
|
|
9
|
+
Не принимай продуктовых решений за оркестратора. Если исследование уперлось в
|
|
10
|
+
неоднозначную развилку или недоступный источник, вызови blocking `priiisk_ask`.
|
|
11
|
+
|
|
12
|
+
Финальный отчет держи компактным: прямой ответ, подтверждающие координаты,
|
|
13
|
+
ограничения и неизвестное.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Роль: wright
|
|
2
|
+
|
|
3
|
+
Ты исполнитель: исследуешь код, вносишь изменения и проверяешь результат.
|
|
4
|
+
Продуктовые решения и расширение scope принадлежат оркестратору.
|
|
5
|
+
|
|
6
|
+
Перед изменениями:
|
|
7
|
+
|
|
8
|
+
1. Прочитай локальные инструкции и затронутую спецификацию.
|
|
9
|
+
2. Найди существующие abstractions и тесты.
|
|
10
|
+
3. При неоднозначной развилке вызови blocking `priiisk_ask` до правок.
|
|
11
|
+
|
|
12
|
+
Предпочитай существующие зависимости, нативные возможности платформы и
|
|
13
|
+
маленькие изменения. Не упрощай за счет валидации, обработки ошибок,
|
|
14
|
+
сохранности данных и явных lifecycle-состояний.
|
|
15
|
+
|
|
16
|
+
После изменений запусти доступные проверки из проекта. Убери временные файлы и
|
|
17
|
+
процессы. Финальный отчет должен содержать измененные области, фактические
|
|
18
|
+
результаты проверок и незакрытые ограничения.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codegraph
|
|
3
|
+
description: "Использовать для структурной навигации по коду, когда в проекте есть .codegraph и доступны codegraph tools: поиск символов, flow, callers/callees, blast radius и чтение индексированного source."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CodeGraph
|
|
7
|
+
|
|
8
|
+
Для структурного вопроса сначала используй `codegraph_explore`: устройство
|
|
9
|
+
области, определения, связи, flow и влияние изменения. Один широкий запрос
|
|
10
|
+
предпочтительнее цепочки поиска и ручного чтения файлов.
|
|
11
|
+
|
|
12
|
+
Для буквального текста, логов, комментариев и документации используй `rg` и
|
|
13
|
+
обычное чтение. Не перепроверяй результат CodeGraph тем же поиском без причины.
|
|
14
|
+
|
|
15
|
+
После своей правки перечитай измененный файл напрямую, пока watcher не обновил
|
|
16
|
+
индекс. Если инструмент сообщает stale state, доверяй только неустаревшим
|
|
17
|
+
файлам и дочитай перечисленные файлы обычным способом.
|
|
18
|
+
|
|
19
|
+
Если `.codegraph` или tools недоступны, не чини окружение и не создавай индекс
|
|
20
|
+
самостоятельно. Продолжай через доступные read/search tools и явно укажи
|
|
21
|
+
ограничение в отчете.
|
package/bin/priiisk.mjs
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/*
|
|
3
|
-
* The installed `priiisk` command. npm cannot choose a `bin` per platform, so the
|
|
4
|
-
* entry package ships this shim and the executable travels in a platform build
|
|
5
|
-
* that npm installs only where its `os`/`cpu` match.
|
|
6
|
-
*
|
|
7
|
-
* The shim hands the terminal over untouched — the cabin is a full-screen TUI and
|
|
8
|
-
* a pipe in place of the terminal would break it — and it does not interpret
|
|
9
|
-
* signals: the terminal delivers them to the whole process group, so the binary
|
|
10
|
-
* decides when to stop and this process only reports how it ended.
|
|
11
|
-
*/
|
|
12
|
-
import { spawn } from "node:child_process";
|
|
13
|
-
import { existsSync } from "node:fs";
|
|
14
|
-
import { createRequire } from "node:module";
|
|
15
|
-
import { dirname, join } from "node:path";
|
|
16
|
-
|
|
17
|
-
/*
|
|
18
|
-
* An alias, not a registry name: the entry package installs the platform build
|
|
19
|
-
* under this name from a version of `priiisk` itself. The manifest is what gets
|
|
20
|
-
* resolved rather than the executable, because a package is always allowed to
|
|
21
|
-
* answer for its own manifest.
|
|
22
|
-
*/
|
|
23
|
-
const platformPackage = `priiisk-${process.platform}-${process.arch}`;
|
|
24
|
-
|
|
25
|
-
let binaryPath;
|
|
26
|
-
try {
|
|
27
|
-
const manifest = createRequire(import.meta.url).resolve(`${platformPackage}/package.json`);
|
|
28
|
-
binaryPath = join(dirname(manifest), "bin", "priiisk");
|
|
29
|
-
} catch {
|
|
30
|
-
binaryPath = undefined;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (binaryPath === undefined || !existsSync(binaryPath)) {
|
|
34
|
-
process.stderr.write(
|
|
35
|
-
`priiisk: no executable for ${process.platform} ${process.arch}.\n` +
|
|
36
|
-
`The platform build ${platformPackage} is missing. It is an optional dependency, so an\n` +
|
|
37
|
-
`install run with optional dependencies disabled leaves it out; reinstall with\n` +
|
|
38
|
-
`npm install -g priiisk@latest. If nothing exists for this platform, it is not published.\n`,
|
|
39
|
-
);
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const child = spawn(binaryPath, process.argv.slice(2), { stdio: "inherit" });
|
|
44
|
-
|
|
45
|
-
/*
|
|
46
|
-
* Signals reach the binary through the process group. Ignoring them here keeps
|
|
47
|
-
* this process alive until the binary has finished handling its own shutdown,
|
|
48
|
-
* instead of leaving it orphaned mid-stop.
|
|
49
|
-
*/
|
|
50
|
-
for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) process.on(signal, () => {});
|
|
51
|
-
|
|
52
|
-
child.on("error", (error) => {
|
|
53
|
-
process.stderr.write(`priiisk: cannot start ${binaryPath}: ${error.message}\n`);
|
|
54
|
-
process.exit(1);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
child.on("exit", (code, signal) => {
|
|
58
|
-
if (signal !== null) {
|
|
59
|
-
// Die the same way the binary died, so a caller reading the status sees the signal.
|
|
60
|
-
process.removeAllListeners(signal);
|
|
61
|
-
process.kill(process.pid, signal);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
process.exit(code ?? 0);
|
|
65
|
-
});
|