snow-flow 3.0.9 → 3.0.13
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/claude-flow.bat +0 -0
- package/claude-flow.ps1 +0 -0
- package/dist/mcp/intelligent-reporting-mcp.d.ts +7 -0
- package/dist/mcp/intelligent-reporting-mcp.js +379 -0
- package/dist/mcp/servicenow-automation-mcp.js +0 -0
- package/dist/mcp/servicenow-deployment-mcp.js +0 -0
- package/dist/mcp/servicenow-integration-mcp.js +0 -0
- package/dist/mcp/servicenow-mcp-server.js +0 -0
- package/dist/mcp/servicenow-operations-mcp.js +0 -0
- package/dist/mcp/servicenow-platform-development-mcp.js +0 -0
- package/dist/mcp/servicenow-progressive-indexer.js +0 -0
- package/dist/mcp/servicenow-reporting-analytics-mcp.js +280 -29
- package/dist/mcp/servicenow-security-compliance-mcp.js +0 -0
- package/dist/mcp/servicenow-update-set-mcp.js +0 -0
- package/dist/mcp/start-all-mcp-servers.js +0 -0
- package/dist/mcp/start-servicenow-mcp.js +0 -0
- package/dist/services/widget-deployment-service.d.ts +2 -1
- package/dist/services/widget-deployment-service.js +17 -16
- package/dist/utils/anti-mock-data-validator.d.ts +66 -0
- package/dist/utils/anti-mock-data-validator.js +316 -0
- package/dist/utils/servicenow-eventual-consistency.d.ts +120 -0
- package/dist/utils/servicenow-eventual-consistency.js +220 -0
- package/memory/agents/README.md +1 -1
- package/memory/claude-flow-data.json +1 -1
- package/memory/sessions/README.md +1 -1
- package/package.json +4 -3
- package/.mcp.json +0 -22
- package/claude-flow.config.json +0 -20
- package/dist/agents/app-creator.agent.d.ts +0 -55
- package/dist/agents/app-creator.agent.js +0 -1292
- package/dist/agents/base/base-snow-agent.d.ts +0 -75
- package/dist/agents/base/base-snow-agent.js +0 -169
- package/dist/agents/base-snow-agent.d.ts +0 -63
- package/dist/agents/base-snow-agent.js +0 -296
- package/dist/agents/coordinator.d.ts +0 -200
- package/dist/agents/coordinator.js +0 -777
- package/dist/agents/flow-builder-agent.d.ts +0 -18
- package/dist/agents/flow-builder-agent.js +0 -197
- package/dist/agents/queen-403-handler.d.ts +0 -47
- package/dist/agents/queen-403-handler.js +0 -175
- package/dist/agents/queen-agent-example.d.ts +0 -23
- package/dist/agents/queen-agent-example.js +0 -240
- package/dist/agents/queen-agent.test.d.ts +0 -6
- package/dist/agents/script-generator.agent.d.ts +0 -32
- package/dist/agents/script-generator.agent.js +0 -772
- package/dist/agents/script-writer-agent.d.ts +0 -22
- package/dist/agents/script-writer-agent.js +0 -695
- package/dist/agents/security-agent.d.ts +0 -23
- package/dist/agents/security-agent.js +0 -619
- package/dist/agents/specialists/automation-specialist.agent.d.ts +0 -44
- package/dist/agents/specialists/automation-specialist.agent.js +0 -204
- package/dist/agents/specialists/data-specialist.agent.d.ts +0 -165
- package/dist/agents/specialists/data-specialist.agent.js +0 -484
- package/dist/agents/specialists/integration-specialist.agent.d.ts +0 -227
- package/dist/agents/specialists/integration-specialist.agent.js +0 -725
- package/dist/agents/specialists/reporting-specialist.agent.d.ts +0 -54
- package/dist/agents/specialists/reporting-specialist.agent.js +0 -193
- package/dist/agents/specialists/security-specialist.agent.d.ts +0 -85
- package/dist/agents/specialists/security-specialist.agent.js +0 -309
- package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +0 -111
- package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +0 -383
- package/dist/agents/teams/base-team.d.ts +0 -72
- package/dist/agents/teams/base-team.js +0 -253
- package/dist/agents/teams/team-types.d.ts +0 -265
- package/dist/agents/teams/team-types.js +0 -3
- package/dist/agents/teams/widget/widget-architect.agent.d.ts +0 -61
- package/dist/agents/teams/widget/widget-architect.agent.js +0 -436
- package/dist/agents/teams/widget/widget-backend.agent.d.ts +0 -74
- package/dist/agents/teams/widget/widget-backend.agent.js +0 -1531
- package/dist/agents/teams/widget/widget-frontend.agent.d.ts +0 -67
- package/dist/agents/teams/widget/widget-frontend.agent.js +0 -1014
- package/dist/agents/teams/widget/widget-platform.agent.d.ts +0 -90
- package/dist/agents/teams/widget/widget-platform.agent.js +0 -1190
- package/dist/agents/teams/widget/widget-uiux.agent.d.ts +0 -107
- package/dist/agents/teams/widget/widget-uiux.agent.js +0 -1033
- package/dist/agents/test-agent.d.ts +0 -26
- package/dist/agents/test-agent.js +0 -734
- package/dist/agents/test-agents.d.ts +0 -7
- package/dist/agents/test-agents.js +0 -64
- package/dist/agents/ui-builder.agent.d.ts +0 -50
- package/dist/agents/ui-builder.agent.js +0 -1539
- package/dist/agents/widget-builder.agent.d.ts +0 -32
- package/dist/agents/widget-builder.agent.js +0 -439
- package/dist/agents/widget-creator-agent.d.ts +0 -18
- package/dist/agents/widget-creator-agent.js +0 -498
- package/dist/agents/workflow-designer.agent.d.ts +0 -31
- package/dist/agents/workflow-designer.agent.js +0 -583
- package/dist/api/error-handling.d.ts +0 -325
- package/dist/api/error-handling.js +0 -1488
- package/dist/api/flow-designer-api.d.ts +0 -167
- package/dist/api/flow-designer-api.js +0 -554
- package/dist/api/natural-language-mapper.d.ts +0 -124
- package/dist/api/natural-language-mapper.js +0 -501
- package/dist/api/performance-optimizer.d.ts +0 -240
- package/dist/api/performance-optimizer.js +0 -706
- package/dist/api/transaction-manager.d.ts +0 -189
- package/dist/api/transaction-manager.js +0 -576
- package/dist/assembly/team-assembler.d.ts +0 -140
- package/dist/assembly/team-assembler.js +0 -502
- package/dist/benchmark-performance.d.ts +0 -41
- package/dist/benchmark-performance.js +0 -230
- package/dist/cli/snow-flow-cli-integration.d.ts +0 -30
- package/dist/cli/snow-flow-cli-integration.js +0 -396
- package/dist/coordination/coordination-engine.d.ts +0 -41
- package/dist/coordination/coordination-engine.js +0 -324
- package/dist/coordination/coordination.test.d.ts +0 -6
- package/dist/coordination/example.d.ts +0 -31
- package/dist/coordination/example.js +0 -394
- package/dist/coordination/execution-patterns.d.ts +0 -43
- package/dist/coordination/execution-patterns.js +0 -507
- package/dist/coordination/factory.d.ts +0 -94
- package/dist/coordination/factory.js +0 -433
- package/dist/coordination/index.d.ts +0 -71
- package/dist/coordination/index.js +0 -135
- package/dist/coordination/progress-monitor.d.ts +0 -71
- package/dist/coordination/progress-monitor.js +0 -505
- package/dist/coordination/quality-gates.d.ts +0 -124
- package/dist/coordination/quality-gates.js +0 -577
- package/dist/coordination/shared-memory.d.ts +0 -39
- package/dist/coordination/shared-memory.js +0 -289
- package/dist/coordination/task-dependencies.d.ts +0 -50
- package/dist/coordination/task-dependencies.js +0 -407
- package/dist/coordination/team-coordinator.d.ts +0 -59
- package/dist/coordination/team-coordinator.js +0 -550
- package/dist/coordination/types.d.ts +0 -152
- package/dist/coordination/types.js +0 -3
- package/dist/mcp/mcp-wrapper.d.ts +0 -8
- package/dist/mcp/mcp-wrapper.js +0 -77
- package/dist/mcp/servicenow-flow-composer-enhanced.js +0 -396
- package/dist/mcp/servicenow-flow-composer-mcp.d.ts +0 -7
- package/dist/mcp/servicenow-flow-composer-mcp.js +0 -3103
- package/dist/mcp/servicenow-graph-memory-mcp.d.ts +0 -7
- package/dist/mcp/servicenow-intelligent-mcp.d.ts +0 -143
- package/dist/mcp/servicenow-intelligent-mcp.js +0 -4156
- package/dist/mcp/servicenow-xml-flow-mcp.d.ts +0 -53
- package/dist/mcp/servicenow-xml-flow-mcp.js +0 -1704
- package/dist/mcp/singleton-check.js +0 -31
- package/dist/mcp/test-simple-mcp.d.ts +0 -6
- package/dist/mcp/test-simple-mcp.js +0 -63
- package/dist/memory/hierarchical-memory-system.d.ts +0 -90
- package/dist/memory/hierarchical-memory-system.js +0 -400
- package/dist/memory/index.d.ts +0 -9
- package/dist/memory/index.js +0 -20
- package/dist/memory/mcp-integration-example.d.ts +0 -6
- package/dist/memory/mcp-integration-example.js +0 -281
- package/dist/memory/memory-client.d.ts +0 -199
- package/dist/memory/memory-client.js +0 -364
- package/dist/memory/memory-manager.d.ts +0 -29
- package/dist/memory/memory-manager.js +0 -280
- package/dist/memory/memory-operations.d.ts +0 -179
- package/dist/memory/memory-operations.js +0 -691
- package/dist/memory/memory-system.d.ts +0 -153
- package/dist/memory/memory-system.js +0 -651
- package/dist/memory/memory-test.d.ts +0 -6
- package/dist/memory/memory-test.js +0 -161
- package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
- package/dist/memory/snow-flow-memory-patterns.js +0 -200
- package/dist/memory/snow-memory.d.ts +0 -54
- package/dist/memory/snow-memory.js +0 -301
- package/dist/memory/swarm-memory.d.ts +0 -135
- package/dist/memory/swarm-memory.js +0 -378
- package/dist/optimization/flow-performance-optimizer.js +0 -723
- package/dist/orchestration/discovery/service-discovery.d.ts +0 -81
- package/dist/orchestration/discovery/service-discovery.js +0 -808
- package/dist/orchestration/distributed-orchestrator.d.ts +0 -131
- package/dist/orchestration/distributed-orchestrator.js +0 -712
- package/dist/orchestration/distribution/task-distribution-engine.d.ts +0 -53
- package/dist/orchestration/distribution/task-distribution-engine.js +0 -586
- package/dist/orchestration/flow-update-orchestrator.js +0 -648
- package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +0 -606
- package/dist/orchestration/interfaces/distributed-orchestration.interface.js +0 -65
- package/dist/orchestration/protocols/mcpx-protocol.d.ts +0 -71
- package/dist/orchestration/protocols/mcpx-protocol.js +0 -668
- package/dist/orchestration/state/distributed-state-manager.d.ts +0 -89
- package/dist/orchestration/state/distributed-state-manager.js +0 -716
- package/dist/orchestrator/flow-composer.d.ts +0 -105
- package/dist/orchestrator/flow-composer.js +0 -404
- package/dist/orchestrator/flow-pattern-templates.d.ts +0 -260
- package/dist/orchestrator/flow-pattern-templates.js +0 -908
- package/dist/orchestrator/flow-subflow-decision-engine.d.ts +0 -202
- package/dist/orchestrator/flow-subflow-decision-engine.js +0 -769
- package/dist/orchestrator/flow-validation-engine.d.ts +0 -169
- package/dist/orchestrator/flow-validation-engine.js +0 -913
- package/dist/orchestrator/snow-orchestrator.d.ts +0 -49
- package/dist/orchestrator/snow-orchestrator.js +0 -235
- package/dist/orchestrator/subflow-creation-handler.d.ts +0 -230
- package/dist/orchestrator/subflow-creation-handler.js +0 -791
- package/dist/patterns/adaptive-patterns.d.ts +0 -140
- package/dist/patterns/adaptive-patterns.js +0 -549
- package/dist/queen/advanced-integration-test.d.ts +0 -48
- package/dist/queen/advanced-integration-test.js +0 -473
- package/dist/queen/integration-example.d.ts +0 -82
- package/dist/queen/integration-example.js +0 -219
- package/dist/queen/integration-test.d.ts +0 -72
- package/dist/queen/integration-test.js +0 -563
- package/dist/queen/mock-mcp-client.d.ts +0 -71
- package/dist/queen/mock-mcp-client.js +0 -317
- package/dist/queen/run-integration-tests.d.ts +0 -9
- package/dist/queen/run-integration-tests.js +0 -27
- package/dist/sparc/coordinators/adaptive-coordinator.d.ts +0 -54
- package/dist/sparc/coordinators/adaptive-coordinator.js +0 -367
- package/dist/sparc/coordinators/team-coordinator.d.ts +0 -66
- package/dist/sparc/coordinators/team-coordinator.js +0 -402
- package/dist/sparc/modes/team-modes.d.ts +0 -33
- package/dist/sparc/modes/team-modes.js +0 -399
- package/dist/sparc/teams/application-team.d.ts +0 -73
- package/dist/sparc/teams/application-team.js +0 -463
- package/dist/sparc/teams/flow-team.d.ts +0 -67
- package/dist/sparc/teams/flow-team.js +0 -373
- package/dist/sparc/teams/widget-team.d.ts +0 -61
- package/dist/sparc/teams/widget-team.js +0 -280
- package/dist/specialists/app-specialists.d.ts +0 -93
- package/dist/specialists/app-specialists.js +0 -1639
- package/dist/specialists/base-specialist.d.ts +0 -19
- package/dist/specialists/base-specialist.js +0 -54
- package/dist/specialists/flow-specialists.d.ts +0 -113
- package/dist/specialists/flow-specialists.js +0 -1787
- package/dist/specialists/individual-specialists.d.ts +0 -67
- package/dist/specialists/individual-specialists.js +0 -632
- package/dist/specialists/widget-specialists.d.ts +0 -70
- package/dist/specialists/widget-specialists.js +0 -1264
- package/dist/src/utils/agent-detector.js +0 -655
- package/dist/teams/adaptive-team.d.ts +0 -81
- package/dist/teams/adaptive-team.js +0 -1153
- package/dist/teams/application-team.d.ts +0 -30
- package/dist/teams/application-team.js +0 -547
- package/dist/teams/base-team.d.ts +0 -55
- package/dist/teams/base-team.js +0 -243
- package/dist/teams/flow-team.d.ts +0 -28
- package/dist/teams/flow-team.js +0 -525
- package/dist/teams/widget-team.d.ts +0 -26
- package/dist/teams/widget-team.js +0 -459
- package/dist/templates/flow-template-system.js +0 -625
- package/dist/test-fetch-incidents.d.ts +0 -2
- package/dist/test-fetch-incidents.js +0 -84
- package/dist/test-incident-access.d.ts +0 -2
- package/dist/test-incident-access.js +0 -72
- package/dist/test-iphone-flow.js +0 -189
- package/dist/test-limit-problem.d.ts +0 -2
- package/dist/test-limit-problem.js +0 -60
- package/dist/test-ml-batch-fix.d.ts +0 -2
- package/dist/test-ml-batch-fix.js +0 -104
- package/dist/test-ml-batch.d.ts +0 -2
- package/dist/test-ml-batch.js +0 -87
- package/dist/test-ml-query.d.ts +0 -2
- package/dist/test-ml-query.js +0 -100
- package/dist/test-ml-training-fix.d.ts +0 -12
- package/dist/test-ml-training-fix.js +0 -113
- package/dist/test-ml-training.d.ts +0 -2
- package/dist/test-ml-training.js +0 -32
- package/dist/test-operations-query.d.ts +0 -2
- package/dist/test-operations-query.js +0 -84
- package/dist/test-performance-query.d.ts +0 -2
- package/dist/test-performance-query.js +0 -52
- package/dist/test-singleton-protection.d.ts +0 -8
- package/dist/test-singleton-protection.js +0 -110
- package/dist/test-smart-limits.d.ts +0 -13
- package/dist/test-smart-limits.js +0 -100
- package/dist/test-snow-query-incidents.d.ts +0 -2
- package/dist/test-snow-query-incidents.js +0 -66
- package/dist/test-universal-query.d.ts +0 -2
- package/dist/test-universal-query.js +0 -106
- package/dist/testing/flow-testing-automation.js +0 -641
- package/dist/utils/complete-flow-xml-generator.js +0 -1285
- package/dist/utils/file-storage-fallback.d.ts +0 -62
- package/dist/utils/file-storage-fallback.js +0 -289
- package/dist/utils/flow-api-discovery.d.ts +0 -151
- package/dist/utils/flow-api-discovery.js +0 -439
- package/dist/utils/flow-examples.js +0 -720
- package/dist/utils/flow-structure-builder.js +0 -677
- package/dist/utils/flow-xml-generator.d.ts +0 -41
- package/dist/utils/flow-xml-generator.js +0 -258
- package/dist/utils/improved-flow-xml-generator.js +0 -820
- package/dist/utils/mcp-process-manager.backup.d.ts +0 -58
- package/dist/utils/mcp-process-manager.backup.js +0 -220
- package/dist/utils/mcp-singleton-enforcer.d.ts +0 -36
- package/dist/utils/mcp-singleton-enforcer.js +0 -201
- package/dist/utils/mcp-timeout-fix.d.ts +0 -53
- package/dist/utils/mcp-timeout-fix.js +0 -221
- package/dist/utils/migrate-claude-flow.d.ts +0 -22
- package/dist/utils/migrate-claude-flow.js +0 -120
- package/dist/utils/scope-utils.d.ts +0 -72
- package/dist/utils/scope-utils.js +0 -386
- package/dist/utils/snow-oauth-old.d.ts +0 -65
- package/dist/utils/snow-oauth-old.js +0 -345
- package/dist/utils/xml-first-flow-generator.js +0 -513
- package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
- package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
- package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
- package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
- package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
- package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
- package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
- package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
- package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
- package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
- package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
- package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
- package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
- package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
- package/reports/swarm-auto-centralized-1752649029776.json +0 -13
- package/src/memory/README.md +0 -240
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { BaseSpecialist, SpecialistOptions } from './base-specialist.js';
|
|
2
|
-
export declare class IndividualFrontendSpecialist extends BaseSpecialist {
|
|
3
|
-
constructor(options?: SpecialistOptions);
|
|
4
|
-
execute(task: string, context?: any): Promise<any>;
|
|
5
|
-
private analyzeFrontendNeeds;
|
|
6
|
-
private createQuickTemplate;
|
|
7
|
-
private createFormTemplate;
|
|
8
|
-
private createListTemplate;
|
|
9
|
-
private createDashboardTemplate;
|
|
10
|
-
private createGenericTemplate;
|
|
11
|
-
private createQuickStyles;
|
|
12
|
-
private createQuickClientScript;
|
|
13
|
-
}
|
|
14
|
-
export declare class IndividualBackendSpecialist extends BaseSpecialist {
|
|
15
|
-
constructor(options?: SpecialistOptions);
|
|
16
|
-
execute(task: string, context?: any): Promise<any>;
|
|
17
|
-
private analyzeBackendNeeds;
|
|
18
|
-
private createQuickServerScript;
|
|
19
|
-
private getTableName;
|
|
20
|
-
private addProcessingLogic;
|
|
21
|
-
private createDataAccessLayer;
|
|
22
|
-
private createAPIIntegration;
|
|
23
|
-
}
|
|
24
|
-
export declare class IndividualSecuritySpecialist extends BaseSpecialist {
|
|
25
|
-
constructor(options?: SpecialistOptions);
|
|
26
|
-
execute(task: string, context?: any): Promise<any>;
|
|
27
|
-
private performQuickSecurityAssessment;
|
|
28
|
-
private assessRiskLevel;
|
|
29
|
-
private identifyQuickVulnerabilities;
|
|
30
|
-
private performComplianceChecks;
|
|
31
|
-
private assessAccessControlNeeds;
|
|
32
|
-
private generateSecurityRecommendations;
|
|
33
|
-
}
|
|
34
|
-
export declare class IndividualDataSpecialist extends BaseSpecialist {
|
|
35
|
-
constructor(options?: SpecialistOptions);
|
|
36
|
-
execute(task: string, context?: any): Promise<any>;
|
|
37
|
-
private performQuickDataAnalysis;
|
|
38
|
-
private identifyDataTypes;
|
|
39
|
-
private identifyQueryPatterns;
|
|
40
|
-
private identifyTransformationNeeds;
|
|
41
|
-
private identifyValidationRequirements;
|
|
42
|
-
private generateDataOptimizations;
|
|
43
|
-
private suggestIndexFields;
|
|
44
|
-
}
|
|
45
|
-
export declare class IndividualIntegrationSpecialist extends BaseSpecialist {
|
|
46
|
-
constructor(options?: SpecialistOptions);
|
|
47
|
-
execute(task: string, context?: any): Promise<any>;
|
|
48
|
-
private performQuickIntegrationAnalysis;
|
|
49
|
-
private identifyIntegrationType;
|
|
50
|
-
private identifyProtocol;
|
|
51
|
-
private identifyAuthMethod;
|
|
52
|
-
private identifyDataFormat;
|
|
53
|
-
private identifyDirection;
|
|
54
|
-
private generateQuickImplementation;
|
|
55
|
-
private generateRESTMessageConfig;
|
|
56
|
-
private generateTransformationLogic;
|
|
57
|
-
private generateErrorHandling;
|
|
58
|
-
private generateScheduling;
|
|
59
|
-
}
|
|
60
|
-
export declare const IndividualSpecialists: {
|
|
61
|
-
Frontend: typeof IndividualFrontendSpecialist;
|
|
62
|
-
Backend: typeof IndividualBackendSpecialist;
|
|
63
|
-
Security: typeof IndividualSecuritySpecialist;
|
|
64
|
-
Data: typeof IndividualDataSpecialist;
|
|
65
|
-
Integration: typeof IndividualIntegrationSpecialist;
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=individual-specialists.d.ts.map
|
|
@@ -1,632 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IndividualSpecialists = exports.IndividualIntegrationSpecialist = exports.IndividualDataSpecialist = exports.IndividualSecuritySpecialist = exports.IndividualBackendSpecialist = exports.IndividualFrontendSpecialist = void 0;
|
|
4
|
-
const base_specialist_js_1 = require("./base-specialist.js");
|
|
5
|
-
// Individual specialist classes for standalone execution
|
|
6
|
-
// These are simplified, focused versions of the team specialists
|
|
7
|
-
class IndividualFrontendSpecialist extends base_specialist_js_1.BaseSpecialist {
|
|
8
|
-
constructor(options = {}) {
|
|
9
|
-
super('Frontend Developer', 'Frontend Developer', ['HTML', 'CSS', 'JavaScript', 'Responsive Design', 'UI Components'], options);
|
|
10
|
-
}
|
|
11
|
-
async execute(task, context) {
|
|
12
|
-
await this.logProgress(`Working on frontend task: ${task}`);
|
|
13
|
-
const analysis = await this.analyzeTask(task);
|
|
14
|
-
const requirements = this.analyzeFrontendNeeds(task);
|
|
15
|
-
const deliverables = {
|
|
16
|
-
template: await this.createQuickTemplate(requirements),
|
|
17
|
-
styles: await this.createQuickStyles(requirements),
|
|
18
|
-
clientScript: await this.createQuickClientScript(requirements)
|
|
19
|
-
};
|
|
20
|
-
return {
|
|
21
|
-
...analysis,
|
|
22
|
-
specialist: 'Frontend Developer',
|
|
23
|
-
requirements,
|
|
24
|
-
deliverables,
|
|
25
|
-
quickImplementation: true
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
analyzeFrontendNeeds(task) {
|
|
29
|
-
const lowerTask = task.toLowerCase();
|
|
30
|
-
return {
|
|
31
|
-
type: lowerTask.includes('form') ? 'form' :
|
|
32
|
-
lowerTask.includes('list') ? 'list' :
|
|
33
|
-
lowerTask.includes('dashboard') ? 'dashboard' : 'generic',
|
|
34
|
-
responsive: lowerTask.includes('mobile') || lowerTask.includes('responsive'),
|
|
35
|
-
interactive: lowerTask.includes('click') || lowerTask.includes('interactive'),
|
|
36
|
-
styling: lowerTask.includes('style') || lowerTask.includes('css')
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
async createQuickTemplate(requirements) {
|
|
40
|
-
switch (requirements.type) {
|
|
41
|
-
case 'form':
|
|
42
|
-
return this.createFormTemplate();
|
|
43
|
-
case 'list':
|
|
44
|
-
return this.createListTemplate();
|
|
45
|
-
case 'dashboard':
|
|
46
|
-
return this.createDashboardTemplate();
|
|
47
|
-
default:
|
|
48
|
-
return this.createGenericTemplate();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
createFormTemplate() {
|
|
52
|
-
return `
|
|
53
|
-
<div class="widget-form" role="form">
|
|
54
|
-
<h3>{{data.title || 'Form'}}</h3>
|
|
55
|
-
<form ng-submit="c.submitForm()">
|
|
56
|
-
<div ng-repeat="field in data.fields" class="form-group">
|
|
57
|
-
<label>{{field.label}}</label>
|
|
58
|
-
<input type="{{field.type || 'text'}}"
|
|
59
|
-
ng-model="c.formData[field.name]"
|
|
60
|
-
class="form-control"
|
|
61
|
-
ng-required="field.required">
|
|
62
|
-
</div>
|
|
63
|
-
<button type="submit" class="btn btn-primary">Submit</button>
|
|
64
|
-
</form>
|
|
65
|
-
</div>
|
|
66
|
-
`.trim();
|
|
67
|
-
}
|
|
68
|
-
createListTemplate() {
|
|
69
|
-
return `
|
|
70
|
-
<div class="widget-list">
|
|
71
|
-
<h3>{{data.title || 'List'}}</h3>
|
|
72
|
-
<div class="list-controls" ng-if="data.searchable">
|
|
73
|
-
<input type="search" ng-model="c.searchTerm" placeholder="Search...">
|
|
74
|
-
</div>
|
|
75
|
-
<div class="list-container">
|
|
76
|
-
<div ng-repeat="item in c.filteredItems" class="list-item" ng-click="c.selectItem(item)">
|
|
77
|
-
<h4>{{item.title || item.name}}</h4>
|
|
78
|
-
<p>{{item.description || item.short_description}}</p>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
`.trim();
|
|
83
|
-
}
|
|
84
|
-
createDashboardTemplate() {
|
|
85
|
-
return `
|
|
86
|
-
<div class="widget-dashboard">
|
|
87
|
-
<h3>{{data.title || 'Dashboard'}}</h3>
|
|
88
|
-
<div class="dashboard-grid">
|
|
89
|
-
<div ng-repeat="widget in data.widgets" class="dashboard-widget">
|
|
90
|
-
<h4>{{widget.title}}</h4>
|
|
91
|
-
<div class="widget-content">{{widget.value}}</div>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
`.trim();
|
|
96
|
-
}
|
|
97
|
-
createGenericTemplate() {
|
|
98
|
-
return `
|
|
99
|
-
<div class="widget-container">
|
|
100
|
-
<h3>{{data.title || 'Widget'}}</h3>
|
|
101
|
-
<div class="widget-content">
|
|
102
|
-
<p ng-if="data.message">{{data.message}}</p>
|
|
103
|
-
<div ng-repeat="item in data.items" class="widget-item">
|
|
104
|
-
{{item.name || item.title || item}}
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
</div>
|
|
108
|
-
`.trim();
|
|
109
|
-
}
|
|
110
|
-
async createQuickStyles(requirements) {
|
|
111
|
-
const baseStyles = `
|
|
112
|
-
.widget-container {
|
|
113
|
-
padding: 1rem;
|
|
114
|
-
border: 1px solid #ddd;
|
|
115
|
-
border-radius: 4px;
|
|
116
|
-
background: #fff;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.widget-container h3 {
|
|
120
|
-
margin-top: 0;
|
|
121
|
-
color: #333;
|
|
122
|
-
}
|
|
123
|
-
`;
|
|
124
|
-
const responsiveStyles = requirements.responsive ? `
|
|
125
|
-
@media (max-width: 768px) {
|
|
126
|
-
.widget-container {
|
|
127
|
-
padding: 0.5rem;
|
|
128
|
-
margin: 0.5rem;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
` : '';
|
|
132
|
-
return baseStyles + responsiveStyles;
|
|
133
|
-
}
|
|
134
|
-
async createQuickClientScript(requirements) {
|
|
135
|
-
return `
|
|
136
|
-
function($scope) {
|
|
137
|
-
var c = this;
|
|
138
|
-
|
|
139
|
-
c.init = function() {
|
|
140
|
-
// Initialize component
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
${requirements.interactive ? `
|
|
144
|
-
c.selectItem = function(item) {
|
|
145
|
-
c.selectedItem = item;
|
|
146
|
-
};
|
|
147
|
-
` : ''}
|
|
148
|
-
|
|
149
|
-
${requirements.type === 'list' ? `
|
|
150
|
-
c.filteredItems = c.data.items || [];
|
|
151
|
-
|
|
152
|
-
$scope.$watch('c.searchTerm', function(newVal) {
|
|
153
|
-
if (!newVal) {
|
|
154
|
-
c.filteredItems = c.data.items || [];
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
c.filteredItems = (c.data.items || []).filter(function(item) {
|
|
158
|
-
return JSON.stringify(item).toLowerCase().includes(newVal.toLowerCase());
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
` : ''}
|
|
162
|
-
|
|
163
|
-
c.init();
|
|
164
|
-
}
|
|
165
|
-
`.trim();
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
exports.IndividualFrontendSpecialist = IndividualFrontendSpecialist;
|
|
169
|
-
class IndividualBackendSpecialist extends base_specialist_js_1.BaseSpecialist {
|
|
170
|
-
constructor(options = {}) {
|
|
171
|
-
super('Backend Developer', 'Backend Developer', ['Server Scripts', 'GlideRecord', 'Data Processing', 'API Integration'], options);
|
|
172
|
-
}
|
|
173
|
-
async execute(task, context) {
|
|
174
|
-
await this.logProgress(`Working on backend task: ${task}`);
|
|
175
|
-
const analysis = await this.analyzeTask(task);
|
|
176
|
-
const requirements = this.analyzeBackendNeeds(task);
|
|
177
|
-
const deliverables = {
|
|
178
|
-
serverScript: await this.createQuickServerScript(requirements),
|
|
179
|
-
dataAccess: await this.createDataAccessLayer(requirements),
|
|
180
|
-
apiIntegration: requirements.needsAPI ? await this.createAPIIntegration(requirements) : null
|
|
181
|
-
};
|
|
182
|
-
return {
|
|
183
|
-
...analysis,
|
|
184
|
-
specialist: 'Backend Developer',
|
|
185
|
-
requirements,
|
|
186
|
-
deliverables,
|
|
187
|
-
quickImplementation: true
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
analyzeBackendNeeds(task) {
|
|
191
|
-
const lowerTask = task.toLowerCase();
|
|
192
|
-
return {
|
|
193
|
-
dataType: lowerTask.includes('incident') ? 'incident' :
|
|
194
|
-
lowerTask.includes('request') ? 'request' :
|
|
195
|
-
lowerTask.includes('user') ? 'user' : 'generic',
|
|
196
|
-
needsAPI: lowerTask.includes('api') || lowerTask.includes('integration'),
|
|
197
|
-
needsProcessing: lowerTask.includes('process') || lowerTask.includes('calculate'),
|
|
198
|
-
needsCaching: lowerTask.includes('cache') || lowerTask.includes('performance')
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
async createQuickServerScript(requirements) {
|
|
202
|
-
return `
|
|
203
|
-
(function() {
|
|
204
|
-
'use strict';
|
|
205
|
-
|
|
206
|
-
var data = {};
|
|
207
|
-
|
|
208
|
-
try {
|
|
209
|
-
// Quick data retrieval
|
|
210
|
-
var gr = new GlideRecord('${this.getTableName(requirements.dataType)}');
|
|
211
|
-
gr.orderByDesc('sys_created_on');
|
|
212
|
-
gr.setLimit(10);
|
|
213
|
-
gr.query();
|
|
214
|
-
|
|
215
|
-
data.items = [];
|
|
216
|
-
while (gr.next()) {
|
|
217
|
-
data.items.push({
|
|
218
|
-
sys_id: gr.getUniqueValue(),
|
|
219
|
-
number: gr.getDisplayValue('number'),
|
|
220
|
-
short_description: gr.getDisplayValue('short_description'),
|
|
221
|
-
state: gr.getDisplayValue('state')
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
data.count = data.items.length;
|
|
226
|
-
data.title = 'Recent ${requirements.dataType}';
|
|
227
|
-
|
|
228
|
-
${requirements.needsProcessing ? this.addProcessingLogic() : ''}
|
|
229
|
-
|
|
230
|
-
} catch (error) {
|
|
231
|
-
gs.error('Quick backend error: ' + error.message);
|
|
232
|
-
data.error = 'Error loading data';
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
})();
|
|
236
|
-
`.trim();
|
|
237
|
-
}
|
|
238
|
-
getTableName(dataType) {
|
|
239
|
-
switch (dataType) {
|
|
240
|
-
case 'incident': return 'incident';
|
|
241
|
-
case 'request': return 'sc_request';
|
|
242
|
-
case 'user': return 'sys_user';
|
|
243
|
-
default: return 'task';
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
addProcessingLogic() {
|
|
247
|
-
return `
|
|
248
|
-
// Additional processing
|
|
249
|
-
data.summary = {
|
|
250
|
-
total: data.count,
|
|
251
|
-
recent: data.items.filter(function(item) {
|
|
252
|
-
return item.state !== 'Closed';
|
|
253
|
-
}).length
|
|
254
|
-
};
|
|
255
|
-
`;
|
|
256
|
-
}
|
|
257
|
-
async createDataAccessLayer(requirements) {
|
|
258
|
-
return {
|
|
259
|
-
table: this.getTableName(requirements.dataType),
|
|
260
|
-
fields: ['number', 'short_description', 'state', 'sys_created_on'],
|
|
261
|
-
defaultQuery: 'active=true',
|
|
262
|
-
orderBy: 'sys_created_on DESC'
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
async createAPIIntegration(requirements) {
|
|
266
|
-
return `
|
|
267
|
-
// Quick API integration example
|
|
268
|
-
var restMessage = new sn_ws.RESTMessageV2();
|
|
269
|
-
restMessage.setHttpMethod('GET');
|
|
270
|
-
restMessage.setEndpoint('https://api.example.com/data');
|
|
271
|
-
restMessage.setRequestHeader('Accept', 'application/json');
|
|
272
|
-
|
|
273
|
-
var response = restMessage.execute();
|
|
274
|
-
if (response.getStatusCode() == 200) {
|
|
275
|
-
var responseBody = response.getBody();
|
|
276
|
-
var jsonData = JSON.parse(responseBody);
|
|
277
|
-
// Process API data
|
|
278
|
-
}
|
|
279
|
-
`.trim();
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
exports.IndividualBackendSpecialist = IndividualBackendSpecialist;
|
|
283
|
-
class IndividualSecuritySpecialist extends base_specialist_js_1.BaseSpecialist {
|
|
284
|
-
constructor(options = {}) {
|
|
285
|
-
super('Security Specialist', 'Security Specialist', ['Access Control', 'Security Validation', 'Compliance Check', 'Vulnerability Assessment'], options);
|
|
286
|
-
}
|
|
287
|
-
async execute(task, context) {
|
|
288
|
-
await this.logProgress(`Analyzing security for: ${task}`);
|
|
289
|
-
const analysis = await this.analyzeTask(task);
|
|
290
|
-
const securityAssessment = await this.performQuickSecurityAssessment(task);
|
|
291
|
-
return {
|
|
292
|
-
...analysis,
|
|
293
|
-
specialist: 'Security Specialist',
|
|
294
|
-
securityAssessment,
|
|
295
|
-
recommendations: this.generateSecurityRecommendations(securityAssessment),
|
|
296
|
-
quickImplementation: true
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
async performQuickSecurityAssessment(task) {
|
|
300
|
-
const lowerTask = task.toLowerCase();
|
|
301
|
-
return {
|
|
302
|
-
riskLevel: this.assessRiskLevel(task),
|
|
303
|
-
vulnerabilities: this.identifyQuickVulnerabilities(task),
|
|
304
|
-
complianceChecks: this.performComplianceChecks(task),
|
|
305
|
-
accessControlNeeds: this.assessAccessControlNeeds(task)
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
assessRiskLevel(task) {
|
|
309
|
-
const lowerTask = task.toLowerCase();
|
|
310
|
-
if (lowerTask.includes('admin') || lowerTask.includes('system') || lowerTask.includes('global')) {
|
|
311
|
-
return 'high';
|
|
312
|
-
}
|
|
313
|
-
else if (lowerTask.includes('user') || lowerTask.includes('data') || lowerTask.includes('api')) {
|
|
314
|
-
return 'medium';
|
|
315
|
-
}
|
|
316
|
-
return 'low';
|
|
317
|
-
}
|
|
318
|
-
identifyQuickVulnerabilities(task) {
|
|
319
|
-
const vulnerabilities = [];
|
|
320
|
-
const lowerTask = task.toLowerCase();
|
|
321
|
-
if (lowerTask.includes('input') || lowerTask.includes('form')) {
|
|
322
|
-
vulnerabilities.push('input_validation_needed');
|
|
323
|
-
}
|
|
324
|
-
if (lowerTask.includes('api') || lowerTask.includes('integration')) {
|
|
325
|
-
vulnerabilities.push('authentication_required');
|
|
326
|
-
}
|
|
327
|
-
if (lowerTask.includes('script') || lowerTask.includes('code')) {
|
|
328
|
-
vulnerabilities.push('code_injection_risk');
|
|
329
|
-
}
|
|
330
|
-
return vulnerabilities;
|
|
331
|
-
}
|
|
332
|
-
performComplianceChecks(task) {
|
|
333
|
-
const lowerTask = task.toLowerCase();
|
|
334
|
-
return {
|
|
335
|
-
gdpr: lowerTask.includes('user') || lowerTask.includes('personal'),
|
|
336
|
-
sox: lowerTask.includes('financial') || lowerTask.includes('audit'),
|
|
337
|
-
hipaa: lowerTask.includes('health') || lowerTask.includes('medical'),
|
|
338
|
-
iso27001: lowerTask.includes('security') || lowerTask.includes('information')
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
assessAccessControlNeeds(task) {
|
|
342
|
-
const lowerTask = task.toLowerCase();
|
|
343
|
-
return {
|
|
344
|
-
rolesNeeded: lowerTask.includes('admin') ? ['admin'] : ['user'],
|
|
345
|
-
permissionLevel: lowerTask.includes('create') || lowerTask.includes('modify') ? 'write' : 'read',
|
|
346
|
-
restrictionLevel: lowerTask.includes('sensitive') ? 'high' : 'standard'
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
generateSecurityRecommendations(assessment) {
|
|
350
|
-
const recommendations = [];
|
|
351
|
-
if (assessment.riskLevel === 'high') {
|
|
352
|
-
recommendations.push('Implement comprehensive access controls');
|
|
353
|
-
recommendations.push('Require admin approval for deployment');
|
|
354
|
-
}
|
|
355
|
-
if (assessment.vulnerabilities.includes('input_validation_needed')) {
|
|
356
|
-
recommendations.push('Add input validation and sanitization');
|
|
357
|
-
}
|
|
358
|
-
if (assessment.vulnerabilities.includes('authentication_required')) {
|
|
359
|
-
recommendations.push('Implement strong authentication mechanisms');
|
|
360
|
-
}
|
|
361
|
-
if (assessment.complianceChecks.gdpr) {
|
|
362
|
-
recommendations.push('Ensure GDPR compliance for data handling');
|
|
363
|
-
}
|
|
364
|
-
return recommendations;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
exports.IndividualSecuritySpecialist = IndividualSecuritySpecialist;
|
|
368
|
-
class IndividualDataSpecialist extends base_specialist_js_1.BaseSpecialist {
|
|
369
|
-
constructor(options = {}) {
|
|
370
|
-
super('Data Specialist', 'Data Specialist', ['Data Analysis', 'Query Optimization', 'Data Transformation', 'Data Validation'], options);
|
|
371
|
-
}
|
|
372
|
-
async execute(task, context) {
|
|
373
|
-
await this.logProgress(`Analyzing data requirements for: ${task}`);
|
|
374
|
-
const analysis = await this.analyzeTask(task);
|
|
375
|
-
const dataAnalysis = await this.performQuickDataAnalysis(task);
|
|
376
|
-
return {
|
|
377
|
-
...analysis,
|
|
378
|
-
specialist: 'Data Specialist',
|
|
379
|
-
dataAnalysis,
|
|
380
|
-
optimizations: this.generateDataOptimizations(dataAnalysis),
|
|
381
|
-
quickImplementation: true
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
async performQuickDataAnalysis(task) {
|
|
385
|
-
const lowerTask = task.toLowerCase();
|
|
386
|
-
return {
|
|
387
|
-
dataTypes: this.identifyDataTypes(task),
|
|
388
|
-
queryPatterns: this.identifyQueryPatterns(task),
|
|
389
|
-
transformationNeeds: this.identifyTransformationNeeds(task),
|
|
390
|
-
validationRequirements: this.identifyValidationRequirements(task)
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
identifyDataTypes(task) {
|
|
394
|
-
const types = [];
|
|
395
|
-
const lowerTask = task.toLowerCase();
|
|
396
|
-
if (lowerTask.includes('string') || lowerTask.includes('text'))
|
|
397
|
-
types.push('string');
|
|
398
|
-
if (lowerTask.includes('number') || lowerTask.includes('integer'))
|
|
399
|
-
types.push('number');
|
|
400
|
-
if (lowerTask.includes('date') || lowerTask.includes('time'))
|
|
401
|
-
types.push('datetime');
|
|
402
|
-
if (lowerTask.includes('boolean') || lowerTask.includes('true') || lowerTask.includes('false'))
|
|
403
|
-
types.push('boolean');
|
|
404
|
-
if (lowerTask.includes('reference') || lowerTask.includes('link'))
|
|
405
|
-
types.push('reference');
|
|
406
|
-
return types.length > 0 ? types : ['string', 'number', 'datetime'];
|
|
407
|
-
}
|
|
408
|
-
identifyQueryPatterns(task) {
|
|
409
|
-
const patterns = [];
|
|
410
|
-
const lowerTask = task.toLowerCase();
|
|
411
|
-
if (lowerTask.includes('search') || lowerTask.includes('find'))
|
|
412
|
-
patterns.push('search_queries');
|
|
413
|
-
if (lowerTask.includes('filter') || lowerTask.includes('where'))
|
|
414
|
-
patterns.push('filtered_queries');
|
|
415
|
-
if (lowerTask.includes('sort') || lowerTask.includes('order'))
|
|
416
|
-
patterns.push('sorted_queries');
|
|
417
|
-
if (lowerTask.includes('group') || lowerTask.includes('aggregate'))
|
|
418
|
-
patterns.push('aggregate_queries');
|
|
419
|
-
if (lowerTask.includes('join') || lowerTask.includes('relate'))
|
|
420
|
-
patterns.push('join_queries');
|
|
421
|
-
return patterns.length > 0 ? patterns : ['simple_queries'];
|
|
422
|
-
}
|
|
423
|
-
identifyTransformationNeeds(task) {
|
|
424
|
-
const transformations = [];
|
|
425
|
-
const lowerTask = task.toLowerCase();
|
|
426
|
-
if (lowerTask.includes('format') || lowerTask.includes('convert'))
|
|
427
|
-
transformations.push('format_transformation');
|
|
428
|
-
if (lowerTask.includes('calculate') || lowerTask.includes('compute'))
|
|
429
|
-
transformations.push('calculation_transformation');
|
|
430
|
-
if (lowerTask.includes('combine') || lowerTask.includes('merge'))
|
|
431
|
-
transformations.push('merge_transformation');
|
|
432
|
-
if (lowerTask.includes('split') || lowerTask.includes('separate'))
|
|
433
|
-
transformations.push('split_transformation');
|
|
434
|
-
return transformations;
|
|
435
|
-
}
|
|
436
|
-
identifyValidationRequirements(task) {
|
|
437
|
-
const validations = [];
|
|
438
|
-
const lowerTask = task.toLowerCase();
|
|
439
|
-
if (lowerTask.includes('required') || lowerTask.includes('mandatory'))
|
|
440
|
-
validations.push('required_validation');
|
|
441
|
-
if (lowerTask.includes('format') || lowerTask.includes('pattern'))
|
|
442
|
-
validations.push('format_validation');
|
|
443
|
-
if (lowerTask.includes('range') || lowerTask.includes('limit'))
|
|
444
|
-
validations.push('range_validation');
|
|
445
|
-
if (lowerTask.includes('unique') || lowerTask.includes('duplicate'))
|
|
446
|
-
validations.push('uniqueness_validation');
|
|
447
|
-
return validations;
|
|
448
|
-
}
|
|
449
|
-
generateDataOptimizations(analysis) {
|
|
450
|
-
return {
|
|
451
|
-
indexing: {
|
|
452
|
-
recommended: analysis.queryPatterns.includes('search_queries') ||
|
|
453
|
-
analysis.queryPatterns.includes('filtered_queries'),
|
|
454
|
-
fields: this.suggestIndexFields(analysis)
|
|
455
|
-
},
|
|
456
|
-
caching: {
|
|
457
|
-
recommended: analysis.queryPatterns.includes('aggregate_queries'),
|
|
458
|
-
strategy: 'query_result_caching'
|
|
459
|
-
},
|
|
460
|
-
normalization: {
|
|
461
|
-
recommended: analysis.transformationNeeds.includes('split_transformation'),
|
|
462
|
-
level: 'third_normal_form'
|
|
463
|
-
}
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
suggestIndexFields(analysis) {
|
|
467
|
-
const fields = [];
|
|
468
|
-
if (analysis.queryPatterns.includes('search_queries')) {
|
|
469
|
-
fields.push('name', 'short_description');
|
|
470
|
-
}
|
|
471
|
-
if (analysis.queryPatterns.includes('filtered_queries')) {
|
|
472
|
-
fields.push('state', 'category', 'assigned_to');
|
|
473
|
-
}
|
|
474
|
-
if (analysis.queryPatterns.includes('sorted_queries')) {
|
|
475
|
-
fields.push('sys_created_on', 'priority');
|
|
476
|
-
}
|
|
477
|
-
return fields;
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
exports.IndividualDataSpecialist = IndividualDataSpecialist;
|
|
481
|
-
class IndividualIntegrationSpecialist extends base_specialist_js_1.BaseSpecialist {
|
|
482
|
-
constructor(options = {}) {
|
|
483
|
-
super('Integration Specialist', 'Integration Specialist', ['API Integration', 'Data Sync', 'Middleware', 'External Systems'], options);
|
|
484
|
-
}
|
|
485
|
-
async execute(task, context) {
|
|
486
|
-
await this.logProgress(`Working on integration task: ${task}`);
|
|
487
|
-
const analysis = await this.analyzeTask(task);
|
|
488
|
-
const integrationAnalysis = await this.performQuickIntegrationAnalysis(task);
|
|
489
|
-
return {
|
|
490
|
-
...analysis,
|
|
491
|
-
specialist: 'Integration Specialist',
|
|
492
|
-
integrationAnalysis,
|
|
493
|
-
implementation: this.generateQuickImplementation(integrationAnalysis),
|
|
494
|
-
quickImplementation: true
|
|
495
|
-
};
|
|
496
|
-
}
|
|
497
|
-
async performQuickIntegrationAnalysis(task) {
|
|
498
|
-
const lowerTask = task.toLowerCase();
|
|
499
|
-
return {
|
|
500
|
-
integrationType: this.identifyIntegrationType(task),
|
|
501
|
-
protocol: this.identifyProtocol(task),
|
|
502
|
-
authMethod: this.identifyAuthMethod(task),
|
|
503
|
-
dataFormat: this.identifyDataFormat(task),
|
|
504
|
-
direction: this.identifyDirection(task)
|
|
505
|
-
};
|
|
506
|
-
}
|
|
507
|
-
identifyIntegrationType(task) {
|
|
508
|
-
const lowerTask = task.toLowerCase();
|
|
509
|
-
if (lowerTask.includes('real') && lowerTask.includes('time'))
|
|
510
|
-
return 'real_time';
|
|
511
|
-
if (lowerTask.includes('batch') || lowerTask.includes('bulk'))
|
|
512
|
-
return 'batch';
|
|
513
|
-
if (lowerTask.includes('event') || lowerTask.includes('trigger'))
|
|
514
|
-
return 'event_driven';
|
|
515
|
-
return 'on_demand';
|
|
516
|
-
}
|
|
517
|
-
identifyProtocol(task) {
|
|
518
|
-
const lowerTask = task.toLowerCase();
|
|
519
|
-
if (lowerTask.includes('rest') || lowerTask.includes('http'))
|
|
520
|
-
return 'REST';
|
|
521
|
-
if (lowerTask.includes('soap'))
|
|
522
|
-
return 'SOAP';
|
|
523
|
-
if (lowerTask.includes('ftp') || lowerTask.includes('file'))
|
|
524
|
-
return 'FTP';
|
|
525
|
-
if (lowerTask.includes('email') || lowerTask.includes('smtp'))
|
|
526
|
-
return 'EMAIL';
|
|
527
|
-
return 'REST';
|
|
528
|
-
}
|
|
529
|
-
identifyAuthMethod(task) {
|
|
530
|
-
const lowerTask = task.toLowerCase();
|
|
531
|
-
if (lowerTask.includes('oauth'))
|
|
532
|
-
return 'OAuth2';
|
|
533
|
-
if (lowerTask.includes('token'))
|
|
534
|
-
return 'Bearer Token';
|
|
535
|
-
if (lowerTask.includes('basic'))
|
|
536
|
-
return 'Basic Auth';
|
|
537
|
-
if (lowerTask.includes('key'))
|
|
538
|
-
return 'API Key';
|
|
539
|
-
return 'Basic Auth';
|
|
540
|
-
}
|
|
541
|
-
identifyDataFormat(task) {
|
|
542
|
-
const lowerTask = task.toLowerCase();
|
|
543
|
-
if (lowerTask.includes('json'))
|
|
544
|
-
return 'JSON';
|
|
545
|
-
if (lowerTask.includes('xml'))
|
|
546
|
-
return 'XML';
|
|
547
|
-
if (lowerTask.includes('csv'))
|
|
548
|
-
return 'CSV';
|
|
549
|
-
return 'JSON';
|
|
550
|
-
}
|
|
551
|
-
identifyDirection(task) {
|
|
552
|
-
const lowerTask = task.toLowerCase();
|
|
553
|
-
if (lowerTask.includes('import') || lowerTask.includes('receive'))
|
|
554
|
-
return 'inbound';
|
|
555
|
-
if (lowerTask.includes('export') || lowerTask.includes('send'))
|
|
556
|
-
return 'outbound';
|
|
557
|
-
if (lowerTask.includes('sync') || lowerTask.includes('bidirectional'))
|
|
558
|
-
return 'bidirectional';
|
|
559
|
-
return 'bidirectional';
|
|
560
|
-
}
|
|
561
|
-
generateQuickImplementation(analysis) {
|
|
562
|
-
return {
|
|
563
|
-
restMessage: this.generateRESTMessageConfig(analysis),
|
|
564
|
-
transformation: this.generateTransformationLogic(analysis),
|
|
565
|
-
errorHandling: this.generateErrorHandling(analysis),
|
|
566
|
-
scheduling: analysis.integrationType === 'batch' ? this.generateScheduling() : null
|
|
567
|
-
};
|
|
568
|
-
}
|
|
569
|
-
generateRESTMessageConfig(analysis) {
|
|
570
|
-
return {
|
|
571
|
-
name: 'Quick Integration Message',
|
|
572
|
-
endpoint: 'https://api.example.com/endpoint',
|
|
573
|
-
authentication: analysis.authMethod,
|
|
574
|
-
headers: {
|
|
575
|
-
'Content-Type': `application/${analysis.dataFormat.toLowerCase()}`,
|
|
576
|
-
'Accept': `application/${analysis.dataFormat.toLowerCase()}`
|
|
577
|
-
},
|
|
578
|
-
methods: {
|
|
579
|
-
GET: analysis.direction === 'inbound' || analysis.direction === 'bidirectional',
|
|
580
|
-
POST: analysis.direction === 'outbound' || analysis.direction === 'bidirectional'
|
|
581
|
-
}
|
|
582
|
-
};
|
|
583
|
-
}
|
|
584
|
-
generateTransformationLogic(analysis) {
|
|
585
|
-
return `
|
|
586
|
-
// Quick data transformation
|
|
587
|
-
function transformData(inputData) {
|
|
588
|
-
var outputData = {};
|
|
589
|
-
|
|
590
|
-
if (typeof inputData === 'string') {
|
|
591
|
-
inputData = JSON.parse(inputData);
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
// Map common fields
|
|
595
|
-
outputData.number = inputData.id || inputData.number;
|
|
596
|
-
outputData.short_description = inputData.title || inputData.description;
|
|
597
|
-
outputData.state = inputData.status || inputData.state;
|
|
598
|
-
|
|
599
|
-
return outputData;
|
|
600
|
-
}
|
|
601
|
-
`.trim();
|
|
602
|
-
}
|
|
603
|
-
generateErrorHandling(analysis) {
|
|
604
|
-
return {
|
|
605
|
-
retryPolicy: {
|
|
606
|
-
maxRetries: 3,
|
|
607
|
-
backoffStrategy: 'exponential'
|
|
608
|
-
},
|
|
609
|
-
errorNotification: true,
|
|
610
|
-
fallbackStrategy: 'log_and_continue',
|
|
611
|
-
monitoring: true
|
|
612
|
-
};
|
|
613
|
-
}
|
|
614
|
-
generateScheduling() {
|
|
615
|
-
return {
|
|
616
|
-
frequency: 'hourly',
|
|
617
|
-
executionWindow: 'business_hours',
|
|
618
|
-
batchSize: 100,
|
|
619
|
-
parallelProcessing: false
|
|
620
|
-
};
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
exports.IndividualIntegrationSpecialist = IndividualIntegrationSpecialist;
|
|
624
|
-
// Export all individual specialists
|
|
625
|
-
exports.IndividualSpecialists = {
|
|
626
|
-
Frontend: IndividualFrontendSpecialist,
|
|
627
|
-
Backend: IndividualBackendSpecialist,
|
|
628
|
-
Security: IndividualSecuritySpecialist,
|
|
629
|
-
Data: IndividualDataSpecialist,
|
|
630
|
-
Integration: IndividualIntegrationSpecialist
|
|
631
|
-
};
|
|
632
|
-
//# sourceMappingURL=individual-specialists.js.map
|