mu-agent 0.1.8 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/README.md +34 -30
  3. package/dist/bundle/chunks/anthropic-messages-4PAJY4R6.js +6 -0
  4. package/dist/bundle/chunks/anthropic.js +1 -1
  5. package/dist/bundle/chunks/azure-openai-responses-Y4BBWQ3N.js +2 -0
  6. package/dist/bundle/chunks/bedrock-converse-stream.js +12 -9
  7. package/dist/bundle/chunks/{chunk-NG4PO5FP.js → chunk-3J3HSHLX.js} +128 -110
  8. package/dist/bundle/chunks/{chunk-TRDNDS6A.js → chunk-3V45WARH.js} +6 -3
  9. package/dist/bundle/chunks/{chunk-S3GGRYIO.js → chunk-5AGIVGSV.js} +1 -1
  10. package/dist/bundle/chunks/chunk-6QGV3IWD.js +6 -0
  11. package/dist/bundle/chunks/{chunk-4OBXYPH4.js → chunk-6Z2347ML.js} +1 -1
  12. package/dist/bundle/chunks/{chunk-F5ZABL6Z.js → chunk-7CBJINYJ.js} +2 -2
  13. package/dist/bundle/chunks/{chunk-DRQDKNXA.js → chunk-7DDKXS2Q.js} +1 -1
  14. package/dist/bundle/chunks/{chunk-H3QXYIF7.js → chunk-CF5GWZHW.js} +1 -1
  15. package/dist/bundle/chunks/{chunk-RLZVFGW4.js → chunk-DYTENXHX.js} +29 -92
  16. package/dist/bundle/chunks/{chunk-NTSWBG4X.js → chunk-FLHKNMLQ.js} +1 -1
  17. package/dist/bundle/chunks/chunk-FTJT2X6E.js +2 -0
  18. package/dist/bundle/chunks/{chunk-4L3WN2XY.js → chunk-JXWJOIH4.js} +1 -1
  19. package/dist/bundle/chunks/{chunk-TAOL3JFA.js → chunk-KIDDRTZP.js} +4 -4
  20. package/dist/bundle/chunks/chunk-LHRPMXVI.js +2 -0
  21. package/dist/bundle/chunks/chunk-LMNWTX2L.js +11 -0
  22. package/dist/bundle/chunks/chunk-LPXNMA2W.js +2 -0
  23. package/dist/bundle/chunks/chunk-LT2C56HV.js +130 -0
  24. package/dist/bundle/chunks/{chunk-6CYCI3EJ.js → chunk-LVVZS2NO.js} +1 -1
  25. package/dist/bundle/chunks/chunk-MF3VB62R.js +91 -0
  26. package/dist/bundle/chunks/chunk-NN4BEPYX.js +2 -0
  27. package/dist/bundle/chunks/{chunk-LD2P6SFZ.js → chunk-PMRZO46Y.js} +1 -1
  28. package/dist/bundle/chunks/chunk-R4VPBBDS.js +2 -0
  29. package/dist/bundle/chunks/chunk-RDZVAGPR.js +2 -0
  30. package/dist/bundle/chunks/chunk-TMTOQ7H7.js +2 -0
  31. package/dist/bundle/chunks/chunk-UKVNB6C4.js +2 -0
  32. package/dist/bundle/chunks/chunk-URBBMV3M.js +9 -0
  33. package/dist/bundle/chunks/chunk-WCGU75WO.js +11 -0
  34. package/dist/bundle/chunks/chunk-WCJNJQO5.js +9 -0
  35. package/dist/bundle/chunks/chunk-WDURT4ZM.js +2 -0
  36. package/dist/bundle/chunks/{cli-AOVD3SSZ.js → cli-M4YBZZ6Q.js} +4 -4
  37. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-MEZHQVNP.js +2 -0
  38. package/dist/bundle/chunks/codemode-worker.js +117 -13
  39. package/dist/bundle/chunks/easter-egg-3d-VFY3YRQR.js +2 -0
  40. package/dist/bundle/chunks/execute-FKI7Y4XR.js +499 -0
  41. package/dist/bundle/chunks/github-copilot.js +1 -1
  42. package/dist/bundle/chunks/{google-generative-ai-XMFHGQC5.js → google-generative-ai-D2VJQBTK.js} +1 -1
  43. package/dist/bundle/chunks/{google-vertex-4XRRNP74.js → google-vertex-SQG2BO6C.js} +1 -1
  44. package/dist/bundle/chunks/https-proxy-agent-LVOO5TPL.js +13 -0
  45. package/dist/bundle/chunks/image-resize-worker.js +1 -1
  46. package/dist/bundle/chunks/{jiti-loader-C3NU2SDH.js → jiti-loader-GL4HJFAD.js} +1 -1
  47. package/dist/bundle/chunks/{jiti-static-loader-E6ANQD5T.js → jiti-static-loader-2RCDI6B4.js} +1 -1
  48. package/dist/bundle/chunks/{lib-TEDK3E5I.js → lib-4AVRLBHM.js} +1 -1
  49. package/dist/bundle/chunks/{llama-cpp-classify-XT44PI3C.js → llama-cpp-classify-5YHLY3RC.js} +2 -2
  50. package/dist/bundle/chunks/mistral-conversations-BDARVJTT.js +5 -0
  51. package/dist/bundle/chunks/{multipart-parser-SQ6GDJL7.js → multipart-parser-FMGQ7342.js} +1 -1
  52. package/dist/bundle/chunks/{node-TWVVAGPO.js → node-AUOGOBCN.js} +1 -1
  53. package/dist/bundle/chunks/{node-N5BSDOA5.js → node-KCMANYC2.js} +1 -1
  54. package/dist/bundle/chunks/openai-chatgpt.js +1 -1
  55. package/dist/bundle/chunks/openai-codex-responses-CECGTDYD.js +10 -0
  56. package/dist/bundle/chunks/openai-codex.js +1 -1
  57. package/dist/bundle/chunks/openai-completions-UOA7MELD.js +7 -0
  58. package/dist/bundle/chunks/openai-decisions-HLM372N6.js +5 -0
  59. package/dist/bundle/chunks/openai-responses-TII7ZY5X.js +3 -0
  60. package/dist/bundle/chunks/{openrouter-images-ZVXWCSIM.js → openrouter-images-7T452AS5.js} +1 -1
  61. package/dist/bundle/chunks/{pi-messages-TM5SOOIW.js → pi-messages-2UDKLKOO.js} +1 -1
  62. package/dist/bundle/chunks/runtime-IKE5OQIW.js +2 -0
  63. package/dist/bundle/chunks/{src-UK77SYZE.js → src-QKGKDFSU.js} +1 -1
  64. package/dist/bundle/chunks/typesafe-system-one-KNCICMO5.js +2 -0
  65. package/dist/bundle/chunks/virtual-modules-TJPHLTRT.js +2 -0
  66. package/dist/bundle/cli-runtime.js +1 -1
  67. package/dist/bundle/index.js +1 -1
  68. package/dist/bundle/rpc-entry.js +1 -1
  69. package/dist/core/export-html/template.js +21 -16
  70. package/dist/modes/interactive/theme/dark.json +1 -1
  71. package/dist/modes/interactive/theme/light.json +1 -1
  72. package/dist/modes/interactive/theme/theme-schema.d.ts +28 -0
  73. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  74. package/dist/modes/interactive/theme/theme-schema.js +105 -0
  75. package/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  76. package/dist/modes/interactive/theme/theme-tokens.d.ts +257 -0
  77. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  78. package/dist/modes/interactive/theme/theme-tokens.js +94 -0
  79. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  80. package/dist/modes/interactive/theme/theme.d.ts +13 -16
  81. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  82. package/dist/modes/interactive/theme/theme.js +22 -29
  83. package/dist/modes/interactive/theme/theme.js.map +1 -1
  84. package/docs/cli-integration.md +1 -1
  85. package/docs/cli.md +22 -10
  86. package/docs/codemode.md +29 -6
  87. package/docs/compaction.md +5 -5
  88. package/docs/custom-provider.md +53 -1
  89. package/docs/docs.json +8 -0
  90. package/docs/environment-variables.md +3 -1
  91. package/docs/extensions.md +122 -13
  92. package/docs/json.md +3 -3
  93. package/docs/keybindings.md +5 -4
  94. package/docs/llama-cpp.md +9 -2
  95. package/docs/mcp.md +4 -2
  96. package/docs/message-types.md +22 -4
  97. package/docs/models-configuration.md +187 -0
  98. package/docs/models.md +18 -2
  99. package/docs/nvidia-rtx-llama-cpp.md +96 -0
  100. package/docs/providers.md +47 -0
  101. package/docs/sessions.md +1 -1
  102. package/docs/settings.md +9 -6
  103. package/docs/terminal-setup.md +14 -0
  104. package/docs/themes.md +4 -2
  105. package/docs/tui.md +71 -1
  106. package/docs/usage.md +1 -1
  107. package/examples/README.md +0 -3
  108. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  109. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  110. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  111. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  112. package/examples/extensions/gondolin/package-lock.json +2 -2
  113. package/examples/extensions/gondolin/package.json +1 -1
  114. package/examples/extensions/minimal-mode.ts +4 -5
  115. package/examples/extensions/overlay-test.ts +2 -2
  116. package/examples/extensions/plan-mode/index.ts +6 -2
  117. package/examples/extensions/sandbox/package-lock.json +2 -2
  118. package/examples/extensions/sandbox/package.json +1 -1
  119. package/examples/extensions/subagent/index.ts +4 -6
  120. package/examples/extensions/with-deps/package-lock.json +2 -2
  121. package/examples/extensions/with-deps/package.json +1 -1
  122. package/judge/dist/auth.js +91 -35
  123. package/judge/dist/chrome.js +2 -2
  124. package/judge/dist/import.js +852 -175
  125. package/judge/dist/setup.js +240 -153
  126. package/judge/manifest.json +2512 -546
  127. package/judge/mu/chunk-3NQ5BIBI.js +4773 -0
  128. package/judge/mu/chunk-SKGYWHW6.js +51 -0
  129. package/judge/mu/chunk-WQM4MV6L.js +58 -0
  130. package/judge/mu/cloud-code-V7FOGB4J.js +22802 -0
  131. package/judge/mu/dist-75PS4OC4.js +1283 -0
  132. package/judge/{dist/kyrn-judge.js → mu/index.js} +5365 -32809
  133. package/judge/mu/multipart-parser-ZDXVIOOP.js +372 -0
  134. package/judge/mu/src-TVVA5ZK2.js +1409 -0
  135. package/judge/themes/mu-dark.json +80 -0
  136. package/judge/themes/mu-light.json +80 -0
  137. package/kyrn/bin/kyrn-doctor +44 -19
  138. package/kyrn/bin/kyrn-judge-local +43 -14
  139. package/kyrn/bin/kyrn-ledger +16 -1
  140. package/kyrn/bin/mu.mjs +142 -61
  141. package/kyrn/local-judge/server.py +26 -14
  142. package/package.json +8 -6
  143. package/dist/bundle/chunks/anthropic-messages-MI4QHRXW.js +0 -6
  144. package/dist/bundle/chunks/azure-openai-responses-E3QGN4VN.js +0 -2
  145. package/dist/bundle/chunks/chunk-33KL6IIQ.js +0 -20
  146. package/dist/bundle/chunks/chunk-A3JYRWB6.js +0 -2
  147. package/dist/bundle/chunks/chunk-C47CLQZK.js +0 -2
  148. package/dist/bundle/chunks/chunk-HQHD6PZI.js +0 -2
  149. package/dist/bundle/chunks/chunk-KJUDFE6Y.js +0 -11
  150. package/dist/bundle/chunks/chunk-TE3GUV6H.js +0 -9
  151. package/dist/bundle/chunks/chunk-VIV3CWXG.js +0 -2
  152. package/dist/bundle/chunks/chunk-WE4MXUQS.js +0 -11
  153. package/dist/bundle/chunks/chunk-Y2PP32XV.js +0 -2
  154. package/dist/bundle/chunks/chunk-YLY6CKPK.js +0 -132
  155. package/dist/bundle/chunks/chunk-ZE5FMF3V.js +0 -99
  156. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-NM3JRRWQ.js +0 -2
  157. package/dist/bundle/chunks/easter-egg-3d-G2LUBEMZ.js +0 -2
  158. package/dist/bundle/chunks/execute-MZVUC6BB.js +0 -388
  159. package/dist/bundle/chunks/https-proxy-agent-2VXB7436.js +0 -13
  160. package/dist/bundle/chunks/mistral-conversations-Q22M3IBG.js +0 -5
  161. package/dist/bundle/chunks/openai-codex-responses-4MYQSO5E.js +0 -10
  162. package/dist/bundle/chunks/openai-completions-OSRCWAAA.js +0 -7
  163. package/dist/bundle/chunks/openai-responses-UHF3DHNG.js +0 -3
  164. package/dist/bundle/chunks/runtime-VJMMDLVH.js +0 -2
  165. package/dist/bundle/chunks/typesafe-system-one-PRR5K6CI.js +0 -2
  166. package/dist/bundle/chunks/virtual-modules-RJXJGCPI.js +0 -2
  167. package/dist/modes/interactive/theme/theme-json.d.ts +0 -85
  168. package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
  169. package/dist/modes/interactive/theme/theme-json.js +0 -132
  170. package/dist/modes/interactive/theme/theme-json.js.map +0 -1
  171. package/dist/modes/interactive/theme/theme-schema.json +0 -361
  172. package/examples/plugins/pi-example-plugin/README.md +0 -38
  173. package/examples/plugins/pi-example-plugin/package.json +0 -10
  174. package/examples/plugins/pi-example-plugin/src/contract.ts +0 -13
  175. package/examples/plugins/pi-example-plugin/src/session.ts +0 -24
  176. package/examples/plugins/pi-example-plugin/src/tui.ts +0 -31
@@ -1,361 +0,0 @@
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
- "appearance": {
18
- "type": "string",
19
- "enum": ["dark", "light"],
20
- "description": "Background the theme is designed for. Detected from the theme colors when omitted."
21
- },
22
- "vars": {
23
- "type": "object",
24
- "description": "Reusable color variables",
25
- "additionalProperties": {
26
- "oneOf": [
27
- {
28
- "type": "string",
29
- "description": "Hex color (#RGB or #RRGGBB), OKLCH or OKHSL color, variable reference, or empty string for terminal default"
30
- },
31
- {
32
- "type": "integer",
33
- "minimum": 0,
34
- "maximum": 255,
35
- "description": "256-color palette index (0-255)"
36
- }
37
- ]
38
- }
39
- },
40
- "colors": {
41
- "type": "object",
42
- "description": "Theme color definitions (scrollbar, thinkingMax, and search highlight colors are optional and use compatible fallbacks)",
43
- "required": [
44
- "accent",
45
- "border",
46
- "borderAccent",
47
- "borderMuted",
48
- "success",
49
- "error",
50
- "warning",
51
- "muted",
52
- "dim",
53
- "text",
54
- "thinkingText",
55
- "selectedBg",
56
- "userMessageBg",
57
- "userMessageText",
58
- "customMessageBg",
59
- "customMessageText",
60
- "customMessageLabel",
61
- "toolPendingBg",
62
- "toolSuccessBg",
63
- "toolErrorBg",
64
- "toolTitle",
65
- "toolOutput",
66
- "mdHeading",
67
- "mdLink",
68
- "mdLinkUrl",
69
- "mdCode",
70
- "mdCodeBlock",
71
- "mdCodeBlockBorder",
72
- "mdQuote",
73
- "mdQuoteBorder",
74
- "mdHr",
75
- "mdListBullet",
76
- "toolDiffAdded",
77
- "toolDiffRemoved",
78
- "toolDiffContext",
79
- "syntaxComment",
80
- "syntaxKeyword",
81
- "syntaxFunction",
82
- "syntaxVariable",
83
- "syntaxString",
84
- "syntaxNumber",
85
- "syntaxType",
86
- "syntaxOperator",
87
- "syntaxPunctuation",
88
- "thinkingOff",
89
- "thinkingMinimal",
90
- "thinkingLow",
91
- "thinkingMedium",
92
- "thinkingHigh",
93
- "thinkingXhigh",
94
- "bashMode"
95
- ],
96
- "properties": {
97
- "accent": {
98
- "$ref": "#/$defs/colorValue",
99
- "description": "Primary accent color (logo, selected items, cursor)"
100
- },
101
- "border": {
102
- "$ref": "#/$defs/colorValue",
103
- "description": "Normal borders"
104
- },
105
- "borderAccent": {
106
- "$ref": "#/$defs/colorValue",
107
- "description": "Highlighted borders"
108
- },
109
- "borderMuted": {
110
- "$ref": "#/$defs/colorValue",
111
- "description": "Subtle borders"
112
- },
113
- "success": {
114
- "$ref": "#/$defs/colorValue",
115
- "description": "Success states"
116
- },
117
- "error": {
118
- "$ref": "#/$defs/colorValue",
119
- "description": "Error states"
120
- },
121
- "warning": {
122
- "$ref": "#/$defs/colorValue",
123
- "description": "Warning states"
124
- },
125
- "muted": {
126
- "$ref": "#/$defs/colorValue",
127
- "description": "Secondary/dimmed text"
128
- },
129
- "dim": {
130
- "$ref": "#/$defs/colorValue",
131
- "description": "Very dimmed text (more subtle than muted)"
132
- },
133
- "text": {
134
- "$ref": "#/$defs/colorValue",
135
- "description": "Default text color (usually empty string)"
136
- },
137
- "thinkingText": {
138
- "$ref": "#/$defs/colorValue",
139
- "description": "Thinking block text color"
140
- },
141
- "selectedBg": {
142
- "$ref": "#/$defs/colorValue",
143
- "description": "Selected item background"
144
- },
145
- "scrollbarTrack": {
146
- "$ref": "#/$defs/colorValue",
147
- "description": "Fullscreen scrollbar track foreground (falls back to muted when omitted)"
148
- },
149
- "scrollbarThumb": {
150
- "$ref": "#/$defs/colorValue",
151
- "description": "Fullscreen scrollbar thumb foreground (falls back to text when omitted)"
152
- },
153
- "searchMatchBg": {
154
- "$ref": "#/$defs/colorValue",
155
- "description": "Transcript search match background and current-match text (falls back to selectedBg when omitted)"
156
- },
157
- "searchMatchText": {
158
- "$ref": "#/$defs/colorValue",
159
- "description": "Transcript search match text and current-match background (falls back to text when omitted)"
160
- },
161
- "userMessageBg": {
162
- "$ref": "#/$defs/colorValue",
163
- "description": "User message background"
164
- },
165
- "userMessageText": {
166
- "$ref": "#/$defs/colorValue",
167
- "description": "User message text color"
168
- },
169
- "customMessageBg": {
170
- "$ref": "#/$defs/colorValue",
171
- "description": "Custom message background (hook-injected messages)"
172
- },
173
- "customMessageText": {
174
- "$ref": "#/$defs/colorValue",
175
- "description": "Custom message text color"
176
- },
177
- "customMessageLabel": {
178
- "$ref": "#/$defs/colorValue",
179
- "description": "Custom message type label color"
180
- },
181
- "toolPendingBg": {
182
- "$ref": "#/$defs/colorValue",
183
- "description": "Tool execution box (pending state)"
184
- },
185
- "toolSuccessBg": {
186
- "$ref": "#/$defs/colorValue",
187
- "description": "Tool execution box (success state)"
188
- },
189
- "toolErrorBg": {
190
- "$ref": "#/$defs/colorValue",
191
- "description": "Tool execution box (error state)"
192
- },
193
- "toolTitle": {
194
- "$ref": "#/$defs/colorValue",
195
- "description": "Tool execution box title color"
196
- },
197
- "toolOutput": {
198
- "$ref": "#/$defs/colorValue",
199
- "description": "Tool execution box output text color"
200
- },
201
- "mdHeading": {
202
- "$ref": "#/$defs/colorValue",
203
- "description": "Markdown heading text"
204
- },
205
- "mdLink": {
206
- "$ref": "#/$defs/colorValue",
207
- "description": "Markdown link text"
208
- },
209
- "mdLinkUrl": {
210
- "$ref": "#/$defs/colorValue",
211
- "description": "Markdown link URL"
212
- },
213
- "mdCode": {
214
- "$ref": "#/$defs/colorValue",
215
- "description": "Markdown inline code"
216
- },
217
- "mdCodeBlock": {
218
- "$ref": "#/$defs/colorValue",
219
- "description": "Markdown code block content"
220
- },
221
- "mdCodeBlockBorder": {
222
- "$ref": "#/$defs/colorValue",
223
- "description": "Markdown code block fences"
224
- },
225
- "mdQuote": {
226
- "$ref": "#/$defs/colorValue",
227
- "description": "Markdown blockquote text"
228
- },
229
- "mdQuoteBorder": {
230
- "$ref": "#/$defs/colorValue",
231
- "description": "Markdown blockquote border"
232
- },
233
- "mdHr": {
234
- "$ref": "#/$defs/colorValue",
235
- "description": "Markdown horizontal rule"
236
- },
237
- "mdListBullet": {
238
- "$ref": "#/$defs/colorValue",
239
- "description": "Markdown list bullets/numbers"
240
- },
241
- "toolDiffAdded": {
242
- "$ref": "#/$defs/colorValue",
243
- "description": "Added lines in tool diffs"
244
- },
245
- "toolDiffRemoved": {
246
- "$ref": "#/$defs/colorValue",
247
- "description": "Removed lines in tool diffs"
248
- },
249
- "toolDiffContext": {
250
- "$ref": "#/$defs/colorValue",
251
- "description": "Context lines in tool diffs"
252
- },
253
- "syntaxComment": {
254
- "$ref": "#/$defs/colorValue",
255
- "description": "Syntax highlighting: comments"
256
- },
257
- "syntaxKeyword": {
258
- "$ref": "#/$defs/colorValue",
259
- "description": "Syntax highlighting: keywords"
260
- },
261
- "syntaxFunction": {
262
- "$ref": "#/$defs/colorValue",
263
- "description": "Syntax highlighting: function names"
264
- },
265
- "syntaxVariable": {
266
- "$ref": "#/$defs/colorValue",
267
- "description": "Syntax highlighting: variable names"
268
- },
269
- "syntaxString": {
270
- "$ref": "#/$defs/colorValue",
271
- "description": "Syntax highlighting: string literals"
272
- },
273
- "syntaxNumber": {
274
- "$ref": "#/$defs/colorValue",
275
- "description": "Syntax highlighting: number literals"
276
- },
277
- "syntaxType": {
278
- "$ref": "#/$defs/colorValue",
279
- "description": "Syntax highlighting: type names"
280
- },
281
- "syntaxOperator": {
282
- "$ref": "#/$defs/colorValue",
283
- "description": "Syntax highlighting: operators"
284
- },
285
- "syntaxPunctuation": {
286
- "$ref": "#/$defs/colorValue",
287
- "description": "Syntax highlighting: punctuation"
288
- },
289
- "thinkingOff": {
290
- "$ref": "#/$defs/colorValue",
291
- "description": "Thinking level border: off"
292
- },
293
- "thinkingMinimal": {
294
- "$ref": "#/$defs/colorValue",
295
- "description": "Thinking level border: minimal"
296
- },
297
- "thinkingLow": {
298
- "$ref": "#/$defs/colorValue",
299
- "description": "Thinking level border: low"
300
- },
301
- "thinkingMedium": {
302
- "$ref": "#/$defs/colorValue",
303
- "description": "Thinking level border: medium"
304
- },
305
- "thinkingHigh": {
306
- "$ref": "#/$defs/colorValue",
307
- "description": "Thinking level border: high"
308
- },
309
- "thinkingXhigh": {
310
- "$ref": "#/$defs/colorValue",
311
- "description": "Thinking level border: xhigh"
312
- },
313
- "thinkingMax": {
314
- "$ref": "#/$defs/colorValue",
315
- "description": "Thinking level border: max (falls back to thinkingXhigh when omitted)"
316
- },
317
- "bashMode": {
318
- "$ref": "#/$defs/colorValue",
319
- "description": "Editor border color in bash mode"
320
- }
321
- },
322
- "additionalProperties": false
323
- },
324
- "export": {
325
- "type": "object",
326
- "description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
327
- "properties": {
328
- "pageBg": {
329
- "$ref": "#/$defs/colorValue",
330
- "description": "Page background color"
331
- },
332
- "cardBg": {
333
- "$ref": "#/$defs/colorValue",
334
- "description": "Card/container background color"
335
- },
336
- "infoBg": {
337
- "$ref": "#/$defs/colorValue",
338
- "description": "Info sections background (system prompt, notices)"
339
- }
340
- },
341
- "additionalProperties": false
342
- }
343
- },
344
- "additionalProperties": false,
345
- "$defs": {
346
- "colorValue": {
347
- "oneOf": [
348
- {
349
- "type": "string",
350
- "description": "Hex color (#RGB or #RRGGBB), OKLCH or OKHSL color, variable reference, or empty string for terminal default"
351
- },
352
- {
353
- "type": "integer",
354
- "minimum": 0,
355
- "maximum": 255,
356
- "description": "256-color palette index (0-255)"
357
- }
358
- ]
359
- }
360
- }
361
- }
@@ -1,38 +0,0 @@
1
- # `@earendil-works/pi-example-plugin`
2
-
3
- This package provides conventional `session` and `tui` Chord facets. The Session-worker facet provides a remote greeting service. The TUI facet contributes `/hello` and calls that service.
4
-
5
- The package needs no build script. Pi asks Chord to discover `src/session.ts` and `src/tui.ts`, builds both entries into its server-owned plugin cache, and sends the TUI artifact to clients.
6
-
7
- From the repository root:
8
-
9
- ```bash
10
- PI_EXPERIMENTAL=1 ./pi-test.sh server \
11
- -e "$PWD/packages/coding-agent/examples/plugins/pi-example-plugin"
12
- ```
13
-
14
- Alternatively, a client can select the plugin for the Session it creates or resumes on one local server:
15
-
16
- ```bash
17
- PI_EXPERIMENTAL=1 ./pi-test.sh client \
18
- -e "$PWD/packages/coding-agent/examples/plugins/pi-example-plugin"
19
- ```
20
-
21
- Repeat `-e` to select multiple plugin packages. Client paths are resolved locally and sent only to a Unix server; Radius clients cannot select server filesystem paths. The Session and matching TUI facets are stored with that Session, so later server generations and clients can resume it without plugin arguments. Other Sessions and their workers are unaffected. An active Session rejects a different package selection instead of being restarted.
22
-
23
- `server -e` establishes the server profile's default Session and TUI facets. Starting an explicit foreground server without `-e` clears that default. Client selection never changes the server's root facet generation.
24
-
25
- Run `/hello Armin` in the TUI. After editing a facet, run `/reload`. The server atomically rebuilds the package, reloads the attached Session-worker generation, updates the current TUI generation, and serves the new artifact to future clients.
26
-
27
- Package metadata can override or disable conventional entries:
28
-
29
- ```json
30
- {
31
- "chord": {
32
- "facets": {
33
- "session": "./src/worker.ts",
34
- "tui": false
35
- }
36
- }
37
- }
38
- ```
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@earendil-works/pi-example-plugin",
3
- "version": "1.0.0",
4
- "private": true,
5
- "type": "module",
6
- "peerDependencies": {
7
- "@earendil-works/chord": "^0.84.4",
8
- "@earendil-works/pi-coding-agent": "^0.84.4"
9
- }
10
- }
@@ -1,13 +0,0 @@
1
- import { type Context, defineService, type ReplicatedState } from "@earendil-works/chord";
2
-
3
- export interface ExampleFacetReply {
4
- readonly message: string;
5
- readonly workerActivations: number;
6
- }
7
-
8
- export interface ExampleFacetService {
9
- readonly workerActivations: ReplicatedState<{ count: number }>;
10
- greet(input: { readonly name: string }, context: Context): Promise<ExampleFacetReply>;
11
- }
12
-
13
- export const ExampleFacetService = defineService<ExampleFacetService>("pi.example-plugin.greeting");
@@ -1,24 +0,0 @@
1
- import { defineFacet } from "@earendil-works/chord";
2
- import { BACKGROUND_CONTEXT } from "@earendil-works/chord/context";
3
- import { ExampleFacetService } from "./contract.ts";
4
-
5
- export default defineFacet({
6
- id: "@earendil-works/pi-example-plugin/session",
7
- setup(env) {
8
- const workerActivations = env.replicatedState({ count: 0 });
9
- env.provide(ExampleFacetService, {
10
- workerActivations,
11
- async greet({ name }) {
12
- return {
13
- message: `Hello ${name} from the bundled Session worker facet!!!`,
14
- workerActivations: workerActivations.value.count,
15
- };
16
- },
17
- });
18
- env.onActivate(() => {
19
- workerActivations.change(BACKGROUND_CONTEXT, (draft) => {
20
- draft.count += 1;
21
- });
22
- });
23
- },
24
- });
@@ -1,31 +0,0 @@
1
- import { defineFacet } from "@earendil-works/chord";
2
- import { AgentController, PresentationUI, SlashCommands } from "@earendil-works/pi-coding-agent/experimental/plugin";
3
- import { ExampleFacetService } from "./contract.ts";
4
-
5
- export default defineFacet({
6
- id: "@earendil-works/pi-example-plugin/tui",
7
- setup(env) {
8
- const example = env.use(ExampleFacetService);
9
- const commands = env.use(SlashCommands);
10
- const controller = env.use(AgentController);
11
- const ui = env.use(PresentationUI);
12
- env.onActivate(() => {
13
- env.own(
14
- commands.replace({
15
- name: "hello",
16
- description: "Call the bundled Session worker facet",
17
- argumentHint: "<name>",
18
- async run(args, context) {
19
- const message = args.length === 0 ? "from the TUI" : args;
20
- const reply = await example.greet({ name: message }, context);
21
- ui.showStatus(
22
- `We got this: ${reply.message} Worker activations: ${reply.workerActivations}.`,
23
- context,
24
- );
25
- return controller.prompt({ message: `pong: ${message}`, images: null }, context);
26
- },
27
- }),
28
- );
29
- });
30
- },
31
- });