sdlc-agent-4-enterprise-server 1.26.0 → 1.27.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 +1 -1
- package/dev-server.log +0 -0
- package/dist/config/feature-flags.d.ts +48 -0
- package/dist/config/feature-flags.js +85 -0
- package/dist/config/feature-flags.js.map +1 -0
- package/dist/database/adapters/SqliteAdapter.js +5 -4
- package/dist/database/adapters/SqliteAdapter.js.map +1 -1
- package/dist/database/adapters/SqliteAsyncAdapter.js +4 -3
- package/dist/database/adapters/SqliteAsyncAdapter.js.map +1 -1
- package/dist/database/adapters/sqlite-placeholders.d.ts +8 -0
- package/dist/database/adapters/sqlite-placeholders.js +11 -0
- package/dist/database/adapters/sqlite-placeholders.js.map +1 -0
- package/dist/database/migration/pg-schema-ensure.js +3 -0
- package/dist/database/migration/pg-schema-ensure.js.map +1 -1
- package/dist/engine/enrichment/CodeEnrichmentHandler.js +9 -4
- package/dist/engine/enrichment/CodeEnrichmentHandler.js.map +1 -1
- package/dist/engine/enrichment/CodeEnrichmentPromptBuilder.js +13 -4
- package/dist/engine/enrichment/CodeEnrichmentPromptBuilder.js.map +1 -1
- package/dist/engine/enrichment/CodeEnrichmentTaskCreator.d.ts +18 -2
- package/dist/engine/enrichment/CodeEnrichmentTaskCreator.js +78 -24
- package/dist/engine/enrichment/CodeEnrichmentTaskCreator.js.map +1 -1
- package/dist/engine/enrichment/types.d.ts +6 -0
- package/dist/engine/enrichment/types.js +2 -0
- package/dist/engine/enrichment/types.js.map +1 -1
- package/dist/engine/graph/graph-sync-service.d.ts +4 -0
- package/dist/engine/graph/graph-sync-service.js +19 -5
- package/dist/engine/graph/graph-sync-service.js.map +1 -1
- package/dist/knowledge/KnowledgeService.js +25 -3
- package/dist/knowledge/KnowledgeService.js.map +1 -1
- package/dist/modules/ModuleFactory.js +3 -0
- package/dist/modules/ModuleFactory.js.map +1 -1
- package/dist/modules/code-intel/CodeIntelModule.d.ts +1 -0
- package/dist/modules/code-intel/CodeIntelModule.js +13 -1
- package/dist/modules/code-intel/CodeIntelModule.js.map +1 -1
- package/dist/modules/code-intel/onboarding/MarkdownGenerator.d.ts +23 -0
- package/dist/modules/code-intel/onboarding/MarkdownGenerator.js +110 -0
- package/dist/modules/code-intel/onboarding/MarkdownGenerator.js.map +1 -0
- package/dist/modules/code-intel/onboarding/OnboardingService.d.ts +26 -0
- package/dist/modules/code-intel/onboarding/OnboardingService.js +109 -0
- package/dist/modules/code-intel/onboarding/OnboardingService.js.map +1 -0
- package/dist/modules/code-intel/onboarding/OnboardingToolHandler.d.ts +17 -0
- package/dist/modules/code-intel/onboarding/OnboardingToolHandler.js +40 -0
- package/dist/modules/code-intel/onboarding/OnboardingToolHandler.js.map +1 -0
- package/dist/modules/code-intel/onboarding/WorkspaceAnalyzer.d.ts +28 -0
- package/dist/modules/code-intel/onboarding/WorkspaceAnalyzer.js +169 -0
- package/dist/modules/code-intel/onboarding/WorkspaceAnalyzer.js.map +1 -0
- package/dist/modules/code-intel/onboarding/definitions.d.ts +6 -0
- package/dist/modules/code-intel/onboarding/definitions.js +24 -0
- package/dist/modules/code-intel/onboarding/definitions.js.map +1 -0
- package/dist/modules/code-intel/onboarding/models.d.ts +57 -0
- package/dist/modules/code-intel/onboarding/models.js +12 -0
- package/dist/modules/code-intel/onboarding/models.js.map +1 -0
- package/dist/modules/memory/MemoryModuleBuilder.js +4 -0
- package/dist/modules/memory/MemoryModuleBuilder.js.map +1 -1
- package/dist/modules/memory/definitions/index.d.ts +14 -205
- package/dist/modules/memory/definitions/index.js +3 -1
- package/dist/modules/memory/definitions/index.js.map +1 -1
- package/dist/modules/memory/definitions/skills.d.ts +18 -0
- package/dist/modules/memory/definitions/skills.js +21 -0
- package/dist/modules/memory/definitions/skills.js.map +1 -0
- package/dist/modules/memory/dispatchers/dispatcher.js +4 -0
- package/dist/modules/memory/dispatchers/dispatcher.js.map +1 -1
- package/dist/modules/memory/dispatchers/evolution.js +131 -2
- package/dist/modules/memory/dispatchers/evolution.js.map +1 -1
- package/dist/modules/memory/dispatchers/learning.d.ts +19 -0
- package/dist/modules/memory/dispatchers/learning.js +62 -0
- package/dist/modules/memory/dispatchers/learning.js.map +1 -0
- package/dist/modules/memory/dispatchers/procedure.js +5 -2
- package/dist/modules/memory/dispatchers/procedure.js.map +1 -1
- package/dist/modules/memory/dispatchers/skills.d.ts +35 -0
- package/dist/modules/memory/dispatchers/skills.js +98 -0
- package/dist/modules/memory/dispatchers/skills.js.map +1 -0
- package/dist/modules/memory/engine/core.js +28 -22
- package/dist/modules/memory/engine/core.js.map +1 -1
- package/dist/modules/memory/engine/crud.js +63 -13
- package/dist/modules/memory/engine/crud.js.map +1 -1
- package/dist/modules/memory/engine/pega-search.d.ts +26 -0
- package/dist/modules/memory/engine/pega-search.js +135 -0
- package/dist/modules/memory/engine/pega-search.js.map +1 -0
- package/dist/modules/memory/evolution/ContradictionService.d.ts +59 -0
- package/dist/modules/memory/evolution/ContradictionService.js +159 -0
- package/dist/modules/memory/evolution/ContradictionService.js.map +1 -0
- package/dist/modules/memory/evolution/InstinctConfigService.d.ts +30 -0
- package/dist/modules/memory/evolution/InstinctConfigService.js +61 -0
- package/dist/modules/memory/evolution/InstinctConfigService.js.map +1 -0
- package/dist/modules/memory/evolution/InstinctPromotionService.d.ts +37 -0
- package/dist/modules/memory/evolution/InstinctPromotionService.js +79 -0
- package/dist/modules/memory/evolution/InstinctPromotionService.js.map +1 -0
- package/dist/modules/memory/evolution/index.d.ts +6 -0
- package/dist/modules/memory/evolution/index.js +4 -0
- package/dist/modules/memory/evolution/index.js.map +1 -1
- package/dist/modules/memory/handlers/InstinctIngestionHandler.d.ts +40 -0
- package/dist/modules/memory/handlers/InstinctIngestionHandler.js +58 -0
- package/dist/modules/memory/handlers/InstinctIngestionHandler.js.map +1 -0
- package/dist/modules/memory/learning/ClusteringService.d.ts +51 -0
- package/dist/modules/memory/learning/ClusteringService.js +110 -0
- package/dist/modules/memory/learning/ClusteringService.js.map +1 -0
- package/dist/modules/memory/learning/PatternClassifier.d.ts +20 -0
- package/dist/modules/memory/learning/PatternClassifier.js +95 -0
- package/dist/modules/memory/learning/PatternClassifier.js.map +1 -0
- package/dist/modules/memory/learning/PatternExtractor.d.ts +32 -0
- package/dist/modules/memory/learning/PatternExtractor.js +144 -0
- package/dist/modules/memory/learning/PatternExtractor.js.map +1 -0
- package/dist/modules/memory/learning/SessionAnalyzer.d.ts +31 -0
- package/dist/modules/memory/learning/SessionAnalyzer.js +105 -0
- package/dist/modules/memory/learning/SessionAnalyzer.js.map +1 -0
- package/dist/modules/memory/learning/index.d.ts +9 -0
- package/dist/modules/memory/learning/index.js +9 -0
- package/dist/modules/memory/learning/index.js.map +1 -0
- package/dist/modules/memory/learning/types.d.ts +46 -0
- package/dist/modules/memory/learning/types.js +11 -0
- package/dist/modules/memory/learning/types.js.map +1 -0
- package/dist/modules/memory/llm/LLMInitializer.d.ts +1 -0
- package/dist/modules/memory/llm/LLMInitializer.js +27 -5
- package/dist/modules/memory/llm/LLMInitializer.js.map +1 -1
- package/dist/modules/memory/migrations/005-unique-source-project.d.ts +9 -0
- package/dist/modules/memory/migrations/005-unique-source-project.js +44 -0
- package/dist/modules/memory/migrations/005-unique-source-project.js.map +1 -0
- package/dist/modules/memory/migrations/006-pending-tasks-project-id.d.ts +9 -0
- package/dist/modules/memory/migrations/006-pending-tasks-project-id.js +44 -0
- package/dist/modules/memory/migrations/006-pending-tasks-project-id.js.map +1 -0
- package/dist/modules/memory/migrations/007-add-instinct-tables.d.ts +8 -0
- package/dist/modules/memory/migrations/007-add-instinct-tables.js +69 -0
- package/dist/modules/memory/migrations/007-add-instinct-tables.js.map +1 -0
- package/dist/modules/memory/task-queue/PendingTaskRepository.d.ts +21 -2
- package/dist/modules/memory/task-queue/PendingTaskRepository.js +55 -7
- package/dist/modules/memory/task-queue/PendingTaskRepository.js.map +1 -1
- package/dist/modules/memory/task-queue/TaskWorker.d.ts +4 -0
- package/dist/modules/memory/task-queue/TaskWorker.js +14 -2
- package/dist/modules/memory/task-queue/TaskWorker.js.map +1 -1
- package/dist/modules/memory/task-queue/models.d.ts +2 -0
- package/dist/modules/memory/tool-definitions.js +1 -0
- package/dist/modules/memory/tool-definitions.js.map +1 -1
- package/dist/modules/pega/PegaContentExtractor.d.ts +13 -0
- package/dist/modules/pega/PegaContentExtractor.js +230 -0
- package/dist/modules/pega/PegaContentExtractor.js.map +1 -0
- package/dist/modules/pega/PegaKbSync.d.ts +1 -0
- package/dist/modules/pega/PegaKbSync.js +22 -9
- package/dist/modules/pega/PegaKbSync.js.map +1 -1
- package/dist/modules/pega/PegaService.js +58 -17
- package/dist/modules/pega/PegaService.js.map +1 -1
- package/dist/modules/pega/PegaSymbolSync.d.ts +25 -0
- package/dist/modules/pega/PegaSymbolSync.js +154 -0
- package/dist/modules/pega/PegaSymbolSync.js.map +1 -0
- package/dist/modules/pega/pega-mapping.d.ts +39 -0
- package/dist/modules/pega/pega-mapping.js +73 -0
- package/dist/modules/pega/pega-mapping.js.map +1 -0
- package/dist/modules/security/SecurityModule.d.ts +33 -0
- package/dist/modules/security/SecurityModule.js +98 -0
- package/dist/modules/security/SecurityModule.js.map +1 -0
- package/dist/modules/security/agentshield/AgentShieldScanner.d.ts +21 -0
- package/dist/modules/security/agentshield/AgentShieldScanner.js +66 -0
- package/dist/modules/security/agentshield/AgentShieldScanner.js.map +1 -0
- package/dist/modules/security/agentshield/AgentShieldToolHandler.d.ts +17 -0
- package/dist/modules/security/agentshield/AgentShieldToolHandler.js +40 -0
- package/dist/modules/security/agentshield/AgentShieldToolHandler.js.map +1 -0
- package/dist/modules/security/agentshield/definitions.d.ts +6 -0
- package/dist/modules/security/agentshield/definitions.js +28 -0
- package/dist/modules/security/agentshield/definitions.js.map +1 -0
- package/dist/modules/security/agentshield/models.d.ts +53 -0
- package/dist/modules/security/agentshield/models.js +13 -0
- package/dist/modules/security/agentshield/models.js.map +1 -0
- package/dist/modules/security/agentshield/rules/HttpEndpointRule.d.ts +15 -0
- package/dist/modules/security/agentshield/rules/HttpEndpointRule.js +44 -0
- package/dist/modules/security/agentshield/rules/HttpEndpointRule.js.map +1 -0
- package/dist/modules/security/agentshield/rules/InjectionDetector.d.ts +16 -0
- package/dist/modules/security/agentshield/rules/InjectionDetector.js +61 -0
- package/dist/modules/security/agentshield/rules/InjectionDetector.js.map +1 -0
- package/dist/modules/security/agentshield/rules/PermissionRule.d.ts +15 -0
- package/dist/modules/security/agentshield/rules/PermissionRule.js +40 -0
- package/dist/modules/security/agentshield/rules/PermissionRule.js.map +1 -0
- package/dist/modules/security/agentshield/rules/SecretDetector.d.ts +14 -0
- package/dist/modules/security/agentshield/rules/SecretDetector.js +55 -0
- package/dist/modules/security/agentshield/rules/SecretDetector.js.map +1 -0
- package/dist/modules/security/agentshield/rules/TlsValidator.d.ts +14 -0
- package/dist/modules/security/agentshield/rules/TlsValidator.js +52 -0
- package/dist/modules/security/agentshield/rules/TlsValidator.js.map +1 -0
- package/dist/modules/security/gateguard/GateGuardRepository.d.ts +32 -0
- package/dist/modules/security/gateguard/GateGuardRepository.js +135 -0
- package/dist/modules/security/gateguard/GateGuardRepository.js.map +1 -0
- package/dist/modules/security/gateguard/GateGuardService.d.ts +40 -0
- package/dist/modules/security/gateguard/GateGuardService.js +143 -0
- package/dist/modules/security/gateguard/GateGuardService.js.map +1 -0
- package/dist/modules/security/gateguard/GateGuardToolHandler.d.ts +23 -0
- package/dist/modules/security/gateguard/GateGuardToolHandler.js +89 -0
- package/dist/modules/security/gateguard/GateGuardToolHandler.js.map +1 -0
- package/dist/modules/security/gateguard/definitions.d.ts +6 -0
- package/dist/modules/security/gateguard/definitions.js +51 -0
- package/dist/modules/security/gateguard/definitions.js.map +1 -0
- package/dist/modules/security/gateguard/models.d.ts +101 -0
- package/dist/modules/security/gateguard/models.js +33 -0
- package/dist/modules/security/gateguard/models.js.map +1 -0
- package/dist/server/routes/admin/kb-entries.js +5 -2
- package/dist/server/routes/admin/kb-entries.js.map +1 -1
- package/dist/server/routes/enrichment-status-routes.js +59 -7
- package/dist/server/routes/enrichment-status-routes.js.map +1 -1
- package/dist/server/routes/pega-api.js +3 -2
- package/dist/server/routes/pega-api.js.map +1 -1
- package/dist/servers/atlassian/models/jira-schemas.d.ts +3 -2
- package/dist/servers/atlassian/models/jira-schemas.js +2 -1
- package/dist/servers/atlassian/models/jira-schemas.js.map +1 -1
- package/dist/shared/schemas/EnrichmentStatusSchema.d.ts +3 -0
- package/dist/shared/schemas/EnrichmentStatusSchema.js +1 -0
- package/dist/shared/schemas/EnrichmentStatusSchema.js.map +1 -1
- package/package.json +1 -1
- package/scripts/backfill-project-id.ts +13 -0
- package/scripts/check-pega-tasks.ts +30 -0
- package/scripts/create-enrichment-tasks.ts +70 -0
- package/scripts/debug-enrichment.ts +24 -0
- package/scripts/migrate-pega-symbols.ts +238 -0
- package/scripts/migrate-sa4e-119.ts +245 -0
- package/scripts/prioritize-pega-tasks.ts +9 -0
- package/src/__tests__/sa4e-testkit.ts +2 -2
- package/src/config/feature-flags.ts +116 -0
- package/src/database/adapters/SqliteAdapter.ts +5 -4
- package/src/database/adapters/SqliteAsyncAdapter.ts +4 -3
- package/src/database/adapters/sqlite-placeholders.ts +10 -0
- package/src/database/migration/pg-schema-ensure.ts +3 -0
- package/src/engine/enrichment/CodeEnrichmentHandler.ts +9 -4
- package/src/engine/enrichment/CodeEnrichmentPromptBuilder.ts +12 -4
- package/src/engine/enrichment/CodeEnrichmentTaskCreator.ts +104 -31
- package/src/engine/enrichment/__tests__/CodeEnrichmentTaskCreator.test.ts +152 -0
- package/src/engine/enrichment/__tests__/enrichment-e2e.test.ts +239 -0
- package/src/engine/enrichment/__tests__/enrichment-strategy.test.ts +70 -0
- package/src/engine/enrichment/__tests__/pega-enrichment-prompt.test.ts +67 -0
- package/src/engine/enrichment/types.ts +2 -0
- package/src/engine/graph/graph-sync-service.ts +19 -5
- package/src/knowledge/KnowledgeService.ts +23 -2
- package/src/knowledge/__tests__/KnowledgeService.test.ts +21 -0
- package/src/knowledge/__tests__/routes.test.ts +23 -0
- package/src/modules/ModuleFactory.ts +3 -0
- package/src/modules/code-intel/CodeIntelModule.ts +14 -1
- package/src/modules/code-intel/onboarding/MarkdownGenerator.ts +126 -0
- package/src/modules/code-intel/onboarding/OnboardingService.ts +119 -0
- package/src/modules/code-intel/onboarding/OnboardingToolHandler.ts +48 -0
- package/src/modules/code-intel/onboarding/WorkspaceAnalyzer.ts +176 -0
- package/src/modules/code-intel/onboarding/__tests__/OnboardingService.test.ts +157 -0
- package/src/modules/code-intel/onboarding/definitions.ts +27 -0
- package/src/modules/code-intel/onboarding/models.ts +65 -0
- package/src/modules/memory/MemoryModuleBuilder.ts +4 -0
- package/src/modules/memory/__tests__/InstinctSystem.test.ts +344 -0
- package/src/modules/memory/__tests__/IsolationLayer.test.ts +10 -10
- package/src/modules/memory/__tests__/Learning.test.ts +400 -0
- package/src/modules/memory/__tests__/Skills.test.ts +199 -0
- package/src/modules/memory/__tests__/pega-search.test.ts +129 -0
- package/src/modules/memory/definitions/index.ts +3 -1
- package/src/modules/memory/definitions/skills.ts +21 -0
- package/src/modules/memory/dispatchers/dispatcher.ts +4 -0
- package/src/modules/memory/dispatchers/evolution.ts +170 -3
- package/src/modules/memory/dispatchers/learning.ts +84 -0
- package/src/modules/memory/dispatchers/procedure.ts +5 -2
- package/src/modules/memory/dispatchers/skills.ts +112 -0
- package/src/modules/memory/engine/core.ts +26 -23
- package/src/modules/memory/engine/crud.ts +63 -13
- package/src/modules/memory/engine/pega-search.ts +159 -0
- package/src/modules/memory/evolution/ContradictionService.ts +244 -0
- package/src/modules/memory/evolution/InstinctConfigService.ts +90 -0
- package/src/modules/memory/evolution/InstinctPromotionService.ts +120 -0
- package/src/modules/memory/evolution/index.ts +8 -0
- package/src/modules/memory/handlers/InstinctIngestionHandler.ts +83 -0
- package/src/modules/memory/learning/ClusteringService.ts +162 -0
- package/src/modules/memory/learning/PatternClassifier.ts +113 -0
- package/src/modules/memory/learning/PatternExtractor.ts +156 -0
- package/src/modules/memory/learning/SessionAnalyzer.ts +136 -0
- package/src/modules/memory/learning/index.ts +15 -0
- package/src/modules/memory/learning/types.ts +61 -0
- package/src/modules/memory/llm/LLMInitializer.ts +29 -5
- package/src/modules/memory/migrations/005-unique-source-project.ts +53 -0
- package/src/modules/memory/migrations/006-pending-tasks-project-id.ts +50 -0
- package/src/modules/memory/migrations/007-add-instinct-tables.ts +72 -0
- package/src/modules/memory/task-queue/PendingTaskRepository.ts +69 -9
- package/src/modules/memory/task-queue/TaskWorker.ts +19 -2
- package/src/modules/memory/task-queue/__tests__/TaskWorker.it.test.ts +1 -0
- package/src/modules/memory/task-queue/__tests__/TaskWorker.test.ts +94 -0
- package/src/modules/memory/task-queue/models.ts +2 -0
- package/src/modules/memory/tool-definitions.ts +1 -0
- package/src/modules/pega/PegaContentExtractor.ts +243 -0
- package/src/modules/pega/PegaKbSync.ts +23 -13
- package/src/modules/pega/PegaService.ts +71 -17
- package/src/modules/pega/PegaSymbolSync.ts +242 -0
- package/src/modules/pega/__tests__/PegaContentExtractor.test.ts +97 -0
- package/src/modules/pega/__tests__/PegaSymbolSync.test.ts +157 -0
- package/src/modules/pega/__tests__/pega-indexing.e2e.test.ts +61 -54
- package/src/modules/pega/__tests__/pega-mapping.test.ts +113 -0
- package/src/modules/pega/pega-mapping.ts +80 -0
- package/src/modules/security/SecurityModule.ts +112 -0
- package/src/modules/security/agentshield/AgentShieldScanner.ts +78 -0
- package/src/modules/security/agentshield/AgentShieldToolHandler.ts +48 -0
- package/src/modules/security/agentshield/__tests__/AgentShieldScanner.test.ts +149 -0
- package/src/modules/security/agentshield/definitions.ts +30 -0
- package/src/modules/security/agentshield/models.ts +62 -0
- package/src/modules/security/agentshield/rules/HttpEndpointRule.ts +53 -0
- package/src/modules/security/agentshield/rules/InjectionDetector.ts +72 -0
- package/src/modules/security/agentshield/rules/PermissionRule.ts +47 -0
- package/src/modules/security/agentshield/rules/SecretDetector.ts +64 -0
- package/src/modules/security/agentshield/rules/TlsValidator.ts +59 -0
- package/src/modules/security/gateguard/GateGuardRepository.ts +180 -0
- package/src/modules/security/gateguard/GateGuardService.ts +159 -0
- package/src/modules/security/gateguard/GateGuardToolHandler.ts +96 -0
- package/src/modules/security/gateguard/__tests__/GateGuardRepository.test.ts +80 -0
- package/src/modules/security/gateguard/__tests__/GateGuardService.test.ts +211 -0
- package/src/modules/security/gateguard/definitions.ts +53 -0
- package/src/modules/security/gateguard/models.ts +84 -0
- package/src/server/routes/admin/kb-entries.ts +5 -2
- package/src/server/routes/enrichment-status-routes.ts +66 -7
- package/src/server/routes/pega-api.ts +3 -2
- package/src/servers/atlassian/models/jira-schemas.ts +2 -1
- package/src/shared/schemas/EnrichmentStatusSchema.ts +1 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<img src="https://img.shields.io/badge/version-1.
|
|
9
|
+
<img src="https://img.shields.io/badge/version-1.27.1-blue?style=for-the-badge" alt="Version">
|
|
10
10
|
<img src="https://img.shields.io/badge/tools-66+-teal?style=for-the-badge" alt="Tools">
|
|
11
11
|
<img src="https://img.shields.io/badge/node-%3E%3D18-green?style=for-the-badge" alt="Node">
|
|
12
12
|
</p>
|
package/dev-server.log
ADDED
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SA4E-119 Feature Flags — ECC Feature Parity
|
|
3
|
+
*
|
|
4
|
+
* Controls incremental rollout of 12 ECC features.
|
|
5
|
+
* Flags can be overridden via environment variables (SA4E_FF_*) or config file.
|
|
6
|
+
*
|
|
7
|
+
* Reference: TDD Section 10.1 — Deployment Considerations / Feature Flags
|
|
8
|
+
*/
|
|
9
|
+
/** Feature flag configuration for SA4E-119 ECC features */
|
|
10
|
+
export interface SA4E119FeatureFlags {
|
|
11
|
+
/** Enable confidence scoring + instinct re-ranking (Knowledge Enhancement) */
|
|
12
|
+
confidenceScoring: boolean;
|
|
13
|
+
/** Enable GateGuard command blocking (Security and Safety) */
|
|
14
|
+
gateguard: boolean;
|
|
15
|
+
/** Enable AgentShield config scanning (Security and Safety) */
|
|
16
|
+
agentshield: boolean;
|
|
17
|
+
/** Enable skill pack system (Developer Productivity) */
|
|
18
|
+
skillPacks: boolean;
|
|
19
|
+
/** Enable model tier routing — requires multi-model config (Context Management) */
|
|
20
|
+
modelTiering: boolean;
|
|
21
|
+
/** Enable post-phase context compaction (Context Management) */
|
|
22
|
+
contextCompaction: boolean;
|
|
23
|
+
/** Enable auto-extraction of patterns on ticket completion (Knowledge Enhancement) */
|
|
24
|
+
patternExtraction: boolean;
|
|
25
|
+
/** Enable multi-voice council decisions — experimental (Quality Assurance) */
|
|
26
|
+
council: boolean;
|
|
27
|
+
/** Enable GAN-style adversarial review — experimental (Quality Assurance) */
|
|
28
|
+
adversarialReview: boolean;
|
|
29
|
+
}
|
|
30
|
+
/** Default flag values per TDD Section 10.1 */
|
|
31
|
+
export declare const SA4E_119_FLAG_DEFAULTS: Readonly<SA4E119FeatureFlags>;
|
|
32
|
+
/**
|
|
33
|
+
* Load SA4E-119 feature flags.
|
|
34
|
+
* Priority: env vars > overrides param > defaults.
|
|
35
|
+
*
|
|
36
|
+
* @param overrides Optional partial overrides (e.g., from config file)
|
|
37
|
+
* @returns Resolved feature flag values
|
|
38
|
+
*/
|
|
39
|
+
export declare function loadSA4E119Flags(overrides?: Partial<SA4E119FeatureFlags>): SA4E119FeatureFlags;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a specific SA4E-119 feature is enabled.
|
|
42
|
+
* Convenience wrapper for single-flag checks in module initialization.
|
|
43
|
+
*
|
|
44
|
+
* @param flag The feature flag key to check
|
|
45
|
+
* @param overrides Optional partial overrides
|
|
46
|
+
* @returns Whether the feature is enabled
|
|
47
|
+
*/
|
|
48
|
+
export declare function isFeatureEnabled(flag: keyof SA4E119FeatureFlags, overrides?: Partial<SA4E119FeatureFlags>): boolean;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SA4E-119 Feature Flags — ECC Feature Parity
|
|
3
|
+
*
|
|
4
|
+
* Controls incremental rollout of 12 ECC features.
|
|
5
|
+
* Flags can be overridden via environment variables (SA4E_FF_*) or config file.
|
|
6
|
+
*
|
|
7
|
+
* Reference: TDD Section 10.1 — Deployment Considerations / Feature Flags
|
|
8
|
+
*/
|
|
9
|
+
/** Default flag values per TDD Section 10.1 */
|
|
10
|
+
export const SA4E_119_FLAG_DEFAULTS = {
|
|
11
|
+
confidenceScoring: true,
|
|
12
|
+
gateguard: true,
|
|
13
|
+
agentshield: true,
|
|
14
|
+
skillPacks: true,
|
|
15
|
+
modelTiering: false, // Requires multi-model config
|
|
16
|
+
contextCompaction: true,
|
|
17
|
+
patternExtraction: true,
|
|
18
|
+
council: false, // Experimental
|
|
19
|
+
adversarialReview: false, // Experimental
|
|
20
|
+
};
|
|
21
|
+
/** Environment variable mapping for runtime override */
|
|
22
|
+
const ENV_MAPPING = {
|
|
23
|
+
confidenceScoring: 'SA4E_FF_CONFIDENCE_SCORING',
|
|
24
|
+
gateguard: 'SA4E_FF_GATEGUARD',
|
|
25
|
+
agentshield: 'SA4E_FF_AGENTSHIELD',
|
|
26
|
+
skillPacks: 'SA4E_FF_SKILL_PACKS',
|
|
27
|
+
modelTiering: 'SA4E_FF_MODEL_TIERING',
|
|
28
|
+
contextCompaction: 'SA4E_FF_CONTEXT_COMPACTION',
|
|
29
|
+
patternExtraction: 'SA4E_FF_PATTERN_EXTRACTION',
|
|
30
|
+
council: 'SA4E_FF_COUNCIL',
|
|
31
|
+
adversarialReview: 'SA4E_FF_ADVERSARIAL_REVIEW',
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Parse a boolean env var. Accepts "true"/"1"/"yes" as truthy, "false"/"0"/"no" as falsy.
|
|
35
|
+
* Returns undefined if env var is not set.
|
|
36
|
+
*/
|
|
37
|
+
function parseBoolEnv(value) {
|
|
38
|
+
if (value === undefined || value === '')
|
|
39
|
+
return undefined;
|
|
40
|
+
const lower = value.toLowerCase().trim();
|
|
41
|
+
if (['true', '1', 'yes'].includes(lower))
|
|
42
|
+
return true;
|
|
43
|
+
if (['false', '0', 'no'].includes(lower))
|
|
44
|
+
return false;
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Load SA4E-119 feature flags.
|
|
49
|
+
* Priority: env vars > overrides param > defaults.
|
|
50
|
+
*
|
|
51
|
+
* @param overrides Optional partial overrides (e.g., from config file)
|
|
52
|
+
* @returns Resolved feature flag values
|
|
53
|
+
*/
|
|
54
|
+
export function loadSA4E119Flags(overrides) {
|
|
55
|
+
const flags = { ...SA4E_119_FLAG_DEFAULTS };
|
|
56
|
+
// Apply config-level overrides
|
|
57
|
+
if (overrides) {
|
|
58
|
+
for (const key of Object.keys(overrides)) {
|
|
59
|
+
if (overrides[key] !== undefined) {
|
|
60
|
+
flags[key] = overrides[key];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Apply environment variable overrides (highest priority)
|
|
65
|
+
for (const [key, envVar] of Object.entries(ENV_MAPPING)) {
|
|
66
|
+
const envValue = parseBoolEnv(process.env[envVar]);
|
|
67
|
+
if (envValue !== undefined) {
|
|
68
|
+
flags[key] = envValue;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return flags;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if a specific SA4E-119 feature is enabled.
|
|
75
|
+
* Convenience wrapper for single-flag checks in module initialization.
|
|
76
|
+
*
|
|
77
|
+
* @param flag The feature flag key to check
|
|
78
|
+
* @param overrides Optional partial overrides
|
|
79
|
+
* @returns Whether the feature is enabled
|
|
80
|
+
*/
|
|
81
|
+
export function isFeatureEnabled(flag, overrides) {
|
|
82
|
+
const flags = loadSA4E119Flags(overrides);
|
|
83
|
+
return flags[flag];
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=feature-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAkC;IACnE,iBAAiB,EAAE,IAAI;IACvB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK,EAAQ,8BAA8B;IACzD,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,OAAO,EAAE,KAAK,EAAa,eAAe;IAC1C,iBAAiB,EAAE,KAAK,EAAG,eAAe;CAC3C,CAAC;AAEF,wDAAwD;AACxD,MAAM,WAAW,GAA8C;IAC7D,iBAAiB,EAAE,4BAA4B;IAC/C,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,qBAAqB;IAClC,UAAU,EAAE,qBAAqB;IACjC,YAAY,EAAE,uBAAuB;IACrC,iBAAiB,EAAE,4BAA4B;IAC/C,iBAAiB,EAAE,4BAA4B;IAC/C,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB,EAAE,4BAA4B;CAChD,CAAC;AAEF;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAwC;IAExC,MAAM,KAAK,GAAG,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE5C,+BAA+B;IAC/B,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAqC,EAAE,CAAC;YAC7E,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAE,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAgC,CAAC,GAAG,QAAQ,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAA+B,EAC/B,SAAwC;IAExC,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import Database from 'better-sqlite3';
|
|
7
7
|
import * as fs from 'fs';
|
|
8
8
|
import * as path from 'path';
|
|
9
|
+
import { normalizeSqlitePlaceholders } from './sqlite-placeholders.js';
|
|
9
10
|
export class SqliteAdapter {
|
|
10
11
|
dbPath;
|
|
11
12
|
nativeBinding;
|
|
@@ -50,16 +51,16 @@ export class SqliteAdapter {
|
|
|
50
51
|
};
|
|
51
52
|
}
|
|
52
53
|
run(sql, params) {
|
|
53
|
-
const stmt = this.getDb().prepare(sql);
|
|
54
|
+
const stmt = this.getDb().prepare(normalizeSqlitePlaceholders(sql));
|
|
54
55
|
const result = params ? stmt.run(...params) : stmt.run();
|
|
55
56
|
return { changes: result.changes, lastInsertRowid: result.lastInsertRowid };
|
|
56
57
|
}
|
|
57
58
|
get(sql, params) {
|
|
58
|
-
const stmt = this.getDb().prepare(sql);
|
|
59
|
+
const stmt = this.getDb().prepare(normalizeSqlitePlaceholders(sql));
|
|
59
60
|
return (params ? stmt.get(...params) : stmt.get());
|
|
60
61
|
}
|
|
61
62
|
all(sql, params) {
|
|
62
|
-
const stmt = this.getDb().prepare(sql);
|
|
63
|
+
const stmt = this.getDb().prepare(normalizeSqlitePlaceholders(sql));
|
|
63
64
|
return (params ? stmt.all(...params) : stmt.all());
|
|
64
65
|
}
|
|
65
66
|
exec(sql) {
|
|
@@ -69,7 +70,7 @@ export class SqliteAdapter {
|
|
|
69
70
|
return this.getDb().transaction(fn)();
|
|
70
71
|
}
|
|
71
72
|
prepare(sql) {
|
|
72
|
-
const stmt = this.getDb().prepare(sql);
|
|
73
|
+
const stmt = this.getDb().prepare(normalizeSqlitePlaceholders(sql));
|
|
73
74
|
return {
|
|
74
75
|
run: (...params) => {
|
|
75
76
|
const r = stmt.run(...params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteAdapter.js","sourceRoot":"","sources":["../../../src/database/adapters/SqliteAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteAdapter.js","sourceRoot":"","sources":["../../../src/database/adapters/SqliteAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Zero-overhead: all async methods delegate to sync SQLite calls wrapped in Promise.resolve().
|
|
4
4
|
* SA4E-44: Allows MemoryEngine and other modules to use uniform AsyncDatabaseAdapter interface.
|
|
5
5
|
*/
|
|
6
|
+
import { normalizeSqlitePlaceholders } from './sqlite-placeholders.js';
|
|
6
7
|
export class SqliteAsyncAdapter {
|
|
7
8
|
db;
|
|
8
9
|
constructor(db) {
|
|
@@ -13,16 +14,16 @@ export class SqliteAsyncAdapter {
|
|
|
13
14
|
isConnected() { return true; }
|
|
14
15
|
getEngine() { return 'sqlite'; }
|
|
15
16
|
async run(sql, params) {
|
|
16
|
-
const stmt = this.db.prepare(sql);
|
|
17
|
+
const stmt = this.db.prepare(normalizeSqlitePlaceholders(sql));
|
|
17
18
|
const r = params ? stmt.run(...params) : stmt.run();
|
|
18
19
|
return { changes: r.changes, lastInsertRowid: r.lastInsertRowid };
|
|
19
20
|
}
|
|
20
21
|
async get(sql, params) {
|
|
21
|
-
const stmt = this.db.prepare(sql);
|
|
22
|
+
const stmt = this.db.prepare(normalizeSqlitePlaceholders(sql));
|
|
22
23
|
return (params ? stmt.get(...params) : stmt.get());
|
|
23
24
|
}
|
|
24
25
|
async all(sql, params) {
|
|
25
|
-
const stmt = this.db.prepare(sql);
|
|
26
|
+
const stmt = this.db.prepare(normalizeSqlitePlaceholders(sql));
|
|
26
27
|
return (params ? stmt.all(...params) : stmt.all());
|
|
27
28
|
}
|
|
28
29
|
async exec(sql) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteAsyncAdapter.js","sourceRoot":"","sources":["../../../src/database/adapters/SqliteAsyncAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"SqliteAsyncAdapter.js","sourceRoot":"","sources":["../../../src/database/adapters/SqliteAsyncAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO,KAAuC,CAAC;IACrD,KAAK,CAAC,UAAU,KAA6C,CAAC;IAC9D,WAAW,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IACvC,SAAS,KAAqB,OAAO,QAAQ,CAAC,CAAC,CAAC;IAEhD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,MAAkB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACpD,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,MAAkB;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAkB,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,MAAkB;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAQ,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,EAAoB;QACvC,uFAAuF;QACvF,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,yEAAyE;IACzE,QAAQ,KAAwB,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite placeholder normalization.
|
|
3
|
+
* better-sqlite3 treats `$1`/`$2` as *named* parameters, so array binding
|
|
4
|
+
* (stmt.run(...params)) throws "Too many parameter values were provided".
|
|
5
|
+
* Cross-engine SQL often uses `$n` (PostgreSQL style). Normalize them to `?`
|
|
6
|
+
* so array binding works on SQLite too.
|
|
7
|
+
*/
|
|
8
|
+
export declare function normalizeSqlitePlaceholders(sql: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite placeholder normalization.
|
|
3
|
+
* better-sqlite3 treats `$1`/`$2` as *named* parameters, so array binding
|
|
4
|
+
* (stmt.run(...params)) throws "Too many parameter values were provided".
|
|
5
|
+
* Cross-engine SQL often uses `$n` (PostgreSQL style). Normalize them to `?`
|
|
6
|
+
* so array binding works on SQLite too.
|
|
7
|
+
*/
|
|
8
|
+
export function normalizeSqlitePlaceholders(sql) {
|
|
9
|
+
return sql.replace(/\$(\d+)/g, '?');
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=sqlite-placeholders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-placeholders.js","sourceRoot":"","sources":["../../../src/database/adapters/sqlite-placeholders.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACrD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -75,6 +75,9 @@ export async function ensurePostgresIndexSchema(adapter) {
|
|
|
75
75
|
// 4. Ensure pending_tasks has serial ID
|
|
76
76
|
await safeExec(adapter, `CREATE SEQUENCE IF NOT EXISTS pending_tasks_id_seq`);
|
|
77
77
|
await safeExec(adapter, `ALTER TABLE pending_tasks ALTER COLUMN id SET DEFAULT nextval('pending_tasks_id_seq')`);
|
|
78
|
+
// SA4E-171: Drop FK on pending_tasks.entry_id → knowledge_entries(id)
|
|
79
|
+
// This allows entry_id to store symbolId for CODE_ENRICHMENT tasks (OI-01)
|
|
80
|
+
await safeExec(adapter, `ALTER TABLE pending_tasks DROP CONSTRAINT IF EXISTS pending_tasks_entry_id_fkey`);
|
|
78
81
|
// 5. Ensure indexes exist
|
|
79
82
|
const indexes = [
|
|
80
83
|
'CREATE INDEX IF NOT EXISTS idx_files_project ON files(project_id)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-schema-ensure.js","sourceRoot":"","sources":["../../../src/database/migration/pg-schema-ensure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pg-schema-ensure.js","sourceRoot":"","sources":["../../../src/database/migration/pg-schema-ensure.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { CodeEnrichmentPromptBuilder } from './CodeEnrichmentPromptBuilder.js';
|
|
7
7
|
import { CodeEnrichmentPayloadSchema } from './types.js';
|
|
8
8
|
import { validateTags } from './tag-validator.js';
|
|
9
|
+
import { isPegaKind } from '../../modules/pega/pega-mapping.js';
|
|
9
10
|
/** LLM call timeout in milliseconds (BR-02). */
|
|
10
11
|
const LLM_TIMEOUT_MS = 30_000;
|
|
11
12
|
/** Max pseudo code length (BR-05). */
|
|
@@ -13,7 +14,6 @@ const MAX_PSEUDO_CODE_LENGTH = 2000;
|
|
|
13
14
|
// Strategy selection: which symbol kinds map to which enrichment strategy
|
|
14
15
|
const CLASS_KINDS = new Set(['class', 'interface', 'enum']);
|
|
15
16
|
const FUNCTION_KINDS = new Set(['function', 'method', 'arrow_function', 'generator']);
|
|
16
|
-
const PEGA_KINDS = new Set(['pega_activity', 'pega_data_transform', 'pega_flow']);
|
|
17
17
|
/**
|
|
18
18
|
* Orchestrates LLM enrichment for a single code symbol.
|
|
19
19
|
* Injected into TaskWorker via setCodeEnrichmentHandler().
|
|
@@ -47,7 +47,8 @@ export class CodeEnrichmentHandler {
|
|
|
47
47
|
await this.storeResults(payload.symbolId, response, strategy);
|
|
48
48
|
}
|
|
49
49
|
selectStrategy(kind, workspaceType) {
|
|
50
|
-
|
|
50
|
+
// SA4E-171: use isPegaKind() for all 16+ pega kinds (replaces static set)
|
|
51
|
+
if (workspaceType === 'pega' && isPegaKind(kind))
|
|
51
52
|
return 'PEGA_SUMMARY';
|
|
52
53
|
if (FUNCTION_KINDS.has(kind))
|
|
53
54
|
return 'FUNCTION_SUMMARY';
|
|
@@ -70,6 +71,9 @@ export class CodeEnrichmentHandler {
|
|
|
70
71
|
bodyText,
|
|
71
72
|
childMembers,
|
|
72
73
|
existingPseudoCode,
|
|
74
|
+
// SA4E-106: Pega class from payload or parent_symbol; ruleset from payload
|
|
75
|
+
pegaClass: payload.pegaClass || sym.parent_symbol || undefined,
|
|
76
|
+
pegaRuleset: payload.pegaRuleset || undefined,
|
|
73
77
|
};
|
|
74
78
|
}
|
|
75
79
|
async loadBodyText(symbolId) {
|
|
@@ -125,7 +129,7 @@ export class CodeEnrichmentHandler {
|
|
|
125
129
|
const tagsMatch = raw.match(/"tags"\s*:\s*\[([^\]]*)\]/);
|
|
126
130
|
const summary = summaryMatch?.[1] ?? raw.slice(0, 200).replace(/["\n]/g, ' ').trim();
|
|
127
131
|
const result = { summary };
|
|
128
|
-
if (strategy === 'FUNCTION_SUMMARY' && pseudoMatch) {
|
|
132
|
+
if ((strategy === 'FUNCTION_SUMMARY' || strategy === 'PEGA_SUMMARY') && pseudoMatch) {
|
|
129
133
|
result.pseudo_code = pseudoMatch[1];
|
|
130
134
|
}
|
|
131
135
|
if (tagsMatch) {
|
|
@@ -138,8 +142,9 @@ export class CodeEnrichmentHandler {
|
|
|
138
142
|
async storeResults(symbolId, response, strategy) {
|
|
139
143
|
const tags = validateTags(response.tags);
|
|
140
144
|
const tagsJson = tags.length > 0 ? JSON.stringify(tags) : null;
|
|
145
|
+
// SA4E-171: store pseudo_code for both FUNCTION and PEGA strategies
|
|
141
146
|
let pseudoCode = null;
|
|
142
|
-
if (strategy === 'FUNCTION_SUMMARY' && response.pseudo_code) {
|
|
147
|
+
if ((strategy === 'FUNCTION_SUMMARY' || strategy === 'PEGA_SUMMARY') && response.pseudo_code) {
|
|
143
148
|
pseudoCode = response.pseudo_code.length > MAX_PSEUDO_CODE_LENGTH
|
|
144
149
|
? response.pseudo_code.slice(0, MAX_PSEUDO_CODE_LENGTH) + '...'
|
|
145
150
|
: response.pseudo_code;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEnrichmentHandler.js","sourceRoot":"","sources":["../../../src/engine/enrichment/CodeEnrichmentHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeEnrichmentHandler.js","sourceRoot":"","sources":["../../../src/engine/enrichment/CodeEnrichmentHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,9 +64,11 @@ Valid tag categories: ${VALID_TAG_CATEGORIES.join(', ')}
|
|
|
64
64
|
Tag values: lowercase, alphanumeric + hyphens only. Max 8 tags.`;
|
|
65
65
|
}
|
|
66
66
|
pegaSystemPrompt() {
|
|
67
|
-
return `You are a Pega platform analyst.
|
|
68
|
-
Return JSON only: {"summary":"<1-3 sentences describing business purpose>"}
|
|
69
|
-
|
|
67
|
+
return `You are a Pega platform analyst. Analyze the business purpose and logic of this Pega rule.
|
|
68
|
+
Return JSON only: {"summary":"<1-3 sentences describing business purpose>","pseudo_code":"<structured pseudo code describing the rule logic, max 2000 chars>","tags":["category:value",...]}
|
|
69
|
+
Valid tag categories: ${VALID_TAG_CATEGORIES.join(', ')}
|
|
70
|
+
Tag values: lowercase, alphanumeric + hyphens only. Max 8 tags.
|
|
71
|
+
Focus on business intent and the main logic flow (steps, decisions, expressions).`;
|
|
70
72
|
}
|
|
71
73
|
buildClassUserPrompt(ctx) {
|
|
72
74
|
const parts = [`[${ctx.kind}] ${ctx.name}`];
|
|
@@ -106,8 +108,15 @@ Focus on business intent, not technical implementation.`;
|
|
|
106
108
|
parts.push(`Class: ${ctx.pegaClass}`);
|
|
107
109
|
if (ctx.pegaRuleset)
|
|
108
110
|
parts.push(`RuleSet: ${ctx.pegaRuleset}`);
|
|
111
|
+
if (ctx.signature)
|
|
112
|
+
parts.push(`Signature: ${ctx.signature}`);
|
|
113
|
+
// SA4E-106: rule body (steps/params/Java) extracted from rule.json
|
|
114
|
+
if (ctx.bodyText) {
|
|
115
|
+
const truncated = this.truncateToTokens(ctx.bodyText, MAX_BODY_TOKENS);
|
|
116
|
+
parts.push(`Rule Content:\n${truncated}`);
|
|
117
|
+
}
|
|
109
118
|
if (ctx.existingPseudoCode) {
|
|
110
|
-
parts.push(`Pseudo Code:\n${ctx.existingPseudoCode}`);
|
|
119
|
+
parts.push(`Existing Pseudo Code:\n${ctx.existingPseudoCode}`);
|
|
111
120
|
}
|
|
112
121
|
return parts.join('\n');
|
|
113
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEnrichmentPromptBuilder.js","sourceRoot":"","sources":["../../../src/engine/enrichment/CodeEnrichmentPromptBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,wDAAwD;AACxD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IACtC;;;;;OAKG;IACH,KAAK,CAAC,QAA4B,EAAE,OAAsB;QACxD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,eAAe,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7D,KAAK,kBAAkB,CAAC,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnE,KAAK,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC/D,KAAK,cAAc,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,GAAkB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,oBAAoB,CAAC,GAAkB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,kBAAkB,CAAC,GAAkB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,gBAAgB,CAAC,GAAkB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,iBAAiB;QACvB,OAAO;;wBAEa,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;oDACH,CAAC;IACnD,CAAC;IAEO,oBAAoB;QAC1B,OAAO;;wBAEa,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;;+DAEQ,CAAC;IAC9D,CAAC;IAEO,eAAe;QACrB,OAAO;;wBAEa,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;gEACS,CAAC;IAC/D,CAAC;IAEO,gBAAgB;QACtB,OAAO;;
|
|
1
|
+
{"version":3,"file":"CodeEnrichmentPromptBuilder.js","sourceRoot":"","sources":["../../../src/engine/enrichment/CodeEnrichmentPromptBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,12 +31,28 @@ export declare class CodeEnrichmentTaskCreator {
|
|
|
31
31
|
* @returns Number of tasks created
|
|
32
32
|
*/
|
|
33
33
|
createTasksForProject(projectId: string): Promise<number>;
|
|
34
|
-
/** Skip if symbol already enriched (
|
|
34
|
+
/** Skip if symbol already fully enriched (has summary). */
|
|
35
35
|
private shouldCreateTask;
|
|
36
|
+
/**
|
|
37
|
+
* SA4E-106: Copy enrichment data from an already-enriched scope to current project.
|
|
38
|
+
* Matches by file content_hash + symbol name + kind.
|
|
39
|
+
* Uses COALESCE for pseudo_code to preserve PegaLogicNormalizer output.
|
|
40
|
+
* @param filePath - Relative file path in current project
|
|
41
|
+
* @param projectId - Current project ID
|
|
42
|
+
* @returns Number of symbols updated
|
|
43
|
+
*/
|
|
44
|
+
private copyEnrichmentFromOtherScope;
|
|
45
|
+
/** Find a source file (another project) with enriched symbols for same content. */
|
|
46
|
+
private findSourceFileId;
|
|
47
|
+
/** Get the target file ID in the current project. */
|
|
48
|
+
private findTargetFileId;
|
|
49
|
+
/** Load enriched symbols from source file. */
|
|
50
|
+
private loadEnrichedSymbols;
|
|
51
|
+
/** Apply enrichment copy from source symbols to target file symbols. */
|
|
52
|
+
private applyEnrichmentCopy;
|
|
36
53
|
/**
|
|
37
54
|
* Cross-scope dedup: check if the same file (by content_hash) has already been
|
|
38
55
|
* enriched in another project. If yes, skip LLM task creation entirely.
|
|
39
|
-
* The enrichment data remains queryable from the other project's symbols.
|
|
40
56
|
*/
|
|
41
57
|
private isFileEnrichedInOtherScope;
|
|
42
58
|
private getSymbolKind;
|