snow-flow 10.0.1-dev.412 → 10.0.1-dev.413

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "10.0.1-dev.412",
3
+ "version": "10.0.1-dev.413",
4
4
  "name": "snow-flow",
5
5
  "description": "Snow-Flow - ServiceNow Multi-Agent Development Framework powered by AI",
6
6
  "license": "Elastic-2.0",
@@ -273,7 +273,7 @@ async function createFlowViaScheduledJob(
273
273
  " }",
274
274
  " r.steps.variables = { success: true, created: varsCreated };",
275
275
  "",
276
- // ── Reference: query an existing published flow to see what it looks like ──
276
+ // ── Reference: deep-inspect a published flow to find what latest_snapshot points to ──
277
277
  " r.steps.reference_flow = null;",
278
278
  " try {",
279
279
  " var refGr = new GlideRecord('sys_hub_flow');",
@@ -282,83 +282,73 @@ async function createFlowViaScheduledJob(
282
282
  " refGr.setLimit(1); refGr.query();",
283
283
  " if (refGr.next()) {",
284
284
  " var refId = refGr.getUniqueValue();",
285
- " var refFd = refGr.getValue('flow_definition') + '';",
286
285
  " var refLs = refGr.getValue('latest_snapshot') + '';",
287
- " var refLv = refGr.getValue('latest_version') + '';",
288
286
  " r.steps.reference_flow = {",
289
287
  " sys_id: refId,",
290
288
  " name: refGr.getValue('name'),",
291
- " has_flow_definition: refFd !== 'null' && refFd.length > 0,",
292
- " flow_definition_length: refFd.length,",
293
- " flow_definition_prefix: refFd.substring(0, 200),",
294
- " has_latest_snapshot: refLs !== 'null' && refLs.length > 0,",
295
- " latest_snapshot_length: refLs.length,",
296
- " latest_version: refLv,",
297
- " has_latest_version: refLv !== 'null' && refLv.length > 5",
289
+ " latest_snapshot_value: refLs,",
290
+ " latest_version: refGr.getValue('latest_version') + ''",
298
291
  " };",
299
- // Query version records for reference flow (by flow= since latest_version is null)
300
- " var refVer = new GlideRecord('sys_hub_flow_version');",
301
- " refVer.addQuery('flow', refId);",
302
- " refVer.orderByDesc('sys_created_on');",
303
- " refVer.setLimit(1); refVer.query();",
304
- " if (refVer.next()) {",
305
- " var refVFd = refVer.getValue('flow_definition') + '';",
306
- " r.steps.reference_flow.version_sys_id = refVer.getUniqueValue();",
307
- " r.steps.reference_flow.version_state = refVer.getValue('state');",
308
- " r.steps.reference_flow.version_compile_state = refVer.getValue('compile_state');",
309
- " r.steps.reference_flow.version_is_current = refVer.getValue('is_current');",
310
- " r.steps.reference_flow.version_active = refVer.getValue('active');",
311
- " r.steps.reference_flow.version_has_flow_def = refVFd !== 'null' && refVFd.length > 0;",
312
- " r.steps.reference_flow.version_flow_def_length = refVFd.length;",
313
- " r.steps.reference_flow.version_flow_def_prefix = refVFd.substring(0, 200);",
314
- // Check if latest_snapshot matches this version sys_id
315
- " r.steps.reference_flow.snapshot_matches_version = (refLs === refVer.getUniqueValue());",
316
- " } else { r.steps.reference_flow.version_found = false; }",
292
+ // Find what table latest_snapshot points to
293
+ " if (refLs !== 'null' && refLs.length === 32) {",
294
+ " var snapTables = ['sys_hub_flow_version', 'sys_hub_flow_snapshot', 'sys_hub_compiled_flow', 'sys_hub_flow_base'];",
295
+ " for (var st = 0; st < snapTables.length; st++) {",
296
+ " try {",
297
+ " var stGr = new GlideRecord(snapTables[st]);",
298
+ " if (stGr.isValid() && stGr.get(refLs)) {",
299
+ " r.steps.reference_flow.snapshot_found_in_table = snapTables[st];",
300
+ " r.steps.reference_flow.snapshot_record_name = stGr.getValue('name') + '';",
301
+ " break;",
302
+ " }",
303
+ " } catch(e) {}",
304
+ " }",
305
+ // Also try sys_metadata (universal)
306
+ " if (!r.steps.reference_flow.snapshot_found_in_table) {",
307
+ " try {",
308
+ " var metaGr = new GlideRecord('sys_metadata');",
309
+ " if (metaGr.get(refLs)) {",
310
+ " r.steps.reference_flow.snapshot_found_in_table = metaGr.getValue('sys_class_name') + '';",
311
+ " }",
312
+ " } catch(e) {}",
313
+ " }",
314
+ " }",
315
+ // Get field descriptor for latest_snapshot to see its reference table
316
+ " var fd = refGr.getElement('latest_snapshot');",
317
+ " if (fd) {",
318
+ " var ed = fd.getED();",
319
+ " if (ed) {",
320
+ " r.steps.reference_flow.snapshot_field_type = ed.getInternalType() + '';",
321
+ " r.steps.reference_flow.snapshot_field_reference = ed.getReference() + '';",
322
+ " }",
323
+ " }",
324
+ // Count trigger/action instances for reference flow
325
+ " var refTrig = new GlideAggregate('sys_hub_trigger_instance');",
326
+ " refTrig.addQuery('flow', refId); refTrig.addAggregate('COUNT'); refTrig.query();",
327
+ " r.steps.reference_flow.trigger_count = refTrig.next() ? parseInt(refTrig.getAggregate('COUNT')) : 0;",
328
+ " var refAct = new GlideAggregate('sys_hub_action_instance');",
329
+ " refAct.addQuery('flow', refId); refAct.addAggregate('COUNT'); refAct.query();",
330
+ " r.steps.reference_flow.action_count = refAct.next() ? parseInt(refAct.getAggregate('COUNT')) : 0;",
317
331
  " }",
318
332
  " } catch(refE) { r.steps.reference_flow = { error: refE + '' }; }",
319
333
  "",
320
- // ── Engine: try FlowAPI.compile() now that flow_definition is set ──
321
- // DO NOT try publish (StackOverflowError). Only compile.
322
- " r.steps.engine = { apis_found: [], mode: 'compile_with_flowdef' };",
334
+ // ── Engine: skip compile (returns error, doesn't help) ──
335
+ " r.steps.engine = { mode: 'probe_only' };",
323
336
  " try {",
324
337
  " if (typeof sn_fd !== 'undefined') {",
325
338
  " r.steps.engine.sn_fd = 'available';",
326
- " if (sn_fd.FlowAPI && typeof sn_fd.FlowAPI.compile === 'function') {",
327
- " r.steps.engine.apis_found.push('FlowAPI');",
328
- " try {",
329
- " var compileResult = sn_fd.FlowAPI.compile(flowSysId);",
330
- " r.steps.engine.compile = 'success';",
331
- " r.steps.engine.compile_result = (compileResult + '').substring(0, 200);",
332
- " } catch(ce) {",
333
- " r.steps.engine.compile = 'error:' + (ce.getMessage ? ce.getMessage() : ce + '');",
334
- " }",
335
- // Check latest_version immediately after compile
336
- " var postCompile = new GlideRecord('sys_hub_flow');",
337
- " if (postCompile.get(flowSysId)) {",
338
- " r.steps.engine.latest_version_after_compile = postCompile.getValue('latest_version') + '';",
339
- " }",
340
- " }",
341
- " } else {",
342
- " r.steps.engine.sn_fd = 'unavailable';",
343
- " }",
344
- " } catch(engineErr) {",
345
- " r.steps.engine.error = engineErr.getMessage ? engineErr.getMessage() : engineErr + '';",
346
- " }",
339
+ " } else { r.steps.engine.sn_fd = 'unavailable'; }",
340
+ " } catch(engineErr) {}",
347
341
  " }",
348
342
  "",
349
343
  " r.flow_sys_id = flowSysId ? flowSysId + '' : null;",
350
344
  " r.version_sys_id = verSysId ? verSysId + '' : null;",
351
- // ── Final check: re-read latest_version + compare our flow to reference ──
345
+ // ── Final check: read back our flow's latest_snapshot to confirm ──
352
346
  " if (flowSysId) {",
353
347
  " var cf = new GlideRecord('sys_hub_flow');",
354
348
  " if (cf.get(flowSysId)) {",
355
- " r.latest_version_set = !cf.latest_version.nil();",
356
349
  " r.latest_version_value = cf.getValue('latest_version') + '';",
357
- // Also read our flow_definition to verify it was stored
358
- " var ourFd = cf.getValue('flow_definition') + '';",
359
- " r.our_flow_definition_stored = ourFd !== 'null' && ourFd.length > 0;",
360
- " r.our_flow_definition_length = ourFd.length;",
361
- " r.our_flow_definition_prefix = ourFd.substring(0, 200);",
350
+ " r.our_latest_snapshot = cf.getValue('latest_snapshot') + '';",
351
+ " r.our_latest_snapshot_length = (cf.getValue('latest_snapshot') + '').length;",
362
352
  " }",
363
353
  " }",
364
354
  " } catch(e) { r.success = false; r.error = e.getMessage ? e.getMessage() : e + ''; }",