* fix: misc fixes for observations and mental models * feat: improve graph retrieval for observations - Update LinkExpansionRetriever to traverse through source_memory_ids for observation entity connections (avoiding data duplication) - Remove entity link copy from world facts to observations in consolidator - Add tests for link expansion graph retrieval - Add directives_applied field to ReflectResult - Include user's other changes (CLI, docs, client updates) * fix: CI test failures - Add mental_model_id parameter to create_mental_model function - Fix ToolCallTrace not including reason field from ToolCall - Improve test_link_expansion_observation_graph_retrieval to wait for consolidation with retry * chore: reduce link expansion log verbosity * Revert "chore: reduce link expansion log verbosity" This reverts commit 3ce759391cead1012157785fa78fef16ef9bfe3b. * feat: add semantic/temporal/entity links as fallback in graph retrieval - Add fallback query for semantic, temporal, and entity links from memory_links - Check both directions (outgoing and incoming links) - Weight fallback results at 0.5x to prioritize entity links via unit_entities - Fixes graph retrieval returning 0 when data has cross-cluster temporal connections * fix: enable observations fixture for link expansion test - Add enable_observations fixture to ensure observations are created - Increase wait time from 10 to 30 seconds for CI reliability
62 lines
2 KiB
JavaScript
62 lines
2 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Directives API examples for Hindsight (Node.js)
|
|
* Run: node examples/api/directives.mjs
|
|
*/
|
|
import { HindsightClient } from '@vectorize-io/hindsight-client';
|
|
|
|
const HINDSIGHT_URL = process.env.HINDSIGHT_API_URL || 'http://localhost:8888';
|
|
const BANK_ID = 'directives-example-bank';
|
|
|
|
// =============================================================================
|
|
// Setup (not shown in docs)
|
|
// =============================================================================
|
|
const client = new HindsightClient({ baseUrl: HINDSIGHT_URL });
|
|
await client.createBank(BANK_ID, { name: 'Test Bank' });
|
|
|
|
// =============================================================================
|
|
// Doc Examples
|
|
// =============================================================================
|
|
|
|
// [docs:create-directive]
|
|
// Create a directive (hard rule for reflect)
|
|
const directive = await client.createDirective(
|
|
BANK_ID,
|
|
'Formal Language',
|
|
'Always respond in formal English, avoiding slang and colloquialisms.'
|
|
);
|
|
|
|
console.log(`Created directive: ${directive.id}`);
|
|
// [/docs:create-directive]
|
|
|
|
const directiveId = directive.id;
|
|
|
|
// [docs:list-directives]
|
|
// List all directives in a bank
|
|
const directives = await client.listDirectives(BANK_ID);
|
|
|
|
for (const d of directives.items) {
|
|
console.log(`- ${d.name}: ${d.content.slice(0, 50)}...`);
|
|
}
|
|
// [/docs:list-directives]
|
|
|
|
// [docs:update-directive]
|
|
// Update a directive (e.g., disable without deleting)
|
|
const updated = await client.updateDirective(BANK_ID, directiveId, {
|
|
isActive: false
|
|
});
|
|
|
|
console.log(`Directive active: ${updated.is_active}`);
|
|
// [/docs:update-directive]
|
|
|
|
// [docs:delete-directive]
|
|
// Delete a directive
|
|
await client.deleteDirective(BANK_ID, directiveId);
|
|
// [/docs:delete-directive]
|
|
|
|
// =============================================================================
|
|
// Cleanup (not shown in docs)
|
|
// =============================================================================
|
|
await client.deleteBank(BANK_ID);
|
|
|
|
console.log('directives.mjs: All examples passed');
|