@adverant/nexus-memory-skill 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
  #
3
- # Nexus Memory - Upload Document Hook (v2.2.0)
3
+ # Nexus Memory - Upload Document Hook (v2.2.1)
4
4
  # Uploads documents to FileProcessAgent for intelligent processing with
5
5
  # FULL KNOWLEDGE EXTRACTION enabled by default.
6
6
  #
@@ -244,7 +244,7 @@ build_metadata() {
244
244
  cat <<EOF
245
245
  {
246
246
  "source": "nexus-memory-skill",
247
- "version": "2.2.0",
247
+ "version": "2.2.1",
248
248
  "preferAccuracy": ${prefer_accuracy},
249
249
  "forceEntityExtraction": ${extract_entities},
250
250
  "storeInKnowledgeGraph": ${extract_entities},
@@ -340,29 +340,51 @@ display_results() {
340
340
  echo ""
341
341
 
342
342
  # Extract key metrics from response
343
- local ENTITY_COUNT=$(echo "$STATUS_RESPONSE" | jq -r '.result.entities // .entities // [] | length' 2>/dev/null)
344
- local TABLE_COUNT=$(echo "$STATUS_RESPONSE" | jq -r '.result.tables // .tables // [] | length' 2>/dev/null)
345
- local OCR_TIER=$(echo "$STATUS_RESPONSE" | jq -r '.result.ocrTier // .ocrTier // "auto"' 2>/dev/null)
346
- local PAGE_COUNT=$(echo "$STATUS_RESPONSE" | jq -r '.result.pageCount // .pageCount // "N/A"' 2>/dev/null)
347
- local WORD_COUNT=$(echo "$STATUS_RESPONSE" | jq -r '.result.wordCount // .wordCount // "N/A"' 2>/dev/null)
348
- local DOC_TYPE=$(echo "$STATUS_RESPONSE" | jq -r '.result.documentType // .documentType // "unknown"' 2>/dev/null)
349
- local GRAPHRAG_STORED=$(echo "$STATUS_RESPONSE" | jq -r '.result.storedInGraphRAG // .storedInGraphRAG // false' 2>/dev/null)
350
-
351
- echo "📄 Document Type: $DOC_TYPE"
343
+ # API response structure: { success: true, job: {...}, documentDna?: {...} }
344
+ local JOB=$(echo "$STATUS_RESPONSE" | jq '.job // .')
345
+ local DOC_DNA=$(echo "$STATUS_RESPONSE" | jq '.documentDna // .job.documentDna // {}')
346
+
347
+ # Get job-level fields
348
+ local OCR_TIER=$(echo "$JOB" | jq -r '.ocrTierUsed // .ocrTier // "auto"' 2>/dev/null)
349
+ local CONFIDENCE=$(echo "$JOB" | jq -r '.confidence // "N/A"' 2>/dev/null)
350
+ local PROCESSING_TIME=$(echo "$JOB" | jq -r '.processingTimeMs // "N/A"' 2>/dev/null)
351
+ local MIME_TYPE=$(echo "$JOB" | jq -r '.mimeType // "unknown"' 2>/dev/null)
352
+
353
+ # Get metadata fields (where entities, tables, etc. are stored)
354
+ local METADATA=$(echo "$JOB" | jq '.metadata // {}')
355
+ local ENTITY_COUNT=$(echo "$METADATA" | jq -r '.entities // [] | length' 2>/dev/null)
356
+ local TABLE_COUNT=$(echo "$METADATA" | jq -r '.tables // [] | length' 2>/dev/null)
357
+ local PAGE_COUNT=$(echo "$METADATA" | jq -r '.pageCount // "N/A"' 2>/dev/null)
358
+ local WORD_COUNT=$(echo "$METADATA" | jq -r '.wordCount // "N/A"' 2>/dev/null)
359
+ local DOC_TYPE=$(echo "$METADATA" | jq -r '.documentType // .type // "unknown"' 2>/dev/null)
360
+
361
+ # Check if stored in GraphRAG (Document DNA exists)
362
+ local DOC_DNA_ID=$(echo "$JOB" | jq -r '.documentDnaId // "null"' 2>/dev/null)
363
+ local GRAPHRAG_STORED="false"
364
+ if [[ "$DOC_DNA_ID" != "null" ]] && [[ -n "$DOC_DNA_ID" ]]; then
365
+ GRAPHRAG_STORED="true"
366
+ fi
367
+
368
+ echo "📄 Document Type: $DOC_TYPE ($MIME_TYPE)"
352
369
  echo "📑 Pages: $PAGE_COUNT"
353
370
  echo "📝 Words: $WORD_COUNT"
371
+ echo "⏱️ Processing Time: ${PROCESSING_TIME}ms"
372
+ echo "🎯 Confidence: $CONFIDENCE"
354
373
  echo ""
355
374
  echo "🔍 Auto-Discovery Results:"
356
375
  echo " • OCR Tier Used: $OCR_TIER"
357
376
  echo " • Tables Found: $TABLE_COUNT"
358
377
  echo " • Entities: $ENTITY_COUNT"
359
378
  echo " • GraphRAG: $GRAPHRAG_STORED"
379
+ if [[ "$DOC_DNA_ID" != "null" ]] && [[ -n "$DOC_DNA_ID" ]]; then
380
+ echo " • Document DNA: $DOC_DNA_ID"
381
+ fi
360
382
  echo ""
361
383
 
362
384
  # Show extracted entities if any
363
- if [[ "$ENTITY_COUNT" != "0" ]] && [[ "$ENTITY_COUNT" != "null" ]]; then
385
+ if [[ "$ENTITY_COUNT" != "0" ]] && [[ "$ENTITY_COUNT" != "null" ]] && [[ -n "$ENTITY_COUNT" ]]; then
364
386
  echo "🏷️ Extracted Entities:"
365
- echo "$STATUS_RESPONSE" | jq -r '.result.entities // .entities // [] | .[:10][] | " • \(.name // .text) (\(.type // "entity"))"' 2>/dev/null
387
+ echo "$METADATA" | jq -r '.entities // [] | .[:10][] | " • \(.name // .text // .value) (\(.type // "entity"))"' 2>/dev/null
366
388
  if [[ "$ENTITY_COUNT" -gt 10 ]]; then
367
389
  echo " ... and $((ENTITY_COUNT - 10)) more"
368
390
  fi
@@ -408,31 +430,48 @@ wait_for_job() {
408
430
  continue
409
431
  fi
410
432
 
411
- local JOB_STATE=$(echo "$STATUS_RESPONSE" | jq -r '.state // .status // empty')
433
+ # API response structure: { success: true, job: { status: "completed", ... } }
434
+ # Status is nested under .job.status, NOT at root level
435
+ local JOB_STATE=$(echo "$STATUS_RESPONSE" | jq -r '.job.status // .status // .state // empty')
412
436
 
413
437
  case "$JOB_STATE" in
414
438
  "completed"|"finished"|"success")
415
439
  display_results "$STATUS_RESPONSE" "$FILE_NAME"
416
440
  return 0
417
441
  ;;
418
- "failed"|"error")
442
+ "failed"|"error"|"cancelled")
419
443
  log_error "Processing failed for: $FILE_NAME"
420
444
  echo ""
421
445
  echo "=== ERROR DETAILS ==="
422
- echo "$STATUS_RESPONSE" | jq .
446
+ local ERROR_MSG=$(echo "$STATUS_RESPONSE" | jq -r '.job.errorMessage // .errorMessage // "Unknown error"')
447
+ local ERROR_CODE=$(echo "$STATUS_RESPONSE" | jq -r '.job.errorCode // .errorCode // "UNKNOWN"')
448
+ echo "Error Code: $ERROR_CODE"
449
+ echo "Error Message: $ERROR_MSG"
450
+ echo ""
451
+ if [[ "$VERBOSE" == "1" ]]; then
452
+ echo "$STATUS_RESPONSE" | jq .
453
+ fi
423
454
  return 1
424
455
  ;;
425
- "waiting"|"active"|"processing"|"pending")
426
- local PROGRESS=$(echo "$STATUS_RESPONSE" | jq -r '.progress // empty')
427
- local STAGE=$(echo "$STATUS_RESPONSE" | jq -r '.stage // empty')
428
- if [[ -n "$PROGRESS" ]] && [[ -n "$STAGE" ]]; then
456
+ "queued"|"waiting"|"pending")
457
+ log "[$FILE_NAME] Queued... (${WAITED}s elapsed)"
458
+ ;;
459
+ "processing"|"active")
460
+ # Try to get progress from job metadata
461
+ local PROGRESS=$(echo "$STATUS_RESPONSE" | jq -r '.job.metadata.progress // .progress // empty')
462
+ local STAGE=$(echo "$STATUS_RESPONSE" | jq -r '.job.metadata.stage // .stage // empty')
463
+ if [[ -n "$PROGRESS" ]] && [[ "$PROGRESS" != "null" ]] && [[ -n "$STAGE" ]] && [[ "$STAGE" != "null" ]]; then
429
464
  log "[$FILE_NAME] ${STAGE}: ${PROGRESS}% (${WAITED}s elapsed)"
430
- elif [[ -n "$PROGRESS" ]]; then
465
+ elif [[ -n "$PROGRESS" ]] && [[ "$PROGRESS" != "null" ]]; then
431
466
  log "[$FILE_NAME] Processing... ${PROGRESS}% (${WAITED}s elapsed)"
432
467
  else
433
468
  log "[$FILE_NAME] Processing... (${WAITED}s elapsed)"
434
469
  fi
435
470
  ;;
471
+ ""|"null")
472
+ # Empty status might mean job not found or API issue
473
+ log "[$FILE_NAME] Waiting for status... (${WAITED}s elapsed)"
474
+ ;;
436
475
  *)
437
476
  log "[$FILE_NAME] Status: $JOB_STATE (${WAITED}s elapsed)"
438
477
  ;;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adverant/nexus-memory-skill",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "Claude Code skill for persistent memory via Nexus GraphRAG - store and recall memories across all sessions and projects",
5
5
  "main": "SKILL.md",
6
6
  "type": "module",