@genn-inc/cluebase-cli 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/README.md +101 -0
- package/bin/cluebase-cli.mjs +11 -0
- package/package.json +17 -0
- package/src/cli-command.mjs +515 -0
- package/src/cli-invocation.mjs +17 -0
- package/src/code-evidence-analyzer.mjs +2041 -0
- package/src/contracts.mjs +36 -0
- package/src/generated-code-evidence-contract.mjs +22 -0
- package/src/generated-sdk-version-contract.mjs +5 -0
- package/src/generated-source-path-policy.mjs +20 -0
- package/src/lifecycle-guard.mjs +202 -0
- package/src/path-policy.mjs +81 -0
- package/src/setup-ai-contract.mjs +221 -0
- package/src/setup-check-constants.mjs +110 -0
- package/src/setup-check-scan-a.mjs +849 -0
- package/src/setup-check-scan-b.mjs +994 -0
- package/src/setup-check.mjs +575 -0
- package/src/setup-discover-check.mjs +755 -0
- package/src/setup-doctor-deadline.mjs +221 -0
- package/src/setup-doctor-env.mjs +331 -0
- package/src/setup-doctor-file-boundary.mjs +426 -0
- package/src/setup-doctor-probe.mjs +719 -0
- package/src/setup-doctor-quality-checks-a.mjs +593 -0
- package/src/setup-doctor-quality-checks-b.mjs +638 -0
- package/src/setup-doctor-quality-shared.mjs +382 -0
- package/src/setup-doctor-quality.mjs +209 -0
- package/src/setup-doctor-route-scan.mjs +160 -0
- package/src/setup-doctor-sdk-probe.mjs +340 -0
- package/src/setup-doctor.mjs +545 -0
- package/src/setup-documents.mjs +112 -0
- package/src/setup-help.mjs +130 -0
- package/src/setup-prepare.mjs +360 -0
- package/src/setup-repository-discovery.mjs +764 -0
- package/src/setup-step-builders-discover.mjs +701 -0
- package/src/setup-step-builders-events.mjs +229 -0
- package/src/setup-step-builders-implement.mjs +710 -0
- package/src/setup-step-commands.mjs +427 -0
- package/src/setup-tool.mjs +27 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Constants and static specs for the nine-step setup-check contract.
|
|
2
|
+
|
|
3
|
+
export const SETUP_STEP_COMMANDS = [
|
|
4
|
+
"cluebase-discover.md",
|
|
5
|
+
"cluebase-discover-review.md",
|
|
6
|
+
"cluebase-discover-context.md",
|
|
7
|
+
"cluebase-discover-check.md",
|
|
8
|
+
"cluebase-implement.md",
|
|
9
|
+
"cluebase-implement-check.md",
|
|
10
|
+
"cluebase-implement-review.md",
|
|
11
|
+
"cluebase-events.md",
|
|
12
|
+
"cluebase-doctor.md",
|
|
13
|
+
];
|
|
14
|
+
export const SETUP_STEP_SKILLS = SETUP_STEP_COMMANDS.map((file) =>
|
|
15
|
+
file.replace(/\.md$/, ""),
|
|
16
|
+
);
|
|
17
|
+
export const SETUP_COMMAND_ROOT_PARTS = [".claude", "commands"];
|
|
18
|
+
export const SETUP_CODEX_SKILL_ROOT_PARTS = [".agents", "skills"];
|
|
19
|
+
export const SOURCE_EXTENSIONS = [".py", ".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"];
|
|
20
|
+
export const REQUIRED_LIFECYCLE_APIS = ["cluebase.init", "cluebase.identify", "cluebase.group", "cluebase.reset"];
|
|
21
|
+
export const REQUIRED_SETUP_DOCUMENT_IDS = [
|
|
22
|
+
"ai-setup-order",
|
|
23
|
+
"cluebase-boundary",
|
|
24
|
+
"environment-and-secrets",
|
|
25
|
+
"find-integration-points",
|
|
26
|
+
"cluebase-init",
|
|
27
|
+
"cluebase-identify",
|
|
28
|
+
"cluebase-group-organization",
|
|
29
|
+
"cluebase-reset",
|
|
30
|
+
"cluebase-local-verification",
|
|
31
|
+
"forbidden-patterns",
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
export const FRONTEND_SDK_PACKAGE = "@genn-inc/cluebase-frontend-sdk";
|
|
35
|
+
export const NODE_BACKEND_SDK_SPEC = {
|
|
36
|
+
language: "node",
|
|
37
|
+
packages: ["@genn-inc/cluebase-backend-sdk"],
|
|
38
|
+
packageSpecifier: "@genn-inc/cluebase-backend-sdk",
|
|
39
|
+
imports: ["@genn-inc/cluebase-backend-sdk"],
|
|
40
|
+
initPattern: /cluebase\.init|cluebaseExpressMiddleware/,
|
|
41
|
+
installabilityStatus: "published",
|
|
42
|
+
};
|
|
43
|
+
export const BACKEND_SDK_BY_FRAMEWORK = {
|
|
44
|
+
fastapi: {
|
|
45
|
+
language: "python",
|
|
46
|
+
packages: ["cluebase-backend-sdk"],
|
|
47
|
+
packageSpecifier: "cluebase-backend-sdk",
|
|
48
|
+
imports: ["cluebase_backend_sdk"],
|
|
49
|
+
initPattern: /cluebase\.init|cluebase_init_fastapi|CluebasePythonBootstrapConfig/,
|
|
50
|
+
installabilityStatus: "published",
|
|
51
|
+
},
|
|
52
|
+
django: {
|
|
53
|
+
language: "python",
|
|
54
|
+
packages: ["cluebase-backend-sdk"],
|
|
55
|
+
packageSpecifier: "cluebase-backend-sdk",
|
|
56
|
+
imports: ["cluebase_backend_sdk"],
|
|
57
|
+
initPattern: /cluebase\.init|configure_settings|CluebasePythonBootstrapConfig/,
|
|
58
|
+
installabilityStatus: "unverified",
|
|
59
|
+
blocker:
|
|
60
|
+
"cluebase-backend-sdk installability has not been verified; Django setup must remain blocked until the package is published and import-checked",
|
|
61
|
+
},
|
|
62
|
+
express: NODE_BACKEND_SDK_SPEC,
|
|
63
|
+
nestjs: NODE_BACKEND_SDK_SPEC,
|
|
64
|
+
fastify: NODE_BACKEND_SDK_SPEC,
|
|
65
|
+
koa: NODE_BACKEND_SDK_SPEC,
|
|
66
|
+
hapi: NODE_BACKEND_SDK_SPEC,
|
|
67
|
+
restify: NODE_BACKEND_SDK_SPEC,
|
|
68
|
+
adonisjs: NODE_BACKEND_SDK_SPEC,
|
|
69
|
+
hono: NODE_BACKEND_SDK_SPEC,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const UNVERIFIED_BACKEND_SDK_SPEC = {
|
|
73
|
+
language: "python",
|
|
74
|
+
packages: ["cluebase-backend-sdk"],
|
|
75
|
+
imports: ["cluebase_backend_sdk"],
|
|
76
|
+
initPattern:
|
|
77
|
+
/cluebase\.init|cluebase_init_fastapi|configure_settings|CluebasePythonBootstrapConfig/,
|
|
78
|
+
installabilityStatus: "framework_unverified",
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const backendSdkSpecForFramework = (framework) =>
|
|
82
|
+
BACKEND_SDK_BY_FRAMEWORK[String(framework ?? "").toLowerCase()] ??
|
|
83
|
+
UNVERIFIED_BACKEND_SDK_SPEC;
|
|
84
|
+
|
|
85
|
+
export const sourceMatchesBackendInit = (framework, source) => {
|
|
86
|
+
const pattern = backendSdkSpecForFramework(framework).initPattern;
|
|
87
|
+
pattern.lastIndex = 0;
|
|
88
|
+
return pattern.test(source);
|
|
89
|
+
};
|
|
90
|
+
export const DEPENDENCY_FILE_CANDIDATES = [
|
|
91
|
+
"package.json",
|
|
92
|
+
"pnpm-lock.yaml",
|
|
93
|
+
"package-lock.json",
|
|
94
|
+
"yarn.lock",
|
|
95
|
+
"bun.lock",
|
|
96
|
+
"requirements.txt",
|
|
97
|
+
"requirements-dev.txt",
|
|
98
|
+
"pyproject.toml",
|
|
99
|
+
"poetry.lock",
|
|
100
|
+
"Pipfile",
|
|
101
|
+
"Pipfile.lock",
|
|
102
|
+
"uv.lock",
|
|
103
|
+
"pdm.lock",
|
|
104
|
+
];
|
|
105
|
+
export const PYTHON_BACKEND_DEPENDENCY_DECLARATION_FILES = [
|
|
106
|
+
"requirements.txt",
|
|
107
|
+
"requirements-dev.txt",
|
|
108
|
+
"pyproject.toml",
|
|
109
|
+
"Pipfile",
|
|
110
|
+
];
|