snow-flow 3.0.8 → 3.0.10
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/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 +133 -19
- 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/utils/snow-oauth.js +53 -16
- 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 +2 -2
- 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,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Widget Builder Agent for Service Portal Widgets
|
|
3
|
-
*/
|
|
4
|
-
import { BaseServiceNowAgent } from '../core/base-agent.js';
|
|
5
|
-
import { AgentTask, AgentResult, ServiceNowConfig } from '../types/servicenow.types.js';
|
|
6
|
-
export declare class WidgetBuilderAgent extends BaseServiceNowAgent {
|
|
7
|
-
constructor(config: ServiceNowConfig);
|
|
8
|
-
execute(task: AgentTask): Promise<AgentResult>;
|
|
9
|
-
private createWidget;
|
|
10
|
-
private updateWidget;
|
|
11
|
-
private generateTemplate;
|
|
12
|
-
private createWidgetFromSpec;
|
|
13
|
-
private generateWidgetId;
|
|
14
|
-
private generateDefaultTemplate;
|
|
15
|
-
private generateDefaultCSS;
|
|
16
|
-
private generateServerScript;
|
|
17
|
-
private generateClientScript;
|
|
18
|
-
private generateDataTableTemplate;
|
|
19
|
-
private generateFormTemplate;
|
|
20
|
-
private generateChartTemplate;
|
|
21
|
-
private generateCustomTemplate;
|
|
22
|
-
private generateTemplateFromSpec;
|
|
23
|
-
private generateComponentTemplate;
|
|
24
|
-
private generateCSSFromSpec;
|
|
25
|
-
private generateServerScriptFromSpec;
|
|
26
|
-
private generateDataSourceCode;
|
|
27
|
-
private generateClientScriptFromSpec;
|
|
28
|
-
private generateOptionsFromSpec;
|
|
29
|
-
private generateWidgetFileCommands;
|
|
30
|
-
private toCamelCase;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=widget-builder.agent.d.ts.map
|
|
@@ -1,439 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Widget Builder Agent for Service Portal Widgets
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.WidgetBuilderAgent = void 0;
|
|
7
|
-
const base_agent_js_1 = require("../core/base-agent.js");
|
|
8
|
-
class WidgetBuilderAgent extends base_agent_js_1.BaseServiceNowAgent {
|
|
9
|
-
constructor(config) {
|
|
10
|
-
super('widget-builder', servicenow_types_js_1.AgentType.WIDGET_BUILDER, [
|
|
11
|
-
'create_widget',
|
|
12
|
-
'update_widget',
|
|
13
|
-
'generate_angular_template',
|
|
14
|
-
'create_widget_options',
|
|
15
|
-
'validate_widget_code',
|
|
16
|
-
'create_widget_dependencies'
|
|
17
|
-
], config);
|
|
18
|
-
}
|
|
19
|
-
async execute(task) {
|
|
20
|
-
this.logger.info(`Executing task: ${task.description}`);
|
|
21
|
-
try {
|
|
22
|
-
switch (task.type) {
|
|
23
|
-
case 'create_widget':
|
|
24
|
-
return await this.createWidget(task);
|
|
25
|
-
case 'update_widget':
|
|
26
|
-
return await this.updateWidget(task);
|
|
27
|
-
case 'generate_template':
|
|
28
|
-
return await this.generateTemplate(task);
|
|
29
|
-
case 'widget_from_spec':
|
|
30
|
-
return await this.createWidgetFromSpec(task);
|
|
31
|
-
default:
|
|
32
|
-
throw new Error(`Unknown task type: ${task.type}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
this.logger.error(`Task execution failed: ${error.message}`);
|
|
37
|
-
return {
|
|
38
|
-
taskId: task.id,
|
|
39
|
-
success: false,
|
|
40
|
-
error: error.message
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async createWidget(task) {
|
|
45
|
-
const { name, description, template, options } = task.payload;
|
|
46
|
-
// Generate widget structure
|
|
47
|
-
const widget = {
|
|
48
|
-
id: this.generateWidgetId(name),
|
|
49
|
-
name,
|
|
50
|
-
template: template || this.generateDefaultTemplate(name),
|
|
51
|
-
css: this.generateDefaultCSS(),
|
|
52
|
-
serverScript: this.generateServerScript(options),
|
|
53
|
-
clientScript: this.generateClientScript(name),
|
|
54
|
-
options: options || []
|
|
55
|
-
};
|
|
56
|
-
// Generate orchestration commands
|
|
57
|
-
const commands = [
|
|
58
|
-
this.generateCommand('Write', 'create', {
|
|
59
|
-
file_path: `/Users/nielsvanderwerf/Projects/servicenow_multiagent/output/widgets/${widget.id}/template.html`,
|
|
60
|
-
content: widget.template
|
|
61
|
-
}, `Create widget template for ${name}`),
|
|
62
|
-
this.generateCommand('Write', 'create', {
|
|
63
|
-
file_path: `/Users/nielsvanderwerf/Projects/servicenow_multiagent/output/widgets/${widget.id}/client.js`,
|
|
64
|
-
content: widget.clientScript
|
|
65
|
-
}, `Create client script for ${name}`),
|
|
66
|
-
this.generateCommand('Write', 'create', {
|
|
67
|
-
file_path: `/Users/nielsvanderwerf/Projects/servicenow_multiagent/output/widgets/${widget.id}/server.js`,
|
|
68
|
-
content: widget.serverScript
|
|
69
|
-
}, `Create server script for ${name}`),
|
|
70
|
-
this.generateCommand('Write', 'create', {
|
|
71
|
-
file_path: `/Users/nielsvanderwerf/Projects/servicenow_multiagent/output/widgets/${widget.id}/styles.css`,
|
|
72
|
-
content: widget.css
|
|
73
|
-
}, `Create CSS for ${name}`)
|
|
74
|
-
];
|
|
75
|
-
// Store widget in memory for coordination
|
|
76
|
-
await this.storeInMemory(`widgets:${widget.id}`, widget);
|
|
77
|
-
return {
|
|
78
|
-
taskId: task.id,
|
|
79
|
-
success: true,
|
|
80
|
-
output: widget,
|
|
81
|
-
artifacts: [
|
|
82
|
-
this.createArtifact('service_portal_widget', widget.name, widget)
|
|
83
|
-
],
|
|
84
|
-
commands
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
async updateWidget(task) {
|
|
88
|
-
const { widgetId, updates } = task.payload;
|
|
89
|
-
// Retrieve existing widget from memory
|
|
90
|
-
const existingWidget = await this.retrieveFromMemory(`widgets:${widgetId}`);
|
|
91
|
-
if (!existingWidget) {
|
|
92
|
-
throw new Error(`Widget ${widgetId} not found`);
|
|
93
|
-
}
|
|
94
|
-
// Apply updates
|
|
95
|
-
const updatedWidget = { ...existingWidget, ...updates };
|
|
96
|
-
// Store updated widget
|
|
97
|
-
await this.storeInMemory(`widgets:${widgetId}`, updatedWidget);
|
|
98
|
-
return {
|
|
99
|
-
taskId: task.id,
|
|
100
|
-
success: true,
|
|
101
|
-
output: updatedWidget,
|
|
102
|
-
artifacts: [
|
|
103
|
-
this.createArtifact('service_portal_widget', updatedWidget.name, updatedWidget)
|
|
104
|
-
]
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
async generateTemplate(task) {
|
|
108
|
-
const { componentType, bindings, layout } = task.payload;
|
|
109
|
-
let template = '';
|
|
110
|
-
switch (componentType) {
|
|
111
|
-
case 'data-table':
|
|
112
|
-
template = this.generateDataTableTemplate(bindings);
|
|
113
|
-
break;
|
|
114
|
-
case 'form':
|
|
115
|
-
template = this.generateFormTemplate(bindings);
|
|
116
|
-
break;
|
|
117
|
-
case 'chart':
|
|
118
|
-
template = this.generateChartTemplate(bindings);
|
|
119
|
-
break;
|
|
120
|
-
case 'custom':
|
|
121
|
-
template = this.generateCustomTemplate(layout, bindings);
|
|
122
|
-
break;
|
|
123
|
-
default:
|
|
124
|
-
template = this.generateDefaultTemplate('Generated Widget');
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
taskId: task.id,
|
|
128
|
-
success: true,
|
|
129
|
-
output: { template },
|
|
130
|
-
artifacts: [
|
|
131
|
-
this.createArtifact('template', 'generated-template.html', template)
|
|
132
|
-
]
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
async createWidgetFromSpec(task) {
|
|
136
|
-
const spec = task.payload;
|
|
137
|
-
// Parse specification and create widget components
|
|
138
|
-
const widget = {
|
|
139
|
-
id: this.generateWidgetId(spec.name),
|
|
140
|
-
name: spec.name,
|
|
141
|
-
template: this.generateTemplateFromSpec(spec),
|
|
142
|
-
css: this.generateCSSFromSpec(spec),
|
|
143
|
-
serverScript: this.generateServerScriptFromSpec(spec),
|
|
144
|
-
clientScript: this.generateClientScriptFromSpec(spec),
|
|
145
|
-
options: this.generateOptionsFromSpec(spec),
|
|
146
|
-
dependencies: spec.dependencies || []
|
|
147
|
-
};
|
|
148
|
-
// Generate comprehensive widget package
|
|
149
|
-
const commands = [
|
|
150
|
-
// Main widget files
|
|
151
|
-
...this.generateWidgetFileCommands(widget),
|
|
152
|
-
// Configuration file
|
|
153
|
-
this.generateCommand('Write', 'create', {
|
|
154
|
-
file_path: `/Users/nielsvanderwerf/Projects/servicenow_multiagent/output/widgets/${widget.id}/config.json`,
|
|
155
|
-
content: JSON.stringify({
|
|
156
|
-
id: widget.id,
|
|
157
|
-
name: widget.name,
|
|
158
|
-
version: '1.0.0',
|
|
159
|
-
dependencies: widget.dependencies,
|
|
160
|
-
options: widget.options
|
|
161
|
-
}, null, 2)
|
|
162
|
-
}, `Create widget configuration`)
|
|
163
|
-
];
|
|
164
|
-
return {
|
|
165
|
-
taskId: task.id,
|
|
166
|
-
success: true,
|
|
167
|
-
output: widget,
|
|
168
|
-
artifacts: [
|
|
169
|
-
this.createArtifact('service_portal_widget', widget.name, widget, {
|
|
170
|
-
spec: spec
|
|
171
|
-
})
|
|
172
|
-
],
|
|
173
|
-
commands
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
// Helper methods
|
|
177
|
-
generateWidgetId(name) {
|
|
178
|
-
return name.toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
|
|
179
|
-
}
|
|
180
|
-
generateDefaultTemplate(name) {
|
|
181
|
-
return `<div class="widget-container">
|
|
182
|
-
<div class="widget-header">
|
|
183
|
-
<h2>${name}</h2>
|
|
184
|
-
</div>
|
|
185
|
-
<div class="widget-body">
|
|
186
|
-
<p>Welcome to ${name} widget</p>
|
|
187
|
-
<div ng-repeat="item in c.data.items">
|
|
188
|
-
{{item.display_value}}
|
|
189
|
-
</div>
|
|
190
|
-
</div>
|
|
191
|
-
</div>`;
|
|
192
|
-
}
|
|
193
|
-
generateDefaultCSS() {
|
|
194
|
-
return `.widget-container {
|
|
195
|
-
padding: 20px;
|
|
196
|
-
background: #fff;
|
|
197
|
-
border-radius: 4px;
|
|
198
|
-
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.widget-header {
|
|
202
|
-
margin-bottom: 20px;
|
|
203
|
-
padding-bottom: 10px;
|
|
204
|
-
border-bottom: 1px solid #e0e0e0;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
.widget-header h2 {
|
|
208
|
-
margin: 0;
|
|
209
|
-
color: #333;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.widget-body {
|
|
213
|
-
color: #666;
|
|
214
|
-
}`;
|
|
215
|
-
}
|
|
216
|
-
generateServerScript(options) {
|
|
217
|
-
const optionHandling = options ?
|
|
218
|
-
options.map(opt => `\n var ${opt.name} = options.${opt.name} || ${JSON.stringify(opt.default_value)};`).join('')
|
|
219
|
-
: '';
|
|
220
|
-
return `(function() {
|
|
221
|
-
/* Widget server script */${optionHandling}
|
|
222
|
-
|
|
223
|
-
// Initialize data object
|
|
224
|
-
data.items = [];
|
|
225
|
-
|
|
226
|
-
// Example: Fetch data from a table
|
|
227
|
-
var gr = new GlideRecord('incident');
|
|
228
|
-
gr.addQuery('active', true);
|
|
229
|
-
gr.setLimit(10);
|
|
230
|
-
gr.query();
|
|
231
|
-
|
|
232
|
-
while (gr.next()) {
|
|
233
|
-
data.items.push({
|
|
234
|
-
sys_id: gr.getUniqueValue(),
|
|
235
|
-
display_value: gr.getDisplayValue()
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
})();`;
|
|
239
|
-
}
|
|
240
|
-
generateClientScript(name) {
|
|
241
|
-
return `function ${this.toCamelCase(name)}Controller() {
|
|
242
|
-
var c = this;
|
|
243
|
-
|
|
244
|
-
// Initialize controller
|
|
245
|
-
c.$onInit = function() {
|
|
246
|
-
console.log('${name} widget initialized');
|
|
247
|
-
c.loadData();
|
|
248
|
-
};
|
|
249
|
-
|
|
250
|
-
// Load widget data
|
|
251
|
-
c.loadData = function() {
|
|
252
|
-
c.server.get().then(function(response) {
|
|
253
|
-
c.data = response.data;
|
|
254
|
-
});
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
// Handle user interactions
|
|
258
|
-
c.onClick = function(item) {
|
|
259
|
-
console.log('Clicked:', item);
|
|
260
|
-
};
|
|
261
|
-
}`;
|
|
262
|
-
}
|
|
263
|
-
generateDataTableTemplate(bindings) {
|
|
264
|
-
return `<div class="data-table-widget">
|
|
265
|
-
<div class="table-header">
|
|
266
|
-
<h3>{{c.data.title || 'Data Table'}}</h3>
|
|
267
|
-
</div>
|
|
268
|
-
<table class="table table-striped">
|
|
269
|
-
<thead>
|
|
270
|
-
<tr>
|
|
271
|
-
<th ng-repeat="column in c.data.columns">{{column.label}}</th>
|
|
272
|
-
</tr>
|
|
273
|
-
</thead>
|
|
274
|
-
<tbody>
|
|
275
|
-
<tr ng-repeat="row in c.data.rows">
|
|
276
|
-
<td ng-repeat="column in c.data.columns">
|
|
277
|
-
{{row[column.field]}}
|
|
278
|
-
</td>
|
|
279
|
-
</tr>
|
|
280
|
-
</tbody>
|
|
281
|
-
</table>
|
|
282
|
-
</div>`;
|
|
283
|
-
}
|
|
284
|
-
generateFormTemplate(bindings) {
|
|
285
|
-
return `<form class="form-widget" ng-submit="c.submit()">
|
|
286
|
-
<div class="form-group" ng-repeat="field in c.data.fields">
|
|
287
|
-
<label>{{field.label}}</label>
|
|
288
|
-
<input
|
|
289
|
-
ng-if="field.type === 'text'"
|
|
290
|
-
type="text"
|
|
291
|
-
class="form-control"
|
|
292
|
-
ng-model="c.formData[field.name]"
|
|
293
|
-
ng-required="field.required">
|
|
294
|
-
<select
|
|
295
|
-
ng-if="field.type === 'choice'"
|
|
296
|
-
class="form-control"
|
|
297
|
-
ng-model="c.formData[field.name]"
|
|
298
|
-
ng-required="field.required">
|
|
299
|
-
<option ng-repeat="choice in field.choices" value="{{choice.value}}">
|
|
300
|
-
{{choice.label}}
|
|
301
|
-
</option>
|
|
302
|
-
</select>
|
|
303
|
-
</div>
|
|
304
|
-
<button type="submit" class="btn btn-primary">Submit</button>
|
|
305
|
-
</form>`;
|
|
306
|
-
}
|
|
307
|
-
generateChartTemplate(bindings) {
|
|
308
|
-
return `<div class="chart-widget">
|
|
309
|
-
<h3>{{c.data.title}}</h3>
|
|
310
|
-
<canvas id="chart-{{c.data.chartId}}"></canvas>
|
|
311
|
-
<script>
|
|
312
|
-
// Chart initialization will be handled in client script
|
|
313
|
-
</script>
|
|
314
|
-
</div>`;
|
|
315
|
-
}
|
|
316
|
-
generateCustomTemplate(layout, bindings) {
|
|
317
|
-
// Generate custom template based on layout specification
|
|
318
|
-
return `<div class="custom-widget">
|
|
319
|
-
<!-- Custom widget implementation -->
|
|
320
|
-
<div ng-bind-html="c.data.content"></div>
|
|
321
|
-
</div>`;
|
|
322
|
-
}
|
|
323
|
-
generateTemplateFromSpec(spec) {
|
|
324
|
-
// Generate template based on specification
|
|
325
|
-
if (spec.template) {
|
|
326
|
-
return spec.template;
|
|
327
|
-
}
|
|
328
|
-
// Build template from components
|
|
329
|
-
let template = '<div class="' + (spec.containerClass || 'widget-container') + '">\n';
|
|
330
|
-
if (spec.components) {
|
|
331
|
-
spec.components.forEach((component) => {
|
|
332
|
-
template += this.generateComponentTemplate(component) + '\n';
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
template += '</div>';
|
|
336
|
-
return template;
|
|
337
|
-
}
|
|
338
|
-
generateComponentTemplate(component) {
|
|
339
|
-
switch (component.type) {
|
|
340
|
-
case 'header':
|
|
341
|
-
return ` <div class="widget-header"><h3>{{c.data.${component.binding || 'title'}}}</h3></div>`;
|
|
342
|
-
case 'list':
|
|
343
|
-
return ` <ul class="widget-list">
|
|
344
|
-
<li ng-repeat="item in c.data.${component.binding || 'items'}">{{item.display_value}}</li>
|
|
345
|
-
</ul>`;
|
|
346
|
-
case 'button':
|
|
347
|
-
return ` <button class="btn btn-${component.style || 'default'}" ng-click="c.${component.action}()">{{${component.label}}}</button>`;
|
|
348
|
-
default:
|
|
349
|
-
return ` <div>${component.content || ''}</div>`;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
generateCSSFromSpec(spec) {
|
|
353
|
-
if (spec.css) {
|
|
354
|
-
return spec.css;
|
|
355
|
-
}
|
|
356
|
-
// Generate default CSS based on spec
|
|
357
|
-
return this.generateDefaultCSS();
|
|
358
|
-
}
|
|
359
|
-
generateServerScriptFromSpec(spec) {
|
|
360
|
-
if (spec.serverScript) {
|
|
361
|
-
return spec.serverScript;
|
|
362
|
-
}
|
|
363
|
-
let script = '(function() {\n';
|
|
364
|
-
// Handle data sources
|
|
365
|
-
if (spec.dataSources) {
|
|
366
|
-
spec.dataSources.forEach((source) => {
|
|
367
|
-
script += this.generateDataSourceCode(source) + '\n';
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
script += '})();';
|
|
371
|
-
return script;
|
|
372
|
-
}
|
|
373
|
-
generateDataSourceCode(source) {
|
|
374
|
-
return ` // Fetch data from ${source.table}
|
|
375
|
-
var gr = new GlideRecord('${source.table}');
|
|
376
|
-
${source.query ? `gr.addEncodedQuery('${source.query}');` : ''}
|
|
377
|
-
${source.limit ? `gr.setLimit(${source.limit});` : ''}
|
|
378
|
-
gr.query();
|
|
379
|
-
|
|
380
|
-
data.${source.name || 'items'} = [];
|
|
381
|
-
while (gr.next()) {
|
|
382
|
-
data.${source.name || 'items'}.push({
|
|
383
|
-
sys_id: gr.getUniqueValue(),
|
|
384
|
-
display_value: gr.getDisplayValue()
|
|
385
|
-
});
|
|
386
|
-
}`;
|
|
387
|
-
}
|
|
388
|
-
generateClientScriptFromSpec(spec) {
|
|
389
|
-
if (spec.clientScript) {
|
|
390
|
-
return spec.clientScript;
|
|
391
|
-
}
|
|
392
|
-
const controllerName = this.toCamelCase(spec.name) + 'Controller';
|
|
393
|
-
return this.generateClientScript(spec.name);
|
|
394
|
-
}
|
|
395
|
-
generateOptionsFromSpec(spec) {
|
|
396
|
-
if (!spec.options) {
|
|
397
|
-
return [];
|
|
398
|
-
}
|
|
399
|
-
return spec.options.map((opt) => ({
|
|
400
|
-
name: opt.name,
|
|
401
|
-
label: opt.label || opt.name,
|
|
402
|
-
type: opt.type || 'string',
|
|
403
|
-
default_value: opt.default,
|
|
404
|
-
choices: opt.choices
|
|
405
|
-
}));
|
|
406
|
-
}
|
|
407
|
-
generateWidgetFileCommands(widget) {
|
|
408
|
-
const baseDir = `/Users/nielsvanderwerf/Projects/servicenow_multiagent/output/widgets/${widget.id}`;
|
|
409
|
-
return [
|
|
410
|
-
this.generateCommand('Bash', 'create', {
|
|
411
|
-
command: `mkdir -p ${baseDir}`,
|
|
412
|
-
description: `Create widget directory for ${widget.name}`
|
|
413
|
-
}, 'Create widget directory'),
|
|
414
|
-
this.generateCommand('Write', 'create', {
|
|
415
|
-
file_path: `${baseDir}/template.html`,
|
|
416
|
-
content: widget.template
|
|
417
|
-
}, 'Create widget template'),
|
|
418
|
-
this.generateCommand('Write', 'create', {
|
|
419
|
-
file_path: `${baseDir}/client.js`,
|
|
420
|
-
content: widget.clientScript
|
|
421
|
-
}, 'Create client script'),
|
|
422
|
-
this.generateCommand('Write', 'create', {
|
|
423
|
-
file_path: `${baseDir}/server.js`,
|
|
424
|
-
content: widget.serverScript
|
|
425
|
-
}, 'Create server script'),
|
|
426
|
-
this.generateCommand('Write', 'create', {
|
|
427
|
-
file_path: `${baseDir}/styles.css`,
|
|
428
|
-
content: widget.css
|
|
429
|
-
}, 'Create widget styles')
|
|
430
|
-
];
|
|
431
|
-
}
|
|
432
|
-
toCamelCase(str) {
|
|
433
|
-
return str.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
434
|
-
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
|
435
|
-
}).replace(/\s+/g, '');
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
exports.WidgetBuilderAgent = WidgetBuilderAgent;
|
|
439
|
-
//# sourceMappingURL=widget-builder.agent.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Widget Creator Agent
|
|
3
|
-
* Specializes in creating ServiceNow Service Portal widgets
|
|
4
|
-
*/
|
|
5
|
-
import { BaseAgent, AgentConfig, AgentResult } from './base-agent';
|
|
6
|
-
export declare class WidgetCreatorAgent extends BaseAgent {
|
|
7
|
-
constructor(config?: Partial<AgentConfig>);
|
|
8
|
-
execute(instruction: string, context?: Record<string, any>): Promise<AgentResult>;
|
|
9
|
-
private analyzeWidgetRequirements;
|
|
10
|
-
private checkExistingWidgets;
|
|
11
|
-
private createHTMLTemplate;
|
|
12
|
-
private createCSS;
|
|
13
|
-
private createClientScript;
|
|
14
|
-
private createServerScript;
|
|
15
|
-
private generateDemoData;
|
|
16
|
-
private prepareDeploymentInstructions;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=widget-creator-agent.d.ts.map
|