feat(kimi-web): add model selector and skill panel to the composer #66
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | ||
|
Check failure on line 1 in .github/workflows/ci.yml
|
||
| on: | ||
| pull_request: | ||
| push: | ||
| branches: | ||
| - main | ||
| permissions: | ||
| contents: read | ||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: pnpm/action-setup@v6 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| cache: pnpm | ||
| - uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.pnpm-store | ||
| key: ${{ runner.os }}-pnpm-${{ hashFiles("pnpm-lock.yaml") }} | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm run build | ||
| - name: Smoke test CLI bundle | ||
| run: pnpm -C apps/kimi-code run smoke | ||
| test: | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| shard: [1, 2, 3, 4, 5] | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: pnpm/action-setup@v6 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| cache: pnpm | ||
| - uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.pnpm-store | ||
| key: ${{ runner.os }}-pnpm-${{ hashFiles("pnpm-lock.yaml") }} | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm run test --shard=${{ matrix.shard }}/5 | ||
| # pi-tui's suite runs on node:test (not vitest), so the root `pnpm run test` | ||
| # does not execute it; it needs its own job. | ||
| test-pi-tui: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: pnpm/action-setup@v6 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| cache: pnpm | ||
| - uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.pnpm-store | ||
| key: ${{ runner.os }}-pnpm-${{ hashFiles("pnpm-lock.yaml") }} | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm --filter @moonshot-ai/pi-tui test | ||
| lint: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: pnpm/action-setup@v6 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| cache: pnpm | ||
| - uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.pnpm-store | ||
| key: ${{ runner.os }}-pnpm-${{ hashFiles("pnpm-lock.yaml") }} | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm run lint | ||
| - run: pnpm run sherif | ||
| - name: Check locale JSON freshness | ||
| run: | | ||
| node scripts/generate-locale-json.cjs 2>/dev/null || true | ||
| if ! git diff --exit-code -- '*.json' -- ':(exclude)node_modules/'; then | ||
| echo "::error::Locale JSON files are out of date. Run 'node scripts/generate-locale-json.cjs' and commit the changes." | ||
| exit 1 | ||
| fi | ||
| - name: Check locale placeholder validity | ||
| run: node scripts/check-locale-placeholders.cjs | ||
| - name: Scan for hardcoded locale strings | ||
| run: | | ||
| # Report hardcoded strings but don't fail the build (informational for now) | ||
| node scripts/scan-hardcoded-v2.mjs || true | ||
| typecheck: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: pnpm/action-setup@v6 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| cache: pnpm | ||
| - uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.pnpm-store | ||
| key: ${{ runner.os }}-pnpm-${{ hashFiles("pnpm-lock.yaml") }} | ||
| - run: pnpm install --frozen-lockfile | ||
| - name: Typecheck | ||
| run: | | ||
| pnpm dlx --package @typescript/native-preview@beta tsgo --version | ||
| for config in packages/*/tsconfig.json apps/kimi-code/tsconfig.json; do | ||
| echo "Typechecking ${config}" | ||
| pnpm dlx --package @typescript/native-preview@beta tsgo -p "${config}" --noEmit | ||
| done | ||
| - name: Typecheck VS Code extension | ||
| run: pnpm --filter kimi-code run typecheck | ||
| - name: Typecheck vis-server | ||
| run: pnpm --filter @moonshot-ai/vis-server run typecheck | ||
| - name: Typecheck vis-web | ||
| run: pnpm --filter @moonshot-ai/vis-web run typecheck | ||
| native-tools: | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| workspaces: packages/kimi-native-tools | ||
| - name: Cargo test | ||
| working-directory: packages/kimi-native-tools | ||
| run: cargo test | ||
| - name: Cargo build (release) | ||
| working-directory: packages/kimi-native-tools | ||
| run: cargo build --release | ||