@buyi1net/pi-toolkit 0.0.1

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 (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/assembler.ts +127 -0
  4. package/config.ts +201 -0
  5. package/i18n.ts +693 -0
  6. package/index.ts +99 -0
  7. package/menu/items.ts +264 -0
  8. package/menu/panels.ts +91 -0
  9. package/menu/settings-list.ts +84 -0
  10. package/menu/theme.ts +31 -0
  11. package/menu/toolkit-menu.ts +139 -0
  12. package/module.ts +156 -0
  13. package/modules/eyes/chain.ts +173 -0
  14. package/modules/eyes/config.ts +319 -0
  15. package/modules/eyes/index.ts +161 -0
  16. package/modules/eyes/menu.ts +828 -0
  17. package/modules/eyes/pi-model-backend.ts +245 -0
  18. package/modules/eyes/resilience.ts +161 -0
  19. package/modules/eyes/vision-bridge.ts +232 -0
  20. package/modules/eyes/vision-cache.ts +86 -0
  21. package/modules/eyes/vision-json.ts +19 -0
  22. package/modules/eyes/vision-preprocess.ts +192 -0
  23. package/modules/eyes/vision-probe.ts +21 -0
  24. package/modules/eyes/vision-prompt.ts +90 -0
  25. package/modules/eyes/vision-tool.ts +59 -0
  26. package/modules/eyes/vision-types.ts +33 -0
  27. package/modules/index.ts +10 -0
  28. package/modules/subagents/agents/researcher.md +51 -0
  29. package/modules/subagents/agents/scout.md +40 -0
  30. package/modules/subagents/agents/worker.md +79 -0
  31. package/modules/subagents/config.json.example +6 -0
  32. package/modules/subagents/config.ts +144 -0
  33. package/modules/subagents/index.ts +91 -0
  34. package/modules/subagents/menu.ts +388 -0
  35. package/modules/subagents/src/activity.ts +511 -0
  36. package/modules/subagents/src/agents.ts +126 -0
  37. package/modules/subagents/src/command.ts +37 -0
  38. package/modules/subagents/src/dependencies.ts +246 -0
  39. package/modules/subagents/src/diagnostics.ts +13 -0
  40. package/modules/subagents/src/display.ts +94 -0
  41. package/modules/subagents/src/headless.ts +342 -0
  42. package/modules/subagents/src/herdr.ts +203 -0
  43. package/modules/subagents/src/index.ts +2798 -0
  44. package/modules/subagents/src/inspect-tool.ts +839 -0
  45. package/modules/subagents/src/launch-config.ts +196 -0
  46. package/modules/subagents/src/layout-budget.ts +26 -0
  47. package/modules/subagents/src/list-tool.ts +292 -0
  48. package/modules/subagents/src/message-tool.ts +808 -0
  49. package/modules/subagents/src/names.ts +17 -0
  50. package/modules/subagents/src/pane-layout.ts +49 -0
  51. package/modules/subagents/src/params.ts +145 -0
  52. package/modules/subagents/src/renderers.ts +181 -0
  53. package/modules/subagents/src/result.ts +43 -0
  54. package/modules/subagents/src/retention.ts +114 -0
  55. package/modules/subagents/src/route-error.ts +212 -0
  56. package/modules/subagents/src/routing.ts +235 -0
  57. package/modules/subagents/src/runtime-registry.ts +159 -0
  58. package/modules/subagents/src/session.ts +801 -0
  59. package/modules/subagents/src/status.ts +513 -0
  60. package/modules/subagents/src/stop-tool.ts +235 -0
  61. package/modules/subagents/src/subagent-done.ts +590 -0
  62. package/modules/subagents/src/subagent-tool.ts +1155 -0
  63. package/modules/subagents/src/surface.ts +355 -0
  64. package/modules/subagents/src/team-dispatch-tool.ts +219 -0
  65. package/modules/subagents/src/team.ts +232 -0
  66. package/modules/subagents/src/tmux.ts +210 -0
  67. package/modules/subagents/src/tools/safe-bash.ts +72 -0
  68. package/modules/subagents/src/types.ts +131 -0
  69. package/modules/tui/adapter/provider-usage.ts +143 -0
  70. package/modules/tui/config.ts +50 -0
  71. package/modules/tui/index.ts +120 -0
  72. package/modules/tui/kernel/pkg/shared/grok-subscription.ts +169 -0
  73. package/modules/tui/kernel/pkg/shared/official-subscription.ts +237 -0
  74. package/modules/tui/kernel/pkg/shared/provider-catalog.ts +367 -0
  75. package/modules/tui/kernel/pkg/shared/provider-contracts.ts +150 -0
  76. package/modules/tui/kernel/pkg/shared/provider-display.ts +55 -0
  77. package/modules/tui/kernel/pkg/shared/provider-parsers.ts +171 -0
  78. package/modules/tui/kernel/pkg/shared/volcengine.ts +191 -0
  79. package/modules/tui/kernel/pkg/shared/zhipu.ts +149 -0
  80. package/modules/tui/kernel/pkg/usage-core/index.ts +335 -0
  81. package/modules/tui/kernel/pkg/usage-core/provider-routes.ts +187 -0
  82. package/modules/tui/kernel/pkg/usage-node/index.ts +635 -0
  83. package/modules/tui/kernel/pkg/usage-node/provider-usage.ts +388 -0
  84. package/modules/tui/kernel/usage-core.ts +2 -0
  85. package/modules/tui/kernel/usage-node.ts +2 -0
  86. package/modules/tui/menu.ts +418 -0
  87. package/modules/tui/plugin/editor.ts +396 -0
  88. package/modules/tui/plugin/footer.ts +161 -0
  89. package/modules/tui/plugin/index.ts +30 -0
  90. package/modules/tui/plugin/lifecycle.ts +637 -0
  91. package/modules/tui/plugin/package-order.ts +169 -0
  92. package/modules/tui/plugin/screen-transition.ts +203 -0
  93. package/modules/tui/plugin/settings-config.ts +297 -0
  94. package/modules/tui/plugin/status-sources.ts +49 -0
  95. package/modules/tui/plugin/transition-gate.ts +261 -0
  96. package/modules/tui/renderer/custom-header.ts +157 -0
  97. package/modules/tui/renderer/editor.ts +70 -0
  98. package/modules/tui/renderer/header.ts +72 -0
  99. package/modules/tui/renderer/icons.ts +149 -0
  100. package/modules/tui/renderer/pi-installer-logo.ts +194 -0
  101. package/modules/tui/status/auto-compaction.ts +67 -0
  102. package/modules/tui/status/project-status.ts +655 -0
  103. package/modules/tui/status/provider-status.ts +120 -0
  104. package/modules/tui/status/runtime-status.ts +307 -0
  105. package/modules/tui/status/session-status.ts +325 -0
  106. package/modules/tui/status/status-config.ts +95 -0
  107. package/modules/tui/status/status-segments.ts +263 -0
  108. package/modules/tui/status/turn-telemetry.ts +466 -0
  109. package/modules/tui/themes/LICENSE.pi-themes-bundle +21 -0
  110. package/modules/tui/themes/UPSTREAM.md +7 -0
  111. package/modules/tui/themes/catppuccin-latte.json +80 -0
  112. package/modules/tui/themes/catppuccin-mocha.json +79 -0
  113. package/modules/tui/themes/crimson-noir.json +85 -0
  114. package/modules/tui/themes/dracula.json +79 -0
  115. package/modules/tui/themes/everforest-dark.json +85 -0
  116. package/modules/tui/themes/gruvbox-dark.json +85 -0
  117. package/modules/tui/themes/gruvbox-light.json +85 -0
  118. package/modules/tui/themes/matrix.json +85 -0
  119. package/modules/tui/themes/nord.json +85 -0
  120. package/modules/tui/themes/one-dark.json +85 -0
  121. package/modules/tui/themes/rose-pine-dawn.json +85 -0
  122. package/modules/tui/themes/rose-pine.json +85 -0
  123. package/modules/tui/themes/solarized-dark.json +85 -0
  124. package/modules/tui/themes/solarized-light.json +85 -0
  125. package/modules/tui/themes/tokyo-night-storm.json +79 -0
  126. package/modules/tui/themes/tokyo-night.json +79 -0
  127. package/package.json +28 -0
  128. package/services.ts +38 -0
  129. package/toolkit.ts +147 -0
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "rose-pine-dawn",
4
+ "vars": {
5
+ "accent": "#907aa9",
6
+ "accent2": "#56949f",
7
+ "green": "#286983",
8
+ "red": "#b4637a",
9
+ "yellow": "#ea9d34",
10
+ "orange": "#d7827e",
11
+ "purple": "#907aa9",
12
+ "cyan": "#56949f",
13
+ "textSoft": "#464261",
14
+ "muted": "#797593",
15
+ "dim": "#9893a5",
16
+ "comment": "#9893a5",
17
+ "borderMuted": "#9893a5",
18
+ "thinkingMin": "#9893a5",
19
+ "bgSelect": "#f2e9e1",
20
+ "bgUser": "#faf4ed",
21
+ "bgPending": "#f2e9e1",
22
+ "bgSuccess": "#f2e9e1",
23
+ "bgError": "#f2e9e1",
24
+ "bgCustom": "#f2e9e1",
25
+ "pageBg": "#fffaf3"
26
+ },
27
+ "colors": {
28
+ "accent": "accent",
29
+ "border": "accent",
30
+ "borderAccent": "accent2",
31
+ "borderMuted": "borderMuted",
32
+ "success": "green",
33
+ "error": "red",
34
+ "warning": "yellow",
35
+ "muted": "muted",
36
+ "dim": "dim",
37
+ "text": "",
38
+ "thinkingText": "muted",
39
+ "selectedBg": "bgSelect",
40
+ "userMessageBg": "bgUser",
41
+ "userMessageText": "textSoft",
42
+ "customMessageBg": "bgCustom",
43
+ "customMessageText": "textSoft",
44
+ "customMessageLabel": "purple",
45
+ "toolPendingBg": "bgPending",
46
+ "toolSuccessBg": "bgSuccess",
47
+ "toolErrorBg": "bgError",
48
+ "toolTitle": "accent2",
49
+ "toolOutput": "textSoft",
50
+ "mdHeading": "orange",
51
+ "mdLink": "accent",
52
+ "mdLinkUrl": "muted",
53
+ "mdCode": "cyan",
54
+ "mdCodeBlock": "green",
55
+ "mdCodeBlockBorder": "borderMuted",
56
+ "mdQuote": "muted",
57
+ "mdQuoteBorder": "borderMuted",
58
+ "mdHr": "borderMuted",
59
+ "mdListBullet": "purple",
60
+ "toolDiffAdded": "green",
61
+ "toolDiffRemoved": "red",
62
+ "toolDiffContext": "muted",
63
+ "syntaxComment": "comment",
64
+ "syntaxKeyword": "purple",
65
+ "syntaxFunction": "accent",
66
+ "syntaxVariable": "textSoft",
67
+ "syntaxString": "green",
68
+ "syntaxNumber": "orange",
69
+ "syntaxType": "cyan",
70
+ "syntaxOperator": "accent2",
71
+ "syntaxPunctuation": "dim",
72
+ "thinkingOff": "borderMuted",
73
+ "thinkingMinimal": "thinkingMin",
74
+ "thinkingLow": "accent",
75
+ "thinkingMedium": "accent2",
76
+ "thinkingHigh": "purple",
77
+ "thinkingXhigh": "red",
78
+ "bashMode": "green"
79
+ },
80
+ "export": {
81
+ "pageBg": "#faf4ed",
82
+ "cardBg": "#fffaf3",
83
+ "infoBg": "#f2e9e1"
84
+ }
85
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "rose-pine",
4
+ "vars": {
5
+ "accent": "#c4a7e7",
6
+ "accent2": "#9ccfd8",
7
+ "green": "#31748f",
8
+ "red": "#eb6f92",
9
+ "yellow": "#f6c177",
10
+ "orange": "#ebbcba",
11
+ "purple": "#c4a7e7",
12
+ "cyan": "#9ccfd8",
13
+ "textSoft": "#e0def4",
14
+ "muted": "#908caa",
15
+ "dim": "#6e6a86",
16
+ "comment": "#6e6a86",
17
+ "borderMuted": "#6e6a86",
18
+ "thinkingMin": "#6e6a86",
19
+ "bgSelect": "#26233a",
20
+ "bgUser": "#191724",
21
+ "bgPending": "#26233a",
22
+ "bgSuccess": "#26233a",
23
+ "bgError": "#26233a",
24
+ "bgCustom": "#26233a",
25
+ "pageBg": "#191724"
26
+ },
27
+ "colors": {
28
+ "accent": "accent",
29
+ "border": "accent",
30
+ "borderAccent": "accent2",
31
+ "borderMuted": "borderMuted",
32
+ "success": "green",
33
+ "error": "red",
34
+ "warning": "yellow",
35
+ "muted": "muted",
36
+ "dim": "dim",
37
+ "text": "",
38
+ "thinkingText": "muted",
39
+ "selectedBg": "bgSelect",
40
+ "userMessageBg": "bgUser",
41
+ "userMessageText": "textSoft",
42
+ "customMessageBg": "bgCustom",
43
+ "customMessageText": "textSoft",
44
+ "customMessageLabel": "purple",
45
+ "toolPendingBg": "bgPending",
46
+ "toolSuccessBg": "bgSuccess",
47
+ "toolErrorBg": "bgError",
48
+ "toolTitle": "accent2",
49
+ "toolOutput": "textSoft",
50
+ "mdHeading": "orange",
51
+ "mdLink": "accent",
52
+ "mdLinkUrl": "muted",
53
+ "mdCode": "cyan",
54
+ "mdCodeBlock": "green",
55
+ "mdCodeBlockBorder": "borderMuted",
56
+ "mdQuote": "muted",
57
+ "mdQuoteBorder": "borderMuted",
58
+ "mdHr": "borderMuted",
59
+ "mdListBullet": "purple",
60
+ "toolDiffAdded": "green",
61
+ "toolDiffRemoved": "red",
62
+ "toolDiffContext": "muted",
63
+ "syntaxComment": "#6e6a86",
64
+ "syntaxKeyword": "purple",
65
+ "syntaxFunction": "accent",
66
+ "syntaxVariable": "textSoft",
67
+ "syntaxString": "green",
68
+ "syntaxNumber": "orange",
69
+ "syntaxType": "cyan",
70
+ "syntaxOperator": "accent2",
71
+ "syntaxPunctuation": "dim",
72
+ "thinkingOff": "borderMuted",
73
+ "thinkingMinimal": "#6e6a86",
74
+ "thinkingLow": "accent",
75
+ "thinkingMedium": "accent2",
76
+ "thinkingHigh": "purple",
77
+ "thinkingXhigh": "red",
78
+ "bashMode": "green"
79
+ },
80
+ "export": {
81
+ "pageBg": "#191724",
82
+ "cardBg": "#1f1d2e",
83
+ "infoBg": "#26233a"
84
+ }
85
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "solarized-dark",
4
+ "vars": {
5
+ "accent": "#268bd2",
6
+ "accent2": "#2aa198",
7
+ "green": "#859900",
8
+ "red": "#dc322f",
9
+ "yellow": "#b58900",
10
+ "orange": "#cb4b16",
11
+ "purple": "#6c71c4",
12
+ "cyan": "#2aa198",
13
+ "textSoft": "#93a1a1",
14
+ "muted": "#839496",
15
+ "dim": "#657b83",
16
+ "comment": "#586e75",
17
+ "borderMuted": "#586e75",
18
+ "thinkingMin": "#657b83",
19
+ "bgSelect": "#073642",
20
+ "bgUser": "#073642",
21
+ "bgPending": "#002b36",
22
+ "bgSuccess": "#073642",
23
+ "bgError": "#073642",
24
+ "bgCustom": "#073642",
25
+ "pageBg": "#002b36"
26
+ },
27
+ "colors": {
28
+ "accent": "accent",
29
+ "border": "accent",
30
+ "borderAccent": "accent2",
31
+ "borderMuted": "borderMuted",
32
+ "success": "green",
33
+ "error": "red",
34
+ "warning": "yellow",
35
+ "muted": "muted",
36
+ "dim": "dim",
37
+ "text": "",
38
+ "thinkingText": "muted",
39
+ "selectedBg": "bgSelect",
40
+ "userMessageBg": "bgUser",
41
+ "userMessageText": "textSoft",
42
+ "customMessageBg": "bgCustom",
43
+ "customMessageText": "textSoft",
44
+ "customMessageLabel": "purple",
45
+ "toolPendingBg": "bgPending",
46
+ "toolSuccessBg": "bgSuccess",
47
+ "toolErrorBg": "bgError",
48
+ "toolTitle": "accent2",
49
+ "toolOutput": "textSoft",
50
+ "mdHeading": "orange",
51
+ "mdLink": "accent",
52
+ "mdLinkUrl": "muted",
53
+ "mdCode": "cyan",
54
+ "mdCodeBlock": "green",
55
+ "mdCodeBlockBorder": "borderMuted",
56
+ "mdQuote": "muted",
57
+ "mdQuoteBorder": "borderMuted",
58
+ "mdHr": "borderMuted",
59
+ "mdListBullet": "purple",
60
+ "toolDiffAdded": "green",
61
+ "toolDiffRemoved": "red",
62
+ "toolDiffContext": "muted",
63
+ "syntaxComment": "comment",
64
+ "syntaxKeyword": "purple",
65
+ "syntaxFunction": "accent",
66
+ "syntaxVariable": "textSoft",
67
+ "syntaxString": "green",
68
+ "syntaxNumber": "orange",
69
+ "syntaxType": "cyan",
70
+ "syntaxOperator": "accent2",
71
+ "syntaxPunctuation": "dim",
72
+ "thinkingOff": "borderMuted",
73
+ "thinkingMinimal": "thinkingMin",
74
+ "thinkingLow": "accent",
75
+ "thinkingMedium": "accent2",
76
+ "thinkingHigh": "purple",
77
+ "thinkingXhigh": "red",
78
+ "bashMode": "green"
79
+ },
80
+ "export": {
81
+ "pageBg": "#002b36",
82
+ "cardBg": "#073642",
83
+ "infoBg": "#073642"
84
+ }
85
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "solarized-light",
4
+ "vars": {
5
+ "accent": "#268bd2",
6
+ "accent2": "#2aa198",
7
+ "green": "#859900",
8
+ "red": "#dc322f",
9
+ "yellow": "#b58900",
10
+ "orange": "#cb4b16",
11
+ "purple": "#6c71c4",
12
+ "cyan": "#2aa198",
13
+ "textSoft": "#073642",
14
+ "muted": "#586e75",
15
+ "dim": "#657b83",
16
+ "comment": "#93a1a1",
17
+ "borderMuted": "#93a1a1",
18
+ "thinkingMin": "#839496",
19
+ "bgSelect": "#eee8d5",
20
+ "bgUser": "#fdf6e3",
21
+ "bgPending": "#eee8d5",
22
+ "bgSuccess": "#eee8d5",
23
+ "bgError": "#eee8d5",
24
+ "bgCustom": "#eee8d5",
25
+ "pageBg": "#eee8d5"
26
+ },
27
+ "colors": {
28
+ "accent": "accent",
29
+ "border": "accent",
30
+ "borderAccent": "accent2",
31
+ "borderMuted": "borderMuted",
32
+ "success": "green",
33
+ "error": "red",
34
+ "warning": "yellow",
35
+ "muted": "muted",
36
+ "dim": "dim",
37
+ "text": "",
38
+ "thinkingText": "muted",
39
+ "selectedBg": "bgSelect",
40
+ "userMessageBg": "bgUser",
41
+ "userMessageText": "textSoft",
42
+ "customMessageBg": "bgCustom",
43
+ "customMessageText": "textSoft",
44
+ "customMessageLabel": "purple",
45
+ "toolPendingBg": "bgPending",
46
+ "toolSuccessBg": "bgSuccess",
47
+ "toolErrorBg": "bgError",
48
+ "toolTitle": "accent2",
49
+ "toolOutput": "textSoft",
50
+ "mdHeading": "orange",
51
+ "mdLink": "accent",
52
+ "mdLinkUrl": "muted",
53
+ "mdCode": "cyan",
54
+ "mdCodeBlock": "green",
55
+ "mdCodeBlockBorder": "borderMuted",
56
+ "mdQuote": "muted",
57
+ "mdQuoteBorder": "borderMuted",
58
+ "mdHr": "borderMuted",
59
+ "mdListBullet": "purple",
60
+ "toolDiffAdded": "green",
61
+ "toolDiffRemoved": "red",
62
+ "toolDiffContext": "muted",
63
+ "syntaxComment": "comment",
64
+ "syntaxKeyword": "purple",
65
+ "syntaxFunction": "accent",
66
+ "syntaxVariable": "textSoft",
67
+ "syntaxString": "green",
68
+ "syntaxNumber": "orange",
69
+ "syntaxType": "cyan",
70
+ "syntaxOperator": "accent2",
71
+ "syntaxPunctuation": "dim",
72
+ "thinkingOff": "borderMuted",
73
+ "thinkingMinimal": "thinkingMin",
74
+ "thinkingLow": "accent",
75
+ "thinkingMedium": "accent2",
76
+ "thinkingHigh": "purple",
77
+ "thinkingXhigh": "red",
78
+ "bashMode": "green"
79
+ },
80
+ "export": {
81
+ "pageBg": "#eee8d5",
82
+ "cardBg": "#fdf6e3",
83
+ "infoBg": "#eee8d5"
84
+ }
85
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "tokyo-night-storm",
4
+ "vars": {
5
+ "accent": "#7aa2f7",
6
+ "accent2": "#7dcfff",
7
+ "green": "#9ece6a",
8
+ "red": "#f7768e",
9
+ "yellow": "#e0af68",
10
+ "textSoft": "#c0caf5",
11
+ "muted": "#a9b1d6",
12
+ "dim": "#737aa2",
13
+ "borderMuted": "#565f89",
14
+ "bgSelect": "#292e42",
15
+ "bgUser": "#24283b",
16
+ "bgPending": "#1f2335",
17
+ "bgSuccess": "#292e42",
18
+ "bgError": "#292e42",
19
+ "bgCustom": "#292e42"
20
+ },
21
+ "colors": {
22
+ "accent": "accent",
23
+ "border": "accent",
24
+ "borderAccent": "accent2",
25
+ "borderMuted": "borderMuted",
26
+ "success": "green",
27
+ "error": "red",
28
+ "warning": "yellow",
29
+ "muted": "muted",
30
+ "dim": "dim",
31
+ "text": "",
32
+ "thinkingText": "muted",
33
+ "selectedBg": "bgSelect",
34
+ "userMessageBg": "bgUser",
35
+ "userMessageText": "textSoft",
36
+ "customMessageBg": "bgCustom",
37
+ "customMessageText": "textSoft",
38
+ "customMessageLabel": "#bb9af7",
39
+ "toolPendingBg": "bgPending",
40
+ "toolSuccessBg": "bgSuccess",
41
+ "toolErrorBg": "bgError",
42
+ "toolTitle": "accent2",
43
+ "toolOutput": "textSoft",
44
+ "mdHeading": "#e0af68",
45
+ "mdLink": "#7aa2f7",
46
+ "mdLinkUrl": "muted",
47
+ "mdCode": "#7dcfff",
48
+ "mdCodeBlock": "#9ece6a",
49
+ "mdCodeBlockBorder": "borderMuted",
50
+ "mdQuote": "muted",
51
+ "mdQuoteBorder": "borderMuted",
52
+ "mdHr": "borderMuted",
53
+ "mdListBullet": "#bb9af7",
54
+ "toolDiffAdded": "#9ece6a",
55
+ "toolDiffRemoved": "#f7768e",
56
+ "toolDiffContext": "muted",
57
+ "syntaxComment": "#565f89",
58
+ "syntaxKeyword": "#bb9af7",
59
+ "syntaxFunction": "#7aa2f7",
60
+ "syntaxVariable": "#c0caf5",
61
+ "syntaxString": "#9ece6a",
62
+ "syntaxNumber": "#ff9e64",
63
+ "syntaxType": "#2ac3de",
64
+ "syntaxOperator": "#89ddff",
65
+ "syntaxPunctuation": "#a9b1d6",
66
+ "thinkingOff": "borderMuted",
67
+ "thinkingMinimal": "#565f89",
68
+ "thinkingLow": "#7aa2f7",
69
+ "thinkingMedium": "#7dcfff",
70
+ "thinkingHigh": "#bb9af7",
71
+ "thinkingXhigh": "#f7768e",
72
+ "bashMode": "#9ece6a"
73
+ },
74
+ "export": {
75
+ "pageBg": "#1b1e2d",
76
+ "cardBg": "#24283b",
77
+ "infoBg": "#292e42"
78
+ }
79
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "tokyo-night",
4
+ "vars": {
5
+ "accent": "#7aa2f7",
6
+ "accent2": "#7dcfff",
7
+ "green": "#9ece6a",
8
+ "red": "#f7768e",
9
+ "yellow": "#e0af68",
10
+ "textSoft": "#c0caf5",
11
+ "muted": "#a9b1d6",
12
+ "dim": "#737aa2",
13
+ "borderMuted": "#565f89",
14
+ "bgSelect": "#292e42",
15
+ "bgUser": "#1a1b26",
16
+ "bgPending": "#16161e",
17
+ "bgSuccess": "#292e42",
18
+ "bgError": "#292e42",
19
+ "bgCustom": "#292e42"
20
+ },
21
+ "colors": {
22
+ "accent": "accent",
23
+ "border": "accent",
24
+ "borderAccent": "accent2",
25
+ "borderMuted": "borderMuted",
26
+ "success": "green",
27
+ "error": "red",
28
+ "warning": "yellow",
29
+ "muted": "muted",
30
+ "dim": "dim",
31
+ "text": "",
32
+ "thinkingText": "muted",
33
+ "selectedBg": "bgSelect",
34
+ "userMessageBg": "bgUser",
35
+ "userMessageText": "textSoft",
36
+ "customMessageBg": "bgCustom",
37
+ "customMessageText": "textSoft",
38
+ "customMessageLabel": "#bb9af7",
39
+ "toolPendingBg": "bgPending",
40
+ "toolSuccessBg": "bgSuccess",
41
+ "toolErrorBg": "bgError",
42
+ "toolTitle": "accent2",
43
+ "toolOutput": "textSoft",
44
+ "mdHeading": "#e0af68",
45
+ "mdLink": "#7aa2f7",
46
+ "mdLinkUrl": "muted",
47
+ "mdCode": "#7dcfff",
48
+ "mdCodeBlock": "#9ece6a",
49
+ "mdCodeBlockBorder": "borderMuted",
50
+ "mdQuote": "muted",
51
+ "mdQuoteBorder": "borderMuted",
52
+ "mdHr": "borderMuted",
53
+ "mdListBullet": "#bb9af7",
54
+ "toolDiffAdded": "#9ece6a",
55
+ "toolDiffRemoved": "#f7768e",
56
+ "toolDiffContext": "muted",
57
+ "syntaxComment": "#565f89",
58
+ "syntaxKeyword": "#bb9af7",
59
+ "syntaxFunction": "#7aa2f7",
60
+ "syntaxVariable": "#c0caf5",
61
+ "syntaxString": "#9ece6a",
62
+ "syntaxNumber": "#ff9e64",
63
+ "syntaxType": "#2ac3de",
64
+ "syntaxOperator": "#89ddff",
65
+ "syntaxPunctuation": "#a9b1d6",
66
+ "thinkingOff": "borderMuted",
67
+ "thinkingMinimal": "#565f89",
68
+ "thinkingLow": "#7aa2f7",
69
+ "thinkingMedium": "#7dcfff",
70
+ "thinkingHigh": "#bb9af7",
71
+ "thinkingXhigh": "#f7768e",
72
+ "bashMode": "#9ece6a"
73
+ },
74
+ "export": {
75
+ "pageBg": "#0c0e14",
76
+ "cardBg": "#1a1b26",
77
+ "infoBg": "#292e42"
78
+ }
79
+ }
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@buyi1net/pi-toolkit",
3
+ "version": "0.0.1",
4
+ "description": "Pi all-in-one toolkit: one extension package aggregating everyday tools (vision assistance, subagent orchestration, provider status, appearance) behind a native settings menu",
5
+ "keywords": [
6
+ "pi-package",
7
+ "pi-extension",
8
+ "pi-toolkit"
9
+ ],
10
+ "license": "MIT",
11
+ "type": "module",
12
+ "pi": {
13
+ "extensions": [
14
+ "./index.ts"
15
+ ],
16
+ "themes": [
17
+ "./modules/tui/themes"
18
+ ]
19
+ },
20
+ "peerDependencies": {
21
+ "@earendil-works/pi-coding-agent": ">=0.85.0",
22
+ "@earendil-works/pi-tui": ">=0.85.0",
23
+ "@sinclair/typebox": "*"
24
+ },
25
+ "optionalDependencies": {
26
+ "sharp": "^0.35.3"
27
+ }
28
+ }
package/services.ts ADDED
@@ -0,0 +1,38 @@
1
+ // pi-toolkit 最小服务注册表。
2
+ // 模块把自己的能力注册成命名句柄(如 eyes.query-latest、ui.provider-balance),
3
+ // 其它模块按名字查询。本工单只做存取,不含任何联动逻辑。
4
+
5
+ export interface ServiceRegistry {
6
+ /** 注册句柄;名字重复视为装配期错误,直接抛出 */
7
+ register<T>(name: string, service: T): void;
8
+ get<T>(name: string): T | undefined;
9
+ has(name: string): boolean;
10
+ /** 已注册的名字,按注册顺序 */
11
+ names(): readonly string[];
12
+ }
13
+
14
+ const NAME_PATTERN = /^[a-z0-9][a-z0-9._-]*$/;
15
+
16
+ export function createServiceRegistry(): ServiceRegistry {
17
+ const services = new Map<string, unknown>();
18
+ return {
19
+ register<T>(name: string, service: T): void {
20
+ if (!NAME_PATTERN.test(name)) {
21
+ throw new Error(`服务名不合法:${JSON.stringify(name)}(应为小写字母开头,可含 . _ - 与数字)`);
22
+ }
23
+ if (services.has(name)) {
24
+ throw new Error(`服务名重复注册:${name}`);
25
+ }
26
+ services.set(name, service);
27
+ },
28
+ get<T>(name: string): T | undefined {
29
+ return services.get(name) as T | undefined;
30
+ },
31
+ has(name: string): boolean {
32
+ return services.has(name);
33
+ },
34
+ names(): readonly string[] {
35
+ return [...services.keys()];
36
+ },
37
+ };
38
+ }