# tsview Implementation Plan

A CLI tool for viewing S3 and MongoDB data with a web UI.

## Project Structure

```
tsview/
├── cli.js                          # Production CLI (imports dist_ts/index.js)
├── cli.ts.js                       # Dev CLI (uses tsrun to run cli.child.ts)
├── cli.child.ts                    # Dev CLI entry (imports ts/index.js)
├── package.json                    # bin: { "tsview": "cli.js" }
├── .smartconfig.json               # tsbundle/tswatch config
├── tsconfig.json
├── readme.md
├── readme.hints.md
│
├── ts/                             # Backend (Node.js)
│   ├── 00_commitinfo_data.ts
│   ├── index.ts                    # Main exports + runCli()
│   ├── plugins.ts                  # Centralized imports
│   ├── paths.ts
│   │
│   ├── tsview.cli.ts               # CLI using smartcli
│   ├── tsview.classes.tsview.ts    # Main TsView class
│   │
│   ├── config/                     # Configuration handling
│   │   ├── index.ts
│   │   └── classes.config.ts       # Reads .nogit/env.json
│   │
│   ├── server/                     # Web server
│   │   ├── index.ts
│   │   └── classes.viewserver.ts   # Serves bundled UI + API
│   │
│   ├── api/                        # API handlers
│   │   ├── index.ts
│   │   ├── handlers.s3.ts          # S3 operations
│   │   └── handlers.mongodb.ts     # MongoDB operations
│   │
│   └── interfaces/
│       └── index.ts                # ITsViewConfig, etc.
│
├── ts_web/                         # Frontend (bundled)
│   ├── index.ts                    # Entry point
│   ├── plugins.ts
│   │
│   ├── elements/
│   │   ├── index.ts
│   │   ├── tsview-app.ts           # Main shell (dees-appui)
│   │   │
│   │   ├── tsview-s3-browser.ts    # S3 browser container
│   │   ├── tsview-s3-columns.ts    # Mac-style column view
│   │   ├── tsview-s3-keys.ts       # Flat keys list
│   │   ├── tsview-s3-preview.ts    # File preview
│   │   │
│   │   ├── tsview-mongo-browser.ts # MongoDB browser container
│   │   ├── tsview-mongo-collections.ts
│   │   ├── tsview-mongo-documents.ts  # Documents table
│   │   ├── tsview-mongo-document.ts   # Document editor
│   │   ├── tsview-mongo-aggregation.ts # Pipeline builder
│   │   └── tsview-mongo-indexes.ts    # Index management
│   │
│   └── services/
│       ├── index.ts
│       └── api.service.ts          # TypedRequest client
│
└── test/
    └── test.tsview.ts
```

## Status

- [x] Phase 1: Project Setup
- [x] Phase 2: Configuration & Core
- [x] Phase 3: Backend API
- [x] Phase 4: Frontend Shell
- [x] Phase 5: S3 UI
- [x] Phase 6: MongoDB UI
- [x] Phase 7: Integration & Polish

## Implementation Complete

All phases have been implemented. The project can be built with `pnpm build`.
