feat(integrations): dsh-mem0 — Mem0 as a native DeepSeek Harness plugin (#7027)

Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
Himanshu
2026-08-24 14:03:50 +05:30
committed by GitHub
parent d18e751dec
commit 7e09615571
26 changed files with 3319 additions and 2 deletions
+13
View File
@@ -41,6 +41,7 @@ jobs:
mem0_plugin: ${{ steps.filter.outputs.mem0_plugin }}
opencode_plugin: ${{ steps.filter.outputs.opencode_plugin }}
pi_agent_plugin: ${{ steps.filter.outputs.pi_agent_plugin }}
dsh_mem0: ${{ steps.filter.outputs.dsh_mem0 }}
n8n_nodes_mem0: ${{ steps.filter.outputs.n8n_nodes_mem0 }}
zapier_mem0: ${{ steps.filter.outputs.zapier_mem0 }}
strands_mem0: ${{ steps.filter.outputs.strands_mem0 }}
@@ -89,6 +90,10 @@ jobs:
- 'integrations/pi-agent-plugin/**'
- '.github/workflows/pi-agent-plugin-checks.yml'
- '.github/workflows/ci-gate.yml'
dsh_mem0:
- 'integrations/dsh-mem0/**'
- '.github/workflows/dsh-mem0-checks.yml'
- '.github/workflows/ci-gate.yml'
n8n_nodes_mem0:
- 'integrations/n8n-nodes-mem0/**'
- '.github/workflows/n8n-nodes-mem0-checks.yml'
@@ -171,6 +176,13 @@ jobs:
uses: ./.github/workflows/pi-agent-plugin-checks.yml
secrets: inherit
dsh-mem0:
name: DeepSeek Harness Plugin
needs: changes
if: needs.changes.outputs.dsh_mem0 == 'true'
uses: ./.github/workflows/dsh-mem0-checks.yml
secrets: inherit
n8n-nodes-mem0:
name: n8n Node
needs: changes
@@ -227,6 +239,7 @@ jobs:
- mem0-plugin
- opencode-plugin
- pi-agent-plugin
- dsh-mem0
- n8n-nodes-mem0
- zapier-mem0
- strands-mem0
+60
View File
@@ -0,0 +1,60 @@
name: Publish @mem0/dsh-mem0 📦 to npm
# Dispatched by release.yml (Release Router) when a release tagged
# dsh-mem0-v* is published. Can also be dispatched manually to re-publish
# a tag.
on:
workflow_dispatch:
inputs:
tag:
description: 'Release tag to build and publish (e.g. dsh-mem0-v0.1.1)'
required: true
type: string
prerelease:
description: 'Publish under the version preid dist-tag instead of latest'
required: false
type: boolean
default: false
jobs:
build-n-publish:
name: Build and publish @mem0/dsh-mem0 📦 to npm
if: startsWith(inputs.tag, 'dsh-mem0-v')
runs-on: ubuntu-latest
permissions:
id-token: write
defaults:
run:
working-directory: integrations/dsh-mem0
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.tag }}
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
cache-dependency-path: integrations/dsh-mem0/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Publish to npm
run: |
if [ "${{ inputs.prerelease }}" = "true" ]; then
PREID=$(node -p "require('./package.json').version.split('-')[1].split('.')[0]")
npx npm@latest publish --provenance --access public --tag "$PREID"
else
npx npm@latest publish --provenance --access public
fi
+90
View File
@@ -0,0 +1,90 @@
name: dsh-mem0 checks
# On PRs this is invoked by ci-gate.yml (the single required check);
# push-to-main and manual runs remain standalone.
on:
workflow_dispatch:
push:
branches: [main]
paths:
- 'integrations/dsh-mem0/**'
- '.github/workflows/dsh-mem0-checks.yml'
workflow_call:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: integrations/dsh-mem0/pnpm-lock.yaml
- name: Install dependencies
run: cd integrations/dsh-mem0 && pnpm install --frozen-lockfile
- name: Type check
run: cd integrations/dsh-mem0 && pnpm exec tsc --noEmit
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20, 22]
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
cache-dependency-path: integrations/dsh-mem0/pnpm-lock.yaml
- name: Install dependencies
run: cd integrations/dsh-mem0 && pnpm install --frozen-lockfile
- name: Run tests
run: cd integrations/dsh-mem0 && pnpm exec vitest run
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: integrations/dsh-mem0/pnpm-lock.yaml
- name: Install dependencies
run: cd integrations/dsh-mem0 && pnpm install --frozen-lockfile
- name: Build
run: cd integrations/dsh-mem0 && pnpm build
- name: Verify dist output exists
run: |
test -f integrations/dsh-mem0/dist/index.js || (echo "Build output missing: dist/index.js" && exit 1)
test -f integrations/dsh-mem0/dist/index.d.ts || (echo "Build output missing: dist/index.d.ts" && exit 1)
+1
View File
@@ -45,6 +45,7 @@ jobs:
openclaw-v*) workflow="openclaw-cd.yml" ;;
opencode-v*) workflow="opencode-plugin-cd.yml" ;;
pi-agent-v*) workflow="pi-agent-plugin-cd.yml" ;;
dsh-mem0-v*) workflow="dsh-mem0-cd.yml" ;;
n8n-nodes-mem0-v*) workflow="n8n-nodes-mem0-cd.yml" ;;
strands-mem0-v*) workflow="strands-mem0-cd.yml" ;;
v*) workflow="cd.yml" ;;