@wipcomputer/wip-ldm-os 0.4.73-alpha.9 → 0.4.74
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/LICENSE +52 -0
- package/SKILL.md +8 -1
- package/bin/ldm.js +587 -82
- package/dist/bridge/chunk-3RG5ZIWI.js +10 -0
- package/dist/bridge/{chunk-LF7EMFBY.js → chunk-7NH6JBIO.js} +127 -49
- package/dist/bridge/cli.js +2 -1
- package/dist/bridge/core.d.ts +13 -1
- package/dist/bridge/core.js +4 -1
- package/dist/bridge/mcp-server.js +52 -7
- package/dist/bridge/openclaw.d.ts +5 -0
- package/dist/bridge/openclaw.js +11 -0
- package/docs/bridge/TECHNICAL.md +86 -0
- package/docs/doc-pipeline/README.md +74 -0
- package/docs/doc-pipeline/TECHNICAL.md +79 -0
- package/lib/deploy.mjs +175 -13
- package/lib/detect.mjs +20 -6
- package/package.json +2 -2
- package/shared/docs/README.md.tmpl +2 -2
- package/shared/docs/how-releases-work.md.tmpl +3 -1
- package/shared/docs/how-worktrees-work.md.tmpl +12 -7
- package/shared/rules/git-conventions.md +3 -3
- package/shared/rules/release-pipeline.md +1 -1
- package/shared/rules/security.md +1 -1
- package/shared/rules/workspace-boundaries.md +1 -1
- package/shared/rules/writing-style.md +1 -1
- package/shared/templates/claude-md-level1.md +7 -3
- package/src/bridge/core.ts +160 -56
- package/src/bridge/mcp-server.ts +93 -8
- package/src/bridge/openclaw.ts +14 -0
- package/src/hooks/inbox-check-hook.mjs +232 -0
- package/src/hooks/inbox-rewake-hook.mjs +388 -0
- package/src/hosted-mcp/.env.example +3 -0
- package/src/hosted-mcp/demo/agent.html +300 -0
- package/src/hosted-mcp/demo/agent.txt +84 -0
- package/src/hosted-mcp/demo/fallback.jpg +0 -0
- package/src/hosted-mcp/demo/footer.js +74 -0
- package/src/hosted-mcp/demo/index.html +1303 -0
- package/src/hosted-mcp/demo/login.html +548 -0
- package/src/hosted-mcp/demo/privacy.html +223 -0
- package/src/hosted-mcp/demo/sprites.jpg +0 -0
- package/src/hosted-mcp/demo/sprites.png +0 -0
- package/src/hosted-mcp/demo/tos.html +198 -0
- package/src/hosted-mcp/deploy.sh +70 -0
- package/src/hosted-mcp/ecosystem.config.cjs +14 -0
- package/src/hosted-mcp/inbox.mjs +64 -0
- package/src/hosted-mcp/legal/internet-services/terms/site.html +205 -0
- package/src/hosted-mcp/legal/privacy/en-ww/index.html +230 -0
- package/src/hosted-mcp/nginx/mcp-oauth.conf +98 -0
- package/src/hosted-mcp/nginx/mcp-server.conf +17 -0
- package/src/hosted-mcp/nginx/wip.computer.conf +45 -0
- package/src/hosted-mcp/package-lock.json +2092 -0
- package/src/hosted-mcp/package.json +23 -0
- package/src/hosted-mcp/prisma/migrations/20260406233014_init/migration.sql +68 -0
- package/src/hosted-mcp/prisma/migrations/migration_lock.toml +3 -0
- package/src/hosted-mcp/prisma/schema.prisma +57 -0
- package/src/hosted-mcp/prisma.config.ts +14 -0
- package/src/hosted-mcp/server.mjs +2093 -0
- package/src/hosted-mcp/shared/kaleidoscope.css +139 -0
- package/src/hosted-mcp/shared/kaleidoscope.js +192 -0
- package/src/hosted-mcp/tools.mjs +73 -0
- package/templates/hooks/pre-commit +5 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wipcomputer/hosted-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Hosted MCP server for wip.computer. Bridge + memory for any platform.",
|
|
6
|
+
"main": "server.mjs",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "node server.mjs",
|
|
9
|
+
"dev": "node --watch server.mjs"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
13
|
+
"@prisma/client": "^6.19.3",
|
|
14
|
+
"@simplewebauthn/server": "^13.3.0",
|
|
15
|
+
"prisma": "^6.19.3",
|
|
16
|
+
"qrcode": "^1.5.4",
|
|
17
|
+
"zod": "^3.25.0"
|
|
18
|
+
},
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=20"
|
|
21
|
+
},
|
|
22
|
+
"private": true
|
|
23
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "User" (
|
|
3
|
+
"id" TEXT NOT NULL,
|
|
4
|
+
"name" TEXT NOT NULL,
|
|
5
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
6
|
+
|
|
7
|
+
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
-- CreateTable
|
|
11
|
+
CREATE TABLE "Credential" (
|
|
12
|
+
"id" TEXT NOT NULL,
|
|
13
|
+
"userId" TEXT NOT NULL,
|
|
14
|
+
"publicKey" BYTEA NOT NULL,
|
|
15
|
+
"counter" INTEGER NOT NULL DEFAULT 0,
|
|
16
|
+
"transports" TEXT[],
|
|
17
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
18
|
+
|
|
19
|
+
CONSTRAINT "Credential_pkey" PRIMARY KEY ("id")
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
-- CreateTable
|
|
23
|
+
CREATE TABLE "Device" (
|
|
24
|
+
"id" TEXT NOT NULL,
|
|
25
|
+
"userId" TEXT NOT NULL,
|
|
26
|
+
"token" TEXT NOT NULL,
|
|
27
|
+
"deviceName" TEXT NOT NULL,
|
|
28
|
+
"agentId" TEXT NOT NULL,
|
|
29
|
+
"pairedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
30
|
+
|
|
31
|
+
CONSTRAINT "Device_pkey" PRIMARY KEY ("id")
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
-- CreateTable
|
|
35
|
+
CREATE TABLE "Wallet" (
|
|
36
|
+
"id" TEXT NOT NULL,
|
|
37
|
+
"userId" TEXT NOT NULL,
|
|
38
|
+
"balance" INTEGER NOT NULL DEFAULT 0,
|
|
39
|
+
"currency" TEXT NOT NULL DEFAULT 'USD',
|
|
40
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
41
|
+
|
|
42
|
+
CONSTRAINT "Wallet_pkey" PRIMARY KEY ("id")
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
-- CreateTable
|
|
46
|
+
CREATE TABLE "ApiKey" (
|
|
47
|
+
"id" TEXT NOT NULL,
|
|
48
|
+
"key" TEXT NOT NULL,
|
|
49
|
+
"agentId" TEXT NOT NULL,
|
|
50
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
51
|
+
|
|
52
|
+
CONSTRAINT "ApiKey_pkey" PRIMARY KEY ("id")
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
-- CreateIndex
|
|
56
|
+
CREATE UNIQUE INDEX "Device_token_key" ON "Device"("token");
|
|
57
|
+
|
|
58
|
+
-- CreateIndex
|
|
59
|
+
CREATE UNIQUE INDEX "ApiKey_key_key" ON "ApiKey"("key");
|
|
60
|
+
|
|
61
|
+
-- AddForeignKey
|
|
62
|
+
ALTER TABLE "Credential" ADD CONSTRAINT "Credential_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
63
|
+
|
|
64
|
+
-- AddForeignKey
|
|
65
|
+
ALTER TABLE "Device" ADD CONSTRAINT "Device_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
66
|
+
|
|
67
|
+
-- AddForeignKey
|
|
68
|
+
ALTER TABLE "Wallet" ADD CONSTRAINT "Wallet_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Kaleidoscope database schema
|
|
2
|
+
// Postgres on VPS, managed by Prisma
|
|
3
|
+
// Production data: passkeys, devices, wallets, API keys
|
|
4
|
+
|
|
5
|
+
generator client {
|
|
6
|
+
provider = "prisma-client-js"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
datasource db {
|
|
10
|
+
provider = "postgresql"
|
|
11
|
+
url = env("DATABASE_URL")
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
model User {
|
|
15
|
+
id String @id @default(uuid())
|
|
16
|
+
name String
|
|
17
|
+
createdAt DateTime @default(now())
|
|
18
|
+
credentials Credential[]
|
|
19
|
+
devices Device[]
|
|
20
|
+
wallets Wallet[]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
model Credential {
|
|
24
|
+
id String @id // WebAuthn credential ID (from browser)
|
|
25
|
+
userId String
|
|
26
|
+
user User @relation(fields: [userId], references: [id])
|
|
27
|
+
publicKey Bytes // WebAuthn public key (NEVER the private key)
|
|
28
|
+
counter Int @default(0)
|
|
29
|
+
transports String[] // e.g. ["internal", "hybrid"]
|
|
30
|
+
createdAt DateTime @default(now())
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
model Device {
|
|
34
|
+
id String @id @default(uuid())
|
|
35
|
+
userId String
|
|
36
|
+
user User @relation(fields: [userId], references: [id])
|
|
37
|
+
token String @unique // dk-... device token from ldm pair
|
|
38
|
+
deviceName String
|
|
39
|
+
agentId String
|
|
40
|
+
pairedAt DateTime @default(now())
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
model Wallet {
|
|
44
|
+
id String @id @default(uuid())
|
|
45
|
+
userId String
|
|
46
|
+
user User @relation(fields: [userId], references: [id])
|
|
47
|
+
balance Int @default(0) // cents
|
|
48
|
+
currency String @default("USD")
|
|
49
|
+
createdAt DateTime @default(now())
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
model ApiKey {
|
|
53
|
+
id String @id @default(uuid())
|
|
54
|
+
key String @unique // ck-... API key
|
|
55
|
+
agentId String
|
|
56
|
+
createdAt DateTime @default(now())
|
|
57
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// This file was generated by Prisma, and assumes you have installed the following:
|
|
2
|
+
// npm install --save-dev prisma dotenv
|
|
3
|
+
import "dotenv/config";
|
|
4
|
+
import { defineConfig } from "prisma/config";
|
|
5
|
+
|
|
6
|
+
export default defineConfig({
|
|
7
|
+
schema: "prisma/schema.prisma",
|
|
8
|
+
migrations: {
|
|
9
|
+
path: "prisma/migrations",
|
|
10
|
+
},
|
|
11
|
+
datasource: {
|
|
12
|
+
url: process.env["DATABASE_URL"],
|
|
13
|
+
},
|
|
14
|
+
});
|