snow-flow 1.3.12 โ 1.3.14
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/dist/cli.js +178 -123
- package/dist/utils/agent-detector.js +3 -2
- package/dist/version.js +17 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -197,60 +197,88 @@ program
|
|
|
197
197
|
.option('--no-progress-monitoring', 'Disable progress monitoring')
|
|
198
198
|
.option('--xml-first', 'Use XML-first approach for flow creation (MOST RELIABLE!)')
|
|
199
199
|
.option('--xml-output <path>', 'Save generated XML to specific path (with --xml-first)')
|
|
200
|
+
.option('--verbose', 'Show detailed execution information')
|
|
200
201
|
.action(async (objective, options) => {
|
|
201
|
-
|
|
202
|
+
// Always show essential info
|
|
203
|
+
cliLogger.info(`\n๐ Snow-Flow v${version_js_1.VERSION}`);
|
|
202
204
|
cliLogger.info(`๐ Objective: ${objective}`);
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
205
|
+
// Only show detailed config in verbose mode
|
|
206
|
+
if (options.verbose) {
|
|
207
|
+
cliLogger.info(`โ๏ธ Strategy: ${options.strategy} | Mode: ${options.mode} | Max Agents: ${options.maxAgents}`);
|
|
208
|
+
cliLogger.info(`๐ Parallel: ${options.parallel ? 'Yes' : 'No'} | Monitor: ${options.monitor ? 'Yes' : 'No'}`);
|
|
209
|
+
// Show new intelligent features
|
|
210
|
+
cliLogger.info(`\n๐ง Intelligent Features:`);
|
|
211
|
+
cliLogger.info(` ๐ Auto Permissions: ${options.autoPermissions ? 'โ
Yes' : 'โ No'}`);
|
|
212
|
+
cliLogger.info(` ๐ Smart Discovery: ${options.smartDiscovery ? 'โ
Yes' : 'โ No'}`);
|
|
213
|
+
cliLogger.info(` ๐งช Live Testing: ${options.liveTesting ? 'โ
Yes' : 'โ No'}`);
|
|
214
|
+
cliLogger.info(` ๐ Auto Deploy: ${options.autoDeploy ? 'โ
DEPLOYMENT MODE - WILL CREATE REAL ARTIFACTS' : 'โ PLANNING MODE - ANALYSIS ONLY'}`);
|
|
215
|
+
cliLogger.info(` ๐ Auto Rollback: ${options.autoRollback ? 'โ
Yes' : 'โ No'}`);
|
|
216
|
+
cliLogger.info(` ๐พ Shared Memory: ${options.sharedMemory ? 'โ
Yes' : 'โ No'}`);
|
|
217
|
+
cliLogger.info(` ๐ Progress Monitoring: ${options.progressMonitoring ? 'โ
Yes' : 'โ No'}\n`);
|
|
218
|
+
}
|
|
219
|
+
else if (options.autoDeploy) {
|
|
220
|
+
// In non-verbose mode, only show critical deployment warning
|
|
221
|
+
cliLogger.info(`๐ Auto-Deploy: ENABLED - Will create real artifacts in ServiceNow`);
|
|
222
|
+
}
|
|
214
223
|
// Analyze the objective using intelligent agent detection
|
|
215
224
|
const taskAnalysis = analyzeObjective(objective, parseInt(options.maxAgents));
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
cliLogger.info(
|
|
225
|
+
// Debug logging to understand task type detection
|
|
226
|
+
if (process.env.DEBUG || options.verbose) {
|
|
227
|
+
if (process.env.DEBUG) {
|
|
228
|
+
cliLogger.info(`๐ DEBUG - Detected artifacts: [${taskAnalysis.serviceNowArtifacts.join(', ')}]`);
|
|
229
|
+
cliLogger.info(`๐ DEBUG - Flow keywords in objective: ${objective.toLowerCase().includes('flow')}`);
|
|
230
|
+
cliLogger.info(`๐ DEBUG - Widget keywords in objective: ${objective.toLowerCase().includes('widget')}`);
|
|
231
|
+
}
|
|
232
|
+
cliLogger.info(`\n๐ Task Analysis:`);
|
|
233
|
+
cliLogger.info(` ๐ฏ Task Type: ${taskAnalysis.taskType}`);
|
|
234
|
+
cliLogger.info(` ๐ง Primary Agent: ${taskAnalysis.primaryAgent}`);
|
|
235
|
+
cliLogger.info(` ๐ฅ Supporting Agents: ${taskAnalysis.supportingAgents.join(', ')}`);
|
|
236
|
+
cliLogger.info(` ๐ Complexity: ${taskAnalysis.complexity} | Estimated Agents: ${taskAnalysis.estimatedAgentCount}`);
|
|
237
|
+
cliLogger.info(` ๐ง ServiceNow Artifacts: ${taskAnalysis.serviceNowArtifacts.join(', ')}`);
|
|
238
|
+
cliLogger.info(` ๐ฆ Auto Update Set: ${taskAnalysis.requiresUpdateSet ? 'โ
Yes' : 'โ No'}`);
|
|
239
|
+
cliLogger.info(` ๐๏ธ Auto Application: ${taskAnalysis.requiresApplication ? 'โ
Yes' : 'โ No'}`);
|
|
227
240
|
}
|
|
228
|
-
|
|
229
|
-
|
|
241
|
+
// Show timeout configuration only in verbose mode
|
|
242
|
+
const timeoutMinutes = process.env.SNOW_FLOW_TIMEOUT_MINUTES ? parseInt(process.env.SNOW_FLOW_TIMEOUT_MINUTES) : 60;
|
|
243
|
+
if (options.verbose) {
|
|
244
|
+
if (timeoutMinutes > 0) {
|
|
245
|
+
cliLogger.info(`โฑ๏ธ Timeout: ${timeoutMinutes} minutes`);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
cliLogger.info('โฑ๏ธ Timeout: Disabled (infinite execution time)');
|
|
249
|
+
}
|
|
230
250
|
}
|
|
231
251
|
// Check ServiceNow authentication
|
|
232
252
|
const oauth = new snow_oauth_js_1.ServiceNowOAuth();
|
|
233
253
|
const isAuthenticated = await oauth.isAuthenticated();
|
|
234
|
-
if (
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
254
|
+
if (options.verbose) {
|
|
255
|
+
if (isAuthenticated) {
|
|
256
|
+
cliLogger.info('๐ ServiceNow connection: โ
Authenticated');
|
|
257
|
+
// Test ServiceNow connection
|
|
258
|
+
const client = new servicenow_client_js_1.ServiceNowClient();
|
|
259
|
+
const testResult = await client.testConnection();
|
|
260
|
+
if (testResult.success) {
|
|
261
|
+
cliLogger.info(`๐ค Connected as: ${testResult.data.name} (${testResult.data.user_name})`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
cliLogger.warn('๐ ServiceNow connection: โ Not authenticated');
|
|
266
|
+
cliLogger.info('๐ก Run "snow-flow auth login" to enable live ServiceNow integration');
|
|
241
267
|
}
|
|
242
268
|
}
|
|
243
|
-
else {
|
|
244
|
-
|
|
245
|
-
cliLogger.
|
|
269
|
+
else if (!isAuthenticated) {
|
|
270
|
+
// In non-verbose mode, only warn if not authenticated
|
|
271
|
+
cliLogger.warn('โ ๏ธ Not authenticated. Run "snow-flow auth login" for ServiceNow integration');
|
|
246
272
|
}
|
|
247
273
|
// Initialize Queen Agent memory system
|
|
248
|
-
|
|
274
|
+
if (options.verbose) {
|
|
275
|
+
cliLogger.info('\n๐พ Initializing swarm memory system...');
|
|
276
|
+
}
|
|
249
277
|
const { QueenMemorySystem } = await Promise.resolve().then(() => __importStar(require('./queen/queen-memory.js')));
|
|
250
278
|
const memorySystem = new QueenMemorySystem();
|
|
251
279
|
// Generate swarm session ID
|
|
252
280
|
const sessionId = `swarm_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
253
|
-
cliLogger.info(
|
|
281
|
+
cliLogger.info(`\n๐ Session: ${sessionId}`);
|
|
254
282
|
// Store swarm session in memory
|
|
255
283
|
memorySystem.storeLearning(`session_${sessionId}`, {
|
|
256
284
|
objective,
|
|
@@ -267,9 +295,7 @@ program
|
|
|
267
295
|
!objective.toLowerCase().includes('data flow'));
|
|
268
296
|
let xmlFlowResult = null;
|
|
269
297
|
if (isFlowDesignerTask) {
|
|
270
|
-
cliLogger.info('\n๐ง Flow Designer
|
|
271
|
-
cliLogger.info('๐ Creating production-ready ServiceNow flow XML...');
|
|
272
|
-
cliLogger.info('๐ก Reason: Flow Designer flows are most reliable with XML-first approach\n');
|
|
298
|
+
cliLogger.info('\n๐ง Flow Designer detected - generating XML...');
|
|
273
299
|
try {
|
|
274
300
|
// Import IMPROVED XML flow generator (fixes "too small to work" issue!)
|
|
275
301
|
const { generateImprovedFlowXML } = await Promise.resolve().then(() => __importStar(require('./utils/improved-flow-xml-generator.js')));
|
|
@@ -349,7 +375,9 @@ program
|
|
|
349
375
|
}]
|
|
350
376
|
};
|
|
351
377
|
// Generate IMPROVED XML with enhanced structure
|
|
352
|
-
|
|
378
|
+
if (options.verbose) {
|
|
379
|
+
cliLogger.info('๐๏ธ Generating IMPROVED production XML...');
|
|
380
|
+
}
|
|
353
381
|
// Convert to improved flow definition
|
|
354
382
|
const improvedFlowDef = {
|
|
355
383
|
...flowDef,
|
|
@@ -364,18 +392,19 @@ program
|
|
|
364
392
|
};
|
|
365
393
|
const result = generateImprovedFlowXML(improvedFlowDef);
|
|
366
394
|
xmlFlowResult = { ...result, flowDefinition: flowDef };
|
|
367
|
-
cliLogger.info(
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
395
|
+
cliLogger.info(`โ
XML generated: ${result.filePath}`);
|
|
396
|
+
if (options.verbose) {
|
|
397
|
+
cliLogger.info(`๐ฅ IMPROVEMENTS: Uses v2 tables, Base64+gzip encoding, complete label_cache!`);
|
|
398
|
+
cliLogger.info(`๐ Flow structure:`);
|
|
399
|
+
cliLogger.info(` - Name: ${flowDef.name}`);
|
|
400
|
+
cliLogger.info(` - Table: ${flowDef.table}`);
|
|
401
|
+
cliLogger.info(` - Trigger: ${flowDef.trigger_type}`);
|
|
402
|
+
cliLogger.info(` - Activities: ${flowDef.activities.length}`);
|
|
403
|
+
// Show import instructions
|
|
404
|
+
cliLogger.info('\n' + '='.repeat(60));
|
|
405
|
+
cliLogger.info(result.instructions);
|
|
406
|
+
cliLogger.info('='.repeat(60));
|
|
407
|
+
}
|
|
379
408
|
// Store result in memory
|
|
380
409
|
memorySystem.storeLearning(`xml_flow_${sessionId}`, {
|
|
381
410
|
objective,
|
|
@@ -383,37 +412,44 @@ program
|
|
|
383
412
|
xml_file: result.filePath,
|
|
384
413
|
generated_at: new Date().toISOString()
|
|
385
414
|
});
|
|
386
|
-
cliLogger.info('\n๐ฏ XML Flow generated successfully!');
|
|
387
415
|
// Check if auto-deploy is enabled
|
|
388
416
|
if (options.autoDeploy !== false) { // Default is true from swarm command
|
|
389
|
-
cliLogger.info('
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
if (deploySuccess) {
|
|
396
|
-
cliLogger.info('\nโ
Flow automatically deployed to ServiceNow!');
|
|
397
|
-
cliLogger.info('๐ฏ The flow is now available in Flow Designer');
|
|
398
|
-
// Store deployment success in memory
|
|
399
|
-
memorySystem.storeLearning(`deployment_${sessionId}`, {
|
|
400
|
-
success: true,
|
|
401
|
-
xml_file: result.filePath,
|
|
402
|
-
deployed_at: new Date().toISOString(),
|
|
403
|
-
flow_name: flowDef.name
|
|
417
|
+
cliLogger.info('๐ Deploying to ServiceNow...');
|
|
418
|
+
try {
|
|
419
|
+
// Automatically deploy the XML file
|
|
420
|
+
const deploySuccess = await deployXMLToServiceNow(result.filePath, {
|
|
421
|
+
preview: true,
|
|
422
|
+
commit: true
|
|
404
423
|
});
|
|
424
|
+
if (deploySuccess) {
|
|
425
|
+
cliLogger.info('โ
Flow deployed to ServiceNow!');
|
|
426
|
+
// Store deployment success in memory
|
|
427
|
+
memorySystem.storeLearning(`deployment_${sessionId}`, {
|
|
428
|
+
success: true,
|
|
429
|
+
xml_file: result.filePath,
|
|
430
|
+
deployed_at: new Date().toISOString(),
|
|
431
|
+
flow_name: flowDef.name
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
else {
|
|
435
|
+
cliLogger.warn('โ ๏ธ Deployment encountered issues');
|
|
436
|
+
cliLogger.info(`๐ก Manual deploy: snow-flow deploy-xml "${result.filePath}"`);
|
|
437
|
+
}
|
|
405
438
|
}
|
|
406
|
-
|
|
407
|
-
cliLogger.
|
|
408
|
-
cliLogger.info(
|
|
409
|
-
cliLogger.info(` snow-flow deploy-xml "${result.filePath}"`);
|
|
439
|
+
catch (deployError) {
|
|
440
|
+
cliLogger.error('โ Deployment failed:', deployError instanceof Error ? deployError.message : String(deployError));
|
|
441
|
+
cliLogger.info(`๐ก Manual deploy: snow-flow deploy-xml "${result.filePath}"`);
|
|
410
442
|
}
|
|
411
443
|
}
|
|
412
444
|
else {
|
|
413
|
-
|
|
445
|
+
if (options.verbose) {
|
|
446
|
+
cliLogger.info('๐ Use the import instructions above to deploy to ServiceNow');
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
cliLogger.info(`๐ Manual deploy: snow-flow deploy-xml "${result.filePath}"`);
|
|
450
|
+
}
|
|
414
451
|
}
|
|
415
|
-
|
|
416
|
-
// DO NOT RETURN HERE - Continue to Queen Agent orchestration!
|
|
452
|
+
// Continue to Queen Agent orchestration
|
|
417
453
|
}
|
|
418
454
|
catch (error) {
|
|
419
455
|
cliLogger.error('โ XML flow generation failed:', error instanceof Error ? error.message : String(error));
|
|
@@ -424,17 +460,22 @@ program
|
|
|
424
460
|
try {
|
|
425
461
|
// Generate the Queen Agent orchestration prompt
|
|
426
462
|
const orchestrationPrompt = buildQueenAgentPrompt(objective, taskAnalysis, options, isAuthenticated, sessionId, xmlFlowResult);
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
463
|
+
if (options.verbose) {
|
|
464
|
+
cliLogger.info('\n๐ Initializing Queen Agent orchestration...');
|
|
465
|
+
cliLogger.info('๐ฏ Queen Agent will coordinate the following:');
|
|
466
|
+
cliLogger.info(` - Analyze objective: "${objective}"`);
|
|
467
|
+
cliLogger.info(` - Spawn ${taskAnalysis.estimatedAgentCount} specialized agents`);
|
|
468
|
+
cliLogger.info(` - Coordinate through shared memory (session: ${sessionId})`);
|
|
469
|
+
cliLogger.info(` - Monitor progress and adapt strategy`);
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
cliLogger.info('\n๐ Launching Queen Agent...');
|
|
473
|
+
}
|
|
433
474
|
// Check if intelligent features are enabled
|
|
434
475
|
const hasIntelligentFeatures = options.autoPermissions || options.smartDiscovery ||
|
|
435
476
|
options.liveTesting || options.autoDeploy || options.autoRollback ||
|
|
436
477
|
options.sharedMemory || options.progressMonitoring;
|
|
437
|
-
if (hasIntelligentFeatures && isAuthenticated) {
|
|
478
|
+
if (options.verbose && hasIntelligentFeatures && isAuthenticated) {
|
|
438
479
|
cliLogger.info('\n๐ง INTELLIGENT ORCHESTRATION MODE ENABLED!');
|
|
439
480
|
cliLogger.info('โจ Queen Agent will use advanced features:');
|
|
440
481
|
if (options.autoPermissions) {
|
|
@@ -459,26 +500,30 @@ program
|
|
|
459
500
|
cliLogger.info(' ๐ Real-time progress monitoring');
|
|
460
501
|
}
|
|
461
502
|
}
|
|
462
|
-
if (
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
503
|
+
if (options.verbose) {
|
|
504
|
+
if (isAuthenticated) {
|
|
505
|
+
cliLogger.info('\n๐ Live ServiceNow integration: โ
Enabled');
|
|
506
|
+
cliLogger.info('๐ Artifacts will be created directly in ServiceNow');
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
cliLogger.info('\n๐ Live ServiceNow integration: โ Disabled');
|
|
510
|
+
cliLogger.info('๐ Artifacts will be saved to servicenow/ directory');
|
|
511
|
+
}
|
|
469
512
|
}
|
|
470
|
-
cliLogger.info('
|
|
513
|
+
cliLogger.info('๐ Launching Claude Code...');
|
|
471
514
|
// Try to execute Claude Code directly with the prompt
|
|
472
515
|
const success = await executeClaudeCode(orchestrationPrompt);
|
|
473
516
|
if (success) {
|
|
474
|
-
cliLogger.info('
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
517
|
+
cliLogger.info('โ
Claude Code launched successfully!');
|
|
518
|
+
if (options.verbose) {
|
|
519
|
+
cliLogger.info('๐ Queen Agent is now coordinating your swarm');
|
|
520
|
+
cliLogger.info(`๐พ Monitor progress with session ID: ${sessionId}`);
|
|
521
|
+
if (isAuthenticated && options.autoDeploy) {
|
|
522
|
+
cliLogger.info('๐ Real artifacts will be created in ServiceNow');
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
cliLogger.info('๐ Planning mode - analysis and recommendations only');
|
|
526
|
+
}
|
|
482
527
|
}
|
|
483
528
|
// Store successful launch in memory
|
|
484
529
|
memorySystem.storeLearning(`launch_${sessionId}`, {
|
|
@@ -487,33 +532,43 @@ program
|
|
|
487
532
|
});
|
|
488
533
|
}
|
|
489
534
|
else {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
535
|
+
if (options.verbose) {
|
|
536
|
+
cliLogger.info('\n๐ SNOW-FLOW ORCHESTRATION COMPLETE!');
|
|
537
|
+
cliLogger.info('๐ค Now it\'s time for Claude Code agents to do the work...\n');
|
|
538
|
+
cliLogger.info('๐ QUEEN AGENT ORCHESTRATION PROMPT FOR CLAUDE CODE:');
|
|
539
|
+
cliLogger.info('='.repeat(80));
|
|
540
|
+
cliLogger.info(orchestrationPrompt);
|
|
541
|
+
cliLogger.info('='.repeat(80));
|
|
542
|
+
cliLogger.info('\nโ
Snow-Flow has prepared the orchestration!');
|
|
543
|
+
cliLogger.info('๐ CRITICAL NEXT STEPS:');
|
|
544
|
+
cliLogger.info(' 1. Copy the ENTIRE prompt above');
|
|
545
|
+
cliLogger.info(' 2. Paste it into Claude Code (the AI assistant)');
|
|
546
|
+
cliLogger.info(' 3. Claude Code will spawn multiple specialized agents as workhorses');
|
|
547
|
+
cliLogger.info(' 4. These agents will implement your flow with all required logic');
|
|
548
|
+
cliLogger.info(' 5. Agents will enhance the basic XML template with real functionality');
|
|
549
|
+
cliLogger.info('\n๐ฏ Remember:');
|
|
550
|
+
cliLogger.info(' - Snow-Flow = Orchestrator (coordinates the work)');
|
|
551
|
+
cliLogger.info(' - Claude Code = Workhorses (implement the solution)');
|
|
552
|
+
if (xmlFlowResult) {
|
|
553
|
+
cliLogger.info(`\n๐ XML template saved at: ${xmlFlowResult.filePath}`);
|
|
554
|
+
cliLogger.info(' โ ๏ธ This is just a BASIC template - agents must enhance it!');
|
|
555
|
+
}
|
|
556
|
+
if (isAuthenticated && options.autoDeploy) {
|
|
557
|
+
cliLogger.info('\n๐ Deployment Mode: Agents will create REAL artifacts in ServiceNow');
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
cliLogger.info('\n๐ Planning Mode: Analysis and recommendations only');
|
|
561
|
+
}
|
|
562
|
+
cliLogger.info(`\n๐พ Session ID for monitoring: ${sessionId}`);
|
|
512
563
|
}
|
|
513
564
|
else {
|
|
514
|
-
|
|
565
|
+
// Non-verbose mode - just show the essential info
|
|
566
|
+
cliLogger.info('\n๐ Manual Claude Code execution required');
|
|
567
|
+
cliLogger.info('๐ก Run with --verbose to see the full orchestration prompt');
|
|
568
|
+
if (xmlFlowResult) {
|
|
569
|
+
cliLogger.info(`๐ XML generated: ${xmlFlowResult.filePath}`);
|
|
570
|
+
}
|
|
515
571
|
}
|
|
516
|
-
cliLogger.info(`\n๐พ Session ID for monitoring: ${sessionId}`);
|
|
517
572
|
}
|
|
518
573
|
}
|
|
519
574
|
catch (error) {
|
|
@@ -266,10 +266,11 @@ class AgentDetector {
|
|
|
266
266
|
}
|
|
267
267
|
static determineTaskType(objective, artifacts) {
|
|
268
268
|
// Determine based on detected artifacts and keywords
|
|
269
|
-
|
|
270
|
-
return 'widget_development';
|
|
269
|
+
// Check flow FIRST as it's often confused with widget when both are present
|
|
271
270
|
if (artifacts.includes('flow') || artifacts.includes('workflow'))
|
|
272
271
|
return 'flow_development';
|
|
272
|
+
if (artifacts.includes('widget'))
|
|
273
|
+
return 'widget_development';
|
|
273
274
|
if (artifacts.includes('application'))
|
|
274
275
|
return 'application_development';
|
|
275
276
|
if (artifacts.includes('script') || artifacts.includes('business_rule'))
|
package/dist/version.js
CHANGED
|
@@ -7,12 +7,28 @@ exports.VERSION_INFO = exports.VERSION = void 0;
|
|
|
7
7
|
exports.getVersionString = getVersionString;
|
|
8
8
|
exports.getLatestFeatures = getLatestFeatures;
|
|
9
9
|
exports.isLatestVersion = isLatestVersion;
|
|
10
|
-
exports.VERSION = '1.3.
|
|
10
|
+
exports.VERSION = '1.3.14';
|
|
11
11
|
exports.VERSION_INFO = {
|
|
12
12
|
version: exports.VERSION,
|
|
13
13
|
name: 'Snow-Flow',
|
|
14
14
|
description: 'ServiceNow Queen Agent - Hive-Mind Intelligence for ServiceNow Development',
|
|
15
15
|
features: {
|
|
16
|
+
'1.3.14': [
|
|
17
|
+
'๐ฏ CLEANER OUTPUT: Dramatically reduced verbose logging in swarm command',
|
|
18
|
+
'๐ FOCUSED UI: Only essential information shown by default',
|
|
19
|
+
'๐ --verbose FLAG: Added flag to see detailed execution information',
|
|
20
|
+
'โจ STREAMLINED: No more walls of text before anything happens',
|
|
21
|
+
'๐ก SMART DEFAULTS: Shows objective, session ID, and actual progress only',
|
|
22
|
+
'๐ง BETTER UX: Clean, professional output focused on what matters'
|
|
23
|
+
],
|
|
24
|
+
'1.3.13': [
|
|
25
|
+
'๐ FIX ERROR MESSAGES: Separated XML generation and deployment error handling',
|
|
26
|
+
'โ
CORRECT ERRORS: "XML flow generation failed" no longer shows for deployment issues',
|
|
27
|
+
'๐ฏ FLOW DETECTION FIX: Flow tasks now correctly detected instead of widget_development',
|
|
28
|
+
'๐ง BETTER ERROR HANDLING: Deployment errors show specific failure reasons',
|
|
29
|
+
'๐ DEBUG LOGGING: Added artifact detection debugging with DEBUG env var',
|
|
30
|
+
'โก IMPROVED RELIABILITY: Better error recovery and clearer user feedback'
|
|
31
|
+
],
|
|
16
32
|
'1.3.12': [
|
|
17
33
|
'๐ AUTO-DEPLOY XML: Swarm command now automatically deploys flow XML to ServiceNow',
|
|
18
34
|
'โจ ZERO MANUAL STEPS: Generate โ Import โ Preview โ Commit all automatic',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snow-flow",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.14",
|
|
4
4
|
"description": "ServiceNow Queen Agent - Hive-Mind Intelligence for ServiceNow Development inspired by claude-flow. Transform complex workflows into elegant one-command orchestration.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "commonjs",
|