catalyst-core 0.1.0-beta.1 → 0.1.0-beta.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.
- package/changelog.md +5 -0
- package/mcp_v2/lib/helpers.js +11 -5
- package/mcp_v2/mcp.js +4 -3
- package/mcp_v2/setup.js +5 -3
- package/package.json +6 -13
- package/.release-meta.json +0 -4
- package/license +0 -10
package/changelog.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.0-beta.2] - 2026-05-06
|
|
4
|
+
|
|
5
|
+
- Moved Catalyst into a monorepo structure with `catalyst-core`, `create-catalyst-app`, the Catalyst docs app, and the Catalyst core test app managed from one repository.
|
|
6
|
+
- Replaced the internal-package pre-release flow with a local release sandbox that scaffolds a real app using current-branch CCA and a locally packed current-branch `catalyst-core`.
|
|
7
|
+
|
|
3
8
|
## [0.1.0-beta.1] - 2026-04-15
|
|
4
9
|
|
|
5
10
|
- Promoted `0.1.0-canary.7` to the first proper beta release after stabilization.
|
package/mcp_v2/lib/helpers.js
CHANGED
|
@@ -38,8 +38,8 @@ function versionOlderThan(a, b) {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
* Walk up the directory tree looking for a package.json that depends on
|
|
42
|
-
* Returns { dir, pkg, catalystVersion, installedVersion, versionMeta } or null.
|
|
41
|
+
* Walk up the directory tree looking for a package.json that depends on Catalyst.
|
|
42
|
+
* Returns { dir, pkg, catalystPackageName, catalystVersion, installedVersion, versionMeta } or null.
|
|
43
43
|
*/
|
|
44
44
|
function findCatalystRoot() {
|
|
45
45
|
// Walk up from __dirname first (mcp always lives inside the project at .catalyst/mcp/),
|
|
@@ -55,7 +55,8 @@ function findCatalystRoot() {
|
|
|
55
55
|
try {
|
|
56
56
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"))
|
|
57
57
|
const deps = { ...pkg.dependencies, ...pkg.devDependencies }
|
|
58
|
-
|
|
58
|
+
const declaredRef = deps["catalyst-core"]
|
|
59
|
+
if (declaredRef) {
|
|
59
60
|
const nmPath = path.join(dir, "node_modules", "catalyst-core")
|
|
60
61
|
const installed = fs.existsSync(nmPath)
|
|
61
62
|
// Read the actual installed version from node_modules
|
|
@@ -70,11 +71,11 @@ function findCatalystRoot() {
|
|
|
70
71
|
/* ignore */
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
const declaredRef = deps["catalyst-core"]
|
|
74
74
|
const isGithubRef = declaredRef.startsWith("github:") || declaredRef.includes("#")
|
|
75
75
|
return {
|
|
76
76
|
dir,
|
|
77
77
|
pkg,
|
|
78
|
+
catalystPackageName: "catalyst-core",
|
|
78
79
|
catalystVersion: declaredRef, // what package.json says (may be github ref)
|
|
79
80
|
installedVersion, // what's actually in node_modules e.g. "0.0.3-canary.3"
|
|
80
81
|
notInstalled: !installed,
|
|
@@ -156,4 +157,9 @@ function makeProjectHelpers(root) {
|
|
|
156
157
|
return { fileExists, readJson, readText, grepSrc }
|
|
157
158
|
}
|
|
158
159
|
|
|
159
|
-
module.exports = {
|
|
160
|
+
module.exports = {
|
|
161
|
+
findCatalystRoot,
|
|
162
|
+
makeProjectHelpers,
|
|
163
|
+
versionOlderThan,
|
|
164
|
+
parseVersion,
|
|
165
|
+
}
|
package/mcp_v2/mcp.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Startup validation → module init → JSON-RPC loop over stdio.
|
|
6
6
|
*
|
|
7
7
|
* Hard fails if:
|
|
8
|
-
* - No
|
|
8
|
+
* - No Catalyst package in package.json (not a catalyst project)
|
|
9
9
|
* - context.db missing (setup.js not run)
|
|
10
10
|
*
|
|
11
11
|
* Tool routing: LLM reads tool name + description to route.
|
|
@@ -39,7 +39,8 @@ if (!projectInfo) {
|
|
|
39
39
|
jsonrpc: "2.0",
|
|
40
40
|
error: {
|
|
41
41
|
code: -32000,
|
|
42
|
-
message:
|
|
42
|
+
message:
|
|
43
|
+
"Not a Catalyst project. No catalyst-core or catalyst-core-internal dependency found in package.json.",
|
|
43
44
|
},
|
|
44
45
|
id: null,
|
|
45
46
|
}) + "\n"
|
|
@@ -52,7 +53,7 @@ if (projectInfo.notInstalled) {
|
|
|
52
53
|
jsonrpc: "2.0",
|
|
53
54
|
error: {
|
|
54
55
|
code: -32000,
|
|
55
|
-
message:
|
|
56
|
+
message: `${projectInfo.catalystPackageName} is listed in package.json (${projectInfo.catalystVersion}) but not installed in node_modules. Run: npm install`,
|
|
56
57
|
},
|
|
57
58
|
id: null,
|
|
58
59
|
}) + "\n"
|
package/mcp_v2/setup.js
CHANGED
|
@@ -33,7 +33,7 @@ function findCatalystRoot() {
|
|
|
33
33
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"))
|
|
34
34
|
const deps = { ...pkg.dependencies, ...pkg.devDependencies }
|
|
35
35
|
if (deps["catalyst-core"]) {
|
|
36
|
-
return { dir, pkg, version: deps["catalyst-core"] }
|
|
36
|
+
return { dir, pkg, catalystPackageName: "catalyst-core", version: deps["catalyst-core"] }
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
dir = path.dirname(dir)
|
|
@@ -119,7 +119,9 @@ function seedKnowledgeBase(db, projectInfo) {
|
|
|
119
119
|
package_name: projectInfo.pkg.name || "unknown",
|
|
120
120
|
catalyst_version: projectInfo.version,
|
|
121
121
|
})
|
|
122
|
-
console.log(
|
|
122
|
+
console.log(
|
|
123
|
+
` ✓ Project context stored (${projectInfo.pkg.name}, ${projectInfo.catalystPackageName}@${projectInfo.version})`
|
|
124
|
+
)
|
|
123
125
|
}
|
|
124
126
|
|
|
125
127
|
// ── 5. sync_catalyst_docs (initial run) ───────────────────────────────────────
|
|
@@ -237,7 +239,7 @@ async function main() {
|
|
|
237
239
|
process.exit(1)
|
|
238
240
|
}
|
|
239
241
|
console.log(`✓ Catalyst project: ${projectInfo.pkg.name || projectInfo.dir}`)
|
|
240
|
-
console.log(`
|
|
242
|
+
console.log(` ${projectInfo.catalystPackageName}@${projectInfo.version}`)
|
|
241
243
|
|
|
242
244
|
// 2. Init DB
|
|
243
245
|
console.log("\nInitializing context.db...")
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "catalyst-core",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
4
|
-
"main": "index.js",
|
|
3
|
+
"version": "0.1.0-beta.2",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
5
|
"description": "Web framework that provides great performance out of the box",
|
|
6
6
|
"bin": {
|
|
7
7
|
"catalyst": "bin/catalyst.js"
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "https://github.com/tata1mg/catalyst-core.git"
|
|
11
|
+
"url": "https://github.com/tata1mg/catalyst-core.git",
|
|
12
|
+
"directory": "packages/catalyst-core"
|
|
12
13
|
},
|
|
13
14
|
"_moduleAliases": {
|
|
14
15
|
"@catalyst/template": ".",
|
|
@@ -37,10 +38,10 @@
|
|
|
37
38
|
},
|
|
38
39
|
"scripts": {
|
|
39
40
|
"lint": "eslint .",
|
|
40
|
-
"lint-staged": "lint-staged",
|
|
41
41
|
"prettify": "prettier . --write",
|
|
42
42
|
"prepare": "babel src --out-dir ./dist --ignore '**/.build/**' && mkdir -p dist/native && cp -r src/native/androidProject src/native/build.swift src/native/assets dist/native/ && mkdir -p dist/native/iosnativeWebView && tar -C src/native/iosnativeWebView --exclude='.build' --exclude='.package-config-hash' -cf - . | tar -C dist/native/iosnativeWebView -xf -",
|
|
43
|
-
"prepublishOnly": "npm
|
|
43
|
+
"prepublishOnly": "npm run prepare",
|
|
44
|
+
"test:fixture": "sh ../../scripts/test-catalyst-core.sh"
|
|
44
45
|
},
|
|
45
46
|
"license": "MIT",
|
|
46
47
|
"dependencies": {
|
|
@@ -113,14 +114,6 @@
|
|
|
113
114
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
114
115
|
"eslint-plugin-risxss": "^2.1.0",
|
|
115
116
|
"eslint-plugin-security": "^3.0.0",
|
|
116
|
-
"husky": "^9.0.11",
|
|
117
|
-
"lint-staged": "^15.2.2",
|
|
118
117
|
"prettier": "^3.2.5"
|
|
119
|
-
},
|
|
120
|
-
"lint-staged": {
|
|
121
|
-
"*.{js,jsx}": [
|
|
122
|
-
"eslint .",
|
|
123
|
-
"prettier . --write"
|
|
124
|
-
]
|
|
125
118
|
}
|
|
126
119
|
}
|
package/.release-meta.json
DELETED
package/license
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 1mg Healthcare Solutions Private Limited.
|
|
4
|
-
|
|
5
|
-
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:
|
|
6
|
-
|
|
7
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
-
|
|
9
|
-
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.
|
|
10
|
-
|