deskssh 0.0.1 → 0.0.2

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.
Files changed (49) hide show
  1. package/README.md +8 -63
  2. package/package.json +24 -38
  3. package/.eslintrc.cjs +0 -21
  4. package/.github/workflows/ci.yml +0 -40
  5. package/.prettierignore +0 -5
  6. package/.prettierrc.json +0 -6
  7. package/CONTRIBUTING.md +0 -59
  8. package/LICENSE +0 -661
  9. package/packages/cli/README.md +0 -11
  10. package/packages/cli/package.json +0 -37
  11. package/packages/core/dist/index.d.ts +0 -2
  12. package/packages/core/dist/index.d.ts.map +0 -1
  13. package/packages/core/dist/index.js +0 -6
  14. package/packages/core/dist/index.js.map +0 -1
  15. package/packages/core/package.json +0 -22
  16. package/packages/core/src/index.test.ts +0 -8
  17. package/packages/core/src/index.ts +0 -6
  18. package/packages/core/tsconfig.json +0 -9
  19. package/packages/server/dist/index.d.ts +0 -3
  20. package/packages/server/dist/index.d.ts.map +0 -1
  21. package/packages/server/dist/index.js +0 -7
  22. package/packages/server/dist/index.js.map +0 -1
  23. package/packages/server/package.json +0 -19
  24. package/packages/server/src/index.ts +0 -8
  25. package/packages/server/tsconfig.json +0 -10
  26. package/packages/web/dist/assets/index-DNUNZ8WK.js +0 -65
  27. package/packages/web/dist/index.html +0 -12
  28. package/packages/web/index.html +0 -12
  29. package/packages/web/node_modules/.bin/browserslist +0 -17
  30. package/packages/web/node_modules/.bin/vite +0 -17
  31. package/packages/web/package.json +0 -27
  32. package/packages/web/src/App.tsx +0 -17
  33. package/packages/web/src/i18n/en.ts +0 -8
  34. package/packages/web/src/i18n/es.ts +0 -7
  35. package/packages/web/src/i18n/index.ts +0 -27
  36. package/packages/web/src/main.tsx +0 -12
  37. package/packages/web/tsconfig.json +0 -14
  38. package/packages/web/vite.config.ts +0 -6
  39. package/pnpm-workspace.yaml +0 -2
  40. package/specs/001-core/plan.md +0 -246
  41. package/specs/001-core/spec.md +0 -206
  42. package/specs/001-core/tasks.md +0 -110
  43. package/specs/constitution.md +0 -110
  44. package/specs/glossary.md +0 -35
  45. package/specs/vision.md +0 -145
  46. package/tsconfig.base.json +0 -23
  47. package/tsconfig.json +0 -4
  48. package/vitest.config.ts +0 -7
  49. /package/{packages/cli/bin → bin}/deskssh.js +0 -0
package/README.md CHANGED
@@ -1,66 +1,11 @@
1
- <h1 align="center">DeskSSH</h1>
1
+ # DeskSSH
2
2
 
3
- <p align="center">
4
- <strong>A graphical desktop over plain SSH.</strong><br>
5
- The GUI is synthesized on the client; every action is translated into commands
6
- executed on the remote host. <em>It is not remote desktop.</em>
7
- </p>
3
+ **A graphical desktop over plain SSH.** The GUI is synthesized on the client and
4
+ every action is translated into commands executed on the remote host. _Not remote
5
+ desktop. Agentless._
8
6
 
9
- ---
7
+ > ⚠️ **Early development — not yet functional.** This `0.0.1` reserves the package
8
+ > name and provides the future `deskssh` launch command. Follow progress on GitHub.
10
9
 
11
- ## What is it?
12
-
13
- You connect via SSH to a server **with no graphical environment** and DeskSSH
14
- shows you a familiar desktop —file manager, terminal, system monitor, editor,
15
- service manager…—. Behind the scenes, every click runs the equivalent command
16
- (`ls`, `stat`, `mv`, `systemctl`, `ps`…) and the interface is built from its
17
- output.
18
-
19
- ### What makes it different
20
-
21
- - **Not VNC/RDP/X.** No pixels travel: the GUI is generated locally.
22
- - **Agentless.** Installs nothing on the server; only needs SSH and standard POSIX
23
- utilities.
24
- - **Transparent.** You can always see the command behind each action.
25
- - **100% open source.**
26
-
27
- ## Origin and motivation
28
-
29
- DeskSSH started as a project in **ASP.NET with .NET 8**. As it grew, I felt
30
- overwhelmed by the sheer number of commands and cases the tool could end up
31
- covering. I began reviewing and improving the code with the help of AI, but ended
32
- up making a more radical decision: **restart the project from scratch**, also with
33
- AI, in order to:
34
-
35
- - use languages and technologies **more widely accepted by the community**, and
36
- - leverage **npm's ease of distribution** for simple adoption.
37
-
38
- This rewrite is developed with **Spec-Driven Development**: decisions are
39
- documented in `specs/` before any code is written.
40
-
41
- The reason for making it **open source** is simple: I want DeskSSH to become a
42
- **genuinely useful and popular** tool, built and improved by the community.
43
-
44
- ## Status
45
-
46
- 🚧 **In design.** The project is developed with **Spec-Driven Development**: right
47
- now only the specification exists; code comes later. Start with:
48
-
49
- - [`specs/vision.md`](specs/vision.md) — the why and the where-to (the vision).
50
- - [`specs/constitution.md`](specs/constitution.md) — the project's principles.
51
- - [`specs/001-core/spec.md`](specs/001-core/spec.md) — what DeskSSH does.
52
- - [`specs/001-core/plan.md`](specs/001-core/plan.md) — how it will be built.
53
- - [`specs/glossary.md`](specs/glossary.md) — the domain vocabulary.
54
-
55
- ## How to contribute
56
-
57
- This project follows SDD: design discussions happen in `specs/` **before** they
58
- reach the code. To propose something, open the conversation on the relevant
59
- document. (Detailed contribution guide: pending — `M0`.)
60
-
61
- ## License
62
-
63
- [**GNU AGPL-3.0-or-later**](LICENSE). Strong copyleft with a network clause: if you
64
- modify DeskSSH and offer it as a network-accessible service, you must publish your
65
- changes. Chosen so the project and all its improvements stay free. See
66
- [`specs/constitution.md`](specs/constitution.md), Article 9.
10
+ - Repository & docs: https://github.com/nestorrguez/DeskSSH
11
+ - License: **AGPL-3.0-or-later**
package/package.json CHANGED
@@ -1,51 +1,37 @@
1
1
  {
2
2
  "name": "deskssh",
3
- "version": "0.0.1",
4
- "private": false,
5
- "description": "A graphical desktop over plain SSH — workspace root",
3
+ "version": "0.0.2",
4
+ "description": "A graphical desktop over plain SSH. Early development — not yet functional.",
6
5
  "license": "AGPL-3.0-or-later",
7
6
  "type": "module",
8
- "engines": {
9
- "node": ">=20"
10
- },
11
- "packageManager": "pnpm@9.15.9",
12
- "scripts": {
13
- "build": "pnpm -r build",
14
- "test": "vitest run",
15
- "test:watch": "vitest",
16
- "typecheck": "tsc -b",
17
- "lint": "eslint .",
18
- "format": "prettier --write .",
19
- "format:check": "prettier --check ."
20
- },
21
- "devDependencies": {
22
- "@types/node": "^20.14.0",
23
- "@typescript-eslint/eslint-plugin": "^7.13.0",
24
- "@typescript-eslint/parser": "^7.13.0",
25
- "eslint": "^8.57.0",
26
- "eslint-config-prettier": "^9.1.0",
27
- "prettier": "^3.3.2",
28
- "typescript": "^5.4.5",
29
- "vitest": "^1.6.0"
30
- },
31
- "main": "index.js",
32
- "dependencies": {
33
- "eslint-scope": "^7.2.2",
34
- "eslint-visitor-keys": "^3.4.3"
35
- },
36
- "repository": {
37
- "type": "git",
38
- "url": "git+https://github.com/nestorrguez/DeskSSH.git"
7
+ "bin": {
8
+ "deskssh": "bin/deskssh.js"
39
9
  },
10
+ "files": [
11
+ "bin",
12
+ "README.md"
13
+ ],
40
14
  "keywords": [
41
15
  "ssh",
42
- "desk",
16
+ "sftp",
43
17
  "gui",
44
- "client"
18
+ "desktop",
19
+ "sysadmin",
20
+ "devops",
21
+ "agentless"
45
22
  ],
46
- "author": "Nestor Rodriguez",
23
+ "homepage": "https://github.com/nestorrguez/DeskSSH",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/nestorrguez/DeskSSH.git"
27
+ },
47
28
  "bugs": {
48
29
  "url": "https://github.com/nestorrguez/DeskSSH/issues"
49
30
  },
50
- "homepage": "https://github.com/nestorrguez/DeskSSH#readme"
31
+ "engines": {
32
+ "node": ">=20"
33
+ },
34
+ "scripts": {
35
+ "build": "true"
36
+ }
51
37
  }
package/.eslintrc.cjs DELETED
@@ -1,21 +0,0 @@
1
- /* eslint-env node */
2
- module.exports = {
3
- root: true,
4
- parser: '@typescript-eslint/parser',
5
- parserOptions: {
6
- ecmaVersion: 2022,
7
- sourceType: 'module',
8
- ecmaFeatures: { jsx: true },
9
- },
10
- plugins: ['@typescript-eslint'],
11
- extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
12
- env: {
13
- es2022: true,
14
- node: true,
15
- browser: true,
16
- },
17
- ignorePatterns: ['dist', 'node_modules', '*.cjs'],
18
- rules: {
19
- '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
20
- },
21
- };
@@ -1,40 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- pull_request:
7
- branches: [main]
8
-
9
- jobs:
10
- build:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
-
15
- - name: Setup pnpm
16
- uses: pnpm/action-setup@v4
17
-
18
- - name: Setup Node.js
19
- uses: actions/setup-node@v4
20
- with:
21
- node-version: 22
22
- cache: pnpm
23
-
24
- - name: Install dependencies
25
- run: pnpm install --frozen-lockfile
26
-
27
- - name: Format check
28
- run: pnpm format:check
29
-
30
- - name: Lint
31
- run: pnpm lint
32
-
33
- - name: Typecheck
34
- run: pnpm typecheck && pnpm --filter @deskssh/web typecheck
35
-
36
- - name: Test
37
- run: pnpm test
38
-
39
- - name: Build
40
- run: pnpm build
package/.prettierignore DELETED
@@ -1,5 +0,0 @@
1
- node_modules
2
- dist
3
- build
4
- pnpm-lock.yaml
5
- LICENSE
package/.prettierrc.json DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "semi": true,
3
- "singleQuote": true,
4
- "trailingComma": "all",
5
- "printWidth": 100
6
- }
package/CONTRIBUTING.md DELETED
@@ -1,59 +0,0 @@
1
- # Contributing to DeskSSH
2
-
3
- Thanks for your interest in DeskSSH! This project is built with **Spec-Driven
4
- Development (SDD)**: design decisions are made in `specs/` **before** they reach the
5
- code. That keeps the project coherent and lets anyone understand _why_ things are
6
- the way they are.
7
-
8
- ## Ground rules
9
-
10
- - **English only** in the repository (code, comments, docs, commit messages, specs).
11
- The repo is public and international.
12
- - **Read the specs first.** Start with [`specs/vision.md`](specs/vision.md) and
13
- [`specs/constitution.md`](specs/constitution.md). The constitution lists
14
- **non-negotiable** principles — if a change conflicts with one, it won't be
15
- accepted unless the constitution is explicitly amended.
16
- - **Spec before code.** No behavior change lands without the spec being updated
17
- first. For a non-trivial change, open a discussion/PR on the relevant document in
18
- `specs/` before writing code.
19
- - **Traceability.** Functional requirements have IDs (`FR-XXX`). Reference the
20
- `FR-`/Article a change serves in the spec, tasks and PR description.
21
-
22
- ## Project layout
23
-
24
- ```
25
- specs/ Source of truth (vision, constitution, glossary, 001-core/*)
26
- packages/
27
- core/ Frontend-agnostic core (SSH sessions, adapters, contract)
28
- server/ Web gateway (keeps SSH sessions, exposes the API)
29
- web/ Browser UI (desktop shell + app views)
30
- ```
31
-
32
- ## Local development
33
-
34
- Requirements: **Node.js >= 20** and **pnpm 9** (`corepack enable pnpm` or
35
- `npm i -g pnpm@9`).
36
-
37
- ```bash
38
- pnpm install # install all workspaces
39
- pnpm typecheck # type-check core + server
40
- pnpm lint # ESLint
41
- pnpm test # Vitest
42
- pnpm build # build all packages
43
- pnpm format # apply Prettier
44
- ```
45
-
46
- CI runs format-check, lint, typecheck, test and build on every push/PR — please make
47
- sure they pass locally first.
48
-
49
- ## Commits & pull requests
50
-
51
- - Keep commits focused; write clear messages in English.
52
- - Describe **what** and **why**, and reference the `FR-`/Article involved.
53
- - Be kind and constructive. DeskSSH aims to be a welcoming, accessibility-first
54
- project.
55
-
56
- ## License
57
-
58
- By contributing, you agree that your contributions are licensed under
59
- **AGPL-3.0-or-later**, the project's license.