diff --git a/COMMERCIAL.md b/COMMERCIAL.md new file mode 100644 index 0000000..4ac2e48 --- /dev/null +++ b/COMMERCIAL.md @@ -0,0 +1,35 @@ +# Commercial licensing — stackglass + +stackglass is **source-available proprietary software**, not open source. + +- **Evaluation:** You may view, clone, and try stackglass for non-production evaluation under [`LICENSE`](./LICENSE). +- **Everything else:** Production use, redistribution, SaaS/hosted offerings, CI gates for shipping products, and other commercial use require a **paid commercial license**. + +This file describes how to inquire about a commercial license. It is **not** legal advice and is **not** itself a binding quote or purchase agreement. + +## What a commercial license typically covers + +Commercial terms are negotiated case-by-case. Topics often include: + +- Production and internal business use +- Redistribution / OEM embedding (if needed) +- Hosted / SaaS / multi-tenant use +- Support or update expectations (if offered) +- Seat, org, or deployment scope + +## How to buy / inquire + +1. Open a private channel with GitHub **[@theworker02](https://github.com/theworker02)** (preferred). +2. Reference **stackglass** and whether you need: production use, redistribution, SaaS, or acquisition / partnership. +3. Include approximate company size, use case, and timeline. + +Optional: open a GitHub Discussion or Issue titled `Commercial license inquiry` with non-sensitive details only — do not paste secrets. + +## License transition & enforcement + +Read [`LICENSE_TRANSITION_NOTICE.md`](./LICENSE_TRANSITION_NOTICE.md) for the diligence-ready letter on historical open-source copies versus current proprietary terms, and enforcement by the copyright holder and/or any acquirer/successor. + +## Contact + +**Primary:** GitHub [@theworker02](https://github.com/theworker02) +**Repository:** https://github.com/theworker02/stackglass diff --git a/LICENSE b/LICENSE index a0c5df6..71d83d3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,78 @@ -MIT License - -Copyright (c) 2026 theworker02 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +stackglass Source-Available Evaluation License +Copyright (c) 2026 theworker02 (https://github.com/theworker02) + +IMPORTANT: This is NOT an open-source license. The Software is proprietary +source-available software. Viewing the source does not grant production, +redistribution, SaaS, or other commercial rights. + +1. Definitions + + "Software" means stackglass and all associated source code, binaries, + documentation, and other materials in this repository, excluding + third-party components that carry their own licenses. + + "Licensor" means theworker02 (GitHub: https://github.com/theworker02). + + "Evaluation Use" means non-production use solely to review, evaluate, + test, or demonstrate the Software for your own internal assessment, + including local clones and personal experimentation that is not part of + a live product, paid service, or customer-facing system. + +2. Evaluation grant + + Subject to these terms, Licensor grants you a limited, revocable, + non-exclusive, non-transferable, non-sublicensable license to view, + clone, and use the Software for Evaluation Use only. + +3. Restrictions (commercial license required) + + Except as expressly permitted above, or under a separate written + commercial license from Licensor, you may NOT: + + (a) use the Software in production, staging that serves real users or + customers, CI/CD gates for shipping products, or any live workload; + (b) redistribute, sell, lease, sublicense, or otherwise transfer the + Software or derivative works to third parties; + (c) offer the Software (or substantially similar functionality) as a + hosted, managed, SaaS, or multi-tenant service; + (d) use the Software for any commercial purpose, including internal + business use beyond Evaluation Use; + (e) remove or alter copyright, license, or attribution notices. + +4. Commercial licenses + + Production use, redistribution, SaaS, and other commercial use require + a paid commercial license. See COMMERCIAL.md or contact Licensor via + GitHub @theworker02. This document is not legal advice and does not + create a purchase obligation; commercial terms are set in a separate + written agreement. + +5. Contributions + + By submitting a contribution (pull request, patch, or similar) you + assign to Licensor, or irrevocably license to Licensor under terms + sufficient for Licensor to relicense and commercialize, all rights in + that contribution. Do not contribute code you cannot license this way. + +6. Ownership + + The Software is and remains the exclusive property of Licensor. + No title or ownership is transferred. Third-party dependencies remain + under their respective licenses. + +7. No warranty + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM THE SOFTWARE OR ITS USE. + +8. Termination + + This license terminates automatically if you breach these terms. + Upon termination you must cease all use and destroy copies obtained + under this license, except as required by a separate commercial + agreement or applicable law. + +For commercial licensing, see COMMERCIAL.md. diff --git a/LICENSE_TRANSITION_NOTICE.md b/LICENSE_TRANSITION_NOTICE.md new file mode 100644 index 0000000..fd812f3 --- /dev/null +++ b/LICENSE_TRANSITION_NOTICE.md @@ -0,0 +1,49 @@ +# License Transition & Enforcement Notice + +**Project:** stackglass +**Copyright holder:** theworker02 (https://github.com/theworker02) +**Effective for current and future distributions of this repository** + +This notice is provided for users, evaluators, diligence teams, and prospective licensees or acquirers. It is **not legal advice**. + +## Summary + +| Period | Terms | +|--------|--------| +| **Historical** public distributions that were expressly licensed under the MIT License | Those copies remain governed by the the MIT License terms that accompanied them. This notice does **not** claim those prior open-source grants are revoked, and it does **not** claim that continued use of such historical copies under their original the MIT License terms is illegal. | +| **Current and future** code in this repository (and builds derived from it after the transition) | **Source-available proprietary** evaluation terms in [`LICENSE`](./LICENSE). Production, redistribution, SaaS, and other commercial use require a paid commercial license — see [`COMMERCIAL.md`](./COMMERCIAL.md). | + +## What changed + +stackglass previously used the MIT License for public distribution. The project has transitioned to a **source-available proprietary** model so that commercial licenses can be sold and so that intellectual property can be transferred or exclusively licensed in an acquisition or partnership. + +- Evaluation / viewing / cloning for non-production assessment: see [`LICENSE`](./LICENSE). +- Production, redistribution, hosted/SaaS, and other commercial use: require a commercial license — see [`COMMERCIAL.md`](./COMMERCIAL.md). + +## Enforcement (post-transition code) + +Unauthorized **production**, **redistribution**, **SaaS/hosted**, or other **commercial** use of **post-transition** stackglass code (code distributed under the proprietary [`LICENSE`](./LICENSE), not under a separate commercial agreement) may be enforced by: + +1. the current copyright holder (**theworker02**), and/or +2. any **acquirer, assignee, or other successor** that obtains copyright or exclusive licensing rights in stackglass. + +Enforcement may include (without limitation) requiring a commercial license, seeking injunctive relief, or other remedies available under applicable law. Specific remedies depend on facts, jurisdiction, and the terms of any commercial or acquisition agreement. + +## Historical the MIT License copies (accuracy) + +If you lawfully received a prior release or commit that was published under the MIT License, the license that shipped with that material continues to apply **to that historical material**. This transition notice: + +- does **not** purport to revoke the MIT License grants for those historical copies; +- does **not** recharacterize use of those historical copies under the MIT License as unlawful solely because of this transition; +- **does** make clear that **new work** and **current repository contents** are not offered under the MIT License. + +Mixing historical open-source trees with current proprietary code does not expand prior open-source rights to post-transition material. + +## Acquisition / succession + +An acquisition, asset purchase, or exclusive license may assign or transfer copyright and enforcement rights in stackglass (including the right to license commercially and to enforce against unauthorized commercial use of post-transition code) to a successor. + +## Contact + +Commercial licensing or compliance questions: GitHub [@theworker02](https://github.com/theworker02). +See also [`COMMERCIAL.md`](./COMMERCIAL.md). diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..e18ff5d --- /dev/null +++ b/NOTICE @@ -0,0 +1,8 @@ +# NOTICE + +stackglass +Copyright 2026 theworker02 + +Licensing: source-available proprietary evaluation terms — see LICENSE. +Commercial use requires a separate paid license — see COMMERCIAL.md. +License transition and enforcement: see LICENSE_TRANSITION_NOTICE.md. diff --git a/README.md b/README.md index 6532826..bfc75be 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -
+
-
+
@@ -19,7 +19,7 @@
Stackglass is the **observability and verification layer for AI-assisted development**.
-Cursor writes and reasons about code. Stackglass gives that agent evidence about state, tests, failures, history, configuration, contracts, and documentation — so it does not have to guess.
+Cursor writes and reasons about code. Stackglass gives that agent evidence about state, tests, failures, history, configuration, contracts, and documentation — so it does not have to guess.
It is not another coding assistant.
@@ -45,7 +45,7 @@ Agents constantly struggle with questions like: what changed, what is broken, wh
Stackglass connects those events. Example:
```text
-token.ts edited → typecheck fails → two auth tests fail → contract drifts → README example goes stale
+token.ts edited → typecheck fails → two auth tests fail → contract drifts → README example goes stale
```
Ask Cursor _what happened?_ and Stackglass answers with evidence.
@@ -274,4 +274,5 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.
## License
-[MIT](LICENSE)
+**Source-available proprietary** — evaluation under [LICENSE](./LICENSE); commercial / production use via [COMMERCIAL.md](./COMMERCIAL.md). See [LICENSE_TRANSITION_NOTICE.md](./LICENSE_TRANSITION_NOTICE.md) and [NOTICE](./NOTICE).
+
diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json
index 5a0cd64..3d44cdc 100644
--- a/apps/dashboard/package.json
+++ b/apps/dashboard/package.json
@@ -1,16 +1,16 @@
-{
- "name": "@stackglass/dashboard",
- "version": "1.1.0",
- "private": true,
- "description": "Stackglass local dashboard. Prefer `glass dashboard` which serves live project data.",
- "license": "MIT",
- "type": "module",
- "scripts": {
- "dev": "vite",
- "build": "vite build",
- "preview": "vite preview"
- },
- "devDependencies": {
- "vite": "^7.1.2"
- }
+{
+ "name": "@stackglass/dashboard",
+ "version": "1.1.0",
+ "private": true,
+ "description": "Stackglass local dashboard. Prefer `glass dashboard` which serves live project data.",
+ "license": "SEE LICENSE IN LICENSE",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "devDependencies": {
+ "vite": "^7.1.2"
+ }
}
diff --git a/apps/docs/package.json b/apps/docs/package.json
index ecbfe87..21245ca 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -1,17 +1,17 @@
-{
- "name": "@stackglass/docs",
- "version": "1.1.0",
- "private": true,
- "description": "Stackglass documentation site.",
- "license": "MIT",
- "type": "module",
- "scripts": {
- "dev": "vitepress dev",
- "build": "vitepress build",
- "preview": "vitepress preview"
- },
- "devDependencies": {
- "vitepress": "^1.6.4",
- "vue": "^3.5.18"
- }
+{
+ "name": "@stackglass/docs",
+ "version": "1.1.0",
+ "private": true,
+ "description": "Stackglass documentation site.",
+ "license": "SEE LICENSE IN LICENSE",
+ "type": "module",
+ "scripts": {
+ "dev": "vitepress dev",
+ "build": "vitepress build",
+ "preview": "vitepress preview"
+ },
+ "devDependencies": {
+ "vitepress": "^1.6.4",
+ "vue": "^3.5.18"
+ }
}
diff --git a/cli/package.json b/cli/package.json
index d094794..7a8d007 100644
--- a/cli/package.json
+++ b/cli/package.json
@@ -1,24 +1,24 @@
-{
- "name": "@stackglass/cli",
- "version": "1.1.0",
- "private": true,
- "description": "glass / stackglass CLI — project observability, GlassLab, and MCP control.",
- "license": "MIT",
- "type": "module",
- "engines": {
- "node": ">=22.13.0"
- },
- "exports": {
- ".": {
- "types": "./dist/index.d.ts",
- "import": "./dist/index.js"
- }
- },
- "scripts": {
- "build": "tsc -p tsconfig.json"
- },
- "dependencies": {
- "@stackglass/core": "1.1.0",
- "@stackglass/mcp": "1.1.0"
- }
+{
+ "name": "@stackglass/cli",
+ "version": "1.1.0",
+ "private": true,
+ "description": "glass / stackglass CLI — project observability, GlassLab, and MCP control.",
+ "license": "SEE LICENSE IN LICENSE",
+ "type": "module",
+ "engines": {
+ "node": "\u003e=22.13.0"
+ },
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js"
+ }
+ },
+ "scripts": {
+ "build": "tsc -p tsconfig.json"
+ },
+ "dependencies": {
+ "@stackglass/core": "1.1.0",
+ "@stackglass/mcp": "1.1.0"
+ }
}
diff --git a/package.json b/package.json
index 88d60ec..8b040d3 100644
--- a/package.json
+++ b/package.json
@@ -1,58 +1,58 @@
-{
- "name": "stackglass",
- "version": "1.1.0",
- "private": true,
- "description": "See what your project is actually doing. Developer observability and verification for Cursor.",
- "license": "MIT",
- "type": "module",
- "packageManager": "npm@11.13.0",
- "engines": {
- "node": ">=22.13.0"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/theworker02/stackglass.git"
- },
- "homepage": "https://theworker02.github.io/stackglass/",
- "bugs": {
- "url": "https://github.com/theworker02/stackglass/issues"
- },
- "workspaces": [
- "packages/core",
- "packages/ui",
- "cli",
- "servers/mcp",
- "apps/docs",
- "apps/dashboard"
- ],
- "scripts": {
- "build": "npm run build --workspaces --if-present",
- "typecheck": "tsc -b --pretty",
- "test": "vitest run",
- "test:watch": "vitest",
- "test:coverage": "vitest run --coverage",
- "lint": "eslint .",
- "format": "prettier --write .",
- "format:check": "prettier --check .",
- "docs:dev": "npm run dev -w @stackglass/docs",
- "docs:build": "npm run build -w @stackglass/docs",
- "dashboard:dev": "npm run dev -w @stackglass/dashboard",
- "dashboard:build": "npm run build -w @stackglass/dashboard",
- "plugin:build": "node scripts/build-plugin.mjs",
- "ci": "npm run format:check && npm run lint && npm run typecheck && npm run test && npm run build && node cli/dist/bin.js help && npm run docs:build && npm run dashboard:build && npm run plugin:build",
- "glass": "node cli/dist/bin.js",
- "mcp": "node servers/mcp/dist/bin.js",
- "prepare": "node scripts/prepare.mjs"
- },
- "devDependencies": {
- "@eslint/js": "^9.33.0",
- "@types/node": "^24.2.1",
- "@vitest/coverage-v8": "^3.2.4",
- "eslint": "^9.33.0",
- "fast-check": "^4.2.0",
- "prettier": "^3.6.2",
- "typescript": "^5.9.2",
- "typescript-eslint": "^8.39.1",
- "vitest": "^3.2.4"
- }
+{
+ "name": "stackglass",
+ "version": "1.1.0",
+ "private": true,
+ "description": "See what your project is actually doing. Developer observability and verification for Cursor.",
+ "license": "SEE LICENSE IN LICENSE",
+ "type": "module",
+ "packageManager": "npm@11.13.0",
+ "engines": {
+ "node": "\u003e=22.13.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/theworker02/stackglass.git"
+ },
+ "homepage": "https://theworker02.github.io/stackglass/",
+ "bugs": {
+ "url": "https://github.com/theworker02/stackglass/issues"
+ },
+ "workspaces": [
+ "packages/core",
+ "packages/ui",
+ "cli",
+ "servers/mcp",
+ "apps/docs",
+ "apps/dashboard"
+ ],
+ "scripts": {
+ "build": "npm run build --workspaces --if-present",
+ "typecheck": "tsc -b --pretty",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "test:coverage": "vitest run --coverage",
+ "lint": "eslint .",
+ "format": "prettier --write .",
+ "format:check": "prettier --check .",
+ "docs:dev": "npm run dev -w @stackglass/docs",
+ "docs:build": "npm run build -w @stackglass/docs",
+ "dashboard:dev": "npm run dev -w @stackglass/dashboard",
+ "dashboard:build": "npm run build -w @stackglass/dashboard",
+ "plugin:build": "node scripts/build-plugin.mjs",
+ "ci": "npm run format:check \u0026\u0026 npm run lint \u0026\u0026 npm run typecheck \u0026\u0026 npm run test \u0026\u0026 npm run build \u0026\u0026 node cli/dist/bin.js help \u0026\u0026 npm run docs:build \u0026\u0026 npm run dashboard:build \u0026\u0026 npm run plugin:build",
+ "glass": "node cli/dist/bin.js",
+ "mcp": "node servers/mcp/dist/bin.js",
+ "prepare": "node scripts/prepare.mjs"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.33.0",
+ "@types/node": "^24.2.1",
+ "@vitest/coverage-v8": "^3.2.4",
+ "eslint": "^9.33.0",
+ "fast-check": "^4.2.0",
+ "prettier": "^3.6.2",
+ "typescript": "^5.9.2",
+ "typescript-eslint": "^8.39.1",
+ "vitest": "^3.2.4"
+ }
}
diff --git a/packages/core/package.json b/packages/core/package.json
index 73b1d8c..85c3634 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,35 +1,35 @@
-{
- "name": "@stackglass/core",
- "version": "1.1.0",
- "private": true,
- "description": "GlassCore runtime, GlassLab, indexing, tracing, and project intelligence for Stackglass.",
- "license": "MIT",
- "type": "module",
- "engines": {
- "node": ">=22.13.0"
- },
- "exports": {
- ".": {
- "types": "./dist/index.d.ts",
- "import": "./dist/index.js"
- },
- "./protocol": {
- "types": "./dist/protocol.d.ts",
- "import": "./dist/protocol.js"
- }
- },
- "scripts": {
- "build": "tsc -p tsconfig.json",
- "typecheck": "tsc -p tsconfig.json --noEmit"
- },
- "dependencies": {
- "chokidar": "^4.0.3",
- "ignore": "^7.0.5",
- "picomatch": "^4.0.2",
- "tinyglobby": "^0.2.14",
- "zod": "^3.25.76"
- },
- "devDependencies": {
- "@types/picomatch": "^4.0.0"
- }
+{
+ "name": "@stackglass/core",
+ "version": "1.1.0",
+ "private": true,
+ "description": "GlassCore runtime, GlassLab, indexing, tracing, and project intelligence for Stackglass.",
+ "license": "SEE LICENSE IN LICENSE",
+ "type": "module",
+ "engines": {
+ "node": "\u003e=22.13.0"
+ },
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js"
+ },
+ "./protocol": {
+ "types": "./dist/protocol.d.ts",
+ "import": "./dist/protocol.js"
+ }
+ },
+ "scripts": {
+ "build": "tsc -p tsconfig.json",
+ "typecheck": "tsc -p tsconfig.json --noEmit"
+ },
+ "dependencies": {
+ "chokidar": "^4.0.3",
+ "ignore": "^7.0.5",
+ "picomatch": "^4.0.2",
+ "tinyglobby": "^0.2.14",
+ "zod": "^3.25.76"
+ },
+ "devDependencies": {
+ "@types/picomatch": "^4.0.0"
+ }
}
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 6c92ce1..dd7e255 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -1,13 +1,13 @@
-{
- "name": "@stackglass/ui",
- "version": "1.1.0",
- "private": true,
- "description": "Stackglass design tokens for dashboard and documentation.",
- "license": "MIT",
- "exports": {
- "./tokens.css": "./tokens.css"
- },
- "scripts": {
- "build": "node -e \"process.exit(0)\""
- }
+{
+ "name": "@stackglass/ui",
+ "version": "1.1.0",
+ "private": true,
+ "description": "Stackglass design tokens for dashboard and documentation.",
+ "license": "SEE LICENSE IN LICENSE",
+ "exports": {
+ "./tokens.css": "./tokens.css"
+ },
+ "scripts": {
+ "build": "node -e \"process.exit(0)\""
+ }
}
diff --git a/servers/mcp/package.json b/servers/mcp/package.json
index 248af62..b2a7688 100644
--- a/servers/mcp/package.json
+++ b/servers/mcp/package.json
@@ -1,26 +1,26 @@
-{
- "name": "@stackglass/mcp",
- "version": "1.1.0",
- "private": true,
- "description": "Stackglass MCP server — 22 canonical tools for project observability and verification.",
- "license": "MIT",
- "type": "module",
- "engines": {
- "node": ">=22.13.0"
- },
- "exports": {
- ".": {
- "types": "./dist/index.d.ts",
- "import": "./dist/index.js"
- }
- },
- "scripts": {
- "build": "tsc -p tsconfig.json",
- "start": "node dist/bin.js"
- },
- "dependencies": {
- "@modelcontextprotocol/sdk": "^1.17.5",
- "@stackglass/core": "1.1.0",
- "zod": "^3.25.76"
- }
+{
+ "name": "@stackglass/mcp",
+ "version": "1.1.0",
+ "private": true,
+ "description": "Stackglass MCP server — 22 canonical tools for project observability and verification.",
+ "license": "SEE LICENSE IN LICENSE",
+ "type": "module",
+ "engines": {
+ "node": "\u003e=22.13.0"
+ },
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js"
+ }
+ },
+ "scripts": {
+ "build": "tsc -p tsconfig.json",
+ "start": "node dist/bin.js"
+ },
+ "dependencies": {
+ "@modelcontextprotocol/sdk": "^1.17.5",
+ "@stackglass/core": "1.1.0",
+ "zod": "^3.25.76"
+ }
}