@creative-ia/cortex 1.0.5
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 +41 -0
- package/dist/config/cloud-proxy.d.ts +15 -0
- package/dist/config/cloud-proxy.js +63 -0
- package/dist/config/cloudwatch-store.d.ts +13 -0
- package/dist/config/cloudwatch-store.js +66 -0
- package/dist/config/license.d.ts +29 -0
- package/dist/config/license.js +165 -0
- package/dist/config/ssm-store.d.ts +2 -0
- package/dist/config/ssm-store.js +38 -0
- package/dist/config/telemetry.d.ts +17 -0
- package/dist/config/telemetry.js +93 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +460 -0
- package/dist/knowledge/dynamo-store.d.ts +17 -0
- package/dist/knowledge/dynamo-store.js +85 -0
- package/dist/knowledge/embeddings.d.ts +2 -0
- package/dist/knowledge/embeddings.js +36 -0
- package/dist/knowledge/loader.d.ts +8 -0
- package/dist/knowledge/loader.js +57 -0
- package/dist/lambda-package.zip +0 -0
- package/dist/lambda.d.ts +22 -0
- package/dist/lambda.js +496 -0
- package/dist/package.json +1 -0
- package/dist/tools/advance-process.d.ts +7 -0
- package/dist/tools/advance-process.js +128 -0
- package/dist/tools/analyze-code.d.ts +7 -0
- package/dist/tools/analyze-code.js +131 -0
- package/dist/tools/analyze-docs.d.ts +8 -0
- package/dist/tools/analyze-docs.js +147 -0
- package/dist/tools/config-registry.d.ts +3 -0
- package/dist/tools/config-registry.js +20 -0
- package/dist/tools/create-process.d.ts +6 -0
- package/dist/tools/create-process.js +257 -0
- package/dist/tools/decompose-epic.d.ts +7 -0
- package/dist/tools/decompose-epic.js +603 -0
- package/dist/tools/diagrams.d.ts +51 -0
- package/dist/tools/diagrams.js +304 -0
- package/dist/tools/generate-report.d.ts +9 -0
- package/dist/tools/generate-report.js +891 -0
- package/dist/tools/generate-wiki.d.ts +10 -0
- package/dist/tools/generate-wiki.js +700 -0
- package/dist/tools/get-architecture.d.ts +6 -0
- package/dist/tools/get-architecture.js +78 -0
- package/dist/tools/get-code-standards.d.ts +7 -0
- package/dist/tools/get-code-standards.js +52 -0
- package/dist/tools/init-process.d.ts +7 -0
- package/dist/tools/init-process.js +82 -0
- package/dist/tools/knowledge-crud.d.ts +26 -0
- package/dist/tools/knowledge-crud.js +142 -0
- package/dist/tools/logo-base64.d.ts +1 -0
- package/dist/tools/logo-base64.js +1 -0
- package/dist/tools/logs-query.d.ts +15 -0
- package/dist/tools/logs-query.js +46 -0
- package/dist/tools/reverse-engineer.d.ts +13 -0
- package/dist/tools/reverse-engineer.js +956 -0
- package/dist/tools/semantic-search.d.ts +7 -0
- package/dist/tools/semantic-search.js +68 -0
- package/dist/tools/update-process.d.ts +17 -0
- package/dist/tools/update-process.js +195 -0
- package/dist/tools/validate-idea.d.ts +7 -0
- package/dist/tools/validate-idea.js +339 -0
- package/dist/tools/validate-process.d.ts +6 -0
- package/dist/tools/validate-process.js +102 -0
- package/package.json +31 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: validate_process
|
|
3
|
+
* Valida se um processo segue o workflow obrigatório.
|
|
4
|
+
* Verifica artefatos obrigatórios e sequência de fases.
|
|
5
|
+
* Persiste resultado da validação no DynamoDB.
|
|
6
|
+
*/
|
|
7
|
+
import { getEntry, putEntry } from "../knowledge/dynamo-store.js";
|
|
8
|
+
const REQUIRED_ARTIFACTS = [
|
|
9
|
+
"01-stakeholder-",
|
|
10
|
+
"index.html",
|
|
11
|
+
"orchestration.json",
|
|
12
|
+
"knowledge.json",
|
|
13
|
+
"README.md",
|
|
14
|
+
];
|
|
15
|
+
const PHASE_ORDER = [
|
|
16
|
+
{ prefix: "01-stakeholder", phase: "Stakeholder" },
|
|
17
|
+
{ prefix: "02-parecer-intake", phase: "Intake" },
|
|
18
|
+
{ prefix: "03-epicos", phase: "Epicos" },
|
|
19
|
+
{ prefix: "04-", phase: "Estrategia (Design)" },
|
|
20
|
+
{ prefix: "05-", phase: "Estrategia (QA)" },
|
|
21
|
+
];
|
|
22
|
+
export async function validateProcess(params) {
|
|
23
|
+
const out = [`## Process Validation: ${params.processId}`, ""];
|
|
24
|
+
const issues = [];
|
|
25
|
+
const passed = [];
|
|
26
|
+
// Check required artifacts
|
|
27
|
+
for (const req of REQUIRED_ARTIFACTS) {
|
|
28
|
+
const found = params.artifacts.some((a) => a.includes(req));
|
|
29
|
+
if (found) {
|
|
30
|
+
passed.push(`[OK] ${req}`);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
issues.push(`[MISSING] Required artifact: ${req}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Check phase order
|
|
37
|
+
let lastPhaseIndex = -1;
|
|
38
|
+
for (const artifact of params.artifacts.sort()) {
|
|
39
|
+
for (let i = 0; i < PHASE_ORDER.length; i++) {
|
|
40
|
+
if (artifact.includes(PHASE_ORDER[i].prefix)) {
|
|
41
|
+
if (i > lastPhaseIndex + 1 && lastPhaseIndex >= 0) {
|
|
42
|
+
const skipped = PHASE_ORDER.slice(lastPhaseIndex + 1, i)
|
|
43
|
+
.map((p) => p.phase).join(", ");
|
|
44
|
+
issues.push(`[ORDER] Phase '${PHASE_ORDER[i].phase}' exists but '${skipped}' was skipped`);
|
|
45
|
+
}
|
|
46
|
+
lastPhaseIndex = Math.max(lastPhaseIndex, i);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Detect completed phases
|
|
51
|
+
const completedPhases = {};
|
|
52
|
+
for (const phase of PHASE_ORDER) {
|
|
53
|
+
const found = params.artifacts.some((a) => a.includes(phase.prefix));
|
|
54
|
+
completedPhases[phase.prefix] = found ? "complete" : "pending";
|
|
55
|
+
}
|
|
56
|
+
const isValid = issues.length === 0;
|
|
57
|
+
const now = new Date().toISOString();
|
|
58
|
+
// Persist validation result in DynamoDB
|
|
59
|
+
const procKey = params.processId.startsWith("PROC-") ? params.processId : `PROC-${params.processId}`;
|
|
60
|
+
const existing = await getEntry("processes", procKey);
|
|
61
|
+
if (existing) {
|
|
62
|
+
// Update existing process with validation result
|
|
63
|
+
const data = JSON.parse(existing.content);
|
|
64
|
+
data.status = isValid ? "valid" : "invalid";
|
|
65
|
+
data.phases = { ...data.phases, ...completedPhases };
|
|
66
|
+
data.lastValidation = now;
|
|
67
|
+
data.artifactCount = params.artifacts.length;
|
|
68
|
+
data.issueCount = issues.length;
|
|
69
|
+
await putEntry({
|
|
70
|
+
...existing,
|
|
71
|
+
content: JSON.stringify(data),
|
|
72
|
+
metadata: {
|
|
73
|
+
...existing.metadata,
|
|
74
|
+
status: isValid ? "valid" : "invalid",
|
|
75
|
+
lastValidation: now,
|
|
76
|
+
},
|
|
77
|
+
tags: [
|
|
78
|
+
...(existing.tags || []).filter((t) => t !== "valid" && t !== "invalid"),
|
|
79
|
+
isValid ? "valid" : "invalid",
|
|
80
|
+
],
|
|
81
|
+
updated_at: now,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
out.push("### Passed");
|
|
85
|
+
out.push(...passed);
|
|
86
|
+
out.push("");
|
|
87
|
+
if (isValid) {
|
|
88
|
+
out.push("### Result: VALID ✅");
|
|
89
|
+
out.push("Process follows the mandatory workflow correctly.");
|
|
90
|
+
if (existing)
|
|
91
|
+
out.push(`\nDynamoDB: [processes] ${procKey} → status: valid`);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
out.push("### Issues Found");
|
|
95
|
+
out.push(...issues);
|
|
96
|
+
out.push("");
|
|
97
|
+
out.push(`### Result: INVALID ❌ (${issues.length} issue(s))`);
|
|
98
|
+
if (existing)
|
|
99
|
+
out.push(`\nDynamoDB: [processes] ${procKey} → status: invalid`);
|
|
100
|
+
}
|
|
101
|
+
return out.join("\n");
|
|
102
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@creative-ia/cortex",
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"description": "Cortex by Creative IA — Centro de inteligencia para arquitetura de software. MCP Server com 24 tools.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"cortex-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"registry": "https://registry.npmjs.org",
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/Creative-IA/cortex.git"
|
|
17
|
+
},
|
|
18
|
+
"author": "Creative IA <creativeia50@gmail.com>",
|
|
19
|
+
"license": "UNLICENSED",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@aws-sdk/client-bedrock-runtime": "^3.1014.0",
|
|
22
|
+
"@aws-sdk/client-cloudwatch-logs": "^3.1014.0",
|
|
23
|
+
"@aws-sdk/client-dynamodb": "^3.750.0",
|
|
24
|
+
"@aws-sdk/client-s3": "^3.750.0",
|
|
25
|
+
"@aws-sdk/client-ssm": "^3.1014.0",
|
|
26
|
+
"@aws-sdk/lib-dynamodb": "^3.750.0",
|
|
27
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
28
|
+
"officeparser": "^5.1.1",
|
|
29
|
+
"zod": "^3.24.0"
|
|
30
|
+
}
|
|
31
|
+
}
|