@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.
- package/hooks/upload-document.sh +60 -21
- package/package.json +1 -1
package/hooks/upload-document.sh
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
-
# Nexus Memory - Upload Document Hook (v2.2.
|
|
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.
|
|
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
|
-
|
|
344
|
-
local
|
|
345
|
-
local
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
local
|
|
349
|
-
local
|
|
350
|
-
|
|
351
|
-
echo "
|
|
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 "$
|
|
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
|
-
|
|
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
|
-
"
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
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.
|
|
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",
|