@gavin-hu/my-pi-agent 0.11.3 → 0.12.0

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 (86) hide show
  1. package/README.md +13 -8
  2. package/README.zh-CN.md +5 -3
  3. package/assets/chrome.png +0 -0
  4. package/assets/plan-review.png +0 -0
  5. package/extensions/bytefly/README.md +291 -207
  6. package/extensions/bytefly/doctor/runtime.ts +16 -0
  7. package/extensions/bytefly/doctor/tools.ts +1 -3
  8. package/extensions/bytefly/footer/price/config.ts +54 -15
  9. package/extensions/bytefly/footer/price/price.ts +20 -7
  10. package/extensions/bytefly/footer/price/types.ts +13 -7
  11. package/extensions/bytefly/footer/render/format.ts +3 -2
  12. package/extensions/bytefly/footer/render/segments.ts +3 -2
  13. package/extensions/bytefly/footer/types.ts +1 -0
  14. package/extensions/bytefly/header/component.ts +21 -6
  15. package/extensions/bytefly/header/config.ts +3 -0
  16. package/extensions/bytefly/header/register.ts +34 -3
  17. package/extensions/bytefly/index.ts +13 -3
  18. package/extensions/bytefly/panel/settings-runtime.ts +71 -28
  19. package/extensions/bytefly/panel/settings.ts +201 -38
  20. package/extensions/bytefly/panel/tui/entries.ts +58 -0
  21. package/extensions/bytefly/panel/tui/extensions-view.ts +86 -0
  22. package/extensions/bytefly/panel/tui/frame.ts +71 -0
  23. package/extensions/bytefly/panel/tui/nav.ts +75 -0
  24. package/extensions/bytefly/panel/tui/settings-view.ts +115 -0
  25. package/extensions/bytefly/panel/tui.ts +205 -319
  26. package/extensions/bytefly/picker/runtime.ts +61 -2
  27. package/extensions/bytefly/picker/toggle.ts +56 -0
  28. package/extensions/bytefly/update/check.ts +59 -0
  29. package/extensions/bytefly/update/format.ts +32 -0
  30. package/extensions/bytefly/update/register.ts +72 -0
  31. package/extensions/bytefly/update/state.ts +28 -0
  32. package/extensions/bytefly/update/version.ts +83 -0
  33. package/extensions/document/README.md +2 -2
  34. package/extensions/document/tool.ts +1 -3
  35. package/extensions/file-open/README.md +30 -15
  36. package/extensions/file-open/index.ts +4 -3
  37. package/extensions/file-open/open.ts +52 -21
  38. package/extensions/goal/README.md +39 -13
  39. package/extensions/goal/clarify-prompt.ts +5 -36
  40. package/extensions/goal/clarify.ts +55 -86
  41. package/extensions/goal/commands.ts +41 -35
  42. package/extensions/goal/format.ts +12 -4
  43. package/extensions/goal/tools.ts +28 -8
  44. package/extensions/goal/tui.ts +1 -1
  45. package/extensions/memory/README.md +1 -1
  46. package/extensions/plan/README.md +24 -8
  47. package/extensions/plan/blocks.ts +1 -35
  48. package/extensions/plan/commands.ts +18 -12
  49. package/extensions/plan/plans.ts +1 -1
  50. package/extensions/plan/policy.ts +4 -3
  51. package/extensions/plan/review.ts +243 -0
  52. package/extensions/plan/runtime.ts +4 -0
  53. package/extensions/plan/steps.ts +34 -23
  54. package/extensions/plan/todos.ts +5 -58
  55. package/extensions/plan/tools.ts +66 -222
  56. package/extensions/plan/tui.ts +17 -9
  57. package/extensions/plan/types.ts +3 -0
  58. package/extensions/plan/web-client.ts +51 -18
  59. package/extensions/plan/web-page.ts +5 -0
  60. package/extensions/plan/web-router.ts +11 -3
  61. package/extensions/plan/web.ts +100 -36
  62. package/extensions/question/README.md +1 -1
  63. package/extensions/question/tools.ts +1 -1
  64. package/extensions/subagent/index.ts +0 -2
  65. package/extensions/todo/README.md +19 -11
  66. package/extensions/todo/index.ts +5 -3
  67. package/extensions/todo/nudge.ts +58 -9
  68. package/extensions/todo/runtime.ts +28 -17
  69. package/extensions/web-access/README.md +3 -3
  70. package/extensions/web-access/fetch/tool.ts +1 -3
  71. package/extensions/web-access/search/tool.ts +1 -3
  72. package/extensions/wechat/README.md +22 -11
  73. package/extensions/wechat/bridge.ts +90 -22
  74. package/extensions/wechat/commands.ts +45 -1
  75. package/extensions/wechat/doctor.ts +1 -0
  76. package/extensions/wechat/index.ts +3 -1
  77. package/extensions/wechat/status-screen.ts +32 -2
  78. package/extensions/wechat/tools.ts +0 -2
  79. package/lib/README.md +2 -1
  80. package/lib/config.ts +43 -1
  81. package/lib/env.ts +12 -0
  82. package/lib/requirements.ts +76 -2
  83. package/lib/todo-state.ts +62 -0
  84. package/lib/tui/glyphs.ts +1 -0
  85. package/package.json +1 -1
  86. package/assets/bytefly.schema.json +0 -785
@@ -1,785 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://raw.githubusercontent.com/gavin-hu/my-pi-agent/main/assets/bytefly.schema.json",
4
- "title": "bytefly shared extension config",
5
- "description": "One document, one top-level section per extension (bytefly owns price, notify, doctor, and chrome). Resolution is low to high: built-in defaults, <agent-dir>/bytefly.json, then <cwd>/.pi/bytefly.json (project wins). Unknown keys are ignored.",
6
- "type": "object",
7
- "additionalProperties": false,
8
- "properties": {
9
- "$schema": {
10
- "type": "string",
11
- "description": "Editor-schema pointer; ignored by the loaders."
12
- },
13
- "version": {
14
- "type": "integer",
15
- "minimum": 1,
16
- "default": 1,
17
- "description": "Document schema version; absent means 1. The loader warns on a newer version."
18
- },
19
- "price": {
20
- "$ref": "#/$defs/price"
21
- },
22
- "notify": {
23
- "$ref": "#/$defs/notify"
24
- },
25
- "doctor": {
26
- "$ref": "#/$defs/doctor"
27
- },
28
- "chrome": {
29
- "$ref": "#/$defs/chrome"
30
- },
31
- "worktree": {
32
- "$ref": "#/$defs/worktree"
33
- },
34
- "rewind": {
35
- "$ref": "#/$defs/rewind"
36
- },
37
- "todo": {
38
- "$ref": "#/$defs/todo"
39
- },
40
- "goal": {
41
- "$ref": "#/$defs/goal"
42
- },
43
- "job": {
44
- "$ref": "#/$defs/job"
45
- },
46
- "watch": {
47
- "$ref": "#/$defs/watch"
48
- },
49
- "web-access": {
50
- "$ref": "#/$defs/webAccess"
51
- },
52
- "file-browse": {
53
- "$ref": "#/$defs/fileBrowse"
54
- },
55
- "document": {
56
- "$ref": "#/$defs/document"
57
- },
58
- "memory": {
59
- "$ref": "#/$defs/memory"
60
- },
61
- "wechat": {
62
- "$ref": "#/$defs/wechat"
63
- }
64
- },
65
- "$defs": {
66
- "stringArray": {
67
- "type": "array",
68
- "items": {
69
- "type": "string"
70
- },
71
- "description": "Strings are trimmed; empty entries are dropped."
72
- },
73
- "chrome": {
74
- "type": "object",
75
- "description": "bytefly's transcript chrome presentation.",
76
- "additionalProperties": false,
77
- "properties": {
78
- "rail": {
79
- "type": "string",
80
- "maxLength": 1,
81
- "default": "╎",
82
- "description": "The transcript rail glyph, exactly one visible column. A wide, emoji, multi-character, empty, or control value falls back to ╎. The rail leads a tool result and a notice row; it is also drawn on the call frame for the two file-mutating tools (`edit`, `write`), whose call body carries the result. There is no status fill."
83
- }
84
- }
85
- },
86
- "price": {
87
- "type": "object",
88
- "description": "bytefly's price calculation (the footer's cost bar).",
89
- "additionalProperties": false,
90
- "properties": {
91
- "currency": {
92
- "type": "object",
93
- "additionalProperties": false,
94
- "properties": {
95
- "symbol": {
96
- "type": "string",
97
- "maxLength": 4,
98
- "default": "¥"
99
- },
100
- "decimals": {
101
- "type": "integer",
102
- "minimum": 0,
103
- "maximum": 4,
104
- "default": 2
105
- }
106
- }
107
- },
108
- "fallbackToRecordedCost": {
109
- "type": "boolean",
110
- "default": true
111
- },
112
- "rates": {
113
- "type": "object",
114
- "description": "Per-million-token prices keyed by provider/model; merges key by key across the global and project documents, and a key present in both is replaced.",
115
- "additionalProperties": {
116
- "$ref": "#/$defs/modelRates"
117
- }
118
- },
119
- "peak": {
120
- "type": "object",
121
- "additionalProperties": false,
122
- "properties": {
123
- "timezone": {
124
- "type": "string",
125
- "default": "Asia/Shanghai"
126
- },
127
- "windows": {
128
- "type": "array",
129
- "maxItems": 16,
130
- "items": {
131
- "$ref": "#/$defs/peakWindow"
132
- }
133
- }
134
- }
135
- }
136
- }
137
- },
138
- "modelRates": {
139
- "type": "object",
140
- "minProperties": 1,
141
- "additionalProperties": false,
142
- "properties": {
143
- "input": {
144
- "type": "number",
145
- "minimum": 0,
146
- "maximum": 1000000,
147
- "default": 0
148
- },
149
- "output": {
150
- "type": "number",
151
- "minimum": 0,
152
- "maximum": 1000000,
153
- "default": 0
154
- },
155
- "cacheRead": {
156
- "type": "number",
157
- "minimum": 0,
158
- "maximum": 1000000,
159
- "default": 0
160
- },
161
- "cacheWrite": {
162
- "type": "number",
163
- "minimum": 0,
164
- "maximum": 1000000,
165
- "default": 0
166
- },
167
- "offPeakMultiplier": {
168
- "type": "number",
169
- "minimum": 0,
170
- "maximum": 1,
171
- "default": 1
172
- }
173
- }
174
- },
175
- "peakWindow": {
176
- "type": "object",
177
- "additionalProperties": false,
178
- "properties": {
179
- "days": {
180
- "type": "array",
181
- "minItems": 1,
182
- "uniqueItems": true,
183
- "items": {
184
- "type": "integer",
185
- "minimum": 1,
186
- "maximum": 7
187
- },
188
- "description": "ISO weekdays, 1 = Monday. Omitted means every day."
189
- },
190
- "from": {
191
- "type": "string",
192
- "pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
193
- "description": "Inclusive HH:MM, in the peak timezone."
194
- },
195
- "to": {
196
- "type": "string",
197
- "pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
198
- "description": "Exclusive HH:MM; a value <= from wraps past midnight."
199
- }
200
- },
201
- "required": ["from", "to"]
202
- },
203
- "notify": {
204
- "type": "object",
205
- "additionalProperties": false,
206
- "properties": {
207
- "enabled": {
208
- "type": "boolean",
209
- "default": false
210
- },
211
- "turnFinished": {
212
- "type": "boolean",
213
- "default": true
214
- },
215
- "needsInput": {
216
- "type": "boolean",
217
- "default": true
218
- },
219
- "jobFinished": {
220
- "type": "boolean",
221
- "default": true
222
- },
223
- "method": {
224
- "type": "string",
225
- "enum": ["auto", "osascript", "notify-send", "toast", "osc777", "osc99"],
226
- "default": "auto"
227
- },
228
- "title": {
229
- "type": "string",
230
- "maxLength": 40,
231
- "default": "Pi"
232
- }
233
- }
234
- },
235
- "doctor": {
236
- "type": "object",
237
- "additionalProperties": false,
238
- "properties": {
239
- "proactive": {
240
- "type": "boolean",
241
- "default": true
242
- },
243
- "timeoutMs": {
244
- "type": "integer",
245
- "minimum": 100,
246
- "maximum": 30000,
247
- "default": 2000
248
- },
249
- "skip": {
250
- "$ref": "#/$defs/stringArray",
251
- "default": []
252
- }
253
- }
254
- },
255
- "worktree": {
256
- "type": "object",
257
- "additionalProperties": false,
258
- "properties": {
259
- "dir": {
260
- "type": "string",
261
- "default": ".pi/worktrees"
262
- },
263
- "baseRef": {
264
- "type": "string",
265
- "enum": ["fresh", "head"],
266
- "default": "fresh"
267
- },
268
- "branchPrefix": {
269
- "type": "string",
270
- "default": "worktree-"
271
- },
272
- "fetchRemote": {
273
- "type": "boolean",
274
- "default": true
275
- },
276
- "fetchTimeoutMs": {
277
- "type": "integer",
278
- "minimum": 0,
279
- "maximum": 600000,
280
- "default": 5000
281
- },
282
- "onExit": {
283
- "type": "string",
284
- "enum": ["ask", "keep", "remove"],
285
- "default": "ask"
286
- },
287
- "pruneAfterDays": {
288
- "type": "integer",
289
- "minimum": 0,
290
- "maximum": 3650,
291
- "default": 7
292
- },
293
- "include": {
294
- "$ref": "#/$defs/stringArray",
295
- "default": []
296
- },
297
- "skipOverrides": {
298
- "$ref": "#/$defs/stringArray",
299
- "default": []
300
- },
301
- "guard": {
302
- "type": "object",
303
- "additionalProperties": false,
304
- "properties": {
305
- "blockFileEscapes": {
306
- "type": "boolean",
307
- "default": true
308
- },
309
- "blockReadEscapes": {
310
- "type": "boolean",
311
- "default": false
312
- },
313
- "blockGitRedirects": {
314
- "type": "boolean",
315
- "default": true
316
- },
317
- "blockSymlinkEscapes": {
318
- "type": "boolean",
319
- "default": true
320
- },
321
- "blockUnparsableCommands": {
322
- "type": "boolean",
323
- "default": false
324
- }
325
- }
326
- }
327
- }
328
- },
329
- "rewind": {
330
- "type": "object",
331
- "additionalProperties": false,
332
- "properties": {
333
- "autoSnapshots": {
334
- "type": "boolean",
335
- "default": true
336
- },
337
- "max": {
338
- "type": "integer",
339
- "minimum": 0,
340
- "maximum": 1000,
341
- "default": 20
342
- },
343
- "includeUntracked": {
344
- "type": "boolean",
345
- "default": true
346
- },
347
- "safetySnapshot": {
348
- "type": "boolean",
349
- "default": true
350
- },
351
- "autoPrune": {
352
- "type": "boolean",
353
- "default": true
354
- },
355
- "showStatus": {
356
- "type": "boolean",
357
- "default": true
358
- },
359
- "watch": {
360
- "$ref": "#/$defs/stringArray",
361
- "default": []
362
- },
363
- "ignore": {
364
- "$ref": "#/$defs/stringArray",
365
- "default": []
366
- },
367
- "refNamespace": {
368
- "type": "string",
369
- "default": "refs/pi/rewind"
370
- }
371
- }
372
- },
373
- "todo": {
374
- "type": "object",
375
- "additionalProperties": false,
376
- "properties": {
377
- "hideWhenComplete": {
378
- "type": "boolean",
379
- "default": true
380
- }
381
- }
382
- },
383
- "goal": {
384
- "type": "object",
385
- "additionalProperties": false,
386
- "properties": {
387
- "achieved": {
388
- "type": "string",
389
- "enum": ["show", "hide"],
390
- "default": "hide"
391
- }
392
- }
393
- },
394
- "job": {
395
- "type": "object",
396
- "additionalProperties": false,
397
- "properties": {
398
- "enabled": {
399
- "type": "boolean",
400
- "default": true
401
- },
402
- "showStatus": {
403
- "type": "boolean",
404
- "default": true
405
- },
406
- "wakeOnFinish": {
407
- "type": "boolean",
408
- "default": false
409
- },
410
- "detachedByDefault": {
411
- "type": "boolean",
412
- "default": false
413
- },
414
- "maxJobs": {
415
- "type": "integer",
416
- "minimum": 1,
417
- "maximum": 500,
418
- "default": 20
419
- },
420
- "maxLogLines": {
421
- "type": "integer",
422
- "minimum": 1,
423
- "maximum": 5000,
424
- "default": 100
425
- },
426
- "killGraceMs": {
427
- "type": "integer",
428
- "minimum": 0,
429
- "maximum": 60000,
430
- "default": 5000
431
- },
432
- "repaintMs": {
433
- "type": "integer",
434
- "minimum": 100,
435
- "maximum": 10000,
436
- "default": 1000
437
- },
438
- "sessionTtlMs": {
439
- "type": "integer",
440
- "minimum": 5000,
441
- "maximum": 600000,
442
- "default": 60000
443
- },
444
- "registryDir": {
445
- "type": "string",
446
- "description": "Registry directory override; empty means the default under the agent dir."
447
- }
448
- }
449
- },
450
- "watch": {
451
- "type": "object",
452
- "additionalProperties": false,
453
- "properties": {
454
- "enabled": {
455
- "type": "boolean",
456
- "default": true
457
- },
458
- "showStatus": {
459
- "type": "boolean",
460
- "default": true
461
- },
462
- "wakeOnMatch": {
463
- "type": "boolean",
464
- "default": false
465
- },
466
- "maxWatchers": {
467
- "type": "integer",
468
- "minimum": 1,
469
- "maximum": 200,
470
- "default": 20
471
- },
472
- "maxMatches": {
473
- "type": "integer",
474
- "minimum": 1,
475
- "maximum": 5000,
476
- "default": 200
477
- },
478
- "maxLogLines": {
479
- "type": "integer",
480
- "minimum": 1,
481
- "maximum": 5000,
482
- "default": 500
483
- },
484
- "matchLines": {
485
- "type": "integer",
486
- "minimum": 1,
487
- "maximum": 2000,
488
- "default": 50
489
- },
490
- "pollMs": {
491
- "type": "integer",
492
- "minimum": 100,
493
- "maximum": 60000,
494
- "default": 500
495
- }
496
- }
497
- },
498
- "webAccess": {
499
- "type": "object",
500
- "additionalProperties": false,
501
- "properties": {
502
- "search": {
503
- "type": "object",
504
- "additionalProperties": false,
505
- "properties": {
506
- "provider": {
507
- "type": "string",
508
- "enum": ["auto", "duckduckgo", "searxng", "brave"],
509
- "default": "auto"
510
- },
511
- "endpoint": {
512
- "type": "string",
513
- "description": "SearXNG base URL; empty means unset."
514
- },
515
- "language": {
516
- "type": "string",
517
- "default": "auto"
518
- },
519
- "safeSearch": {
520
- "type": "integer",
521
- "minimum": 0,
522
- "maximum": 2,
523
- "default": 0
524
- },
525
- "categories": {
526
- "type": "string",
527
- "default": "general"
528
- },
529
- "apiKeyEnv": {
530
- "type": "string",
531
- "default": ""
532
- },
533
- "apiKey": {
534
- "type": "string",
535
- "default": ""
536
- },
537
- "maxResults": {
538
- "type": "integer",
539
- "minimum": 1,
540
- "maximum": 20,
541
- "default": 8
542
- },
543
- "timeoutMs": {
544
- "type": "integer",
545
- "minimum": 1000,
546
- "maximum": 120000,
547
- "default": 15000
548
- },
549
- "maxBytes": {
550
- "type": "integer",
551
- "minimum": 1024,
552
- "maximum": 50000000,
553
- "default": 5000000
554
- },
555
- "minIntervalMs": {
556
- "type": "integer",
557
- "minimum": 0,
558
- "maximum": 60000,
559
- "default": 500
560
- },
561
- "maxOutputChars": {
562
- "type": "integer",
563
- "minimum": 1000,
564
- "maximum": 100000,
565
- "default": 12000
566
- },
567
- "userAgent": {
568
- "type": "string"
569
- }
570
- }
571
- },
572
- "fetch": {
573
- "type": "object",
574
- "additionalProperties": false,
575
- "properties": {
576
- "timeoutMs": {
577
- "type": "integer",
578
- "minimum": 1000,
579
- "maximum": 120000,
580
- "default": 20000
581
- },
582
- "maxBytes": {
583
- "type": "integer",
584
- "minimum": 1024,
585
- "maximum": 50000000,
586
- "default": 5000000
587
- },
588
- "maxOutputChars": {
589
- "type": "integer",
590
- "minimum": 500,
591
- "maximum": 100000,
592
- "default": 20000
593
- },
594
- "userAgent": {
595
- "type": "string"
596
- },
597
- "acceptLanguage": {
598
- "type": "string"
599
- },
600
- "allowPrivateHosts": {
601
- "type": "boolean",
602
- "default": false
603
- },
604
- "maxRedirects": {
605
- "type": "integer",
606
- "minimum": 0,
607
- "maximum": 10,
608
- "default": 5
609
- },
610
- "maxBodyChars": {
611
- "type": "integer",
612
- "minimum": 1000,
613
- "maximum": 1000000,
614
- "default": 100000
615
- },
616
- "pdfEnabled": {
617
- "type": "boolean",
618
- "default": true
619
- },
620
- "cacheEnabled": {
621
- "type": "boolean",
622
- "default": true
623
- },
624
- "cacheTtlMs": {
625
- "type": "integer",
626
- "minimum": 0,
627
- "maximum": 3600000,
628
- "default": 300000
629
- },
630
- "cacheMaxEntries": {
631
- "type": "integer",
632
- "minimum": 1,
633
- "maximum": 50,
634
- "default": 8
635
- },
636
- "cacheMaxBytes": {
637
- "type": "integer",
638
- "minimum": 1024,
639
- "maximum": 50000000,
640
- "default": 8000000
641
- }
642
- }
643
- }
644
- }
645
- },
646
- "fileBrowse": {
647
- "type": "object",
648
- "additionalProperties": false,
649
- "properties": {
650
- "port": {
651
- "type": "integer",
652
- "minimum": 0,
653
- "maximum": 65535,
654
- "default": 0
655
- },
656
- "autoOpen": {
657
- "type": "boolean",
658
- "default": true
659
- },
660
- "maxFileBytes": {
661
- "type": "integer",
662
- "minimum": 0,
663
- "maximum": 1073741824,
664
- "default": 1048576
665
- },
666
- "maxThumbBytes": {
667
- "type": "integer",
668
- "minimum": 0,
669
- "maximum": 1073741824,
670
- "default": 5242880
671
- },
672
- "maxTextLines": {
673
- "type": "integer",
674
- "minimum": 1,
675
- "maximum": 1000000,
676
- "default": 5000
677
- },
678
- "maxDirEntries": {
679
- "type": "integer",
680
- "minimum": 1,
681
- "maximum": 1000000,
682
- "default": 2000
683
- },
684
- "thumbnails": {
685
- "type": "boolean",
686
- "default": true
687
- },
688
- "markdown": {
689
- "type": "boolean",
690
- "default": true
691
- },
692
- "maxIndexEntries": {
693
- "type": "integer",
694
- "minimum": 1,
695
- "maximum": 1000000,
696
- "default": 20000
697
- }
698
- }
699
- },
700
- "document": {
701
- "type": "object",
702
- "additionalProperties": false,
703
- "properties": {
704
- "maxFileBytes": {
705
- "type": "integer",
706
- "minimum": 1024,
707
- "maximum": 536870912,
708
- "default": 20971520
709
- },
710
- "maxChars": {
711
- "type": "integer",
712
- "minimum": 200,
713
- "maximum": 100000,
714
- "default": 40000
715
- },
716
- "formats": {
717
- "type": "object",
718
- "description": "Per-format on/off, merged over each format's default. Known ids: pdf, docx, doc, odt, rtf, xlsx.",
719
- "additionalProperties": {
720
- "type": "boolean"
721
- }
722
- }
723
- }
724
- },
725
- "memory": {
726
- "type": "object",
727
- "additionalProperties": false,
728
- "properties": {
729
- "inject": {
730
- "type": "boolean",
731
- "default": true
732
- },
733
- "maxInjectBytes": {
734
- "type": "integer",
735
- "minimum": 512,
736
- "maximum": 32768,
737
- "default": 8192
738
- }
739
- }
740
- },
741
- "wechat": {
742
- "type": "object",
743
- "additionalProperties": false,
744
- "properties": {
745
- "allowedPeers": {
746
- "$ref": "#/$defs/stringArray",
747
- "default": []
748
- },
749
- "maxReplyChars": {
750
- "type": "integer",
751
- "minimum": 1,
752
- "maximum": 20000,
753
- "default": 4000
754
- },
755
- "botAgent": {
756
- "type": "string",
757
- "maxLength": 256,
758
- "default": "pi-wechat"
759
- },
760
- "channelVersion": {
761
- "type": "string",
762
- "default": "0.1.0"
763
- },
764
- "cdnBaseUrl": {
765
- "type": "string",
766
- "default": "https://novac2c.cdn.weixin.qq.com/c2c"
767
- },
768
- "maxMediaBytes": {
769
- "type": "integer",
770
- "minimum": 1024,
771
- "maximum": 104857600,
772
- "default": 20971520
773
- },
774
- "typingIndicator": {
775
- "type": "boolean",
776
- "default": true
777
- },
778
- "remotePrompts": {
779
- "type": "boolean",
780
- "default": true
781
- }
782
- }
783
- }
784
- }
785
- }