@mcp-graph-workflow/mcp-graph 5.10.0 → 5.12.0

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 (256) hide show
  1. package/dist/api/routes/code-graph.d.ts.map +1 -1
  2. package/dist/api/routes/code-graph.js +163 -0
  3. package/dist/api/routes/code-graph.js.map +1 -1
  4. package/dist/api/routes/siebel.d.ts.map +1 -1
  5. package/dist/api/routes/siebel.js +170 -0
  6. package/dist/api/routes/siebel.js.map +1 -1
  7. package/dist/core/code/code-indexer.d.ts +5 -3
  8. package/dist/core/code/code-indexer.d.ts.map +1 -1
  9. package/dist/core/code/code-indexer.js +57 -10
  10. package/dist/core/code/code-indexer.js.map +1 -1
  11. package/dist/core/code/code-types.d.ts +8 -0
  12. package/dist/core/code/code-types.d.ts.map +1 -1
  13. package/dist/core/code/code-types.js.map +1 -1
  14. package/dist/core/code/graph-traversal.d.ts +15 -0
  15. package/dist/core/code/graph-traversal.d.ts.map +1 -1
  16. package/dist/core/code/graph-traversal.js +53 -0
  17. package/dist/core/code/graph-traversal.js.map +1 -1
  18. package/dist/core/code/ts-analyzer.d.ts +6 -1
  19. package/dist/core/code/ts-analyzer.d.ts.map +1 -1
  20. package/dist/core/code/ts-analyzer.js +8 -0
  21. package/dist/core/code/ts-analyzer.js.map +1 -1
  22. package/dist/core/config/config-schema.d.ts +8 -0
  23. package/dist/core/config/config-schema.d.ts.map +1 -1
  24. package/dist/core/config/config-schema.js +3 -1
  25. package/dist/core/config/config-schema.js.map +1 -1
  26. package/dist/core/context/context-assembler.d.ts +2 -0
  27. package/dist/core/context/context-assembler.d.ts.map +1 -1
  28. package/dist/core/context/context-assembler.js +15 -0
  29. package/dist/core/context/context-assembler.js.map +1 -1
  30. package/dist/core/lsp/language-detector.d.ts +11 -0
  31. package/dist/core/lsp/language-detector.d.ts.map +1 -0
  32. package/dist/core/lsp/language-detector.js +149 -0
  33. package/dist/core/lsp/language-detector.js.map +1 -0
  34. package/dist/core/lsp/lsp-analyzer.d.ts +16 -0
  35. package/dist/core/lsp/lsp-analyzer.d.ts.map +1 -0
  36. package/dist/core/lsp/lsp-analyzer.js +30 -0
  37. package/dist/core/lsp/lsp-analyzer.js.map +1 -0
  38. package/dist/core/lsp/lsp-bridge.d.ts +40 -0
  39. package/dist/core/lsp/lsp-bridge.d.ts.map +1 -0
  40. package/dist/core/lsp/lsp-bridge.js +349 -0
  41. package/dist/core/lsp/lsp-bridge.js.map +1 -0
  42. package/dist/core/lsp/lsp-cache.d.ts +33 -0
  43. package/dist/core/lsp/lsp-cache.d.ts.map +1 -0
  44. package/dist/core/lsp/lsp-cache.js +134 -0
  45. package/dist/core/lsp/lsp-cache.js.map +1 -0
  46. package/dist/core/lsp/lsp-client.d.ts +47 -0
  47. package/dist/core/lsp/lsp-client.d.ts.map +1 -0
  48. package/dist/core/lsp/lsp-client.js +256 -0
  49. package/dist/core/lsp/lsp-client.js.map +1 -0
  50. package/dist/core/lsp/lsp-diagnostics.d.ts +40 -0
  51. package/dist/core/lsp/lsp-diagnostics.d.ts.map +1 -0
  52. package/dist/core/lsp/lsp-diagnostics.js +113 -0
  53. package/dist/core/lsp/lsp-diagnostics.js.map +1 -0
  54. package/dist/core/lsp/lsp-server-manager.d.ts +56 -0
  55. package/dist/core/lsp/lsp-server-manager.d.ts.map +1 -0
  56. package/dist/core/lsp/lsp-server-manager.js +330 -0
  57. package/dist/core/lsp/lsp-server-manager.js.map +1 -0
  58. package/dist/core/lsp/lsp-types.d.ts +130 -0
  59. package/dist/core/lsp/lsp-types.d.ts.map +1 -0
  60. package/dist/core/lsp/lsp-types.js +131 -0
  61. package/dist/core/lsp/lsp-types.js.map +1 -0
  62. package/dist/core/lsp/server-registry.d.ts +19 -0
  63. package/dist/core/lsp/server-registry.d.ts.map +1 -0
  64. package/dist/core/lsp/server-registry.js +188 -0
  65. package/dist/core/lsp/server-registry.js.map +1 -0
  66. package/dist/core/rag/multi-strategy-retrieval.d.ts +6 -0
  67. package/dist/core/rag/multi-strategy-retrieval.d.ts.map +1 -1
  68. package/dist/core/rag/multi-strategy-retrieval.js +31 -3
  69. package/dist/core/rag/multi-strategy-retrieval.js.map +1 -1
  70. package/dist/core/rag/siebel-indexer.d.ts.map +1 -1
  71. package/dist/core/rag/siebel-indexer.js +57 -1
  72. package/dist/core/rag/siebel-indexer.js.map +1 -1
  73. package/dist/core/rag/wsdl-indexer.d.ts +16 -0
  74. package/dist/core/rag/wsdl-indexer.d.ts.map +1 -0
  75. package/dist/core/rag/wsdl-indexer.js +115 -0
  76. package/dist/core/rag/wsdl-indexer.js.map +1 -0
  77. package/dist/core/siebel/auto-wiring.d.ts +29 -0
  78. package/dist/core/siebel/auto-wiring.d.ts.map +1 -0
  79. package/dist/core/siebel/auto-wiring.js +211 -0
  80. package/dist/core/siebel/auto-wiring.js.map +1 -0
  81. package/dist/core/siebel/best-practices.d.ts +16 -0
  82. package/dist/core/siebel/best-practices.d.ts.map +1 -0
  83. package/dist/core/siebel/best-practices.js +92 -0
  84. package/dist/core/siebel/best-practices.js.map +1 -0
  85. package/dist/core/siebel/change-simulator.d.ts +32 -0
  86. package/dist/core/siebel/change-simulator.d.ts.map +1 -0
  87. package/dist/core/siebel/change-simulator.js +138 -0
  88. package/dist/core/siebel/change-simulator.js.map +1 -0
  89. package/dist/core/siebel/clone-adapt.d.ts +21 -0
  90. package/dist/core/siebel/clone-adapt.d.ts.map +1 -0
  91. package/dist/core/siebel/clone-adapt.js +157 -0
  92. package/dist/core/siebel/clone-adapt.js.map +1 -0
  93. package/dist/core/siebel/code-review.d.ts +36 -0
  94. package/dist/core/siebel/code-review.d.ts.map +1 -0
  95. package/dist/core/siebel/code-review.js +239 -0
  96. package/dist/core/siebel/code-review.js.map +1 -0
  97. package/dist/core/siebel/complexity-metrics.d.ts +24 -0
  98. package/dist/core/siebel/complexity-metrics.d.ts.map +1 -0
  99. package/dist/core/siebel/complexity-metrics.js +41 -0
  100. package/dist/core/siebel/complexity-metrics.js.map +1 -0
  101. package/dist/core/siebel/context-enrichment.d.ts +18 -0
  102. package/dist/core/siebel/context-enrichment.d.ts.map +1 -0
  103. package/dist/core/siebel/context-enrichment.js +91 -0
  104. package/dist/core/siebel/context-enrichment.js.map +1 -0
  105. package/dist/core/siebel/cross-project-analyzer.d.ts +30 -0
  106. package/dist/core/siebel/cross-project-analyzer.d.ts.map +1 -0
  107. package/dist/core/siebel/cross-project-analyzer.js +108 -0
  108. package/dist/core/siebel/cross-project-analyzer.js.map +1 -0
  109. package/dist/core/siebel/definition-of-ready.d.ts +25 -0
  110. package/dist/core/siebel/definition-of-ready.d.ts.map +1 -0
  111. package/dist/core/siebel/definition-of-ready.js +164 -0
  112. package/dist/core/siebel/definition-of-ready.js.map +1 -0
  113. package/dist/core/siebel/escript-crossref.d.ts +18 -0
  114. package/dist/core/siebel/escript-crossref.d.ts.map +1 -0
  115. package/dist/core/siebel/escript-crossref.js +50 -0
  116. package/dist/core/siebel/escript-crossref.js.map +1 -0
  117. package/dist/core/siebel/escript-generator.d.ts +33 -0
  118. package/dist/core/siebel/escript-generator.d.ts.map +1 -0
  119. package/dist/core/siebel/escript-generator.js +200 -0
  120. package/dist/core/siebel/escript-generator.js.map +1 -0
  121. package/dist/core/siebel/escript-patterns.d.ts +20 -0
  122. package/dist/core/siebel/escript-patterns.d.ts.map +1 -0
  123. package/dist/core/siebel/escript-patterns.js +69 -0
  124. package/dist/core/siebel/escript-patterns.js.map +1 -0
  125. package/dist/core/siebel/escript-refactor.d.ts +23 -0
  126. package/dist/core/siebel/escript-refactor.d.ts.map +1 -0
  127. package/dist/core/siebel/escript-refactor.js +270 -0
  128. package/dist/core/siebel/escript-refactor.js.map +1 -0
  129. package/dist/core/siebel/field-suggestion.d.ts +29 -0
  130. package/dist/core/siebel/field-suggestion.d.ts.map +1 -0
  131. package/dist/core/siebel/field-suggestion.js +105 -0
  132. package/dist/core/siebel/field-suggestion.js.map +1 -0
  133. package/dist/core/siebel/health-check.d.ts +21 -0
  134. package/dist/core/siebel/health-check.d.ts.map +1 -0
  135. package/dist/core/siebel/health-check.js +51 -0
  136. package/dist/core/siebel/health-check.js.map +1 -0
  137. package/dist/core/siebel/integration-test-gen.d.ts +26 -0
  138. package/dist/core/siebel/integration-test-gen.d.ts.map +1 -0
  139. package/dist/core/siebel/integration-test-gen.js +131 -0
  140. package/dist/core/siebel/integration-test-gen.js.map +1 -0
  141. package/dist/core/siebel/lov-mapper.d.ts +23 -0
  142. package/dist/core/siebel/lov-mapper.d.ts.map +1 -0
  143. package/dist/core/siebel/lov-mapper.js +42 -0
  144. package/dist/core/siebel/lov-mapper.js.map +1 -0
  145. package/dist/core/siebel/migration-package.d.ts +38 -0
  146. package/dist/core/siebel/migration-package.d.ts.map +1 -0
  147. package/dist/core/siebel/migration-package.js +276 -0
  148. package/dist/core/siebel/migration-package.js.map +1 -0
  149. package/dist/core/siebel/naming-convention-validator.d.ts +38 -0
  150. package/dist/core/siebel/naming-convention-validator.d.ts.map +1 -0
  151. package/dist/core/siebel/naming-convention-validator.js +165 -0
  152. package/dist/core/siebel/naming-convention-validator.js.map +1 -0
  153. package/dist/core/siebel/object-erd.d.ts +28 -0
  154. package/dist/core/siebel/object-erd.d.ts.map +1 -0
  155. package/dist/core/siebel/object-erd.js +82 -0
  156. package/dist/core/siebel/object-erd.js.map +1 -0
  157. package/dist/core/siebel/orphan-detector.d.ts +21 -0
  158. package/dist/core/siebel/orphan-detector.d.ts.map +1 -0
  159. package/dist/core/siebel/orphan-detector.js +64 -0
  160. package/dist/core/siebel/orphan-detector.js.map +1 -0
  161. package/dist/core/siebel/pattern-analyzer.d.ts +32 -0
  162. package/dist/core/siebel/pattern-analyzer.d.ts.map +1 -0
  163. package/dist/core/siebel/pattern-analyzer.js +155 -0
  164. package/dist/core/siebel/pattern-analyzer.js.map +1 -0
  165. package/dist/core/siebel/profileattr-flow.d.ts +26 -0
  166. package/dist/core/siebel/profileattr-flow.d.ts.map +1 -0
  167. package/dist/core/siebel/profileattr-flow.js +50 -0
  168. package/dist/core/siebel/profileattr-flow.js.map +1 -0
  169. package/dist/core/siebel/runtime-dep-builder.d.ts +9 -0
  170. package/dist/core/siebel/runtime-dep-builder.d.ts.map +1 -0
  171. package/dist/core/siebel/runtime-dep-builder.js +47 -0
  172. package/dist/core/siebel/runtime-dep-builder.js.map +1 -0
  173. package/dist/core/siebel/scaffold-generator.d.ts +25 -0
  174. package/dist/core/siebel/scaffold-generator.d.ts.map +1 -0
  175. package/dist/core/siebel/scaffold-generator.js +278 -0
  176. package/dist/core/siebel/scaffold-generator.js.map +1 -0
  177. package/dist/core/siebel/siebel-context-builder.d.ts +10 -0
  178. package/dist/core/siebel/siebel-context-builder.d.ts.map +1 -0
  179. package/dist/core/siebel/siebel-context-builder.js +75 -0
  180. package/dist/core/siebel/siebel-context-builder.js.map +1 -0
  181. package/dist/core/siebel/siebel-rag-booster.d.ts +19 -0
  182. package/dist/core/siebel/siebel-rag-booster.d.ts.map +1 -0
  183. package/dist/core/siebel/siebel-rag-booster.js +41 -0
  184. package/dist/core/siebel/siebel-rag-booster.js.map +1 -0
  185. package/dist/core/siebel/siebel-validators.d.ts +73 -0
  186. package/dist/core/siebel/siebel-validators.d.ts.map +1 -0
  187. package/dist/core/siebel/siebel-validators.js +269 -0
  188. package/dist/core/siebel/siebel-validators.js.map +1 -0
  189. package/dist/core/siebel/sif-batch-importer.d.ts +27 -0
  190. package/dist/core/siebel/sif-batch-importer.d.ts.map +1 -0
  191. package/dist/core/siebel/sif-batch-importer.js +68 -0
  192. package/dist/core/siebel/sif-batch-importer.js.map +1 -0
  193. package/dist/core/siebel/sif-diff.d.ts +57 -0
  194. package/dist/core/siebel/sif-diff.d.ts.map +1 -0
  195. package/dist/core/siebel/sif-diff.js +198 -0
  196. package/dist/core/siebel/sif-diff.js.map +1 -0
  197. package/dist/core/siebel/sif-parser.d.ts.map +1 -1
  198. package/dist/core/siebel/sif-parser.js +86 -0
  199. package/dist/core/siebel/sif-parser.js.map +1 -1
  200. package/dist/core/siebel/similarity-detector.d.ts +20 -0
  201. package/dist/core/siebel/similarity-detector.d.ts.map +1 -0
  202. package/dist/core/siebel/similarity-detector.js +83 -0
  203. package/dist/core/siebel/similarity-detector.js.map +1 -0
  204. package/dist/core/siebel/template-learner.d.ts +25 -0
  205. package/dist/core/siebel/template-learner.d.ts.map +1 -0
  206. package/dist/core/siebel/template-learner.js +129 -0
  207. package/dist/core/siebel/template-learner.js.map +1 -0
  208. package/dist/core/siebel/troubleshoot.d.ts +37 -0
  209. package/dist/core/siebel/troubleshoot.d.ts.map +1 -0
  210. package/dist/core/siebel/troubleshoot.js +249 -0
  211. package/dist/core/siebel/troubleshoot.js.map +1 -0
  212. package/dist/core/siebel/wsdl-correlation.d.ts +22 -0
  213. package/dist/core/siebel/wsdl-correlation.d.ts.map +1 -0
  214. package/dist/core/siebel/wsdl-correlation.js +64 -0
  215. package/dist/core/siebel/wsdl-correlation.js.map +1 -0
  216. package/dist/core/siebel/wsdl-parser.d.ts +57 -0
  217. package/dist/core/siebel/wsdl-parser.d.ts.map +1 -0
  218. package/dist/core/siebel/wsdl-parser.js +226 -0
  219. package/dist/core/siebel/wsdl-parser.js.map +1 -0
  220. package/dist/core/siebel/wsdl-to-sif.d.ts +22 -0
  221. package/dist/core/siebel/wsdl-to-sif.d.ts.map +1 -0
  222. package/dist/core/siebel/wsdl-to-sif.js +184 -0
  223. package/dist/core/siebel/wsdl-to-sif.js.map +1 -0
  224. package/dist/core/store/migrations.d.ts.map +1 -1
  225. package/dist/core/store/migrations.js +21 -0
  226. package/dist/core/store/migrations.js.map +1 -1
  227. package/dist/mcp/tools/code-intelligence.d.ts +15 -0
  228. package/dist/mcp/tools/code-intelligence.d.ts.map +1 -0
  229. package/dist/mcp/tools/code-intelligence.js +276 -0
  230. package/dist/mcp/tools/code-intelligence.js.map +1 -0
  231. package/dist/mcp/tools/index.d.ts.map +1 -1
  232. package/dist/mcp/tools/index.js +4 -0
  233. package/dist/mcp/tools/index.js.map +1 -1
  234. package/dist/mcp/tools/siebel-analyze.d.ts.map +1 -1
  235. package/dist/mcp/tools/siebel-analyze.js +89 -6
  236. package/dist/mcp/tools/siebel-analyze.js.map +1 -1
  237. package/dist/mcp/tools/siebel-composer.d.ts.map +1 -1
  238. package/dist/mcp/tools/siebel-composer.js +40 -3
  239. package/dist/mcp/tools/siebel-composer.js.map +1 -1
  240. package/dist/mcp/tools/siebel-generate-sif.d.ts.map +1 -1
  241. package/dist/mcp/tools/siebel-generate-sif.js +188 -3
  242. package/dist/mcp/tools/siebel-generate-sif.js.map +1 -1
  243. package/dist/mcp/tools/siebel-search.js +1 -1
  244. package/dist/mcp/tools/siebel-search.js.map +1 -1
  245. package/dist/mcp/tools/siebel-validate.d.ts.map +1 -1
  246. package/dist/mcp/tools/siebel-validate.js +94 -5
  247. package/dist/mcp/tools/siebel-validate.js.map +1 -1
  248. package/dist/schemas/knowledge.schema.d.ts +6 -0
  249. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  250. package/dist/schemas/knowledge.schema.js +2 -1
  251. package/dist/schemas/knowledge.schema.js.map +1 -1
  252. package/dist/schemas/siebel.schema.d.ts +42 -0
  253. package/dist/schemas/siebel.schema.d.ts.map +1 -1
  254. package/dist/schemas/siebel.schema.js +4 -0
  255. package/dist/schemas/siebel.schema.js.map +1 -1
  256. package/package.json +2 -2
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Scaffold Generator — generates complete Siebel object sets from natural language descriptions.
3
+ *
4
+ * Given a description like "list applet for orders with fields order number, date, status",
5
+ * generates BC + Applet + View (+ optional Screen) with correct properties, naming conventions,
6
+ * and SIF XML.
7
+ *
8
+ * Uses template-learner.ts to learn from real repository objects and apply realistic patterns.
9
+ */
10
+ import { learnTemplates } from "./template-learner.js";
11
+ import { buildSifXml } from "./sif-templates.js";
12
+ import { logger } from "../utils/logger.js";
13
+ function parseDescription(description) {
14
+ const lower = description.toLowerCase();
15
+ // Determine applet style
16
+ const appletStyle = lower.includes("form") ? "form" : "list";
17
+ // Extract entity name (word after "for" or first noun-like word)
18
+ const forMatch = lower.match(/(?:for|of)\s+(\w+)/);
19
+ const entityName = forMatch ? capitalize(forMatch[1]) : "Entity";
20
+ // Extract field names (after "fields:", "with fields", "campos", or comma-separated terms)
21
+ const fields = [];
22
+ const fieldMatch = lower.match(/(?:fields?|campos?|with)\s*:?\s*(.+)/);
23
+ if (fieldMatch) {
24
+ const fieldStr = fieldMatch[1];
25
+ const parts = fieldStr.split(/[,;]+/).map((s) => s.trim()).filter(Boolean);
26
+ for (const part of parts) {
27
+ // Clean up common noise words
28
+ const cleaned = part.replace(/^(and|e|com)\s+/i, "").trim();
29
+ if (cleaned && cleaned.length > 1) {
30
+ fields.push(capitalize(cleaned));
31
+ }
32
+ }
33
+ }
34
+ return {
35
+ appletStyle,
36
+ entityName,
37
+ fields,
38
+ includeView: true,
39
+ includeScreen: false, // only on explicit request
40
+ };
41
+ }
42
+ function capitalize(s) {
43
+ return s.split(/\s+/).map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
44
+ }
45
+ // --- Template matching ---
46
+ function findBestTemplate(templates, objectType, subType) {
47
+ // Exact match first
48
+ if (subType) {
49
+ const exact = templates.find((t) => t.objectType === objectType && t.subType === subType);
50
+ if (exact)
51
+ return exact;
52
+ }
53
+ // Fallback to any template of this type
54
+ return templates.find((t) => t.objectType === objectType);
55
+ }
56
+ function getPropertyValue(template, propName) {
57
+ if (!template)
58
+ return undefined;
59
+ const prop = template.commonProperties.find((p) => p.name === propName);
60
+ return prop?.commonValues[0];
61
+ }
62
+ // --- Script boilerplate ---
63
+ const APPLET_SCRIPT_BOILERPLATE = `function WebApplet_PreInvokeMethod (MethodName)
64
+ {
65
+ try
66
+ {
67
+ // TODO: implement
68
+ if (MethodName === "")
69
+ {
70
+ return (CancelOperation);
71
+ }
72
+ }
73
+ catch (e)
74
+ {
75
+ TheApplication().RaiseErrorText(e.toString());
76
+ }
77
+ finally
78
+ {
79
+ // Memory cleanup
80
+ }
81
+ return (ContinueOperation);
82
+ }`;
83
+ const BC_SCRIPT_BOILERPLATE = `function BusComp_PreSetFieldValue (FieldName, FieldValue)
84
+ {
85
+ try
86
+ {
87
+ // TODO: implement field-level validation
88
+ }
89
+ catch (e)
90
+ {
91
+ TheApplication().RaiseErrorText(e.toString());
92
+ }
93
+ finally
94
+ {
95
+ // Memory cleanup
96
+ }
97
+ return (ContinueOperation);
98
+ }`;
99
+ // --- Main function ---
100
+ export function scaffoldSiebelObjects(request) {
101
+ const { description, prefix, projectName, referenceObjects, includeScriptBoilerplate } = request;
102
+ logger.info("scaffold-generator", {
103
+ description: description.slice(0, 100),
104
+ prefix,
105
+ projectName,
106
+ });
107
+ // 1. Parse the natural language description
108
+ const intent = parseDescription(description);
109
+ // 2. Learn templates from reference objects
110
+ const templates = learnTemplates([...referenceObjects]);
111
+ // 3. Build the scaffold objects
112
+ const objects = [];
113
+ const sifObjects = [];
114
+ const bcName = `${prefix}${intent.entityName}`;
115
+ const appletName = `${prefix}${intent.entityName} ${intent.appletStyle === "list" ? "List" : "Form"} Applet`;
116
+ const viewName = `${prefix}${intent.entityName} View`;
117
+ const tableName = `S_${intent.entityName.toUpperCase().replace(/\s+/g, "_")}`;
118
+ // -- Business Component --
119
+ const bcTemplate = findBestTemplate(templates, "business_component");
120
+ const bcClassValue = getPropertyValue(bcTemplate, "CLASS") ?? "CSSBCBase";
121
+ const bcFields = intent.fields.map((f) => makeSiebelObj({
122
+ name: f,
123
+ type: "field",
124
+ parentName: bcName,
125
+ properties: [
126
+ { name: "COLUMN", value: f.toUpperCase().replace(/\s+/g, "_") },
127
+ { name: "TYPE", value: "DTYPE_TEXT" },
128
+ ],
129
+ }));
130
+ const bcObj = makeSiebelObj({
131
+ name: bcName,
132
+ type: "business_component",
133
+ project: projectName,
134
+ properties: [
135
+ { name: "TABLE", value: tableName },
136
+ { name: "CLASS", value: bcClassValue },
137
+ ],
138
+ children: bcFields,
139
+ });
140
+ objects.push(bcObj);
141
+ const bcSifChildren = intent.fields.map((f) => ({
142
+ tag: "FIELD",
143
+ attributes: {
144
+ NAME: f,
145
+ COLUMN: f.toUpperCase().replace(/\s+/g, "_"),
146
+ TYPE: "DTYPE_TEXT",
147
+ },
148
+ }));
149
+ sifObjects.push({
150
+ type: "business_component",
151
+ name: bcName,
152
+ projectName,
153
+ attributes: { TABLE: tableName, CLASS: bcClassValue },
154
+ children: bcSifChildren,
155
+ });
156
+ // -- Applet --
157
+ const appletClass = intent.appletStyle === "list" ? "CSSFrameList" : "CSSFrameBase";
158
+ const appletTemplate = findBestTemplate(templates, "applet", appletClass);
159
+ const appletChildTag = intent.appletStyle === "list" ? "LIST_COLUMN" : "CONTROL";
160
+ const appletChildType = intent.appletStyle === "list" ? "list_column" : "control";
161
+ const appletChildren = intent.fields.map((f) => makeSiebelObj({
162
+ name: f,
163
+ type: appletChildType,
164
+ parentName: appletName,
165
+ properties: [{ name: "FIELD", value: f }],
166
+ }));
167
+ const appletObj = makeSiebelObj({
168
+ name: appletName,
169
+ type: "applet",
170
+ project: projectName,
171
+ properties: [
172
+ { name: "BUS_COMP", value: bcName },
173
+ { name: "CLASS", value: appletClass },
174
+ ],
175
+ children: appletChildren,
176
+ });
177
+ objects.push(appletObj);
178
+ const appletSifChildren = intent.fields.map((f) => ({
179
+ tag: appletChildTag,
180
+ attributes: { NAME: f, FIELD: f },
181
+ }));
182
+ sifObjects.push({
183
+ type: "applet",
184
+ name: appletName,
185
+ projectName,
186
+ attributes: { BUS_COMP: bcName, CLASS: appletClass },
187
+ children: appletSifChildren,
188
+ });
189
+ // -- View --
190
+ if (intent.includeView) {
191
+ const viewObj = makeSiebelObj({
192
+ name: viewName,
193
+ type: "view",
194
+ project: projectName,
195
+ properties: [
196
+ { name: "BUS_OBJECT", value: bcName },
197
+ ],
198
+ children: [],
199
+ });
200
+ objects.push(viewObj);
201
+ sifObjects.push({
202
+ type: "view",
203
+ name: viewName,
204
+ projectName,
205
+ attributes: { BUS_OBJECT: bcName },
206
+ children: [{ tag: "VIEW_APPLET", attributes: { NAME: appletName, APPLET: appletName } }],
207
+ });
208
+ }
209
+ // 4. Generate SIF XML
210
+ const sifXml = buildSifXml(sifObjects);
211
+ // 5. Calculate validation score
212
+ const validationScore = calculateScaffoldScore(objects, templates);
213
+ // 6. Generate script boilerplate if requested
214
+ let scriptBoilerplate;
215
+ if (includeScriptBoilerplate) {
216
+ scriptBoilerplate = [
217
+ `// --- ${appletName} ---`,
218
+ APPLET_SCRIPT_BOILERPLATE,
219
+ `// --- ${bcName} ---`,
220
+ BC_SCRIPT_BOILERPLATE,
221
+ ];
222
+ }
223
+ logger.info("scaffold-generator:complete", {
224
+ objectCount: String(objects.length),
225
+ validationScore: String(validationScore),
226
+ fields: String(intent.fields.length),
227
+ });
228
+ return {
229
+ objects,
230
+ sifXml,
231
+ validationScore,
232
+ scriptBoilerplate,
233
+ };
234
+ }
235
+ // --- Helpers ---
236
+ function makeSiebelObj(overrides) {
237
+ return {
238
+ properties: [],
239
+ children: [],
240
+ ...overrides,
241
+ };
242
+ }
243
+ function calculateScaffoldScore(objects, templates) {
244
+ if (objects.length === 0)
245
+ return 0;
246
+ let totalScore = 0;
247
+ let scored = 0;
248
+ for (const obj of objects) {
249
+ if (obj.parentName)
250
+ continue; // skip children
251
+ const template = findBestTemplate(templates, obj.type);
252
+ if (template) {
253
+ totalScore += template.computeAdherence(obj);
254
+ scored++;
255
+ }
256
+ else {
257
+ // No template available — check basic properties exist
258
+ totalScore += basicPropertyScore(obj);
259
+ scored++;
260
+ }
261
+ }
262
+ return scored > 0 ? Math.round(totalScore / scored) : 85;
263
+ }
264
+ function basicPropertyScore(obj) {
265
+ let score = 60; // baseline for having the object at all
266
+ if (obj.type === "business_component" && obj.properties.some((p) => p.name === "TABLE"))
267
+ score += 20;
268
+ if (obj.type === "applet" && obj.properties.some((p) => p.name === "BUS_COMP"))
269
+ score += 20;
270
+ if (obj.type === "view" && obj.properties.some((p) => p.name === "BUS_OBJECT"))
271
+ score += 20;
272
+ if (obj.properties.some((p) => p.name === "CLASS"))
273
+ score += 10;
274
+ if (obj.name && obj.name.length > 0)
275
+ score += 10;
276
+ return Math.min(100, score);
277
+ }
278
+ //# sourceMappingURL=scaffold-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-generator.js","sourceRoot":"","sources":["../../../src/core/siebel/scaffold-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Siebel Object Context Builder — builds token-efficient context combining
3
+ * definition, scripts, user props, dependencies, and similar objects.
4
+ */
5
+ import type { SiebelObject, SiebelDependency, SiebelObjectType } from "../../schemas/siebel.schema.js";
6
+ /**
7
+ * Build complete context for a Siebel object in compressed markdown format.
8
+ */
9
+ export declare function buildSiebelObjectContext(objectName: string, objectType: SiebelObjectType, objects: SiebelObject[], dependencies: SiebelDependency[]): string;
10
+ //# sourceMappingURL=siebel-context-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siebel-context-builder.d.ts","sourceRoot":"","sources":["../../../src/core/siebel/siebel-context-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvG;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,YAAY,EAAE,EACvB,YAAY,EAAE,gBAAgB,EAAE,GAC/B,MAAM,CAuER"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Siebel Object Context Builder — builds token-efficient context combining
3
+ * definition, scripts, user props, dependencies, and similar objects.
4
+ */
5
+ /**
6
+ * Build complete context for a Siebel object in compressed markdown format.
7
+ */
8
+ export function buildSiebelObjectContext(objectName, objectType, objects, dependencies) {
9
+ const obj = objects.find((o) => o.name === objectName && o.type === objectType && !o.parentName);
10
+ if (!obj) {
11
+ return `Object "${objectName}" (${objectType}) not found.`;
12
+ }
13
+ const parts = [];
14
+ // Header
15
+ parts.push(`# ${objectType}: ${obj.name}`);
16
+ if (obj.project)
17
+ parts.push(`Project: ${obj.project}`);
18
+ // Properties (compact)
19
+ if (obj.properties.length > 0) {
20
+ parts.push(`\n## Props`);
21
+ for (const p of obj.properties) {
22
+ parts.push(`${p.name}=${p.value}`);
23
+ }
24
+ }
25
+ // Children by type (grouped)
26
+ const childGroups = new Map();
27
+ for (const child of obj.children) {
28
+ const group = childGroups.get(child.type) ?? [];
29
+ group.push(child);
30
+ childGroups.set(child.type, group);
31
+ }
32
+ for (const [type, children] of childGroups) {
33
+ if (type === "escript") {
34
+ parts.push(`\n## Scripts (${children.length})`);
35
+ for (const script of children) {
36
+ const method = script.properties.find((p) => p.name === "METHOD")?.value ?? script.name;
37
+ const sourceCode = script.properties.find((p) => p.name === "SOURCE_CODE")?.value;
38
+ parts.push(`### ${method}`);
39
+ if (sourceCode) {
40
+ parts.push("```js");
41
+ parts.push(sourceCode);
42
+ parts.push("```");
43
+ }
44
+ }
45
+ }
46
+ else if (type === "user_property") {
47
+ parts.push(`\n## User Props (${children.length})`);
48
+ for (const up of children) {
49
+ const val = up.properties.find((p) => p.name === "VALUE")?.value ?? "";
50
+ parts.push(`${up.name}=${val}`);
51
+ }
52
+ }
53
+ else {
54
+ parts.push(`\n## ${type} (${children.length})`);
55
+ for (const child of children) {
56
+ const props = child.properties.map((p) => `${p.name}=${p.value}`).join(", ");
57
+ parts.push(`- ${child.name}${props ? ` (${props})` : ""}`);
58
+ }
59
+ }
60
+ }
61
+ // Dependencies (bidirectional)
62
+ const outbound = dependencies.filter((d) => d.from.name === obj.name && d.from.type === obj.type);
63
+ const inbound = dependencies.filter((d) => d.to.name === obj.name && d.to.type === obj.type);
64
+ if (outbound.length > 0 || inbound.length > 0) {
65
+ parts.push(`\n## Deps`);
66
+ for (const d of outbound) {
67
+ parts.push(`→ ${d.relationType} ${d.to.type}:${d.to.name}`);
68
+ }
69
+ for (const d of inbound) {
70
+ parts.push(`← ${d.from.type}:${d.from.name} ${d.relationType}`);
71
+ }
72
+ }
73
+ return parts.join("\n");
74
+ }
75
+ //# sourceMappingURL=siebel-context-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siebel-context-builder.js","sourceRoot":"","sources":["../../../src/core/siebel/siebel-context-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Siebel RAG Booster — adjusts ranking based on lifecycle phase.
3
+ */
4
+ export interface ScoredDoc {
5
+ id: string;
6
+ sourceType: string;
7
+ title: string;
8
+ score: number;
9
+ metadata?: Record<string, unknown>;
10
+ }
11
+ export interface BoostedDoc extends ScoredDoc {
12
+ boostedScore: number;
13
+ boostReason?: string;
14
+ }
15
+ /**
16
+ * Boost Siebel search results based on lifecycle phase.
17
+ */
18
+ export declare function boostSiebelResults(docs: ScoredDoc[], phase: string): BoostedDoc[];
19
+ //# sourceMappingURL=siebel-rag-booster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siebel-rag-booster.d.ts","sourceRoot":"","sources":["../../../src/core/siebel/siebel-rag-booster.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAuBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAiBjF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Siebel RAG Booster — adjusts ranking based on lifecycle phase.
3
+ */
4
+ const PHASE_BOOSTS = {
5
+ DESIGN: {
6
+ siebel_pattern: { factor: 1.5, reason: "patterns relevant for design decisions" },
7
+ siebel_sif: { factor: 1.2, reason: "object definitions for architecture" },
8
+ },
9
+ IMPLEMENT: {
10
+ siebel_escript: { factor: 1.5, reason: "code examples for implementation" },
11
+ siebel_sif: { factor: 1.3, reason: "field definitions for implementation" },
12
+ },
13
+ VALIDATE: {
14
+ siebel_contract: { factor: 1.5, reason: "contracts for validation" },
15
+ siebel_wsdl: { factor: 1.3, reason: "WSDL specs for test generation" },
16
+ },
17
+ REVIEW: {
18
+ siebel_pattern: { factor: 1.3, reason: "patterns for compliance check" },
19
+ siebel_escript: { factor: 1.2, reason: "scripts for quality review" },
20
+ },
21
+ };
22
+ /**
23
+ * Boost Siebel search results based on lifecycle phase.
24
+ */
25
+ export function boostSiebelResults(docs, phase) {
26
+ const boosts = PHASE_BOOSTS[phase] ?? {};
27
+ const boosted = docs.map((doc) => {
28
+ const boost = boosts[doc.sourceType];
29
+ if (boost) {
30
+ return {
31
+ ...doc,
32
+ boostedScore: doc.score * boost.factor,
33
+ boostReason: boost.reason,
34
+ };
35
+ }
36
+ return { ...doc, boostedScore: doc.score };
37
+ });
38
+ boosted.sort((a, b) => b.boostedScore - a.boostedScore);
39
+ return boosted;
40
+ }
41
+ //# sourceMappingURL=siebel-rag-booster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siebel-rag-booster.js","sourceRoot":"","sources":["../../../src/core/siebel/siebel-rag-booster.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,MAAM,YAAY,GAAgC;IAChD,MAAM,EAAE;QACN,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,wCAAwC,EAAE;QACjF,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,qCAAqC,EAAE;KAC3E;IACD,SAAS,EAAE;QACT,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,kCAAkC,EAAE;QAC3E,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,sCAAsC,EAAE;KAC5E;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,0BAA0B,EAAE;QACpE,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,gCAAgC,EAAE;KACvE;IACD,MAAM,EAAE;QACN,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,+BAA+B,EAAE;QACxE,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,4BAA4B,EAAE;KACtE;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,KAAa;IACjE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,GAAG,GAAG;gBACN,YAAY,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM;gBACtC,WAAW,EAAE,KAAK,CAAC,MAAM;aAC1B,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Siebel Validators — security, performance, and migration readiness validation.
3
+ *
4
+ * Tasks 10.2, 10.3, 10.4 of Epic 10: Validação Avançada e Compliance.
5
+ */
6
+ import type { SiebelObject, SiebelObjectType, SiebelDependency } from "../../schemas/siebel.schema.js";
7
+ export interface SensitiveFieldHit {
8
+ readonly bcName: string;
9
+ readonly fieldName: string;
10
+ readonly columnName: string;
11
+ readonly reason: string;
12
+ }
13
+ export interface DangerousOperation {
14
+ readonly objectName: string;
15
+ readonly objectType: SiebelObjectType;
16
+ readonly operation: string;
17
+ readonly reason: string;
18
+ }
19
+ export interface VisibilityIssue {
20
+ readonly objectName: string;
21
+ readonly objectType: SiebelObjectType;
22
+ readonly issue: string;
23
+ }
24
+ export interface LgpdReport {
25
+ readonly personalFieldsExposed: number;
26
+ readonly fields: readonly {
27
+ bcName: string;
28
+ fieldName: string;
29
+ }[];
30
+ }
31
+ export interface SecurityValidationResult {
32
+ readonly status: "valid" | "warnings" | "invalid";
33
+ readonly sensitiveFields: readonly SensitiveFieldHit[];
34
+ readonly dangerousOperations: readonly DangerousOperation[];
35
+ readonly visibilityIssues: readonly VisibilityIssue[];
36
+ readonly lgpdReport: LgpdReport;
37
+ }
38
+ export declare function validateSecurity(objects: readonly SiebelObject[]): SecurityValidationResult;
39
+ export interface PerformanceIssue {
40
+ readonly objectName: string;
41
+ readonly objectType: SiebelObjectType;
42
+ readonly rule: string;
43
+ readonly severity: "warning" | "error";
44
+ readonly detail: string;
45
+ }
46
+ export interface PerformanceValidationResult {
47
+ readonly status: "valid" | "warnings" | "invalid";
48
+ readonly issues: readonly PerformanceIssue[];
49
+ }
50
+ export declare function validatePerformance(objects: readonly SiebelObject[]): PerformanceValidationResult;
51
+ export interface MigrationChecklistItem {
52
+ readonly check: string;
53
+ readonly status: "green" | "yellow" | "red";
54
+ readonly detail: string;
55
+ }
56
+ export interface HardcodedValue {
57
+ readonly objectName: string;
58
+ readonly pattern: string;
59
+ readonly snippet: string;
60
+ }
61
+ export interface MigrationReadinessResult {
62
+ readonly status: "valid" | "warnings" | "invalid";
63
+ readonly unresolvedDeps: readonly {
64
+ from: string;
65
+ to: string;
66
+ toType: string;
67
+ }[];
68
+ readonly hasCycles: boolean;
69
+ readonly hardcodedValues: readonly HardcodedValue[];
70
+ readonly checklist: readonly MigrationChecklistItem[];
71
+ }
72
+ export declare function validateMigrationReadiness(objects: readonly SiebelObject[], dependencies: readonly SiebelDependency[]): MigrationReadinessResult;
73
+ //# sourceMappingURL=siebel-validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siebel-validators.d.ts","sourceRoot":"","sources":["../../../src/core/siebel/siebel-validators.ts"],"names":[],"mappings":"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"}