@oh-my-pi/pi-coding-agent 3.15.0 → 3.20.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.
- package/CHANGELOG.md +61 -1
- package/docs/extensions.md +1055 -0
- package/docs/rpc.md +69 -13
- package/docs/session-tree-plan.md +1 -1
- package/examples/extensions/README.md +141 -0
- package/examples/extensions/api-demo.ts +87 -0
- package/examples/extensions/chalk-logger.ts +26 -0
- package/examples/extensions/hello.ts +33 -0
- package/examples/extensions/pirate.ts +44 -0
- package/examples/extensions/plan-mode.ts +551 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/todo.ts +299 -0
- package/examples/extensions/tools.ts +145 -0
- package/examples/extensions/with-deps/index.ts +36 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +16 -0
- package/examples/sdk/02-custom-model.ts +3 -3
- package/examples/sdk/05-tools.ts +7 -3
- package/examples/sdk/06-extensions.ts +81 -0
- package/examples/sdk/06-hooks.ts +14 -13
- package/examples/sdk/08-prompt-templates.ts +42 -0
- package/examples/sdk/08-slash-commands.ts +17 -12
- package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
- package/examples/sdk/12-full-control.ts +6 -6
- package/package.json +11 -7
- package/src/capability/extension-module.ts +34 -0
- package/src/cli/args.ts +22 -7
- package/src/cli/file-processor.ts +38 -67
- package/src/cli/list-models.ts +1 -1
- package/src/config.ts +25 -14
- package/src/core/agent-session.ts +505 -242
- package/src/core/auth-storage.ts +33 -21
- package/src/core/compaction/branch-summarization.ts +4 -4
- package/src/core/compaction/compaction.ts +3 -3
- package/src/core/custom-commands/bundled/wt/index.ts +430 -0
- package/src/core/custom-commands/loader.ts +9 -0
- package/src/core/custom-tools/wrapper.ts +5 -0
- package/src/core/event-bus.ts +59 -0
- package/src/core/export-html/vendor/highlight.min.js +1213 -0
- package/src/core/export-html/vendor/marked.min.js +6 -0
- package/src/core/extensions/index.ts +100 -0
- package/src/core/extensions/loader.ts +501 -0
- package/src/core/extensions/runner.ts +477 -0
- package/src/core/extensions/types.ts +712 -0
- package/src/core/extensions/wrapper.ts +147 -0
- package/src/core/hooks/types.ts +2 -2
- package/src/core/index.ts +10 -21
- package/src/core/keybindings.ts +199 -0
- package/src/core/messages.ts +26 -7
- package/src/core/model-registry.ts +123 -46
- package/src/core/model-resolver.ts +7 -5
- package/src/core/prompt-templates.ts +242 -0
- package/src/core/sdk.ts +378 -295
- package/src/core/session-manager.ts +72 -58
- package/src/core/settings-manager.ts +118 -22
- package/src/core/system-prompt.ts +24 -1
- package/src/core/terminal-notify.ts +37 -0
- package/src/core/tools/context.ts +4 -4
- package/src/core/tools/exa/mcp-client.ts +5 -4
- package/src/core/tools/exa/render.ts +176 -131
- package/src/core/tools/gemini-image.ts +361 -0
- package/src/core/tools/git.ts +216 -0
- package/src/core/tools/index.ts +28 -15
- package/src/core/tools/lsp/config.ts +5 -4
- package/src/core/tools/lsp/index.ts +17 -12
- package/src/core/tools/lsp/render.ts +39 -47
- package/src/core/tools/read.ts +66 -29
- package/src/core/tools/render-utils.ts +268 -0
- package/src/core/tools/renderers.ts +243 -225
- package/src/core/tools/task/discovery.ts +2 -2
- package/src/core/tools/task/executor.ts +66 -58
- package/src/core/tools/task/index.ts +29 -10
- package/src/core/tools/task/model-resolver.ts +8 -13
- package/src/core/tools/task/omp-command.ts +24 -0
- package/src/core/tools/task/render.ts +35 -60
- package/src/core/tools/task/types.ts +3 -0
- package/src/core/tools/web-fetch.ts +29 -28
- package/src/core/tools/web-search/index.ts +6 -5
- package/src/core/tools/web-search/providers/exa.ts +6 -5
- package/src/core/tools/web-search/render.ts +66 -111
- package/src/core/voice-controller.ts +135 -0
- package/src/core/voice-supervisor.ts +1003 -0
- package/src/core/voice.ts +308 -0
- package/src/discovery/builtin.ts +75 -1
- package/src/discovery/claude.ts +47 -1
- package/src/discovery/codex.ts +54 -2
- package/src/discovery/gemini.ts +55 -2
- package/src/discovery/helpers.ts +100 -1
- package/src/discovery/index.ts +2 -0
- package/src/index.ts +14 -9
- package/src/lib/worktree/collapse.ts +179 -0
- package/src/lib/worktree/constants.ts +14 -0
- package/src/lib/worktree/errors.ts +23 -0
- package/src/lib/worktree/git.ts +110 -0
- package/src/lib/worktree/index.ts +23 -0
- package/src/lib/worktree/operations.ts +216 -0
- package/src/lib/worktree/session.ts +114 -0
- package/src/lib/worktree/stats.ts +67 -0
- package/src/main.ts +61 -37
- package/src/migrations.ts +37 -7
- package/src/modes/interactive/components/bash-execution.ts +6 -4
- package/src/modes/interactive/components/custom-editor.ts +55 -0
- package/src/modes/interactive/components/custom-message.ts +95 -0
- package/src/modes/interactive/components/extensions/extension-list.ts +5 -0
- package/src/modes/interactive/components/extensions/inspector-panel.ts +18 -12
- package/src/modes/interactive/components/extensions/state-manager.ts +12 -0
- package/src/modes/interactive/components/extensions/types.ts +1 -0
- package/src/modes/interactive/components/footer.ts +324 -0
- package/src/modes/interactive/components/hook-editor.ts +1 -0
- package/src/modes/interactive/components/hook-selector.ts +3 -3
- package/src/modes/interactive/components/model-selector.ts +7 -6
- package/src/modes/interactive/components/oauth-selector.ts +3 -3
- package/src/modes/interactive/components/settings-defs.ts +55 -6
- package/src/modes/interactive/components/status-line/separators.ts +4 -4
- package/src/modes/interactive/components/status-line.ts +45 -35
- package/src/modes/interactive/components/tool-execution.ts +95 -23
- package/src/modes/interactive/interactive-mode.ts +644 -113
- 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-aurora.json +94 -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-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-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-nebula.json +96 -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-sakura.json +94 -0
- package/src/modes/interactive/theme/defaults/dark-slate.json +94 -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-swamp.json +96 -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-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 +128 -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-cirrus.json +96 -0
- package/src/modes/interactive/theme/defaults/light-coral.json +94 -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-frost.json +94 -0
- package/src/modes/interactive/theme/defaults/light-glacier.json +97 -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-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-sand.json +94 -0
- package/src/modes/interactive/theme/defaults/light-savanna.json +97 -0
- package/src/modes/interactive/theme/defaults/light-soleil.json +96 -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/print-mode.ts +14 -72
- package/src/modes/rpc/rpc-client.ts +23 -9
- package/src/modes/rpc/rpc-mode.ts +137 -125
- package/src/modes/rpc/rpc-types.ts +46 -24
- package/src/prompts/task.md +1 -0
- package/src/prompts/tools/gemini-image.md +4 -0
- package/src/prompts/tools/git.md +9 -0
- package/src/prompts/voice-summary.md +12 -0
- package/src/utils/image-convert.ts +26 -0
- package/src/utils/image-resize.ts +215 -0
- package/src/utils/shell-snapshot.ts +22 -20
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "dark-cavern",
|
|
4
|
+
"vars": {
|
|
5
|
+
"caveBlack": "#0E0F12",
|
|
6
|
+
"limestoneDark": "#14181D",
|
|
7
|
+
"stoneMid": "#1D2229",
|
|
8
|
+
"slabGray": "#232A33",
|
|
9
|
+
"stalactite": "#2F3945",
|
|
10
|
+
"crystalBlue": "#5FB2D8",
|
|
11
|
+
"veinBlue": "#87C6E6",
|
|
12
|
+
"mineralGreen": "#6FB86A",
|
|
13
|
+
"amber": "#D9A441",
|
|
14
|
+
"errorRed": "#E06C75",
|
|
15
|
+
"mutedGray": "#A5ADBA",
|
|
16
|
+
"dimGray": "#6B7381"
|
|
17
|
+
},
|
|
18
|
+
"colors": {
|
|
19
|
+
"accent": "crystalBlue",
|
|
20
|
+
"border": "stalactite",
|
|
21
|
+
"borderAccent": "veinBlue",
|
|
22
|
+
"borderMuted": "stoneMid",
|
|
23
|
+
"success": "mineralGreen",
|
|
24
|
+
"error": "errorRed",
|
|
25
|
+
"warning": "amber",
|
|
26
|
+
"muted": "mutedGray",
|
|
27
|
+
"dim": "dimGray",
|
|
28
|
+
"text": "",
|
|
29
|
+
"thinkingText": "mutedGray",
|
|
30
|
+
|
|
31
|
+
"selectedBg": "stoneMid",
|
|
32
|
+
"userMessageBg": "limestoneDark",
|
|
33
|
+
"userMessageText": "",
|
|
34
|
+
"customMessageBg": "#1A1F26",
|
|
35
|
+
"customMessageText": "",
|
|
36
|
+
"customMessageLabel": "veinBlue",
|
|
37
|
+
"toolPendingBg": "caveBlack",
|
|
38
|
+
"toolSuccessBg": "#131B16",
|
|
39
|
+
"toolErrorBg": "#221416",
|
|
40
|
+
"toolTitle": "",
|
|
41
|
+
"toolOutput": "mutedGray",
|
|
42
|
+
|
|
43
|
+
"mdHeading": "amber",
|
|
44
|
+
"mdLink": "crystalBlue",
|
|
45
|
+
"mdLinkUrl": "dimGray",
|
|
46
|
+
"mdCode": "veinBlue",
|
|
47
|
+
"mdCodeBlock": "crystalBlue",
|
|
48
|
+
"mdCodeBlockBorder": "stalactite",
|
|
49
|
+
"mdQuote": "mutedGray",
|
|
50
|
+
"mdQuoteBorder": "stalactite",
|
|
51
|
+
"mdHr": "stoneMid",
|
|
52
|
+
"mdListBullet": "amber",
|
|
53
|
+
|
|
54
|
+
"toolDiffAdded": "mineralGreen",
|
|
55
|
+
"toolDiffRemoved": "errorRed",
|
|
56
|
+
"toolDiffContext": "mutedGray",
|
|
57
|
+
|
|
58
|
+
"syntaxComment": "dimGray",
|
|
59
|
+
"syntaxKeyword": "crystalBlue",
|
|
60
|
+
"syntaxFunction": "amber",
|
|
61
|
+
"syntaxVariable": "veinBlue",
|
|
62
|
+
"syntaxString": "mineralGreen",
|
|
63
|
+
"syntaxNumber": "amber",
|
|
64
|
+
"syntaxType": "crystalBlue",
|
|
65
|
+
"syntaxOperator": "mutedGray",
|
|
66
|
+
"syntaxPunctuation": "mutedGray",
|
|
67
|
+
|
|
68
|
+
"thinkingOff": "stoneMid",
|
|
69
|
+
"thinkingMinimal": "dimGray",
|
|
70
|
+
"thinkingLow": "stalactite",
|
|
71
|
+
"thinkingMedium": "crystalBlue",
|
|
72
|
+
"thinkingHigh": "veinBlue",
|
|
73
|
+
"thinkingXhigh": "amber",
|
|
74
|
+
|
|
75
|
+
"bashMode": "crystalBlue",
|
|
76
|
+
|
|
77
|
+
"statusLineBg": "#0B0D10",
|
|
78
|
+
"statusLineSep": "stalactite",
|
|
79
|
+
"statusLineModel": "amber",
|
|
80
|
+
"statusLinePath": "crystalBlue",
|
|
81
|
+
"statusLineGitClean": "mineralGreen",
|
|
82
|
+
"statusLineGitDirty": "amber",
|
|
83
|
+
"statusLineContext": "mutedGray",
|
|
84
|
+
"statusLineSpend": "veinBlue",
|
|
85
|
+
"statusLineStaged": "mineralGreen",
|
|
86
|
+
"statusLineDirty": "amber",
|
|
87
|
+
"statusLineUntracked": "veinBlue",
|
|
88
|
+
"statusLineOutput": "crystalBlue",
|
|
89
|
+
"statusLineCost": "amber",
|
|
90
|
+
"statusLineSubagents": "crystalBlue"
|
|
91
|
+
},
|
|
92
|
+
"export": {
|
|
93
|
+
"pageBg": "#0B0D10",
|
|
94
|
+
"cardBg": "#14181D",
|
|
95
|
+
"infoBg": "#1D2229"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "dark-copper",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cyan": "#88c0d0",
|
|
6
|
+
"blue": "#5e81ac",
|
|
7
|
+
"green": "#a3be8c",
|
|
8
|
+
"red": "#bf616a",
|
|
9
|
+
"yellow": "#ebcb8b",
|
|
10
|
+
"gray": "#e5e9f0",
|
|
11
|
+
"dimGray": "#4c566a",
|
|
12
|
+
"darkGray": "#434c5e",
|
|
13
|
+
"accent": "#d08770",
|
|
14
|
+
"selectedBg": "#2e3440",
|
|
15
|
+
"userMsgBg": "#242933",
|
|
16
|
+
"toolPendingBg": "#323846",
|
|
17
|
+
"toolSuccessBg": "#2d333b",
|
|
18
|
+
"toolErrorBg": "#362b2f",
|
|
19
|
+
"customMsgBg": "#2d2f38"
|
|
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": "#d08770",
|
|
45
|
+
"mdLink": "#5e81ac",
|
|
46
|
+
"mdLinkUrl": "dimGray",
|
|
47
|
+
"mdCode": "#ebcb8b",
|
|
48
|
+
"mdCodeBlock": "#a3be8c",
|
|
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": "#5e81ac",
|
|
58
|
+
"syntaxComment": "#e5e9f0",
|
|
59
|
+
"syntaxKeyword": "#5e81ac",
|
|
60
|
+
"syntaxFunction": "#ebcb8b",
|
|
61
|
+
"syntaxVariable": "#88c0d0",
|
|
62
|
+
"syntaxString": "#bf616a",
|
|
63
|
+
"syntaxNumber": "#a3be8c",
|
|
64
|
+
"syntaxType": "#d08770",
|
|
65
|
+
"syntaxOperator": "#4c566a",
|
|
66
|
+
"syntaxPunctuation": "#4c566a",
|
|
67
|
+
"thinkingOff": "darkGray",
|
|
68
|
+
"thinkingMinimal": "dimGray",
|
|
69
|
+
"thinkingLow": "blue",
|
|
70
|
+
"thinkingMedium": "cyan",
|
|
71
|
+
"thinkingHigh": "accent",
|
|
72
|
+
"thinkingXhigh": "red",
|
|
73
|
+
"bashMode": "accent",
|
|
74
|
+
"statusLineBg": "#2e3440",
|
|
75
|
+
"statusLineSep": "#4c566a",
|
|
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": "#242933",
|
|
91
|
+
"cardBg": "#323846",
|
|
92
|
+
"infoBg": "#2d333b"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "dark-cosmos",
|
|
4
|
+
"vars": {
|
|
5
|
+
"void": "#040406",
|
|
6
|
+
"shadow": "#101019",
|
|
7
|
+
"galaxy": "#3a2a6d",
|
|
8
|
+
"nebula": "#5b4bb7",
|
|
9
|
+
"starlight": "#f4f1ff",
|
|
10
|
+
"starblue": "#7aa4ff",
|
|
11
|
+
"success": "#63cfa5",
|
|
12
|
+
"error": "#e05a6a",
|
|
13
|
+
"warning": "#f0b05a",
|
|
14
|
+
"muted": "#8c88a3",
|
|
15
|
+
"dim": "#66627b"
|
|
16
|
+
},
|
|
17
|
+
"colors": {
|
|
18
|
+
"accent": "nebula",
|
|
19
|
+
"border": "shadow",
|
|
20
|
+
"borderAccent": "starblue",
|
|
21
|
+
"borderMuted": "void",
|
|
22
|
+
"success": "success",
|
|
23
|
+
"error": "error",
|
|
24
|
+
"warning": "warning",
|
|
25
|
+
"muted": "muted",
|
|
26
|
+
"dim": "dim",
|
|
27
|
+
"text": "",
|
|
28
|
+
"thinkingText": "muted",
|
|
29
|
+
|
|
30
|
+
"selectedBg": "#141326",
|
|
31
|
+
"userMessageBg": "#0a0a12",
|
|
32
|
+
"userMessageText": "",
|
|
33
|
+
"customMessageBg": "#17152b",
|
|
34
|
+
"customMessageText": "",
|
|
35
|
+
"customMessageLabel": "nebula",
|
|
36
|
+
"toolPendingBg": "#0b0d14",
|
|
37
|
+
"toolSuccessBg": "#0e1514",
|
|
38
|
+
"toolErrorBg": "#1a0f14",
|
|
39
|
+
"toolTitle": "",
|
|
40
|
+
"toolOutput": "muted",
|
|
41
|
+
|
|
42
|
+
"mdHeading": "starlight",
|
|
43
|
+
"mdLink": "starblue",
|
|
44
|
+
"mdLinkUrl": "dim",
|
|
45
|
+
"mdCode": "starlight",
|
|
46
|
+
"mdCodeBlock": "starlight",
|
|
47
|
+
"mdCodeBlockBorder": "shadow",
|
|
48
|
+
"mdQuote": "muted",
|
|
49
|
+
"mdQuoteBorder": "shadow",
|
|
50
|
+
"mdHr": "shadow",
|
|
51
|
+
"mdListBullet": "nebula",
|
|
52
|
+
|
|
53
|
+
"toolDiffAdded": "success",
|
|
54
|
+
"toolDiffRemoved": "error",
|
|
55
|
+
"toolDiffContext": "muted",
|
|
56
|
+
|
|
57
|
+
"syntaxComment": "dim",
|
|
58
|
+
"syntaxKeyword": "nebula",
|
|
59
|
+
"syntaxFunction": "starlight",
|
|
60
|
+
"syntaxVariable": "starblue",
|
|
61
|
+
"syntaxString": "warning",
|
|
62
|
+
"syntaxNumber": "starlight",
|
|
63
|
+
"syntaxType": "success",
|
|
64
|
+
"syntaxOperator": "starlight",
|
|
65
|
+
"syntaxPunctuation": "starlight",
|
|
66
|
+
|
|
67
|
+
"thinkingOff": "void",
|
|
68
|
+
"thinkingMinimal": "dim",
|
|
69
|
+
"thinkingLow": "starblue",
|
|
70
|
+
"thinkingMedium": "galaxy",
|
|
71
|
+
"thinkingHigh": "nebula",
|
|
72
|
+
"thinkingXhigh": "starlight",
|
|
73
|
+
|
|
74
|
+
"bashMode": "starblue",
|
|
75
|
+
|
|
76
|
+
"statusLineBg": "#07070d",
|
|
77
|
+
"statusLineSep": "#26223a",
|
|
78
|
+
"statusLineModel": "nebula",
|
|
79
|
+
"statusLinePath": "starblue",
|
|
80
|
+
"statusLineGitClean": "success",
|
|
81
|
+
"statusLineGitDirty": "warning",
|
|
82
|
+
"statusLineContext": "muted",
|
|
83
|
+
"statusLineSpend": "galaxy",
|
|
84
|
+
"statusLineStaged": "success",
|
|
85
|
+
"statusLineDirty": "warning",
|
|
86
|
+
"statusLineUntracked": "starblue",
|
|
87
|
+
"statusLineOutput": "starlight",
|
|
88
|
+
"statusLineCost": "nebula",
|
|
89
|
+
"statusLineSubagents": "nebula"
|
|
90
|
+
},
|
|
91
|
+
"export": {
|
|
92
|
+
"pageBg": "#07070d",
|
|
93
|
+
"cardBg": "#0f1018",
|
|
94
|
+
"infoBg": "#17152a"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "dark-eclipse",
|
|
4
|
+
"vars": {
|
|
5
|
+
"void": "#050507",
|
|
6
|
+
"obsidian": "#111018",
|
|
7
|
+
"corona": "#f5c542",
|
|
8
|
+
"ember": "#e08a2e",
|
|
9
|
+
"violet": "#3b1d5e",
|
|
10
|
+
"astral": "#4c6b8a",
|
|
11
|
+
"silver": "#cfc7b8",
|
|
12
|
+
"success": "#5fbf87",
|
|
13
|
+
"error": "#d1495b",
|
|
14
|
+
"warning": "#f0b25c",
|
|
15
|
+
"muted": "#8b8792",
|
|
16
|
+
"dim": "#67616c"
|
|
17
|
+
},
|
|
18
|
+
"colors": {
|
|
19
|
+
"accent": "corona",
|
|
20
|
+
"border": "astral",
|
|
21
|
+
"borderAccent": "corona",
|
|
22
|
+
"borderMuted": "obsidian",
|
|
23
|
+
"success": "success",
|
|
24
|
+
"error": "error",
|
|
25
|
+
"warning": "warning",
|
|
26
|
+
"muted": "muted",
|
|
27
|
+
"dim": "dim",
|
|
28
|
+
"text": "",
|
|
29
|
+
"thinkingText": "muted",
|
|
30
|
+
|
|
31
|
+
"selectedBg": "#1a1724",
|
|
32
|
+
"userMessageBg": "#0f0d14",
|
|
33
|
+
"userMessageText": "",
|
|
34
|
+
"customMessageBg": "#1c1626",
|
|
35
|
+
"customMessageText": "",
|
|
36
|
+
"customMessageLabel": "violet",
|
|
37
|
+
"toolPendingBg": "#0d0f16",
|
|
38
|
+
"toolSuccessBg": "#111817",
|
|
39
|
+
"toolErrorBg": "#1b0f12",
|
|
40
|
+
"toolTitle": "",
|
|
41
|
+
"toolOutput": "muted",
|
|
42
|
+
|
|
43
|
+
"mdHeading": "corona",
|
|
44
|
+
"mdLink": "astral",
|
|
45
|
+
"mdLinkUrl": "dim",
|
|
46
|
+
"mdCode": "silver",
|
|
47
|
+
"mdCodeBlock": "silver",
|
|
48
|
+
"mdCodeBlockBorder": "obsidian",
|
|
49
|
+
"mdQuote": "muted",
|
|
50
|
+
"mdQuoteBorder": "obsidian",
|
|
51
|
+
"mdHr": "obsidian",
|
|
52
|
+
"mdListBullet": "corona",
|
|
53
|
+
|
|
54
|
+
"toolDiffAdded": "success",
|
|
55
|
+
"toolDiffRemoved": "error",
|
|
56
|
+
"toolDiffContext": "muted",
|
|
57
|
+
|
|
58
|
+
"syntaxComment": "dim",
|
|
59
|
+
"syntaxKeyword": "violet",
|
|
60
|
+
"syntaxFunction": "corona",
|
|
61
|
+
"syntaxVariable": "astral",
|
|
62
|
+
"syntaxString": "warning",
|
|
63
|
+
"syntaxNumber": "silver",
|
|
64
|
+
"syntaxType": "success",
|
|
65
|
+
"syntaxOperator": "silver",
|
|
66
|
+
"syntaxPunctuation": "silver",
|
|
67
|
+
|
|
68
|
+
"thinkingOff": "obsidian",
|
|
69
|
+
"thinkingMinimal": "dim",
|
|
70
|
+
"thinkingLow": "astral",
|
|
71
|
+
"thinkingMedium": "violet",
|
|
72
|
+
"thinkingHigh": "ember",
|
|
73
|
+
"thinkingXhigh": "corona",
|
|
74
|
+
|
|
75
|
+
"bashMode": "astral",
|
|
76
|
+
|
|
77
|
+
"statusLineBg": "#0b0b10",
|
|
78
|
+
"statusLineSep": "#2a2635",
|
|
79
|
+
"statusLineModel": "violet",
|
|
80
|
+
"statusLinePath": "astral",
|
|
81
|
+
"statusLineGitClean": "success",
|
|
82
|
+
"statusLineGitDirty": "warning",
|
|
83
|
+
"statusLineContext": "muted",
|
|
84
|
+
"statusLineSpend": "corona",
|
|
85
|
+
"statusLineStaged": "success",
|
|
86
|
+
"statusLineDirty": "warning",
|
|
87
|
+
"statusLineUntracked": "astral",
|
|
88
|
+
"statusLineOutput": "silver",
|
|
89
|
+
"statusLineCost": "corona",
|
|
90
|
+
"statusLineSubagents": "corona"
|
|
91
|
+
},
|
|
92
|
+
"export": {
|
|
93
|
+
"pageBg": "#08070d",
|
|
94
|
+
"cardBg": "#101018",
|
|
95
|
+
"infoBg": "#1a1523"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "dark-ember",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cyan": "#56b6c2",
|
|
6
|
+
"blue": "#5f8dd3",
|
|
7
|
+
"green": "#98c379",
|
|
8
|
+
"red": "#e06c75",
|
|
9
|
+
"yellow": "#e5c07b",
|
|
10
|
+
"gray": "#abb2bf",
|
|
11
|
+
"dimGray": "#5c6370",
|
|
12
|
+
"darkGray": "#4b5263",
|
|
13
|
+
"accent": "#ff6f61",
|
|
14
|
+
"selectedBg": "#2c313a",
|
|
15
|
+
"userMsgBg": "#21252b",
|
|
16
|
+
"toolPendingBg": "#282c34",
|
|
17
|
+
"toolSuccessBg": "#23272e",
|
|
18
|
+
"toolErrorBg": "#2e2525",
|
|
19
|
+
"customMsgBg": "#2a2530"
|
|
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": "#ff6f61",
|
|
45
|
+
"mdLink": "#5f8dd3",
|
|
46
|
+
"mdLinkUrl": "dimGray",
|
|
47
|
+
"mdCode": "#e5c07b",
|
|
48
|
+
"mdCodeBlock": "#56b6c2",
|
|
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": "#5f8dd3",
|
|
58
|
+
"syntaxComment": "#abb2bf",
|
|
59
|
+
"syntaxKeyword": "#5f8dd3",
|
|
60
|
+
"syntaxFunction": "#e5c07b",
|
|
61
|
+
"syntaxVariable": "#56b6c2",
|
|
62
|
+
"syntaxString": "#e06c75",
|
|
63
|
+
"syntaxNumber": "#98c379",
|
|
64
|
+
"syntaxType": "#ff6f61",
|
|
65
|
+
"syntaxOperator": "#5c6370",
|
|
66
|
+
"syntaxPunctuation": "#5c6370",
|
|
67
|
+
"thinkingOff": "darkGray",
|
|
68
|
+
"thinkingMinimal": "dimGray",
|
|
69
|
+
"thinkingLow": "blue",
|
|
70
|
+
"thinkingMedium": "cyan",
|
|
71
|
+
"thinkingHigh": "accent",
|
|
72
|
+
"thinkingXhigh": "red",
|
|
73
|
+
"bashMode": "accent",
|
|
74
|
+
"statusLineBg": "#2c313a",
|
|
75
|
+
"statusLineSep": "#5c6370",
|
|
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": "#21252b",
|
|
91
|
+
"cardBg": "#282c34",
|
|
92
|
+
"infoBg": "#23272e"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/theme-schema.json",
|
|
3
|
+
"name": "dark-equinox",
|
|
4
|
+
"vars": {
|
|
5
|
+
"charcoal": "#121418",
|
|
6
|
+
"slate": "#1c1f25",
|
|
7
|
+
"cool": "#5aa6b8",
|
|
8
|
+
"warm": "#d6a55b",
|
|
9
|
+
"violet": "#6a5fa8",
|
|
10
|
+
"success": "#6fbf8c",
|
|
11
|
+
"error": "#d96a6a",
|
|
12
|
+
"warning": "#e8b45a",
|
|
13
|
+
"muted": "#8b919a",
|
|
14
|
+
"dim": "#666b73",
|
|
15
|
+
"light": "#d7dbe0"
|
|
16
|
+
},
|
|
17
|
+
"colors": {
|
|
18
|
+
"accent": "warm",
|
|
19
|
+
"border": "slate",
|
|
20
|
+
"borderAccent": "cool",
|
|
21
|
+
"borderMuted": "charcoal",
|
|
22
|
+
"success": "success",
|
|
23
|
+
"error": "error",
|
|
24
|
+
"warning": "warning",
|
|
25
|
+
"muted": "muted",
|
|
26
|
+
"dim": "dim",
|
|
27
|
+
"text": "",
|
|
28
|
+
"thinkingText": "muted",
|
|
29
|
+
|
|
30
|
+
"selectedBg": "#1a1e25",
|
|
31
|
+
"userMessageBg": "#14171d",
|
|
32
|
+
"userMessageText": "",
|
|
33
|
+
"customMessageBg": "#1b1f26",
|
|
34
|
+
"customMessageText": "",
|
|
35
|
+
"customMessageLabel": "violet",
|
|
36
|
+
"toolPendingBg": "#141820",
|
|
37
|
+
"toolSuccessBg": "#151d19",
|
|
38
|
+
"toolErrorBg": "#201416",
|
|
39
|
+
"toolTitle": "",
|
|
40
|
+
"toolOutput": "muted",
|
|
41
|
+
|
|
42
|
+
"mdHeading": "warm",
|
|
43
|
+
"mdLink": "cool",
|
|
44
|
+
"mdLinkUrl": "dim",
|
|
45
|
+
"mdCode": "light",
|
|
46
|
+
"mdCodeBlock": "light",
|
|
47
|
+
"mdCodeBlockBorder": "slate",
|
|
48
|
+
"mdQuote": "muted",
|
|
49
|
+
"mdQuoteBorder": "slate",
|
|
50
|
+
"mdHr": "slate",
|
|
51
|
+
"mdListBullet": "warm",
|
|
52
|
+
|
|
53
|
+
"toolDiffAdded": "success",
|
|
54
|
+
"toolDiffRemoved": "error",
|
|
55
|
+
"toolDiffContext": "muted",
|
|
56
|
+
|
|
57
|
+
"syntaxComment": "dim",
|
|
58
|
+
"syntaxKeyword": "violet",
|
|
59
|
+
"syntaxFunction": "warm",
|
|
60
|
+
"syntaxVariable": "cool",
|
|
61
|
+
"syntaxString": "warning",
|
|
62
|
+
"syntaxNumber": "light",
|
|
63
|
+
"syntaxType": "success",
|
|
64
|
+
"syntaxOperator": "light",
|
|
65
|
+
"syntaxPunctuation": "light",
|
|
66
|
+
|
|
67
|
+
"thinkingOff": "charcoal",
|
|
68
|
+
"thinkingMinimal": "dim",
|
|
69
|
+
"thinkingLow": "cool",
|
|
70
|
+
"thinkingMedium": "violet",
|
|
71
|
+
"thinkingHigh": "warm",
|
|
72
|
+
"thinkingXhigh": "light",
|
|
73
|
+
|
|
74
|
+
"bashMode": "cool",
|
|
75
|
+
|
|
76
|
+
"statusLineBg": "#0f1115",
|
|
77
|
+
"statusLineSep": "#2a2e36",
|
|
78
|
+
"statusLineModel": "violet",
|
|
79
|
+
"statusLinePath": "cool",
|
|
80
|
+
"statusLineGitClean": "success",
|
|
81
|
+
"statusLineGitDirty": "warning",
|
|
82
|
+
"statusLineContext": "muted",
|
|
83
|
+
"statusLineSpend": "warm",
|
|
84
|
+
"statusLineStaged": "success",
|
|
85
|
+
"statusLineDirty": "warning",
|
|
86
|
+
"statusLineUntracked": "cool",
|
|
87
|
+
"statusLineOutput": "light",
|
|
88
|
+
"statusLineCost": "warm",
|
|
89
|
+
"statusLineSubagents": "warm"
|
|
90
|
+
},
|
|
91
|
+
"export": {
|
|
92
|
+
"pageBg": "#0f1115",
|
|
93
|
+
"cardBg": "#161a20",
|
|
94
|
+
"infoBg": "#1b1f26"
|
|
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": "dark-lavender",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cyan": "#8be9fd",
|
|
6
|
+
"blue": "#bd93f9",
|
|
7
|
+
"green": "#50fa7b",
|
|
8
|
+
"red": "#ff5555",
|
|
9
|
+
"yellow": "#f1fa8c",
|
|
10
|
+
"gray": "#f8f8f2",
|
|
11
|
+
"dimGray": "#6272a4",
|
|
12
|
+
"darkGray": "#44475a",
|
|
13
|
+
"accent": "#bd93f9",
|
|
14
|
+
"selectedBg": "#282a36",
|
|
15
|
+
"userMsgBg": "#1e1f29",
|
|
16
|
+
"toolPendingBg": "#252630",
|
|
17
|
+
"toolSuccessBg": "#202b28",
|
|
18
|
+
"toolErrorBg": "#302022",
|
|
19
|
+
"customMsgBg": "#262430"
|
|
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": "#bd93f9",
|
|
45
|
+
"mdLink": "#8be9fd",
|
|
46
|
+
"mdLinkUrl": "dimGray",
|
|
47
|
+
"mdCode": "#ff79c6",
|
|
48
|
+
"mdCodeBlock": "#8be9fd",
|
|
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": "#8be9fd",
|
|
58
|
+
"syntaxComment": "#f8f8f2",
|
|
59
|
+
"syntaxKeyword": "#bd93f9",
|
|
60
|
+
"syntaxFunction": "#f1fa8c",
|
|
61
|
+
"syntaxVariable": "#8be9fd",
|
|
62
|
+
"syntaxString": "#ff5555",
|
|
63
|
+
"syntaxNumber": "#50fa7b",
|
|
64
|
+
"syntaxType": "#bd93f9",
|
|
65
|
+
"syntaxOperator": "#6272a4",
|
|
66
|
+
"syntaxPunctuation": "#6272a4",
|
|
67
|
+
"thinkingOff": "darkGray",
|
|
68
|
+
"thinkingMinimal": "dimGray",
|
|
69
|
+
"thinkingLow": "blue",
|
|
70
|
+
"thinkingMedium": "cyan",
|
|
71
|
+
"thinkingHigh": "accent",
|
|
72
|
+
"thinkingXhigh": "red",
|
|
73
|
+
"bashMode": "accent",
|
|
74
|
+
"statusLineBg": "#282a36",
|
|
75
|
+
"statusLineSep": "#6272a4",
|
|
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": "#1e1f29",
|
|
91
|
+
"cardBg": "#252630",
|
|
92
|
+
"infoBg": "#202b28"
|
|
93
|
+
}
|
|
94
|
+
}
|