@oh-my-pi/pi-coding-agent 3.14.0 → 3.15.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.
- package/CHANGELOG.md +89 -0
- package/docs/theme.md +38 -5
- package/examples/sdk/11-sessions.ts +2 -2
- package/package.json +7 -4
- package/src/cli/file-processor.ts +51 -2
- package/src/cli/plugin-cli.ts +25 -19
- package/src/cli/update-cli.ts +4 -3
- package/src/core/agent-session.ts +31 -4
- package/src/core/compaction/branch-summarization.ts +4 -32
- package/src/core/compaction/compaction.ts +6 -84
- package/src/core/compaction/utils.ts +2 -3
- package/src/core/custom-tools/types.ts +2 -0
- package/src/core/export-html/index.ts +1 -1
- package/src/core/hooks/tool-wrapper.ts +0 -1
- package/src/core/hooks/types.ts +2 -2
- package/src/core/plugins/doctor.ts +9 -1
- package/src/core/sdk.ts +2 -1
- package/src/core/session-manager.ts +518 -40
- package/src/core/settings-manager.ts +174 -0
- package/src/core/system-prompt.ts +9 -14
- package/src/core/title-generator.ts +2 -8
- package/src/core/tools/ask.ts +19 -37
- package/src/core/tools/bash.ts +2 -37
- package/src/core/tools/edit.ts +2 -9
- package/src/core/tools/exa/render.ts +52 -48
- package/src/core/tools/find.ts +10 -8
- package/src/core/tools/grep.ts +45 -17
- package/src/core/tools/ls.ts +22 -2
- package/src/core/tools/lsp/clients/biome-client.ts +207 -0
- package/src/core/tools/lsp/clients/index.ts +49 -0
- package/src/core/tools/lsp/clients/lsp-linter-client.ts +98 -0
- package/src/core/tools/lsp/config.ts +3 -0
- package/src/core/tools/lsp/index.ts +107 -55
- package/src/core/tools/lsp/render.ts +192 -79
- package/src/core/tools/lsp/types.ts +27 -0
- package/src/core/tools/lsp/utils.ts +62 -22
- package/src/core/tools/notebook.ts +9 -1
- package/src/core/tools/output.ts +37 -14
- package/src/core/tools/read.ts +349 -34
- package/src/core/tools/renderers.ts +290 -89
- package/src/core/tools/review.ts +12 -5
- package/src/core/tools/task/agents.ts +5 -5
- package/src/core/tools/task/commands.ts +3 -3
- package/src/core/tools/task/executor.ts +33 -1
- package/src/core/tools/task/index.ts +93 -6
- package/src/core/tools/task/render.ts +147 -66
- package/src/core/tools/task/types.ts +14 -9
- package/src/core/tools/web-fetch.ts +242 -103
- package/src/core/tools/web-search/index.ts +64 -20
- package/src/core/tools/web-search/providers/exa.ts +68 -172
- package/src/core/tools/web-search/render.ts +264 -74
- package/src/core/tools/write.ts +2 -8
- package/src/main.ts +10 -6
- package/src/modes/cleanup.ts +23 -0
- package/src/modes/index.ts +9 -4
- package/src/modes/interactive/components/bash-execution.ts +6 -3
- package/src/modes/interactive/components/branch-summary-message.ts +1 -1
- package/src/modes/interactive/components/compaction-summary-message.ts +1 -1
- package/src/modes/interactive/components/dynamic-border.ts +1 -1
- package/src/modes/interactive/components/extensions/extension-dashboard.ts +4 -5
- package/src/modes/interactive/components/extensions/extension-list.ts +18 -16
- package/src/modes/interactive/components/extensions/inspector-panel.ts +8 -8
- package/src/modes/interactive/components/hook-editor.ts +1 -0
- package/src/modes/interactive/components/hook-message.ts +2 -2
- package/src/modes/interactive/components/hook-selector.ts +1 -1
- package/src/modes/interactive/components/model-selector.ts +22 -9
- package/src/modes/interactive/components/oauth-selector.ts +20 -4
- package/src/modes/interactive/components/plugin-settings.ts +4 -2
- package/src/modes/interactive/components/session-selector.ts +9 -6
- package/src/modes/interactive/components/settings-defs.ts +285 -1
- package/src/modes/interactive/components/settings-selector.ts +176 -3
- package/src/modes/interactive/components/status-line/index.ts +4 -0
- package/src/modes/interactive/components/status-line/presets.ts +94 -0
- package/src/modes/interactive/components/status-line/segments.ts +350 -0
- package/src/modes/interactive/components/status-line/separators.ts +55 -0
- package/src/modes/interactive/components/status-line/types.ts +81 -0
- package/src/modes/interactive/components/status-line-segment-editor.ts +357 -0
- package/src/modes/interactive/components/status-line.ts +172 -223
- package/src/modes/interactive/components/tool-execution.ts +446 -211
- package/src/modes/interactive/components/tree-selector.ts +17 -6
- package/src/modes/interactive/components/ttsr-notification.ts +4 -4
- package/src/modes/interactive/components/welcome.ts +27 -19
- package/src/modes/interactive/interactive-mode.ts +99 -13
- package/src/modes/interactive/theme/dark.json +3 -2
- package/src/modes/interactive/theme/defaults/alabaster.json +99 -0
- package/src/modes/interactive/theme/defaults/amethyst.json +103 -0
- package/src/modes/interactive/theme/defaults/anthracite.json +100 -0
- package/src/modes/interactive/theme/defaults/basalt.json +90 -0
- package/src/modes/interactive/theme/defaults/birch.json +101 -0
- package/src/modes/interactive/theme/defaults/dark-abyss.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-arctic.json +111 -0
- package/src/modes/interactive/theme/defaults/dark-aurora.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-catppuccin.json +106 -0
- package/src/modes/interactive/theme/defaults/dark-cavern.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-copper.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-cosmos.json +96 -0
- package/src/modes/interactive/theme/defaults/dark-cyberpunk.json +109 -0
- package/src/modes/interactive/theme/defaults/dark-dracula.json +105 -0
- package/src/modes/interactive/theme/defaults/dark-eclipse.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-ember.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-equinox.json +96 -0
- package/src/modes/interactive/theme/defaults/dark-forest.json +103 -0
- package/src/modes/interactive/theme/defaults/dark-github.json +112 -0
- package/src/modes/interactive/theme/defaults/dark-gruvbox.json +119 -0
- package/src/modes/interactive/theme/defaults/dark-lavender.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-lunar.json +95 -0
- package/src/modes/interactive/theme/defaults/dark-midnight.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-monochrome.json +101 -0
- package/src/modes/interactive/theme/defaults/dark-monokai.json +105 -0
- package/src/modes/interactive/theme/defaults/dark-nebula.json +96 -0
- package/src/modes/interactive/theme/defaults/dark-nord.json +104 -0
- package/src/modes/interactive/theme/defaults/dark-ocean.json +108 -0
- package/src/modes/interactive/theme/defaults/dark-one.json +107 -0
- package/src/modes/interactive/theme/defaults/dark-rainforest.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-reef.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-retro.json +99 -0
- package/src/modes/interactive/theme/defaults/dark-rose-pine.json +95 -0
- package/src/modes/interactive/theme/defaults/dark-sakura.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-slate.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-solarized.json +96 -0
- package/src/modes/interactive/theme/defaults/dark-solstice.json +96 -0
- package/src/modes/interactive/theme/defaults/dark-starfall.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-sunset.json +106 -0
- package/src/modes/interactive/theme/defaults/dark-swamp.json +96 -0
- package/src/modes/interactive/theme/defaults/dark-synthwave.json +102 -0
- package/src/modes/interactive/theme/defaults/dark-taiga.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-terminal.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-tokyo-night.json +108 -0
- package/src/modes/interactive/theme/defaults/dark-tundra.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-twilight.json +97 -0
- package/src/modes/interactive/theme/defaults/dark-volcanic.json +97 -0
- package/src/modes/interactive/theme/defaults/graphite.json +99 -0
- package/src/modes/interactive/theme/defaults/index.ts +195 -0
- package/src/modes/interactive/theme/defaults/light-arctic.json +106 -0
- package/src/modes/interactive/theme/defaults/light-aurora-day.json +97 -0
- package/src/modes/interactive/theme/defaults/light-canyon.json +97 -0
- package/src/modes/interactive/theme/defaults/light-catppuccin.json +105 -0
- package/src/modes/interactive/theme/defaults/light-cirrus.json +96 -0
- package/src/modes/interactive/theme/defaults/light-coral.json +94 -0
- package/src/modes/interactive/theme/defaults/light-cyberpunk.json +103 -0
- package/src/modes/interactive/theme/defaults/light-dawn.json +96 -0
- package/src/modes/interactive/theme/defaults/light-dunes.json +97 -0
- package/src/modes/interactive/theme/defaults/light-eucalyptus.json +94 -0
- package/src/modes/interactive/theme/defaults/light-forest.json +107 -0
- package/src/modes/interactive/theme/defaults/light-frost.json +94 -0
- package/src/modes/interactive/theme/defaults/light-github.json +114 -0
- package/src/modes/interactive/theme/defaults/light-glacier.json +97 -0
- package/src/modes/interactive/theme/defaults/light-gruvbox.json +115 -0
- package/src/modes/interactive/theme/defaults/light-haze.json +96 -0
- package/src/modes/interactive/theme/defaults/light-honeycomb.json +94 -0
- package/src/modes/interactive/theme/defaults/light-lagoon.json +97 -0
- package/src/modes/interactive/theme/defaults/light-lavender.json +94 -0
- package/src/modes/interactive/theme/defaults/light-meadow.json +97 -0
- package/src/modes/interactive/theme/defaults/light-mint.json +94 -0
- package/src/modes/interactive/theme/defaults/light-monochrome.json +100 -0
- package/src/modes/interactive/theme/defaults/light-ocean.json +106 -0
- package/src/modes/interactive/theme/defaults/light-one.json +105 -0
- package/src/modes/interactive/theme/defaults/light-opal.json +97 -0
- package/src/modes/interactive/theme/defaults/light-orchard.json +97 -0
- package/src/modes/interactive/theme/defaults/light-paper.json +94 -0
- package/src/modes/interactive/theme/defaults/light-prism.json +96 -0
- package/src/modes/interactive/theme/defaults/light-retro.json +105 -0
- package/src/modes/interactive/theme/defaults/light-sand.json +94 -0
- package/src/modes/interactive/theme/defaults/light-savanna.json +97 -0
- package/src/modes/interactive/theme/defaults/light-solarized.json +101 -0
- package/src/modes/interactive/theme/defaults/light-soleil.json +96 -0
- package/src/modes/interactive/theme/defaults/light-sunset.json +106 -0
- package/src/modes/interactive/theme/defaults/light-synthwave.json +105 -0
- package/src/modes/interactive/theme/defaults/light-tokyo-night.json +118 -0
- package/src/modes/interactive/theme/defaults/light-wetland.json +97 -0
- package/src/modes/interactive/theme/defaults/light-zenith.json +95 -0
- package/src/modes/interactive/theme/defaults/limestone.json +100 -0
- package/src/modes/interactive/theme/defaults/mahogany.json +104 -0
- package/src/modes/interactive/theme/defaults/marble.json +99 -0
- package/src/modes/interactive/theme/defaults/obsidian.json +90 -0
- package/src/modes/interactive/theme/defaults/onyx.json +90 -0
- package/src/modes/interactive/theme/defaults/pearl.json +99 -0
- package/src/modes/interactive/theme/defaults/porcelain.json +90 -0
- package/src/modes/interactive/theme/defaults/quartz.json +102 -0
- package/src/modes/interactive/theme/defaults/sandstone.json +101 -0
- package/src/modes/interactive/theme/defaults/titanium.json +89 -0
- package/src/modes/interactive/theme/light.json +3 -2
- package/src/modes/interactive/theme/theme-schema.json +120 -4
- package/src/modes/interactive/theme/theme.ts +1228 -14
- package/src/prompts/branch-summary-preamble.md +3 -0
- package/src/prompts/branch-summary.md +28 -0
- package/src/prompts/compaction-summary.md +34 -0
- package/src/prompts/compaction-turn-prefix.md +16 -0
- package/src/prompts/compaction-update-summary.md +41 -0
- package/src/prompts/init.md +30 -0
- package/src/{core/tools/task/bundled-agents → prompts}/reviewer.md +6 -0
- package/src/prompts/summarization-system.md +3 -0
- package/src/prompts/system-prompt.md +27 -0
- package/src/{core/tools/task/bundled-agents → prompts}/task.md +2 -0
- package/src/prompts/title-system.md +8 -0
- package/src/prompts/tools/ask.md +24 -0
- package/src/prompts/tools/bash.md +23 -0
- package/src/prompts/tools/edit.md +9 -0
- package/src/prompts/tools/find.md +6 -0
- package/src/prompts/tools/grep.md +12 -0
- package/src/prompts/tools/lsp.md +14 -0
- package/src/prompts/tools/output.md +23 -0
- package/src/prompts/tools/read.md +25 -0
- package/src/prompts/tools/web-fetch.md +8 -0
- package/src/prompts/tools/web-search.md +10 -0
- package/src/prompts/tools/write.md +10 -0
- package/src/commands/init.md +0 -20
- /package/src/{core/tools/task/bundled-commands → prompts}/architect-plan.md +0 -0
- /package/src/{core/tools/task/bundled-agents → prompts}/browser.md +0 -0
- /package/src/{core/tools/task/bundled-agents → prompts}/explore.md +0 -0
- /package/src/{core/tools/task/bundled-commands → prompts}/implement-with-critic.md +0 -0
- /package/src/{core/tools/task/bundled-commands → prompts}/implement.md +0 -0
- /package/src/{core/tools/task/bundled-agents → prompts}/plan.md +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "light-github",
|
|
4
|
+
"vars": {
|
|
5
|
+
"fgDefault": "#1f2328",
|
|
6
|
+
"fgMuted": "#59636e",
|
|
7
|
+
"bgDefault": "#ffffff",
|
|
8
|
+
"bgMuted": "#f6f8fa",
|
|
9
|
+
"bgEmphasis": "#25292e",
|
|
10
|
+
"borderDefault": "#d1d9e0",
|
|
11
|
+
"borderEmphasis": "#818b98",
|
|
12
|
+
"accent": "#0969da",
|
|
13
|
+
"accentBg": "#ddf4ff",
|
|
14
|
+
"success": "#1f883d",
|
|
15
|
+
"successBg": "#dafbe1",
|
|
16
|
+
"successBorder": "#4ac26b",
|
|
17
|
+
"danger": "#cf222e",
|
|
18
|
+
"dangerBg": "#ffebe9",
|
|
19
|
+
"dangerBorder": "#ff8182",
|
|
20
|
+
"attention": "#9a6700",
|
|
21
|
+
"attentionBg": "#fff8c5",
|
|
22
|
+
"done": "#8250df",
|
|
23
|
+
"lightGray": "#8c959f",
|
|
24
|
+
"mediumGray": "#656d76",
|
|
25
|
+
"selectedBg": "#e8eaed",
|
|
26
|
+
"statusBg": "#f6f8fa",
|
|
27
|
+
"gitInfo": "#0969da",
|
|
28
|
+
"gitWarning": "#bf8700",
|
|
29
|
+
"modelColor": "#8250df",
|
|
30
|
+
"pathColor": "#0969da",
|
|
31
|
+
"contextColor": "#8250df",
|
|
32
|
+
"spendColor": "#0969da",
|
|
33
|
+
"stagedColor": "#1f883d",
|
|
34
|
+
"dirtyColor": "#bf8700",
|
|
35
|
+
"untrackedColor": "#0969da",
|
|
36
|
+
"outputColor": "#cf222e",
|
|
37
|
+
"costColor": "#cf222e",
|
|
38
|
+
"subagentsColor": "#9a6700"
|
|
39
|
+
},
|
|
40
|
+
"colors": {
|
|
41
|
+
"accent": "accent",
|
|
42
|
+
"border": "borderDefault",
|
|
43
|
+
"borderAccent": "accent",
|
|
44
|
+
"borderMuted": "borderDefault",
|
|
45
|
+
"success": "success",
|
|
46
|
+
"error": "danger",
|
|
47
|
+
"warning": "attention",
|
|
48
|
+
"muted": "fgMuted",
|
|
49
|
+
"dim": "lightGray",
|
|
50
|
+
"text": "",
|
|
51
|
+
"thinkingText": "mediumGray",
|
|
52
|
+
"selectedBg": "selectedBg",
|
|
53
|
+
"userMessageBg": "selectedBg",
|
|
54
|
+
"userMessageText": "",
|
|
55
|
+
"customMessageBg": "bgMuted",
|
|
56
|
+
"customMessageText": "",
|
|
57
|
+
"customMessageLabel": "done",
|
|
58
|
+
"toolPendingBg": "accentBg",
|
|
59
|
+
"toolSuccessBg": "successBg",
|
|
60
|
+
"toolErrorBg": "dangerBg",
|
|
61
|
+
"toolText": "fgDefault",
|
|
62
|
+
"toolTitle": "fgDefault",
|
|
63
|
+
"toolOutput": "fgMuted",
|
|
64
|
+
"mdHeading": "attention",
|
|
65
|
+
"mdLink": "accent",
|
|
66
|
+
"mdLinkUrl": "mediumGray",
|
|
67
|
+
"mdCode": "accent",
|
|
68
|
+
"mdCodeBlock": "fgDefault",
|
|
69
|
+
"mdCodeBlockBorder": "borderDefault",
|
|
70
|
+
"mdQuote": "fgMuted",
|
|
71
|
+
"mdQuoteBorder": "borderDefault",
|
|
72
|
+
"mdHr": "borderDefault",
|
|
73
|
+
"mdListBullet": "success",
|
|
74
|
+
"toolDiffAdded": "success",
|
|
75
|
+
"toolDiffRemoved": "danger",
|
|
76
|
+
"toolDiffContext": "fgMuted",
|
|
77
|
+
"link": "accent",
|
|
78
|
+
"syntaxComment": "#59636e",
|
|
79
|
+
"syntaxKeyword": "#cf222e",
|
|
80
|
+
"syntaxFunction": "#8250df",
|
|
81
|
+
"syntaxVariable": "#0550ae",
|
|
82
|
+
"syntaxString": "#0a3069",
|
|
83
|
+
"syntaxNumber": "#0550ae",
|
|
84
|
+
"syntaxType": "#953800",
|
|
85
|
+
"syntaxOperator": "#1f2328",
|
|
86
|
+
"syntaxPunctuation": "#59636e",
|
|
87
|
+
"thinkingOff": "borderDefault",
|
|
88
|
+
"thinkingMinimal": "lightGray",
|
|
89
|
+
"thinkingLow": "accent",
|
|
90
|
+
"thinkingMedium": "success",
|
|
91
|
+
"thinkingHigh": "attention",
|
|
92
|
+
"thinkingXhigh": "done",
|
|
93
|
+
"bashMode": "success",
|
|
94
|
+
"statusLineBg": "statusBg",
|
|
95
|
+
"statusLineSep": "borderDefault",
|
|
96
|
+
"statusLineModel": "modelColor",
|
|
97
|
+
"statusLinePath": "pathColor",
|
|
98
|
+
"statusLineGitClean": "success",
|
|
99
|
+
"statusLineGitDirty": "gitWarning",
|
|
100
|
+
"statusLineContext": "contextColor",
|
|
101
|
+
"statusLineSpend": "spendColor",
|
|
102
|
+
"statusLineStaged": "stagedColor",
|
|
103
|
+
"statusLineDirty": "dirtyColor",
|
|
104
|
+
"statusLineUntracked": "untrackedColor",
|
|
105
|
+
"statusLineOutput": "outputColor",
|
|
106
|
+
"statusLineCost": "costColor",
|
|
107
|
+
"statusLineSubagents": "subagentsColor"
|
|
108
|
+
},
|
|
109
|
+
"export": {
|
|
110
|
+
"pageBg": "#f6f8fa",
|
|
111
|
+
"cardBg": "#ffffff",
|
|
112
|
+
"infoBg": "#fff8c5"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "light-glacier",
|
|
4
|
+
"vars": {
|
|
5
|
+
"glacierBg": "#F2F7FA",
|
|
6
|
+
"glacierPanel": "#E6EFF4",
|
|
7
|
+
"glacierSurface": "#FAFDFF",
|
|
8
|
+
"glacierBorder": "#C4D6E2",
|
|
9
|
+
"crevasseBlue": "#3A7FB6",
|
|
10
|
+
"iceTeal": "#3E8F7A",
|
|
11
|
+
"warningAmber": "#C58A36",
|
|
12
|
+
"errorRed": "#C45A55",
|
|
13
|
+
"frostBlue": "#5F8FB8",
|
|
14
|
+
"glacierMist": "#CFE2F1",
|
|
15
|
+
"mutedText": "#51626D",
|
|
16
|
+
"dimText": "#7A8A95"
|
|
17
|
+
},
|
|
18
|
+
"colors": {
|
|
19
|
+
"accent": "crevasseBlue",
|
|
20
|
+
"border": "glacierBorder",
|
|
21
|
+
"borderAccent": "frostBlue",
|
|
22
|
+
"borderMuted": "glacierPanel",
|
|
23
|
+
"success": "iceTeal",
|
|
24
|
+
"error": "errorRed",
|
|
25
|
+
"warning": "warningAmber",
|
|
26
|
+
"muted": "mutedText",
|
|
27
|
+
"dim": "dimText",
|
|
28
|
+
"text": "",
|
|
29
|
+
"thinkingText": "mutedText",
|
|
30
|
+
|
|
31
|
+
"selectedBg": "glacierMist",
|
|
32
|
+
"userMessageBg": "glacierSurface",
|
|
33
|
+
"userMessageText": "",
|
|
34
|
+
"customMessageBg": "#E9F1F6",
|
|
35
|
+
"customMessageText": "",
|
|
36
|
+
"customMessageLabel": "crevasseBlue",
|
|
37
|
+
"toolPendingBg": "glacierBg",
|
|
38
|
+
"toolSuccessBg": "#E2F2EC",
|
|
39
|
+
"toolErrorBg": "#F1E1E2",
|
|
40
|
+
"toolTitle": "",
|
|
41
|
+
"toolOutput": "mutedText",
|
|
42
|
+
|
|
43
|
+
"mdHeading": "crevasseBlue",
|
|
44
|
+
"mdLink": "frostBlue",
|
|
45
|
+
"mdLinkUrl": "dimText",
|
|
46
|
+
"mdCode": "iceTeal",
|
|
47
|
+
"mdCodeBlock": "crevasseBlue",
|
|
48
|
+
"mdCodeBlockBorder": "glacierBorder",
|
|
49
|
+
"mdQuote": "mutedText",
|
|
50
|
+
"mdQuoteBorder": "glacierBorder",
|
|
51
|
+
"mdHr": "glacierBorder",
|
|
52
|
+
"mdListBullet": "iceTeal",
|
|
53
|
+
|
|
54
|
+
"toolDiffAdded": "iceTeal",
|
|
55
|
+
"toolDiffRemoved": "errorRed",
|
|
56
|
+
"toolDiffContext": "mutedText",
|
|
57
|
+
|
|
58
|
+
"syntaxComment": "dimText",
|
|
59
|
+
"syntaxKeyword": "crevasseBlue",
|
|
60
|
+
"syntaxFunction": "frostBlue",
|
|
61
|
+
"syntaxVariable": "mutedText",
|
|
62
|
+
"syntaxString": "iceTeal",
|
|
63
|
+
"syntaxNumber": "warningAmber",
|
|
64
|
+
"syntaxType": "crevasseBlue",
|
|
65
|
+
"syntaxOperator": "mutedText",
|
|
66
|
+
"syntaxPunctuation": "mutedText",
|
|
67
|
+
|
|
68
|
+
"thinkingOff": "glacierBorder",
|
|
69
|
+
"thinkingMinimal": "dimText",
|
|
70
|
+
"thinkingLow": "frostBlue",
|
|
71
|
+
"thinkingMedium": "crevasseBlue",
|
|
72
|
+
"thinkingHigh": "iceTeal",
|
|
73
|
+
"thinkingXhigh": "warningAmber",
|
|
74
|
+
|
|
75
|
+
"bashMode": "crevasseBlue",
|
|
76
|
+
|
|
77
|
+
"statusLineBg": "#EEF5F9",
|
|
78
|
+
"statusLineSep": "glacierBorder",
|
|
79
|
+
"statusLineModel": "crevasseBlue",
|
|
80
|
+
"statusLinePath": "frostBlue",
|
|
81
|
+
"statusLineGitClean": "iceTeal",
|
|
82
|
+
"statusLineGitDirty": "warningAmber",
|
|
83
|
+
"statusLineContext": "mutedText",
|
|
84
|
+
"statusLineSpend": "crevasseBlue",
|
|
85
|
+
"statusLineStaged": "iceTeal",
|
|
86
|
+
"statusLineDirty": "warningAmber",
|
|
87
|
+
"statusLineUntracked": "frostBlue",
|
|
88
|
+
"statusLineOutput": "crevasseBlue",
|
|
89
|
+
"statusLineCost": "warningAmber",
|
|
90
|
+
"statusLineSubagents": "crevasseBlue"
|
|
91
|
+
},
|
|
92
|
+
"export": {
|
|
93
|
+
"pageBg": "#F2F7FA",
|
|
94
|
+
"cardBg": "#FAFDFF",
|
|
95
|
+
"infoBg": "#E6EFF4"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "light-gruvbox",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg0Hard": "#f9f5d7",
|
|
6
|
+
"bg0": "#fbf1c7",
|
|
7
|
+
"bg0Soft": "#f2e5bc",
|
|
8
|
+
"bg1": "#ebdbb2",
|
|
9
|
+
"bg2": "#d5c4a1",
|
|
10
|
+
"bg3": "#bdae93",
|
|
11
|
+
"bg4": "#a89984",
|
|
12
|
+
"gray": "#928374",
|
|
13
|
+
"fg0": "#282828",
|
|
14
|
+
"fg1": "#3c3836",
|
|
15
|
+
"fg2": "#504945",
|
|
16
|
+
"fg3": "#665c54",
|
|
17
|
+
"fg4": "#7c6f64",
|
|
18
|
+
"red": "#cc241d",
|
|
19
|
+
"redBright": "#9d0006",
|
|
20
|
+
"green": "#98971a",
|
|
21
|
+
"greenBright": "#79740e",
|
|
22
|
+
"yellow": "#d79921",
|
|
23
|
+
"yellowBright": "#b57614",
|
|
24
|
+
"blue": "#458588",
|
|
25
|
+
"blueBright": "#076678",
|
|
26
|
+
"purple": "#b16286",
|
|
27
|
+
"purpleBright": "#8f3f71",
|
|
28
|
+
"aqua": "#689d6a",
|
|
29
|
+
"aquaBright": "#427b58",
|
|
30
|
+
"orange": "#d65d0e",
|
|
31
|
+
"orangeBright": "#af3a03"
|
|
32
|
+
},
|
|
33
|
+
"colors": {
|
|
34
|
+
"accent": "aqua",
|
|
35
|
+
"border": "blue",
|
|
36
|
+
"borderAccent": "aqua",
|
|
37
|
+
"borderMuted": "bg3",
|
|
38
|
+
"success": "green",
|
|
39
|
+
"error": "red",
|
|
40
|
+
"warning": "yellow",
|
|
41
|
+
"muted": "fg3",
|
|
42
|
+
"dim": "gray",
|
|
43
|
+
"text": "",
|
|
44
|
+
"thinkingText": "fg3",
|
|
45
|
+
|
|
46
|
+
"selectedBg": "bg2",
|
|
47
|
+
"userMessageBg": "bg1",
|
|
48
|
+
"userMessageText": "",
|
|
49
|
+
"customMessageBg": "bg2",
|
|
50
|
+
"customMessageText": "",
|
|
51
|
+
"customMessageLabel": "purple",
|
|
52
|
+
"toolPendingBg": "bg1",
|
|
53
|
+
"toolSuccessBg": "bg1",
|
|
54
|
+
"toolErrorBg": "bg1",
|
|
55
|
+
"toolText": "",
|
|
56
|
+
"toolTitle": "",
|
|
57
|
+
"toolOutput": "fg3",
|
|
58
|
+
|
|
59
|
+
"mdHeading": "yellow",
|
|
60
|
+
"mdLink": "blue",
|
|
61
|
+
"mdLinkUrl": "gray",
|
|
62
|
+
"mdCode": "aqua",
|
|
63
|
+
"mdCodeBlock": "green",
|
|
64
|
+
"mdCodeBlockBorder": "fg3",
|
|
65
|
+
"mdQuote": "fg3",
|
|
66
|
+
"mdQuoteBorder": "fg3",
|
|
67
|
+
"mdHr": "fg3",
|
|
68
|
+
"mdListBullet": "green",
|
|
69
|
+
|
|
70
|
+
"toolDiffAdded": "green",
|
|
71
|
+
"toolDiffRemoved": "red",
|
|
72
|
+
"toolDiffContext": "fg3",
|
|
73
|
+
|
|
74
|
+
"link": "blue",
|
|
75
|
+
|
|
76
|
+
"syntaxComment": "gray",
|
|
77
|
+
"syntaxKeyword": "red",
|
|
78
|
+
"syntaxFunction": "greenBright",
|
|
79
|
+
"syntaxVariable": "blue",
|
|
80
|
+
"syntaxString": "green",
|
|
81
|
+
"syntaxNumber": "purple",
|
|
82
|
+
"syntaxType": "yellow",
|
|
83
|
+
"syntaxOperator": "orange",
|
|
84
|
+
"syntaxPunctuation": "fg2",
|
|
85
|
+
|
|
86
|
+
"thinkingOff": "bg3",
|
|
87
|
+
"thinkingMinimal": "gray",
|
|
88
|
+
"thinkingLow": "blue",
|
|
89
|
+
"thinkingMedium": "aqua",
|
|
90
|
+
"thinkingHigh": "purple",
|
|
91
|
+
"thinkingXhigh": "purpleBright",
|
|
92
|
+
|
|
93
|
+
"bashMode": "green",
|
|
94
|
+
|
|
95
|
+
"statusLineBg": "bg2",
|
|
96
|
+
"statusLineSep": "fg3",
|
|
97
|
+
"statusLineModel": "purple",
|
|
98
|
+
"statusLinePath": "blueBright",
|
|
99
|
+
"statusLineGitClean": "greenBright",
|
|
100
|
+
"statusLineGitDirty": "orangeBright",
|
|
101
|
+
"statusLineContext": "blue",
|
|
102
|
+
"statusLineSpend": "aquaBright",
|
|
103
|
+
"statusLineStaged": "greenBright",
|
|
104
|
+
"statusLineDirty": "yellowBright",
|
|
105
|
+
"statusLineUntracked": "aqua",
|
|
106
|
+
"statusLineOutput": "purple",
|
|
107
|
+
"statusLineCost": "purple",
|
|
108
|
+
"statusLineSubagents": "aqua"
|
|
109
|
+
},
|
|
110
|
+
"export": {
|
|
111
|
+
"pageBg": "bg0Hard",
|
|
112
|
+
"cardBg": "bg0",
|
|
113
|
+
"infoBg": "bg1"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "light-haze",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cream": "#f9f2e7",
|
|
6
|
+
"sun": "#f1c07a",
|
|
7
|
+
"honey": "#d9944a",
|
|
8
|
+
"sky": "#7da4c7",
|
|
9
|
+
"sage": "#8ea98b",
|
|
10
|
+
"ink": "#3f3a33",
|
|
11
|
+
"muted": "#5f5a52",
|
|
12
|
+
"dim": "#7a746c",
|
|
13
|
+
"success": "#4b9a6b",
|
|
14
|
+
"error": "#c95555",
|
|
15
|
+
"warning": "#d88b35"
|
|
16
|
+
},
|
|
17
|
+
"colors": {
|
|
18
|
+
"accent": "sun",
|
|
19
|
+
"border": "#e3d8c9",
|
|
20
|
+
"borderAccent": "sky",
|
|
21
|
+
"borderMuted": "#efe7dc",
|
|
22
|
+
"success": "success",
|
|
23
|
+
"error": "error",
|
|
24
|
+
"warning": "warning",
|
|
25
|
+
"muted": "muted",
|
|
26
|
+
"dim": "dim",
|
|
27
|
+
"text": "",
|
|
28
|
+
"thinkingText": "muted",
|
|
29
|
+
|
|
30
|
+
"selectedBg": "#f1e7d7",
|
|
31
|
+
"userMessageBg": "#fffaf3",
|
|
32
|
+
"userMessageText": "",
|
|
33
|
+
"customMessageBg": "#f5eddf",
|
|
34
|
+
"customMessageText": "",
|
|
35
|
+
"customMessageLabel": "honey",
|
|
36
|
+
"toolPendingBg": "#f3efe7",
|
|
37
|
+
"toolSuccessBg": "#eef6ef",
|
|
38
|
+
"toolErrorBg": "#f8eeee",
|
|
39
|
+
"toolTitle": "",
|
|
40
|
+
"toolOutput": "muted",
|
|
41
|
+
|
|
42
|
+
"mdHeading": "honey",
|
|
43
|
+
"mdLink": "sky",
|
|
44
|
+
"mdLinkUrl": "dim",
|
|
45
|
+
"mdCode": "#8a5a2c",
|
|
46
|
+
"mdCodeBlock": "ink",
|
|
47
|
+
"mdCodeBlockBorder": "#e0d6c8",
|
|
48
|
+
"mdQuote": "muted",
|
|
49
|
+
"mdQuoteBorder": "#e0d6c8",
|
|
50
|
+
"mdHr": "#e0d6c8",
|
|
51
|
+
"mdListBullet": "sun",
|
|
52
|
+
|
|
53
|
+
"toolDiffAdded": "success",
|
|
54
|
+
"toolDiffRemoved": "error",
|
|
55
|
+
"toolDiffContext": "muted",
|
|
56
|
+
|
|
57
|
+
"syntaxComment": "dim",
|
|
58
|
+
"syntaxKeyword": "sky",
|
|
59
|
+
"syntaxFunction": "honey",
|
|
60
|
+
"syntaxVariable": "ink",
|
|
61
|
+
"syntaxString": "warning",
|
|
62
|
+
"syntaxNumber": "sun",
|
|
63
|
+
"syntaxType": "sage",
|
|
64
|
+
"syntaxOperator": "ink",
|
|
65
|
+
"syntaxPunctuation": "ink",
|
|
66
|
+
|
|
67
|
+
"thinkingOff": "#e4dacc",
|
|
68
|
+
"thinkingMinimal": "dim",
|
|
69
|
+
"thinkingLow": "sage",
|
|
70
|
+
"thinkingMedium": "sky",
|
|
71
|
+
"thinkingHigh": "honey",
|
|
72
|
+
"thinkingXhigh": "sun",
|
|
73
|
+
|
|
74
|
+
"bashMode": "sky",
|
|
75
|
+
|
|
76
|
+
"statusLineBg": "#f2eadf",
|
|
77
|
+
"statusLineSep": "#cdbfaa",
|
|
78
|
+
"statusLineModel": "honey",
|
|
79
|
+
"statusLinePath": "sky",
|
|
80
|
+
"statusLineGitClean": "success",
|
|
81
|
+
"statusLineGitDirty": "warning",
|
|
82
|
+
"statusLineContext": "muted",
|
|
83
|
+
"statusLineSpend": "sun",
|
|
84
|
+
"statusLineStaged": "success",
|
|
85
|
+
"statusLineDirty": "warning",
|
|
86
|
+
"statusLineUntracked": "sky",
|
|
87
|
+
"statusLineOutput": "ink",
|
|
88
|
+
"statusLineCost": "sun",
|
|
89
|
+
"statusLineSubagents": "honey"
|
|
90
|
+
},
|
|
91
|
+
"export": {
|
|
92
|
+
"pageBg": "#fbf6ee",
|
|
93
|
+
"cardBg": "#ffffff",
|
|
94
|
+
"infoBg": "#f3e9dc"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "light-honeycomb",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cyan": "#0097a7",
|
|
6
|
+
"blue": "#f57f17",
|
|
7
|
+
"green": "#388e3c",
|
|
8
|
+
"red": "#d32f2f",
|
|
9
|
+
"yellow": "#ffb300",
|
|
10
|
+
"gray": "#5d4037",
|
|
11
|
+
"dimGray": "#8d6e63",
|
|
12
|
+
"darkGray": "#ffecb3",
|
|
13
|
+
"accent": "#ffb300",
|
|
14
|
+
"selectedBg": "#fff8e1",
|
|
15
|
+
"userMsgBg": "#fffde7",
|
|
16
|
+
"toolPendingBg": "#fff3e0",
|
|
17
|
+
"toolSuccessBg": "#f9fbe7",
|
|
18
|
+
"toolErrorBg": "#fbe9e7",
|
|
19
|
+
"customMsgBg": "#ffecb3"
|
|
20
|
+
},
|
|
21
|
+
"colors": {
|
|
22
|
+
"accent": "accent",
|
|
23
|
+
"border": "blue",
|
|
24
|
+
"borderAccent": "accent",
|
|
25
|
+
"borderMuted": "darkGray",
|
|
26
|
+
"success": "green",
|
|
27
|
+
"error": "red",
|
|
28
|
+
"warning": "yellow",
|
|
29
|
+
"muted": "gray",
|
|
30
|
+
"dim": "dimGray",
|
|
31
|
+
"text": "",
|
|
32
|
+
"thinkingText": "gray",
|
|
33
|
+
"selectedBg": "selectedBg",
|
|
34
|
+
"userMessageBg": "userMsgBg",
|
|
35
|
+
"userMessageText": "",
|
|
36
|
+
"customMessageBg": "customMsgBg",
|
|
37
|
+
"customMessageText": "",
|
|
38
|
+
"customMessageLabel": "accent",
|
|
39
|
+
"toolPendingBg": "toolPendingBg",
|
|
40
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
41
|
+
"toolErrorBg": "toolErrorBg",
|
|
42
|
+
"toolTitle": "",
|
|
43
|
+
"toolOutput": "gray",
|
|
44
|
+
"mdHeading": "#ffa000",
|
|
45
|
+
"mdLink": "#e65100",
|
|
46
|
+
"mdLinkUrl": "dimGray",
|
|
47
|
+
"mdCode": "#ff6f00",
|
|
48
|
+
"mdCodeBlock": "#f57f17",
|
|
49
|
+
"mdCodeBlockBorder": "darkGray",
|
|
50
|
+
"mdQuote": "gray",
|
|
51
|
+
"mdQuoteBorder": "darkGray",
|
|
52
|
+
"mdHr": "darkGray",
|
|
53
|
+
"mdListBullet": "accent",
|
|
54
|
+
"toolDiffAdded": "green",
|
|
55
|
+
"toolDiffRemoved": "red",
|
|
56
|
+
"toolDiffContext": "gray",
|
|
57
|
+
"link": "#e65100",
|
|
58
|
+
"syntaxComment": "#5d4037",
|
|
59
|
+
"syntaxKeyword": "#f57f17",
|
|
60
|
+
"syntaxFunction": "#ffb300",
|
|
61
|
+
"syntaxVariable": "#0097a7",
|
|
62
|
+
"syntaxString": "#d32f2f",
|
|
63
|
+
"syntaxNumber": "#388e3c",
|
|
64
|
+
"syntaxType": "#ffb300",
|
|
65
|
+
"syntaxOperator": "#8d6e63",
|
|
66
|
+
"syntaxPunctuation": "#8d6e63",
|
|
67
|
+
"thinkingOff": "darkGray",
|
|
68
|
+
"thinkingMinimal": "dimGray",
|
|
69
|
+
"thinkingLow": "blue",
|
|
70
|
+
"thinkingMedium": "cyan",
|
|
71
|
+
"thinkingHigh": "accent",
|
|
72
|
+
"thinkingXhigh": "red",
|
|
73
|
+
"bashMode": "accent",
|
|
74
|
+
"statusLineBg": "#fff8e1",
|
|
75
|
+
"statusLineSep": "#8d6e63",
|
|
76
|
+
"statusLineModel": "accent",
|
|
77
|
+
"statusLinePath": "blue",
|
|
78
|
+
"statusLineGitClean": "green",
|
|
79
|
+
"statusLineGitDirty": "yellow",
|
|
80
|
+
"statusLineContext": "gray",
|
|
81
|
+
"statusLineSpend": "cyan",
|
|
82
|
+
"statusLineStaged": 28,
|
|
83
|
+
"statusLineDirty": 178,
|
|
84
|
+
"statusLineUntracked": 39,
|
|
85
|
+
"statusLineOutput": 205,
|
|
86
|
+
"statusLineCost": 205,
|
|
87
|
+
"statusLineSubagents": "accent"
|
|
88
|
+
},
|
|
89
|
+
"export": {
|
|
90
|
+
"pageBg": "#fffde7",
|
|
91
|
+
"cardBg": "#fff3e0",
|
|
92
|
+
"infoBg": "#f9fbe7"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "light-lagoon",
|
|
4
|
+
"vars": {
|
|
5
|
+
"lagoonBg": "#EEF6F8",
|
|
6
|
+
"lagoonSurface": "#F7FBFD",
|
|
7
|
+
"lagoonElevated": "#DDEBF0",
|
|
8
|
+
"lagoonBorder": "#CFE0E7",
|
|
9
|
+
"turquoise": "#2E7FA6",
|
|
10
|
+
"coral": "#D36A5A",
|
|
11
|
+
"palmGreen": "#48A07C",
|
|
12
|
+
"lagoonTeal": "#5DB7B0",
|
|
13
|
+
"sandMist": "#E6F0F2",
|
|
14
|
+
"mutedText": "#5A7280",
|
|
15
|
+
"dimText": "#7B8F9A",
|
|
16
|
+
"errorRed": "#C45A55"
|
|
17
|
+
},
|
|
18
|
+
"colors": {
|
|
19
|
+
"accent": "turquoise",
|
|
20
|
+
"border": "lagoonBorder",
|
|
21
|
+
"borderAccent": "lagoonTeal",
|
|
22
|
+
"borderMuted": "lagoonElevated",
|
|
23
|
+
"success": "palmGreen",
|
|
24
|
+
"error": "errorRed",
|
|
25
|
+
"warning": "coral",
|
|
26
|
+
"muted": "mutedText",
|
|
27
|
+
"dim": "dimText",
|
|
28
|
+
"text": "",
|
|
29
|
+
"thinkingText": "mutedText",
|
|
30
|
+
|
|
31
|
+
"selectedBg": "sandMist",
|
|
32
|
+
"userMessageBg": "lagoonSurface",
|
|
33
|
+
"userMessageText": "",
|
|
34
|
+
"customMessageBg": "#E8F2F4",
|
|
35
|
+
"customMessageText": "",
|
|
36
|
+
"customMessageLabel": "turquoise",
|
|
37
|
+
"toolPendingBg": "lagoonBg",
|
|
38
|
+
"toolSuccessBg": "#E1F3EC",
|
|
39
|
+
"toolErrorBg": "#F2E2E0",
|
|
40
|
+
"toolTitle": "",
|
|
41
|
+
"toolOutput": "mutedText",
|
|
42
|
+
|
|
43
|
+
"mdHeading": "turquoise",
|
|
44
|
+
"mdLink": "lagoonTeal",
|
|
45
|
+
"mdLinkUrl": "dimText",
|
|
46
|
+
"mdCode": "palmGreen",
|
|
47
|
+
"mdCodeBlock": "lagoonTeal",
|
|
48
|
+
"mdCodeBlockBorder": "lagoonBorder",
|
|
49
|
+
"mdQuote": "mutedText",
|
|
50
|
+
"mdQuoteBorder": "lagoonBorder",
|
|
51
|
+
"mdHr": "lagoonBorder",
|
|
52
|
+
"mdListBullet": "palmGreen",
|
|
53
|
+
|
|
54
|
+
"toolDiffAdded": "palmGreen",
|
|
55
|
+
"toolDiffRemoved": "errorRed",
|
|
56
|
+
"toolDiffContext": "mutedText",
|
|
57
|
+
|
|
58
|
+
"syntaxComment": "dimText",
|
|
59
|
+
"syntaxKeyword": "turquoise",
|
|
60
|
+
"syntaxFunction": "lagoonTeal",
|
|
61
|
+
"syntaxVariable": "mutedText",
|
|
62
|
+
"syntaxString": "palmGreen",
|
|
63
|
+
"syntaxNumber": "coral",
|
|
64
|
+
"syntaxType": "turquoise",
|
|
65
|
+
"syntaxOperator": "mutedText",
|
|
66
|
+
"syntaxPunctuation": "mutedText",
|
|
67
|
+
|
|
68
|
+
"thinkingOff": "lagoonBorder",
|
|
69
|
+
"thinkingMinimal": "dimText",
|
|
70
|
+
"thinkingLow": "lagoonTeal",
|
|
71
|
+
"thinkingMedium": "turquoise",
|
|
72
|
+
"thinkingHigh": "palmGreen",
|
|
73
|
+
"thinkingXhigh": "coral",
|
|
74
|
+
|
|
75
|
+
"bashMode": "turquoise",
|
|
76
|
+
|
|
77
|
+
"statusLineBg": "#E7F1F4",
|
|
78
|
+
"statusLineSep": "lagoonBorder",
|
|
79
|
+
"statusLineModel": "turquoise",
|
|
80
|
+
"statusLinePath": "lagoonTeal",
|
|
81
|
+
"statusLineGitClean": "palmGreen",
|
|
82
|
+
"statusLineGitDirty": "coral",
|
|
83
|
+
"statusLineContext": "mutedText",
|
|
84
|
+
"statusLineSpend": "turquoise",
|
|
85
|
+
"statusLineStaged": "palmGreen",
|
|
86
|
+
"statusLineDirty": "coral",
|
|
87
|
+
"statusLineUntracked": "lagoonTeal",
|
|
88
|
+
"statusLineOutput": "turquoise",
|
|
89
|
+
"statusLineCost": "coral",
|
|
90
|
+
"statusLineSubagents": "turquoise"
|
|
91
|
+
},
|
|
92
|
+
"export": {
|
|
93
|
+
"pageBg": "#EEF6F8",
|
|
94
|
+
"cardBg": "#F7FBFD",
|
|
95
|
+
"infoBg": "#DDEBF0"
|
|
96
|
+
}
|
|
97
|
+
}
|