@sbugallo/pokecode 0.2.1 → 0.3.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/README.md +17 -11
- package/dist/adapters/opencode/tui/choices/cards.d.ts +9 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/choices/cards.jsx +24 -17
- package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -1
- package/dist/adapters/opencode/tui/choices/encounter.d.ts +4 -1
- package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/choices/encounter.jsx +7 -5
- package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -1
- package/dist/adapters/opencode/tui/components/action-button.d.ts +3 -2
- package/dist/adapters/opencode/tui/components/action-button.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/components/action-button.jsx +15 -7
- package/dist/adapters/opencode/tui/components/action-button.jsx.map +1 -1
- package/dist/adapters/opencode/tui/components/image-protocol.d.ts +31 -0
- package/dist/adapters/opencode/tui/components/image-protocol.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/image-protocol.js +83 -0
- package/dist/adapters/opencode/tui/components/image-protocol.js.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts +2 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/components/move-list.jsx +9 -11
- package/dist/adapters/opencode/tui/components/move-list.jsx.map +1 -1
- package/dist/adapters/opencode/tui/components/sprite.d.ts +4 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/components/sprite.jsx +4 -2
- package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -1
- package/dist/adapters/opencode/tui/dex/dialog.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/dex/dialog.jsx +8 -4
- package/dist/adapters/opencode/tui/dex/dialog.jsx.map +1 -1
- package/dist/adapters/opencode/tui/pc/actions.d.ts +4 -4
- package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/pc/actions.jsx +1 -1
- package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -1
- package/dist/adapters/opencode/tui/pc/details.d.ts +4 -1
- package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/pc/details.jsx +14 -10
- package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -1
- package/dist/adapters/opencode/tui/pc/dialog.d.ts +4 -3
- package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/pc/dialog.jsx +16 -18
- package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -1
- package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/plugin.jsx +14 -8
- package/dist/adapters/opencode/tui/plugin.jsx.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/register.d.ts +6 -5
- package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/register.jsx +2 -2
- package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/view.d.ts +9 -4
- package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/view.jsx +27 -23
- package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -1
- package/dist/adapters/opencode/tui/state/cleanup.d.ts +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/state/cleanup.js +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -1
- package/dist/adapters/opencode/tui/theme.d.ts +81 -0
- package/dist/adapters/opencode/tui/theme.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/theme.js +64 -0
- package/dist/adapters/opencode/tui/theme.js.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts +4 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/travel/actions.jsx +1 -1
- package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -1
- package/dist/adapters/opencode/tui/travel/dialog.d.ts +4 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/travel/dialog.jsx +28 -18
- package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -1
- package/dist/adapters/sqlite/game-repository.d.ts +2 -1
- package/dist/adapters/sqlite/game-repository.d.ts.map +1 -1
- package/dist/adapters/sqlite/game-repository.js +9 -1
- package/dist/adapters/sqlite/game-repository.js.map +1 -1
- package/dist/adapters/sqlite/queries/game-state.d.ts +2 -1
- package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -1
- package/dist/adapters/sqlite/queries/game-state.js +9 -3
- package/dist/adapters/sqlite/queries/game-state.js.map +1 -1
- package/dist/application/contracts/game.d.ts +3 -2
- package/dist/application/contracts/game.d.ts.map +1 -1
- package/dist/application/contracts/game.js +3 -2
- package/dist/application/contracts/game.js.map +1 -1
- package/dist/application/game.d.ts.map +1 -1
- package/dist/application/game.js +5 -1
- package/dist/application/game.js.map +1 -1
- package/dist/application/ports/game.d.ts +2 -1
- package/dist/application/ports/game.d.ts.map +1 -1
- package/dist/application/use-cases/record-usage.d.ts.map +1 -1
- package/dist/application/use-cases/record-usage.js +17 -4
- package/dist/application/use-cases/record-usage.js.map +1 -1
- package/dist/domain/content/catalog.d.ts +4 -0
- package/dist/domain/content/catalog.d.ts.map +1 -1
- package/dist/domain/content/catalog.js +17 -0
- package/dist/domain/content/catalog.js.map +1 -1
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/alola-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/galar-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/johto-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/kalos-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/kanto-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/paldea-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/unova-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -1
- package/dist/domain/content/schema.d.ts +1 -0
- package/dist/domain/content/schema.d.ts.map +1 -1
- package/dist/domain/content/schema.js +2 -0
- package/dist/domain/content/schema.js.map +1 -1
- package/dist/domain/exploration/exploration.d.ts +20 -0
- package/dist/domain/exploration/exploration.d.ts.map +1 -1
- package/dist/domain/exploration/exploration.js +17 -0
- package/dist/domain/exploration/exploration.js.map +1 -1
- package/dist/domain/usage/usage.d.ts +3 -3
- package/dist/domain/usage/usage.d.ts.map +1 -1
- package/dist/domain/usage/usage.js +4 -2
- package/dist/domain/usage/usage.js.map +1 -1
- package/dist/index.js +67 -10
- package/dist/rpc.js +8 -2
- package/dist/tui.js +530 -150
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Your active team gains experience from the tokens reported for completed assista
|
|
|
54
54
|
includes input, output, reasoning, and cache read/write tokens. Usage is deduplicated across
|
|
55
55
|
sessions and restarts so the same message is never counted twice.
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
**Every 1,000 counted tokens grants 1 XP to each active Pokémon**. Fractional XP carries
|
|
58
58
|
forward. Your team can hold up to six Pokémon, and only active team members earn new XP; Pokémon in
|
|
59
59
|
the PC remain idle. The level cap is 100.
|
|
60
60
|
|
|
@@ -166,10 +166,13 @@ evolve during the next applied usage event; it does not have to hit the exact le
|
|
|
166
166
|
|
|
167
167
|
Start in any of the nine regions and choose one of its three native starters.
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
Each location has its own unlock cost, charged for eligible tokens spent at your newest unlocked
|
|
170
|
+
location. Costs follow a power curve over the location's position in its region's story, normalized
|
|
171
|
+
by region length and calibrated against main-series gym-leader and champion ace levels, so your
|
|
172
|
+
party keeps pace with the narrative. After a region's champion, further locations cost no more than
|
|
173
|
+
the final approach. Use `/pokecode-locations` to travel there before working toward the following
|
|
174
|
+
location. Returning to an older location preserves your unlock progress, but usage there does not
|
|
175
|
+
advance the next unlock.
|
|
173
176
|
|
|
174
177
|
A single usage event can unlock at most one location; excess unlock progress is discarded. Travel is
|
|
175
178
|
always manual, even in continuous mode.
|
|
@@ -262,10 +265,11 @@ default:
|
|
|
262
265
|
"options": {
|
|
263
266
|
"language": "en",
|
|
264
267
|
"pauseOnPendingChoice": true,
|
|
265
|
-
"xpTokensPerPoint": 1000,
|
|
266
268
|
"encounterMinimumTokens": 200000,
|
|
267
269
|
"encounterMaximumTokens": 400000,
|
|
268
|
-
"
|
|
270
|
+
"locationUnlockBaseTokens": 4214000,
|
|
271
|
+
"locationUnlockExponent": 2.64,
|
|
272
|
+
"locationUnlockRegionExponent": -1.72
|
|
269
273
|
}
|
|
270
274
|
}
|
|
271
275
|
]
|
|
@@ -276,13 +280,15 @@ default:
|
|
|
276
280
|
| --- | --- |
|
|
277
281
|
| `language` | `en` for English or `es` for Spanish. Localizes Pokémon, locations, regions, moves, abilities, and interface text. Missing translations fall back to English. |
|
|
278
282
|
| `pauseOnPendingChoice` | Pauses XP, encounters, and exploration while decisions are pending. Set to `false` for continuous progression and persistent queues. |
|
|
279
|
-
| `xpTokensPerPoint` | Counted tokens required for 1 XP per active Pokémon. Lower values mean faster leveling. |
|
|
280
283
|
| `encounterMinimumTokens` | Minimum eligible-token interval between encounter opportunities. |
|
|
281
284
|
| `encounterMaximumTokens` | Maximum eligible-token interval between encounter opportunities. |
|
|
282
|
-
| `
|
|
285
|
+
| `locationUnlockBaseTokens` | Scale of the location-unlock cost curve. |
|
|
286
|
+
| `locationUnlockExponent` | How quickly unlock costs grow along a region's story. |
|
|
287
|
+
| `locationUnlockRegionExponent` | Normalization applied by region length so short and long regions pace alike. Typically negative. |
|
|
283
288
|
|
|
284
|
-
Token thresholds must be positive integers. Reload or restart
|
|
285
|
-
Because the save is shared, use consistent gameplay settings
|
|
289
|
+
Token thresholds must be positive integers; the exponents are plain numbers. Reload or restart
|
|
290
|
+
OpenCode after changing options. Because the save is shared, use consistent gameplay settings
|
|
291
|
+
across concurrently running instances.
|
|
286
292
|
|
|
287
293
|
## Storage
|
|
288
294
|
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { GameState } from "../../../../application/contracts/game.js";
|
|
2
2
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
3
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
4
|
+
import { type PokecodeSurface } from "../theme.js";
|
|
3
5
|
export declare function PendingChoiceCard(properties: {
|
|
4
6
|
readonly state: () => GameState;
|
|
5
7
|
readonly onResolveMove: (choiceId: string, selectedMoveId: string) => Promise<void>;
|
|
6
8
|
readonly onResolveEvolution: (choiceId: string, selectedSpeciesId: string) => Promise<void>;
|
|
7
9
|
readonly resolveSprite: SpriteResolver;
|
|
10
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
8
11
|
readonly language: () => GameState["locale"];
|
|
12
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
9
13
|
}): any;
|
|
10
14
|
export declare function MoveChoiceCard(properties: {
|
|
11
15
|
readonly choice: () => GameState["pendingChoices"][number] | undefined;
|
|
@@ -13,20 +17,25 @@ export declare function MoveChoiceCard(properties: {
|
|
|
13
17
|
readonly choicePokemon: () => GameState["choicePokemon"];
|
|
14
18
|
readonly onResolve: (choiceId: string, selectedMoveId: string) => Promise<void>;
|
|
15
19
|
readonly resolveSprite: SpriteResolver;
|
|
20
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
16
21
|
readonly language?: (() => GameState["locale"]) | undefined;
|
|
22
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
17
23
|
}): any;
|
|
18
24
|
export declare function EvolutionChoiceCard(properties: {
|
|
19
25
|
readonly choice: () => GameState["pendingChoices"][number] | undefined;
|
|
20
26
|
readonly party: () => GameState["party"];
|
|
21
27
|
readonly choicePokemon: () => GameState["choicePokemon"];
|
|
22
28
|
readonly resolveSprite: SpriteResolver;
|
|
29
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
23
30
|
readonly language: () => GameState["locale"];
|
|
24
31
|
readonly onResolve: (choiceId: string, selectedSpeciesId: string) => Promise<void>;
|
|
32
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
25
33
|
}): any;
|
|
26
34
|
export declare function RegionChoiceCard(properties: {
|
|
27
35
|
readonly choice: () => GameState["pendingChoices"][number] | undefined;
|
|
28
36
|
readonly visitedRegionIds: () => readonly string[];
|
|
29
37
|
readonly onTravel: (regionId: string) => Promise<void>;
|
|
30
38
|
readonly language?: (() => GameState["locale"]) | undefined;
|
|
39
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
31
40
|
}): any;
|
|
32
41
|
//# sourceMappingURL=cards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAQ1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,15 +6,16 @@ import { regions } from "../../../../domain/content/catalog.js";
|
|
|
6
6
|
import { uiCopy } from "../../../presentation/ui-copy.js";
|
|
7
7
|
import { MoveList } from "../components/move-list.js";
|
|
8
8
|
import { Sprite } from "../components/sprite.js";
|
|
9
|
+
import { fallbackPokecodeTheme } from "../theme.js";
|
|
9
10
|
export function PendingChoiceCard(properties) {
|
|
10
11
|
const choice = () => properties.state().pendingChoices[0];
|
|
11
12
|
return (<Show when={choice()} keyed>
|
|
12
13
|
{(activeChoice) => (<Switch>
|
|
13
14
|
<Match when={activeChoice.kind === "move"}>
|
|
14
|
-
<MoveChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} onResolve={properties.onResolveMove} resolveSprite={properties.resolveSprite} language={properties.language}/>
|
|
15
|
+
<MoveChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} onResolve={properties.onResolveMove} resolveSprite={properties.resolveSprite} imageProtocol={properties.imageProtocol} language={properties.language} theme={properties.theme}/>
|
|
15
16
|
</Match>
|
|
16
17
|
<Match when={activeChoice.kind === "evolution"}>
|
|
17
|
-
<EvolutionChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} resolveSprite={properties.resolveSprite} language={properties.language} onResolve={properties.onResolveEvolution}/>
|
|
18
|
+
<EvolutionChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} resolveSprite={properties.resolveSprite} imageProtocol={properties.imageProtocol} language={properties.language} onResolve={properties.onResolveEvolution} theme={properties.theme}/>
|
|
18
19
|
</Match>
|
|
19
20
|
</Switch>)}
|
|
20
21
|
</Show>);
|
|
@@ -32,17 +33,18 @@ export function MoveChoiceCard(properties) {
|
|
|
32
33
|
return null;
|
|
33
34
|
const dimensions = useTerminalDimensions();
|
|
34
35
|
const language = () => properties.language?.() ?? "en";
|
|
36
|
+
const surface = () => properties.theme?.() ?? fallbackPokecodeTheme.current;
|
|
35
37
|
const moves = [...pokemon.moves, payload.move];
|
|
36
38
|
const copy = () => uiCopy(language());
|
|
37
39
|
return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1} width="100%" minWidth={0}>
|
|
38
|
-
<text width="100%" wrapMode="word" textAlign="center">
|
|
40
|
+
<text fg={surface().text} width="100%" wrapMode="word" textAlign="center">
|
|
39
41
|
{copy().movePrompt(pokemon.name)}
|
|
40
42
|
</text>
|
|
41
|
-
<Sprite language={properties.language} resolve={properties.resolveSprite} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
42
|
-
<text width="100%" wrapMode="word" textAlign="center">
|
|
43
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} theme={surface} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
44
|
+
<text fg={surface().muted} width="100%" wrapMode="word" textAlign="center">
|
|
43
45
|
{copy().moveDescription}
|
|
44
46
|
</text>
|
|
45
|
-
<MoveList centered leftAlignMoves moves={moves} language={language()} offeredMoveId={payload.move.id} height={Math.min(28, Math.max(6, dimensions().height - 19))} onActivate={(moveId) => properties.onResolve(choice.id, moveId)}/>
|
|
47
|
+
<MoveList centered leftAlignMoves moves={moves} language={language()} offeredMoveId={payload.move.id} height={Math.min(28, Math.max(6, dimensions().height - 19))} onActivate={(moveId) => properties.onResolve(choice.id, moveId)} theme={properties.theme}/>
|
|
46
48
|
</box>);
|
|
47
49
|
}
|
|
48
50
|
export function EvolutionChoiceCard(properties) {
|
|
@@ -56,18 +58,20 @@ export function EvolutionChoiceCard(properties) {
|
|
|
56
58
|
properties.choicePokemon().find((instance) => instance.id === payload.pokemonId);
|
|
57
59
|
if (pokemon === undefined || pokemon === null)
|
|
58
60
|
return null;
|
|
61
|
+
const surface = () => properties.theme?.() ?? fallbackPokecodeTheme.current;
|
|
59
62
|
const [hoveredOption, setHoveredOption] = createSignal(null);
|
|
60
63
|
return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
|
|
61
|
-
<text>{uiCopy(properties.language()).evolutionPrompt(pokemon.name)}</text>
|
|
62
|
-
<Sprite language={properties.language} resolve={properties.resolveSprite} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
63
|
-
<text>{uiCopy(properties.language()).chooseEvolution}</text>
|
|
64
|
+
<text fg={surface().text}>{uiCopy(properties.language()).evolutionPrompt(pokemon.name)}</text>
|
|
65
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} theme={surface} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
66
|
+
<text fg={surface().muted}>{uiCopy(properties.language()).chooseEvolution}</text>
|
|
64
67
|
<box flexDirection="row" flexWrap="wrap" gap={1} justifyContent="center" width="100%">
|
|
65
|
-
{payload.options.map((option) => (<EvolutionOptionCard option={option} pokemon={pokemon} hovered={() => hoveredOption() === option.speciesId} onHover={() => setHoveredOption(option.speciesId)} onLeave={() => setHoveredOption(null)} onResolve={() => properties.onResolve(choice.id, option.speciesId)} resolveSprite={properties.resolveSprite} language={properties.language}/>))}
|
|
68
|
+
{payload.options.map((option) => (<EvolutionOptionCard option={option} pokemon={pokemon} hovered={() => hoveredOption() === option.speciesId} onHover={() => setHoveredOption(option.speciesId)} onLeave={() => setHoveredOption(null)} onResolve={() => properties.onResolve(choice.id, option.speciesId)} resolveSprite={properties.resolveSprite} imageProtocol={properties.imageProtocol} language={properties.language} theme={surface}/>))}
|
|
66
69
|
</box>
|
|
67
70
|
</box>);
|
|
68
71
|
}
|
|
69
72
|
function EvolutionOptionCard(properties) {
|
|
70
|
-
|
|
73
|
+
const surface = () => properties.theme?.() ?? fallbackPokecodeTheme.current;
|
|
74
|
+
return (<button alignItems="center" backgroundColor={properties.hovered() ? surface().highlight : undefined} border={false} flexDirection="column" flexShrink={0} focusable width={14} padding={1} type="button" onMouseOver={properties.onHover} onMouseOut={properties.onLeave} onFocus={properties.onHover} onBlur={properties.onLeave} onMouseUp={(event) => {
|
|
71
75
|
if (event.button === MouseButton.LEFT)
|
|
72
76
|
void properties.onResolve();
|
|
73
77
|
}} onKeyDown={(event) => {
|
|
@@ -75,10 +79,10 @@ function EvolutionOptionCard(properties) {
|
|
|
75
79
|
void properties.onResolve();
|
|
76
80
|
}}>
|
|
77
81
|
<box flexDirection="row" height={4} justifyContent="center" width="100%">
|
|
78
|
-
<Sprite compactFallback language={properties.language} resolve={properties.resolveSprite} shiny={properties.pokemon.shiny} gender={properties.pokemon.gender} speciesId={properties.option.speciesId}/>
|
|
82
|
+
<Sprite compactFallback language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} theme={surface} shiny={properties.pokemon.shiny} gender={properties.pokemon.gender} speciesId={properties.option.speciesId}/>
|
|
79
83
|
</box>
|
|
80
84
|
<box flexDirection="row" justifyContent="center" width="100%">
|
|
81
|
-
<text>{properties.option.name}</text>
|
|
85
|
+
<text fg={surface().text}>{properties.option.name}</text>
|
|
82
86
|
</box>
|
|
83
87
|
</button>);
|
|
84
88
|
}
|
|
@@ -89,16 +93,19 @@ export function RegionChoiceCard(properties) {
|
|
|
89
93
|
const payload = decodeRegionChoiceProjection(choice.payload);
|
|
90
94
|
if (payload === null)
|
|
91
95
|
return null;
|
|
96
|
+
const surface = () => properties.theme?.() ?? fallbackPokecodeTheme.current;
|
|
92
97
|
const [hoveredRegion, setHoveredRegion] = createSignal(null);
|
|
93
98
|
const availableRegions = () => regions(properties.language?.() ?? "en");
|
|
94
99
|
const completedRegionName = () => availableRegions().find((region) => region.id === payload.region)?.name ?? payload.region;
|
|
95
100
|
return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
|
|
96
|
-
<text
|
|
97
|
-
|
|
101
|
+
<text fg={surface().text}>
|
|
102
|
+
{uiCopy(properties.language?.() ?? "en").regionComplete(completedRegionName())}
|
|
103
|
+
</text>
|
|
104
|
+
<text fg={surface().muted}>{uiCopy(properties.language?.() ?? "en").chooseNextRegion}</text>
|
|
98
105
|
<box flexDirection="row" flexWrap="wrap" gap={1} justifyContent="center" width="100%">
|
|
99
106
|
{availableRegions()
|
|
100
107
|
.filter((region) => region.id !== payload.region && !properties.visitedRegionIds().includes(region.id))
|
|
101
|
-
.map((region) => (<button alignItems="center" backgroundColor={hoveredRegion() === region.id ?
|
|
108
|
+
.map((region) => (<button alignItems="center" backgroundColor={hoveredRegion() === region.id ? surface().highlight : undefined} border={false} flexShrink={0} focusable justifyContent="center" padding={1} type="button" width={14} onMouseOver={() => setHoveredRegion(region.id)} onMouseOut={() => setHoveredRegion(null)} onFocus={() => setHoveredRegion(region.id)} onBlur={() => setHoveredRegion(null)} onMouseUp={(event) => {
|
|
102
109
|
if (event.button === MouseButton.LEFT)
|
|
103
110
|
void properties.onTravel(region.id);
|
|
104
111
|
}} onKeyDown={(event) => {
|
|
@@ -106,7 +113,7 @@ export function RegionChoiceCard(properties) {
|
|
|
106
113
|
void properties.onTravel(region.id);
|
|
107
114
|
}
|
|
108
115
|
}}>
|
|
109
|
-
<text>{region.name}</text>
|
|
116
|
+
<text fg={surface().text}>{region.name}</text>
|
|
110
117
|
</button>))}
|
|
111
118
|
</box>
|
|
112
119
|
</box>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cards.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import type { GameState } from "../../../../application/contracts/game.js";
|
|
2
2
|
import type { PendingEncounter } from "../../../../domain/encounters/encounter.js";
|
|
3
3
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
4
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
5
|
+
import { type PokecodeSurface } from "../theme.js";
|
|
4
6
|
export declare function EncounterCard(properties: {
|
|
5
7
|
readonly encounter: () => GameState["pendingEncounter"];
|
|
6
|
-
readonly mutedColor: () => string;
|
|
7
8
|
readonly hoveredAction: () => "catch" | "run" | null;
|
|
8
9
|
readonly onHover: (action: "catch" | "run" | null) => void;
|
|
9
10
|
readonly onResolve: (encounterId: string, encounter: PendingEncounter, capture: boolean) => Promise<void>;
|
|
10
11
|
readonly resolveSprite: SpriteResolver;
|
|
12
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
11
13
|
readonly language?: (() => GameState["locale"]) | undefined;
|
|
14
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
12
15
|
}): any;
|
|
13
16
|
//# sourceMappingURL=encounter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encounter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"encounter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAE5E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAEzE,wBAAgB,aAAa,CAAC,UAAU,EAAE;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,SAAS,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,GAAG,SAAS,CAAA;CACrD,OA0DA"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { uiCopy } from "../../../presentation/ui-copy.js";
|
|
2
2
|
import { PokecodeActionButton } from "../components/action-button.js";
|
|
3
3
|
import { Sprite } from "../components/sprite.js";
|
|
4
|
+
import { fallbackPokecodeTheme } from "../theme.js";
|
|
4
5
|
export function EncounterCard(properties) {
|
|
5
6
|
const encounter = properties.encounter();
|
|
6
7
|
if (encounter === null)
|
|
7
8
|
return null;
|
|
9
|
+
const surface = () => properties.theme?.() ?? fallbackPokecodeTheme.current;
|
|
8
10
|
const genderSymbol = encounter.gender === "male" ? "♂" : encounter.gender === "female" ? "♀" : "—";
|
|
9
11
|
const copy = uiCopy(properties.language?.() ?? "en");
|
|
10
12
|
return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
|
|
11
13
|
<box flexDirection="row">
|
|
12
|
-
<text fg={properties.encounter()?.caught ?
|
|
13
|
-
<text>
|
|
14
|
+
<text fg={properties.encounter()?.caught ? surface().success : surface().muted}>● </text>
|
|
15
|
+
<text fg={surface().text}>
|
|
14
16
|
{copy.encounter({
|
|
15
17
|
genderSymbol,
|
|
16
18
|
kind: encounter.kind,
|
|
@@ -20,10 +22,10 @@ export function EncounterCard(properties) {
|
|
|
20
22
|
})}
|
|
21
23
|
</text>
|
|
22
24
|
</box>
|
|
23
|
-
<Sprite language={properties.language} resolve={properties.resolveSprite} shiny={encounter.shiny} gender={encounter.gender} speciesId={encounter.speciesId}/>
|
|
25
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} theme={surface} shiny={encounter.shiny} gender={encounter.gender} speciesId={encounter.speciesId}/>
|
|
24
26
|
<box flexDirection="row" gap={1} justifyContent="center">
|
|
25
|
-
<PokecodeActionButton hovered={() => properties.hoveredAction() === "catch"} label={copy.catch} onActivate={() => properties.onResolve(encounter.id, encounter, true)} onHover={() => properties.onHover("catch")} onLeave={() => properties.onHover(null)} tone="primary"/>
|
|
26
|
-
<PokecodeActionButton hovered={() => properties.hoveredAction() === "run"} label={copy.run} onActivate={() => properties.onResolve(encounter.id, encounter, false)} onHover={() => properties.onHover("run")} onLeave={() => properties.onHover(null)} tone="secondary"/>
|
|
27
|
+
<PokecodeActionButton hovered={() => properties.hoveredAction() === "catch"} label={copy.catch} onActivate={() => properties.onResolve(encounter.id, encounter, true)} onHover={() => properties.onHover("catch")} onLeave={() => properties.onHover(null)} theme={surface} tone="primary"/>
|
|
28
|
+
<PokecodeActionButton hovered={() => properties.hoveredAction() === "run"} label={copy.run} onActivate={() => properties.onResolve(encounter.id, encounter, false)} onHover={() => properties.onHover("run")} onLeave={() => properties.onHover(null)} theme={surface} tone="secondary"/>
|
|
27
29
|
</box>
|
|
28
30
|
</box>);
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encounter.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"encounter.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { type PokecodeSurface } from "../theme.js";
|
|
1
2
|
export declare const bold: number;
|
|
2
|
-
type ActionTone = "primary" | "secondary" | "success";
|
|
3
|
+
export type ActionTone = "primary" | "secondary" | "success";
|
|
3
4
|
export declare function PokecodeActionButton(properties: {
|
|
4
5
|
readonly hovered: () => boolean;
|
|
5
6
|
readonly label: string;
|
|
6
7
|
readonly onActivate: () => Promise<void>;
|
|
7
8
|
readonly onHover: () => void;
|
|
8
9
|
readonly onLeave: () => void;
|
|
10
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
9
11
|
readonly tone: ActionTone;
|
|
10
12
|
}): any;
|
|
11
|
-
export {};
|
|
12
13
|
//# sourceMappingURL=action-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-button.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/action-button.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action-button.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/action-button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAEzE,eAAO,MAAM,IAAI,QAAuC,CAAA;AAExD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;AAE5D,wBAAgB,oBAAoB,CAAC,UAAU,EAAE;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B,OAgCA"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { createTextAttributes } from "@opentui/core";
|
|
2
|
+
import { fallbackPokecodeTheme } from "../theme.js";
|
|
2
3
|
export const bold = createTextAttributes({ bold: true });
|
|
3
4
|
export function PokecodeActionButton(properties) {
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
const surface = () => properties.theme?.() ?? fallbackPokecodeTheme.current;
|
|
6
|
+
const colors = () => {
|
|
7
|
+
const action = properties.tone === "secondary" ? surface().secondary : surface().primary;
|
|
8
|
+
return {
|
|
9
|
+
background: properties.hovered() ? action.backgroundHovered : action.background,
|
|
10
|
+
label: properties.tone === "success"
|
|
11
|
+
? surface().success
|
|
12
|
+
: properties.hovered()
|
|
13
|
+
? action.labelHovered
|
|
14
|
+
: action.label,
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
return (<button alignItems="center" backgroundColor={colors().background} focusable justifyContent="center" paddingLeft={2} paddingRight={2} type="button" onBlur={properties.onLeave} onFocus={properties.onHover} onMouseOut={properties.onLeave} onMouseOver={properties.onHover} onMouseUp={() => void properties.onActivate()}>
|
|
18
|
+
<text fg={colors().label}>{properties.label}</text>
|
|
11
19
|
</button>);
|
|
12
20
|
}
|
|
13
21
|
//# sourceMappingURL=action-button.jsx.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-button.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/action-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"action-button.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/action-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAwB,MAAM,aAAa,CAAA;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAIxD,MAAM,UAAU,oBAAoB,CAAC,UAQpC;IACC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAA;IAC3E,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAA;QACxF,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;YAC/E,KAAK,EACH,UAAU,CAAC,IAAI,KAAK,SAAS;gBAC3B,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO;gBACnB,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE;oBACpB,CAAC,CAAC,MAAM,CAAC,YAAY;oBACrB,CAAC,CAAC,MAAM,CAAC,KAAK;SACrB,CAAA;IACH,CAAC,CAAA;IACD,OAAO,CACL,CAAC,MAAM,CACL,UAAU,CAAC,QAAQ,CACnB,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CACrC,SAAS,CACT,cAAc,CAAC,QAAQ,CACvB,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,YAAY,CAAC,CAAC,CAAC,CAAC,CAChB,IAAI,CAAC,QAAQ,CACb,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC5B,UAAU,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC/B,WAAW,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAChC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC,CAE9C;MAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CACpD;IAAA,EAAE,MAAM,CAAC,CACV,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ImageRenderProtocol, TerminalCapabilities } from "@opentui/core";
|
|
2
|
+
import { type Accessor } from "solid-js";
|
|
3
|
+
export type ImageProtocolCapabilities = Pick<TerminalCapabilities, "terminal" | "image_protocol" | "sixel" | "kitty_graphics">;
|
|
4
|
+
export type ImageProtocolAccessor = Accessor<ImageRenderProtocol>;
|
|
5
|
+
/** Minimal structural view of the renderer's capability events. */
|
|
6
|
+
export type CapabilitiesEventSource = Readonly<{
|
|
7
|
+
readonly capabilities: ImageProtocolCapabilities | null;
|
|
8
|
+
on(event: "capabilities", listener: (capabilities: ImageProtocolCapabilities) => void): unknown;
|
|
9
|
+
off(event: "capabilities", listener: (capabilities: ImageProtocolCapabilities) => void): unknown;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Picks the sprite image protocol for the detected terminal.
|
|
13
|
+
*
|
|
14
|
+
* Capability-first: an explicit OPENTUI_IMAGE_PROTOCOL override (surfaced by
|
|
15
|
+
* OpenTUI as the image_protocol capability) always wins, and everything else
|
|
16
|
+
* stays "auto" so OpenTUI resolves from real capability queries — Kitty
|
|
17
|
+
* graphics first, then Sixel (which the xterm.js image addon behind VS Code's
|
|
18
|
+
* terminal.integrated.enableImages advertises through DA1), then half-blocks.
|
|
19
|
+
* Only terminals known to misreport their capabilities need a correction
|
|
20
|
+
* from the table above.
|
|
21
|
+
*/
|
|
22
|
+
export declare function spriteImageProtocol(capabilities: ImageProtocolCapabilities | null): ImageRenderProtocol;
|
|
23
|
+
/**
|
|
24
|
+
* Tracks the resolved protocol reactively: capability detection answers
|
|
25
|
+
* after startup, so the accessor flips once the terminal identifies itself.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createImageProtocolState(source: CapabilitiesEventSource): {
|
|
28
|
+
readonly protocol: ImageProtocolAccessor;
|
|
29
|
+
readonly dispose: () => void;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=image-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/image-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,UAAU,CAAA;AAEtD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,oBAAoB,EACpB,UAAU,GAAG,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,CAC3D,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAEjE,mEAAmE;AACnE,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACvD,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAA;IAC/F,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAA;CACjG,CAAC,CAAA;AAyDF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,yBAAyB,GAAG,IAAI,GAC7C,mBAAmB,CAQrB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,GAAG;IACzE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B,CAYA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createSignal } from "solid-js";
|
|
2
|
+
/**
|
|
3
|
+
* Terminals that advertise image capabilities they cannot honor. Capability
|
|
4
|
+
* detection is only as honest as the answering terminal, so the rare terminal
|
|
5
|
+
* that lies needs a correction keyed by its identity — the same technique
|
|
6
|
+
* OpenTUI's own native detection uses (applyKnownGraphicsIdentity, and the
|
|
7
|
+
* TERM_PROGRAM=vscode kitty_graphics correction). Entries are data: add one
|
|
8
|
+
* here, never a new branch in the resolver.
|
|
9
|
+
*/
|
|
10
|
+
const graphicsCorrections = [
|
|
11
|
+
{
|
|
12
|
+
// VS Code and Orca both present as "xterm.js": XTVERSION answers with the
|
|
13
|
+
// library name, which outranks the TERM_PROGRAM identity fallback, so no
|
|
14
|
+
// per-product name ever surfaces here. The xterm.js image addon behind
|
|
15
|
+
// terminal.integrated.enableImages advertises BOTH Kitty graphics and
|
|
16
|
+
// Sixel — but its Kitty path drops OpenTUI's placements while Sixel
|
|
17
|
+
// renders reliably. Prefer Sixel whenever this identity advertises it;
|
|
18
|
+
// addon disabled → no Sixel advertised → the entry does not match and
|
|
19
|
+
// auto falls through to half-blocks.
|
|
20
|
+
terminalName: /^xterm\.js$/i,
|
|
21
|
+
requires: { sixel: true },
|
|
22
|
+
protocol: "sixel",
|
|
23
|
+
reason: "xterm.js image addon Kitty path drops OpenTUI placements",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
// Orca answers the Kitty graphics probe with OK, so no capability query
|
|
27
|
+
// distinguishes it from Kitty; placements blank once its per-pane image
|
|
28
|
+
// budget evicts them (stablyai/orca#23547, open as of October 2026).
|
|
29
|
+
// Keyed on the TERM_PROGRAM identity for the case where Orca stops
|
|
30
|
+
// answering XTVERSION.
|
|
31
|
+
terminalName: /orca/i,
|
|
32
|
+
protocol: "blocks",
|
|
33
|
+
reason: "stablyai/orca#23547",
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
const requirementsMet = (requires, capabilities) => {
|
|
37
|
+
if (requires === undefined)
|
|
38
|
+
return true;
|
|
39
|
+
if (requires.sixel !== undefined && capabilities?.sixel !== requires.sixel)
|
|
40
|
+
return false;
|
|
41
|
+
if (requires.kitty_graphics !== undefined &&
|
|
42
|
+
capabilities?.kitty_graphics !== requires.kitty_graphics) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Picks the sprite image protocol for the detected terminal.
|
|
49
|
+
*
|
|
50
|
+
* Capability-first: an explicit OPENTUI_IMAGE_PROTOCOL override (surfaced by
|
|
51
|
+
* OpenTUI as the image_protocol capability) always wins, and everything else
|
|
52
|
+
* stays "auto" so OpenTUI resolves from real capability queries — Kitty
|
|
53
|
+
* graphics first, then Sixel (which the xterm.js image addon behind VS Code's
|
|
54
|
+
* terminal.integrated.enableImages advertises through DA1), then half-blocks.
|
|
55
|
+
* Only terminals known to misreport their capabilities need a correction
|
|
56
|
+
* from the table above.
|
|
57
|
+
*/
|
|
58
|
+
export function spriteImageProtocol(capabilities) {
|
|
59
|
+
const configured = capabilities?.image_protocol;
|
|
60
|
+
if (configured !== undefined && configured !== "auto")
|
|
61
|
+
return configured;
|
|
62
|
+
const name = capabilities?.terminal.name ?? "";
|
|
63
|
+
const correction = graphicsCorrections.find((entry) => entry.terminalName.test(name) && requirementsMet(entry.requires, capabilities));
|
|
64
|
+
return correction?.protocol ?? "auto";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Tracks the resolved protocol reactively: capability detection answers
|
|
68
|
+
* after startup, so the accessor flips once the terminal identifies itself.
|
|
69
|
+
*/
|
|
70
|
+
export function createImageProtocolState(source) {
|
|
71
|
+
const [protocol, setProtocol] = createSignal(spriteImageProtocol(source.capabilities));
|
|
72
|
+
const listener = (capabilities) => {
|
|
73
|
+
setProtocol(spriteImageProtocol(capabilities));
|
|
74
|
+
};
|
|
75
|
+
source.on("capabilities", listener);
|
|
76
|
+
return {
|
|
77
|
+
protocol,
|
|
78
|
+
dispose: () => {
|
|
79
|
+
source.off("capabilities", listener);
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=image-protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-protocol.js","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/image-protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAA;AAgBtD;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAKnB;IACJ;QACE,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,oEAAoE;QACpE,uEAAuE;QACvE,sEAAsE;QACtE,qCAAqC;QACrC,YAAY,EAAE,cAAc;QAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACzB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,0DAA0D;KACnE;IACD;QACE,wEAAwE;QACxE,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,uBAAuB;QACvB,YAAY,EAAE,OAAO;QACrB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,qBAAqB;KAC9B;CACF,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,QAAqF,EACrF,YAA8C,EACrC,EAAE;IACX,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxF,IACE,QAAQ,CAAC,cAAc,KAAK,SAAS;QACrC,YAAY,EAAE,cAAc,KAAK,QAAQ,CAAC,cAAc,EACxD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA8C;IAE9C,MAAM,UAAU,GAAG,YAAY,EAAE,cAAc,CAAA;IAC/C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IACxE,MAAM,IAAI,GAAG,YAAY,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAA;IAC9C,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC1F,CAAA;IACD,OAAO,UAAU,EAAE,QAAQ,IAAI,MAAM,CAAA;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA+B;IAItE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtF,MAAM,QAAQ,GAAG,CAAC,YAAuC,EAAQ,EAAE;QACjE,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAA;IAChD,CAAC,CAAA;IACD,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IACnC,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QACtC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Move } from "../../../../domain/pokemon/types.js";
|
|
2
2
|
import type { Language } from "../../../../domain/shared/language.js";
|
|
3
|
+
import { type PokecodeSurface } from "../theme.js";
|
|
3
4
|
import "../controls/native.js";
|
|
4
5
|
export declare function MoveList(properties: {
|
|
5
6
|
readonly moves: readonly Move[];
|
|
@@ -9,5 +10,6 @@ export declare function MoveList(properties: {
|
|
|
9
10
|
readonly centered?: boolean;
|
|
10
11
|
readonly leftAlignMoves?: boolean;
|
|
11
12
|
readonly onActivate?: (moveId: string) => Promise<void>;
|
|
13
|
+
readonly theme?: (() => PokecodeSurface) | undefined;
|
|
12
14
|
}): any;
|
|
13
15
|
//# sourceMappingURL=move-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-list.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/move-list.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,uBAAuB,CAAA;AAE9B,wBAAgB,QAAQ,CAAC,UAAU,EAAE;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"move-list.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/move-list.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AACzE,OAAO,uBAAuB,CAAA;AAE9B,wBAAgB,QAAQ,CAAC,UAAU,EAAE;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,GAAG,SAAS,CAAA;CACrD,OA8JA"}
|