@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.
Files changed (64) hide show
  1. package/README.md +41 -0
  2. package/dist/config/cloud-proxy.d.ts +15 -0
  3. package/dist/config/cloud-proxy.js +63 -0
  4. package/dist/config/cloudwatch-store.d.ts +13 -0
  5. package/dist/config/cloudwatch-store.js +66 -0
  6. package/dist/config/license.d.ts +29 -0
  7. package/dist/config/license.js +165 -0
  8. package/dist/config/ssm-store.d.ts +2 -0
  9. package/dist/config/ssm-store.js +38 -0
  10. package/dist/config/telemetry.d.ts +17 -0
  11. package/dist/config/telemetry.js +93 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.js +460 -0
  14. package/dist/knowledge/dynamo-store.d.ts +17 -0
  15. package/dist/knowledge/dynamo-store.js +85 -0
  16. package/dist/knowledge/embeddings.d.ts +2 -0
  17. package/dist/knowledge/embeddings.js +36 -0
  18. package/dist/knowledge/loader.d.ts +8 -0
  19. package/dist/knowledge/loader.js +57 -0
  20. package/dist/lambda-package.zip +0 -0
  21. package/dist/lambda.d.ts +22 -0
  22. package/dist/lambda.js +496 -0
  23. package/dist/package.json +1 -0
  24. package/dist/tools/advance-process.d.ts +7 -0
  25. package/dist/tools/advance-process.js +128 -0
  26. package/dist/tools/analyze-code.d.ts +7 -0
  27. package/dist/tools/analyze-code.js +131 -0
  28. package/dist/tools/analyze-docs.d.ts +8 -0
  29. package/dist/tools/analyze-docs.js +147 -0
  30. package/dist/tools/config-registry.d.ts +3 -0
  31. package/dist/tools/config-registry.js +20 -0
  32. package/dist/tools/create-process.d.ts +6 -0
  33. package/dist/tools/create-process.js +257 -0
  34. package/dist/tools/decompose-epic.d.ts +7 -0
  35. package/dist/tools/decompose-epic.js +603 -0
  36. package/dist/tools/diagrams.d.ts +51 -0
  37. package/dist/tools/diagrams.js +304 -0
  38. package/dist/tools/generate-report.d.ts +9 -0
  39. package/dist/tools/generate-report.js +891 -0
  40. package/dist/tools/generate-wiki.d.ts +10 -0
  41. package/dist/tools/generate-wiki.js +700 -0
  42. package/dist/tools/get-architecture.d.ts +6 -0
  43. package/dist/tools/get-architecture.js +78 -0
  44. package/dist/tools/get-code-standards.d.ts +7 -0
  45. package/dist/tools/get-code-standards.js +52 -0
  46. package/dist/tools/init-process.d.ts +7 -0
  47. package/dist/tools/init-process.js +82 -0
  48. package/dist/tools/knowledge-crud.d.ts +26 -0
  49. package/dist/tools/knowledge-crud.js +142 -0
  50. package/dist/tools/logo-base64.d.ts +1 -0
  51. package/dist/tools/logo-base64.js +1 -0
  52. package/dist/tools/logs-query.d.ts +15 -0
  53. package/dist/tools/logs-query.js +46 -0
  54. package/dist/tools/reverse-engineer.d.ts +13 -0
  55. package/dist/tools/reverse-engineer.js +956 -0
  56. package/dist/tools/semantic-search.d.ts +7 -0
  57. package/dist/tools/semantic-search.js +68 -0
  58. package/dist/tools/update-process.d.ts +17 -0
  59. package/dist/tools/update-process.js +195 -0
  60. package/dist/tools/validate-idea.d.ts +7 -0
  61. package/dist/tools/validate-idea.js +339 -0
  62. package/dist/tools/validate-process.d.ts +6 -0
  63. package/dist/tools/validate-process.js +102 -0
  64. 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
+ }