* feat: add @vectorize-io/hindsight-embed daemon lifecycle package
Create a new top-level `hindsight-embed-npm/` package that owns the daemon
lifecycle for the Python `hindsight-embed` CLI: spawning via `uvx`, writing
the profile, waiting for `/health`, and shutting down. Nothing more.
Deliberately does not ship an HTTP client — `@vectorize-io/hindsight-client`
already covers retain / recall / reflect / createBank against the Hindsight
API, and the two packages compose: once `manager.start()` returns, consumers
talk to the daemon via `new HindsightClient({ baseUrl: manager.getBaseUrl() })`.
`HindsightEmbedManagerOptions.env` forwards an arbitrary `Record<string,
string>` to both the daemon process and the profile config via `--env K=V`,
and `extraProfileCreateArgs` / `extraDaemonStartArgs` escape hatches cover
any new CLI flag without waiting for a wrapper release.
Refactor `hindsight-integrations/openclaw` to consume both packages:
`HindsightEmbedManager` for daemon lifecycle in local mode, `HindsightClient`
for all HTTP memory operations. Drop the bespoke subprocess/HTTP client that
used to live in openclaw. The retain queue stays local to openclaw (it's a
client-side reliability workaround with a single consumer today — will move
to the client package or server-side when a second consumer needs it).
Wire the new package into the main release pipeline (versioned alongside
the other core packages, published from `v*` tags) and add a CI build job.
* docs: add Embedded Node.js SDK page for @vectorize-io/hindsight-embed
* refactor: rename hindsight-embed-npm to hindsight-all, restructure docs sidebar
The Node package previously named @vectorize-io/hindsight-embed was
semantically misnamed: hindsight-embed (Python) is a CLI tool, while what
this Node package actually provides is the Node equivalent of hindsight-all
— a programmatic lifecycle manager for a local Hindsight daemon. Rename to
match.
Package rename
- hindsight-embed-npm/ → hindsight-all-npm/ (git mv, history preserved)
- @vectorize-io/hindsight-embed → @vectorize-io/hindsight-all
- class HindsightEmbedManager → HindsightServer (matches Python hindsight-all)
- HindsightEmbedManagerOptions → HindsightServerOptions
- src/manager.ts → src/server.ts, src/manager.test.ts → src/server.test.ts
- openclaw (index.ts, backfill.ts, tests) and the claude-code Python port
updated to reference the new names
Docs restructure
- Split sdks/python.md: now client-only content. New sdks/hindsight-all.md
covers the programmatic hindsight-all Python package (HindsightServer and
HindsightEmbedded).
- Rename sdks/embed-npm.md → sdks/hindsight-all-npm.md with HindsightServer
examples.
- New "Installation" sidebar section, placed after Hosting, containing
Docker / Kubernetes / Bare Metal (anchor links into developer/installation)
plus Programmatic API (Python), Programmatic API (Node.js), and Daemon CLI.
- Add si-docker, si-kubernetes, si-nodedotjs, lu-hard-drive to the sidebar
ICON_MAP.
Docs dev-server fix
- docusaurus.config.ts: drop the flaky NODE_ENV sniff for including the
"Next" version. Use INCLUDE_CURRENT_VERSION exclusively. NODE_ENV was
unreliable across hot-reload paths and caused the Next version to
disappear intermittently when editing files.
- scripts/dev/start-docs.sh: export INCLUDE_CURRENT_VERSION=true so local
dev always shows Next; production builds leave it unset.
Lockfile cleanup
- package-lock.json and hindsight-integrations/openclaw/package-lock.json
had extraneous hindsight-embed-npm blocks left over from the rename.
Removed manually and verified with npm install.
* ci: fix openclaw jobs by pre-building workspace deps; regenerate docs-skill
The build-openclaw-integration and test-openclaw-integration jobs failed
with "Failed to resolve entry for package @vectorize-io/hindsight-all"
because openclaw depends on two monorepo workspaces via `file:` deps
(@vectorize-io/hindsight-client and @vectorize-io/hindsight-all) whose
`dist/` directories are gitignored and never built before openclaw's npm ci.
Both jobs now install the root workspace and build the two deps first,
mirroring the release-control-plane pattern.
Also regenerate skills/hindsight-docs/references/* via
./scripts/generate-docs-skill.sh:
- new skill pages for sdks/hindsight-all{.md,-npm.md}
- updated skill pages for sdks/embed.md and sdks/python.md to match
the new H1s and split content
- incidental refreshes to changelog/index.md, developer/models.md,
openapi.json, and uv.lock that verify-generated-files picked up
* ci: build openclaw before running tests so symlink test can realpath dist
472 lines
13 KiB
TypeScript
472 lines
13 KiB
TypeScript
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
|
|
|
const sidebars: SidebarsConfig = {
|
|
developerSidebar: [
|
|
{
|
|
type: 'category',
|
|
label: 'Architecture',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/index',
|
|
label: 'Overview',
|
|
customProps: { icon: 'lu-book' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/retain',
|
|
label: 'Retain',
|
|
customProps: { icon: 'lu-brain' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/retrieval',
|
|
label: 'Recall',
|
|
customProps: { icon: 'lu-search' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/reflect',
|
|
label: 'Reflect',
|
|
customProps: { icon: 'lu-message' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/observations',
|
|
label: 'Observations',
|
|
customProps: { icon: 'lu-activity' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/multilingual',
|
|
label: 'Multilingual',
|
|
customProps: { icon: 'lu-languages' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/performance',
|
|
label: 'Performance',
|
|
customProps: { icon: 'lu-zap' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/storage',
|
|
label: 'Storage',
|
|
customProps: { icon: 'lu-database' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/rag-vs-hindsight',
|
|
label: 'RAG vs Memory',
|
|
customProps: { icon: 'lu-compare' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'API',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/quickstart',
|
|
label: 'Quick Start',
|
|
customProps: { icon: 'lu-rocket' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/retain',
|
|
label: 'Retain',
|
|
customProps: { icon: 'lu-brain' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/recall',
|
|
label: 'Recall',
|
|
customProps: { icon: 'lu-search' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/reflect',
|
|
label: 'Reflect',
|
|
customProps: { icon: 'lu-message' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/mental-models',
|
|
label: 'Mental Models',
|
|
customProps: { icon: 'lu-layers' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/memory-banks',
|
|
label: 'Memory Banks',
|
|
customProps: { icon: 'lu-memory' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/documents',
|
|
label: 'Documents',
|
|
customProps: { icon: 'lu-file' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/operations',
|
|
label: 'Operations',
|
|
customProps: { icon: 'lu-cpu' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/webhooks',
|
|
label: 'Webhooks',
|
|
customProps: { icon: 'lu-webhook' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/api/bank-templates',
|
|
label: 'Bank Templates',
|
|
customProps: { icon: 'lu-file-json' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/api-reference',
|
|
label: 'API Reference',
|
|
customProps: { icon: 'lu-book-open', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Clients',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/python',
|
|
label: 'Python',
|
|
customProps: { icon: 'si-python' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/nodejs',
|
|
label: 'TypeScript',
|
|
customProps: { icon: '/img/icons/typescript.png' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/go',
|
|
label: 'Go',
|
|
customProps: { icon: 'si-go' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/cli',
|
|
label: 'CLI',
|
|
customProps: { icon: 'lu-terminal' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Integrations',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/local-mcp',
|
|
label: 'Local MCP Server',
|
|
customProps: { icon: '/img/icons/mcp.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/litellm',
|
|
label: 'LiteLLM',
|
|
customProps: { icon: '/img/icons/litellm.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/claude-code',
|
|
label: 'Claude Code',
|
|
customProps: { icon: '/img/icons/claudecode.svg' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/codex',
|
|
label: 'OpenAI Codex CLI',
|
|
customProps: { icon: '/img/icons/terminal.svg' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/openclaw',
|
|
label: 'OpenClaw',
|
|
customProps: { icon: '/img/icons/openclaw.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/ai-sdk',
|
|
label: 'Vercel AI SDK',
|
|
customProps: { icon: '/img/icons/vercel.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/chat',
|
|
label: 'Vercel Chat SDK',
|
|
customProps: { icon: '/img/icons/vercel.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/crewai',
|
|
label: 'CrewAI',
|
|
customProps: { icon: '/img/icons/crewai.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/pydantic-ai',
|
|
label: 'Pydantic AI',
|
|
customProps: { icon: '/img/icons/pydanticai.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/agno',
|
|
label: 'Agno',
|
|
customProps: { icon: '/img/icons/agno.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/hermes',
|
|
label: 'Hermes Agent',
|
|
customProps: { icon: '/img/icons/hermes.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/langgraph',
|
|
label: 'LangGraph / LangChain',
|
|
customProps: { icon: '/img/icons/langgraph.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/nemoclaw',
|
|
label: 'NemoClaw',
|
|
customProps: { icon: '/img/icons/nemoclaw.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/paperclip',
|
|
label: 'Paperclip',
|
|
customProps: { icon: '/img/icons/nodejs.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/strands',
|
|
label: 'Strands Agents',
|
|
customProps: { icon: '/img/icons/strands.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/ag2',
|
|
label: 'AG2',
|
|
customProps: { icon: '/img/icons/ag2.svg' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/autogen',
|
|
label: 'AutoGen',
|
|
customProps: { icon: '/img/icons/autogen.svg' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/llamaindex',
|
|
label: 'LlamaIndex',
|
|
customProps: { icon: '/img/icons/llamaindex.png' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/sdks/integrations/skills',
|
|
label: 'Skills',
|
|
customProps: { icon: '/img/icons/skills.png' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Hosting',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'link',
|
|
href: 'https://ui.hindsight.vectorize.io/signup',
|
|
label: 'Cloud',
|
|
customProps: { icon: 'lu-cloud', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/installation',
|
|
label: 'Installation',
|
|
customProps: { icon: 'lu-package' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/services',
|
|
label: 'Services',
|
|
customProps: { icon: 'lu-server' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/configuration',
|
|
label: 'Configuration',
|
|
customProps: { icon: 'lu-settings' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/admin-cli',
|
|
label: 'Admin CLI',
|
|
customProps: { icon: 'lu-terminal' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/extensions',
|
|
label: 'Extensions',
|
|
customProps: { icon: 'lu-plug' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/models',
|
|
label: 'Models',
|
|
customProps: { icon: 'lu-cpu' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/monitoring',
|
|
label: 'Monitoring',
|
|
customProps: { icon: 'lu-activity' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'developer/mcp-server',
|
|
label: 'MCP Server',
|
|
customProps: { icon: 'lu-network' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Installation',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'link',
|
|
href: '/developer/installation#docker',
|
|
label: 'Docker',
|
|
customProps: { icon: 'si-docker', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/developer/installation#helm--kubernetes',
|
|
label: 'Kubernetes',
|
|
customProps: { icon: 'si-kubernetes', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/developer/installation#bare-metal-pip',
|
|
label: 'Bare Metal',
|
|
customProps: { icon: 'lu-hard-drive', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/hindsight-all',
|
|
label: 'Programmatic API (Python)',
|
|
customProps: { icon: 'si-python' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/hindsight-all-npm',
|
|
label: 'Programmatic API (Node.js)',
|
|
customProps: { icon: 'si-nodedotjs' },
|
|
},
|
|
{
|
|
type: 'doc',
|
|
id: 'sdks/embed',
|
|
label: 'Daemon CLI',
|
|
customProps: { icon: 'lu-terminal' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Resources',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'link',
|
|
href: '/templates',
|
|
label: 'Bank Templates Hub',
|
|
customProps: { icon: 'lu-layout-template', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/best-practices',
|
|
label: 'Best Practices',
|
|
customProps: { icon: 'lu-star', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/faq',
|
|
label: 'FAQ',
|
|
customProps: { icon: 'lu-circle-help', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'More',
|
|
collapsible: false,
|
|
items: [
|
|
{
|
|
type: 'link',
|
|
href: '/cookbook',
|
|
label: 'Cookbook',
|
|
customProps: { icon: 'lu-book', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: '/blog',
|
|
label: 'Blog',
|
|
customProps: { icon: 'lu-rss', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: 'https://join.slack.com/t/hindsight-space/shared_invite/zt-3nhbm4w29-LeSJ5Ixi6j8PdiYOCPlOgg',
|
|
label: 'Community',
|
|
customProps: { icon: 'si-slack', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: 'https://github.com/vectorize-io/hindsight',
|
|
label: 'GitHub',
|
|
customProps: { icon: 'si-github', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: 'https://benchmarks.hindsight.vectorize.io/',
|
|
label: 'Benchmarks',
|
|
customProps: { icon: 'lu-chart-bar', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: 'https://benchmarks.hindsight.vectorize.io/',
|
|
label: 'Which Model Should I Use?',
|
|
customProps: { icon: 'lu-cpu', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
{
|
|
type: 'link',
|
|
href: 'https://arxiv.org/abs/2512.12818',
|
|
label: 'Paper',
|
|
customProps: { icon: 'lu-file-text', iconAfter: 'lu-arrow-up-right' },
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
|
|
export default sidebars;
|