## ADDED Requirements ### Requirement: Reindex command The client SHALL provide a `kb reindex` command that triggers re-embedding of all chunks on the engine. The command SHALL prompt for confirmation before proceeding. #### Scenario: Reindex with confirmation - **WHEN** the user runs `kb reindex` - **THEN** the client SHALL display a warning that all chunks will be re-embedded and prompt `Reindex all chunks? This will re-embed everything. [y/N]`. If confirmed, it SHALL POST to `/api/v1/reindex` and display the result. #### Scenario: Reindex with skip confirmation - **WHEN** the user runs `kb reindex --yes` - **THEN** the client SHALL skip the confirmation prompt and POST to `/api/v1/reindex` immediately #### Scenario: Reindex cancelled - **WHEN** the user runs `kb reindex` and responds with anything other than `y` or `yes` - **THEN** the client SHALL print `Cancelled.` and exit with code 0 #### Scenario: Reindex human output - **WHEN** the reindex completes successfully with default format - **THEN** the client SHALL print `Reindexed N chunks (model: )` #### Scenario: Reindex JSON output - **WHEN** the user runs `kb reindex --yes --format json` - **THEN** the client SHALL output the raw JSON response from the engine