@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.
Files changed (61) hide show
  1. package/LICENSE +52 -0
  2. package/SKILL.md +8 -1
  3. package/bin/ldm.js +587 -82
  4. package/dist/bridge/chunk-3RG5ZIWI.js +10 -0
  5. package/dist/bridge/{chunk-LF7EMFBY.js → chunk-7NH6JBIO.js} +127 -49
  6. package/dist/bridge/cli.js +2 -1
  7. package/dist/bridge/core.d.ts +13 -1
  8. package/dist/bridge/core.js +4 -1
  9. package/dist/bridge/mcp-server.js +52 -7
  10. package/dist/bridge/openclaw.d.ts +5 -0
  11. package/dist/bridge/openclaw.js +11 -0
  12. package/docs/bridge/TECHNICAL.md +86 -0
  13. package/docs/doc-pipeline/README.md +74 -0
  14. package/docs/doc-pipeline/TECHNICAL.md +79 -0
  15. package/lib/deploy.mjs +175 -13
  16. package/lib/detect.mjs +20 -6
  17. package/package.json +2 -2
  18. package/shared/docs/README.md.tmpl +2 -2
  19. package/shared/docs/how-releases-work.md.tmpl +3 -1
  20. package/shared/docs/how-worktrees-work.md.tmpl +12 -7
  21. package/shared/rules/git-conventions.md +3 -3
  22. package/shared/rules/release-pipeline.md +1 -1
  23. package/shared/rules/security.md +1 -1
  24. package/shared/rules/workspace-boundaries.md +1 -1
  25. package/shared/rules/writing-style.md +1 -1
  26. package/shared/templates/claude-md-level1.md +7 -3
  27. package/src/bridge/core.ts +160 -56
  28. package/src/bridge/mcp-server.ts +93 -8
  29. package/src/bridge/openclaw.ts +14 -0
  30. package/src/hooks/inbox-check-hook.mjs +232 -0
  31. package/src/hooks/inbox-rewake-hook.mjs +388 -0
  32. package/src/hosted-mcp/.env.example +3 -0
  33. package/src/hosted-mcp/demo/agent.html +300 -0
  34. package/src/hosted-mcp/demo/agent.txt +84 -0
  35. package/src/hosted-mcp/demo/fallback.jpg +0 -0
  36. package/src/hosted-mcp/demo/footer.js +74 -0
  37. package/src/hosted-mcp/demo/index.html +1303 -0
  38. package/src/hosted-mcp/demo/login.html +548 -0
  39. package/src/hosted-mcp/demo/privacy.html +223 -0
  40. package/src/hosted-mcp/demo/sprites.jpg +0 -0
  41. package/src/hosted-mcp/demo/sprites.png +0 -0
  42. package/src/hosted-mcp/demo/tos.html +198 -0
  43. package/src/hosted-mcp/deploy.sh +70 -0
  44. package/src/hosted-mcp/ecosystem.config.cjs +14 -0
  45. package/src/hosted-mcp/inbox.mjs +64 -0
  46. package/src/hosted-mcp/legal/internet-services/terms/site.html +205 -0
  47. package/src/hosted-mcp/legal/privacy/en-ww/index.html +230 -0
  48. package/src/hosted-mcp/nginx/mcp-oauth.conf +98 -0
  49. package/src/hosted-mcp/nginx/mcp-server.conf +17 -0
  50. package/src/hosted-mcp/nginx/wip.computer.conf +45 -0
  51. package/src/hosted-mcp/package-lock.json +2092 -0
  52. package/src/hosted-mcp/package.json +23 -0
  53. package/src/hosted-mcp/prisma/migrations/20260406233014_init/migration.sql +68 -0
  54. package/src/hosted-mcp/prisma/migrations/migration_lock.toml +3 -0
  55. package/src/hosted-mcp/prisma/schema.prisma +57 -0
  56. package/src/hosted-mcp/prisma.config.ts +14 -0
  57. package/src/hosted-mcp/server.mjs +2093 -0
  58. package/src/hosted-mcp/shared/kaleidoscope.css +139 -0
  59. package/src/hosted-mcp/shared/kaleidoscope.js +192 -0
  60. package/src/hosted-mcp/tools.mjs +73 -0
  61. 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,3 @@
1
+ # Please do not edit this file manually
2
+ # It should be added in your version-control system (e.g., Git)
3
+ provider = "postgresql"
@@ -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
+ });