@litfamily/litopencode 1.0.18 → 1.0.19
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 +10 -0
- package/README-Ko-KR.md +56 -86
- package/README.md +57 -86
- package/dist/activation-routing.js +3 -1
- package/dist/cli/args.js +5 -1
- package/dist/cli/auto-update.js +1 -1
- package/dist/cli/doctor.js +7 -5
- package/dist/cli/host-limits.js +2 -5
- package/dist/cli/install-config.d.ts +4 -0
- package/dist/cli/install-config.js +27 -1
- package/dist/cli/install-report.js +4 -1
- package/dist/cli/install.js +89 -28
- package/dist/cli/json.d.ts +1 -0
- package/dist/cli/json.js +10 -4
- package/dist/cli/jsonc.d.ts +17 -0
- package/dist/cli/jsonc.js +174 -0
- package/dist/cli/loop.d.ts +1 -1
- package/dist/cli/loop.js +81 -1
- package/dist/cli/motion-runtime.d.ts +13 -1
- package/dist/cli/motion-runtime.js +89 -2
- package/dist/cli/plugin-mutation.js +11 -6
- package/dist/cli/tui-config.d.ts +52 -0
- package/dist/cli/tui-config.js +198 -0
- package/dist/cli/types.d.ts +4 -0
- package/dist/cli.js +8 -3
- package/dist/deliverable-hedge-guard.js +2 -2
- package/dist/tui/mission-band.d.ts +29 -0
- package/dist/tui/mission-band.js +116 -0
- package/dist/tui/mission-model.d.ts +139 -0
- package/dist/tui/mission-model.js +318 -0
- package/dist/tui/mission-motion.d.ts +66 -0
- package/dist/tui/mission-motion.js +147 -0
- package/dist/tui/mission-source.d.ts +56 -0
- package/dist/tui/mission-source.js +88 -0
- package/dist/tui/mission-text.d.ts +103 -0
- package/dist/tui/mission-text.js +613 -0
- package/dist/tui.d.ts +6 -0
- package/dist/tui.js +317 -0
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/reference-Ko-KR.md +72 -1
- package/docs/reference.md +82 -1
- package/package.json +21 -2
- package/skills/lit-pptx/scripts/lib/template-registry.js +1 -1
- package/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/night/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/paper/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/signal/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/studio/pack.yaml +0 -6
- package/skills/managed-skill-manifest.json +9 -9
- package/tools/check-pack-payload.mjs +20 -5
- package/tools/version-manifests.json +18 -6
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type MotionFrame } from "./mission-motion.ts";
|
|
2
|
+
import { type MissionView } from "./mission-model.ts";
|
|
3
|
+
export type Segment = {
|
|
4
|
+
readonly text: string;
|
|
5
|
+
readonly fg: string;
|
|
6
|
+
readonly bg?: string;
|
|
7
|
+
readonly bold?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type Line = readonly Segment[];
|
|
10
|
+
export type MissionPalette = {
|
|
11
|
+
readonly primary: string;
|
|
12
|
+
readonly accent: string;
|
|
13
|
+
readonly info: string;
|
|
14
|
+
readonly warning: string;
|
|
15
|
+
readonly success: string;
|
|
16
|
+
readonly error: string;
|
|
17
|
+
readonly text: string;
|
|
18
|
+
readonly muted: string;
|
|
19
|
+
readonly borderActive: string;
|
|
20
|
+
readonly borderSubtle: string;
|
|
21
|
+
/** Opaque fills only; undefined when the theme leaves that surface transparent. */
|
|
22
|
+
readonly background?: string;
|
|
23
|
+
readonly panel?: string;
|
|
24
|
+
readonly element?: string;
|
|
25
|
+
/** What fades and tints mix toward: the panel, else the background, else a neutral for the mode. */
|
|
26
|
+
readonly mixBase: string;
|
|
27
|
+
/** Text drawn on a filled pill. */
|
|
28
|
+
readonly onFill: string;
|
|
29
|
+
};
|
|
30
|
+
/** Panel box width in cells, and the content width inside its border and one cell of padding per side. */
|
|
31
|
+
export declare const panelWidth = 36;
|
|
32
|
+
export declare const panelInnerWidth: number;
|
|
33
|
+
/** Theme tokens arrive as RGBA objects; plain hex strings pass through. Alpha is ignored here. */
|
|
34
|
+
export declare function colorToHex(value: unknown, fallback: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Builds the palette from `api.theme.current`. A surface token with alpha 0 (the system and
|
|
37
|
+
* lucent-orng themes) means "draw no background", never black.
|
|
38
|
+
*/
|
|
39
|
+
export declare function paletteFromTheme(theme: Record<string, unknown> | undefined, mode?: "dark" | "light"): MissionPalette;
|
|
40
|
+
/**
|
|
41
|
+
* Columns the prompt row leaves for the chip. OpenCode shows the sidebar when the session is not a
|
|
42
|
+
* child, the stored `sidebar` setting is "auto" and the terminal is wider than 120 columns. An unknown
|
|
43
|
+
* setting is treated as open, the narrower and safe guess.
|
|
44
|
+
*/
|
|
45
|
+
export declare function chipBudget(input: {
|
|
46
|
+
readonly width: number;
|
|
47
|
+
readonly sidebar: string | undefined;
|
|
48
|
+
readonly child: boolean;
|
|
49
|
+
}): number;
|
|
50
|
+
export declare function cellWidth(value: string): number;
|
|
51
|
+
/** Cuts `value` to at most `max` cells, ending in an ellipsis when anything was dropped. */
|
|
52
|
+
export declare function truncateCells(value: string, max: number): string;
|
|
53
|
+
export declare function padCells(value: string, width: number): string;
|
|
54
|
+
export declare function lineWidth(line: Line): number;
|
|
55
|
+
export declare function gradientAt(stops: readonly string[], position: number): string;
|
|
56
|
+
export declare function shimmerAt(frame: MotionFrame): number;
|
|
57
|
+
/**
|
|
58
|
+
* A bar of `cells` cells filled to `ratio` with eighth-cell blocks, each cell its own step of the
|
|
59
|
+
* primary-to-accent gradient. The empty track is a thin muted rule, never a dither.
|
|
60
|
+
*/
|
|
61
|
+
export declare function progressBar(ratio: number, cells: number, palette: MissionPalette, sweep?: number): Segment[];
|
|
62
|
+
export type ChipTier = "full" | "medium" | "tight";
|
|
63
|
+
export type ChipGroup = readonly Segment[];
|
|
64
|
+
/** The chip's pill groups for a tier; the five-segment bar is appended unless `withMicroBar` is false. */
|
|
65
|
+
export declare function chipGroups(view: MissionView, frame: MotionFrame, palette: MissionPalette, tier: ChipTier, withMicroBar?: boolean): ChipGroup[];
|
|
66
|
+
export declare function groupsWidth(groups: readonly ChipGroup[]): number;
|
|
67
|
+
export declare function fade(segment: Segment, alpha: number, palette: MissionPalette): Segment;
|
|
68
|
+
export declare const chipSparkWidth = 7;
|
|
69
|
+
export declare function chipSparkCells(t: number, palette: MissionPalette): Segment[] | undefined;
|
|
70
|
+
export declare function chipTier(view: MissionView, frame: MotionFrame, palette: MissionPalette, budget: number): ChipTier;
|
|
71
|
+
/**
|
|
72
|
+
* The phase chip on the right of the prompt's agent/model row: `🔥 LIT` `PLAN` › `WORK n/m` › `REVIEW`
|
|
73
|
+
* and a five-segment bar, shedding labels before values as `budget` shrinks. Idle sessions render nothing.
|
|
74
|
+
*/
|
|
75
|
+
export declare function chipLine(view: MissionView, frame: MotionFrame, palette: MissionPalette, budget: number): Line;
|
|
76
|
+
/** The header status: a glyph and words, or the COMPLETE badge that pops in and settles to green text. */
|
|
77
|
+
export declare function statusSegments(view: MissionView, frame: MotionFrame, palette: MissionPalette): {
|
|
78
|
+
readonly segments: Segment[];
|
|
79
|
+
readonly offset: number;
|
|
80
|
+
};
|
|
81
|
+
export type MissionPanel = {
|
|
82
|
+
readonly border: string;
|
|
83
|
+
readonly title: string;
|
|
84
|
+
readonly titleColor: string;
|
|
85
|
+
readonly bottomTitle?: string;
|
|
86
|
+
readonly background?: string;
|
|
87
|
+
readonly rows: readonly Line[];
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* The sidebar mission panel: a rounded box whose border carries the state (accent while working,
|
|
91
|
+
* warning on a warning, success when complete), a tiny LIT header, the goal title, the phase line,
|
|
92
|
+
* the bar, the next item, criteria, warnings and the evidence timeline. Rows are at most
|
|
93
|
+
* `panelInnerWidth` cells.
|
|
94
|
+
*/
|
|
95
|
+
export declare function missionPanel(view: MissionView, frame: MotionFrame, palette: MissionPalette): MissionPanel | undefined;
|
|
96
|
+
export type LastMission = {
|
|
97
|
+
readonly title: string;
|
|
98
|
+
readonly passed: number;
|
|
99
|
+
readonly total: number;
|
|
100
|
+
readonly complete: boolean;
|
|
101
|
+
};
|
|
102
|
+
/** The home-screen line under the prompt: `🔥 lit ready · last: <goal> ✓ n/m`, labels shed first when narrow. */
|
|
103
|
+
export declare function homeLine(last: LastMission | undefined, palette: MissionPalette, budget: number): Line;
|