deskssh 0.0.1
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/.eslintrc.cjs +21 -0
- package/.github/workflows/ci.yml +40 -0
- package/.prettierignore +5 -0
- package/.prettierrc.json +6 -0
- package/CONTRIBUTING.md +59 -0
- package/LICENSE +661 -0
- package/README.md +66 -0
- package/package.json +51 -0
- package/packages/cli/README.md +11 -0
- package/packages/cli/bin/deskssh.js +12 -0
- package/packages/cli/package.json +37 -0
- package/packages/core/dist/index.d.ts +2 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +6 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/package.json +22 -0
- package/packages/core/src/index.test.ts +8 -0
- package/packages/core/src/index.ts +6 -0
- package/packages/core/tsconfig.json +9 -0
- package/packages/server/dist/index.d.ts +3 -0
- package/packages/server/dist/index.d.ts.map +1 -0
- package/packages/server/dist/index.js +7 -0
- package/packages/server/dist/index.js.map +1 -0
- package/packages/server/package.json +19 -0
- package/packages/server/src/index.ts +8 -0
- package/packages/server/tsconfig.json +10 -0
- package/packages/web/dist/assets/index-DNUNZ8WK.js +65 -0
- package/packages/web/dist/index.html +12 -0
- package/packages/web/index.html +12 -0
- package/packages/web/node_modules/.bin/browserslist +17 -0
- package/packages/web/node_modules/.bin/vite +17 -0
- package/packages/web/package.json +27 -0
- package/packages/web/src/App.tsx +17 -0
- package/packages/web/src/i18n/en.ts +8 -0
- package/packages/web/src/i18n/es.ts +7 -0
- package/packages/web/src/i18n/index.ts +27 -0
- package/packages/web/src/main.tsx +12 -0
- package/packages/web/tsconfig.json +14 -0
- package/packages/web/vite.config.ts +6 -0
- package/pnpm-workspace.yaml +2 -0
- package/specs/001-core/plan.md +246 -0
- package/specs/001-core/spec.md +206 -0
- package/specs/001-core/tasks.md +110 -0
- package/specs/constitution.md +110 -0
- package/specs/glossary.md +35 -0
- package/specs/vision.md +145 -0
- package/tsconfig.base.json +23 -0
- package/tsconfig.json +4 -0
- package/vitest.config.ts +7 -0
package/.eslintrc.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
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
ADDED
package/.prettierrc.json
ADDED
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
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.
|