adp-agent 0.2.0
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 +21 -0
- package/README.md +141 -0
- package/config.example.json +32 -0
- package/dist/agent-id.d.ts +9 -0
- package/dist/agent-id.js +118 -0
- package/dist/agent-id.js.map +1 -0
- package/dist/agent-id.test.d.ts +1 -0
- package/dist/agent-id.test.js +36 -0
- package/dist/agent-id.test.js.map +1 -0
- package/dist/canonical.d.ts +5 -0
- package/dist/canonical.js +35 -0
- package/dist/canonical.js.map +1 -0
- package/dist/canonical.test.d.ts +1 -0
- package/dist/canonical.test.js +33 -0
- package/dist/canonical.test.js.map +1 -0
- package/dist/capability-test.d.ts +1 -0
- package/dist/capability-test.js +108 -0
- package/dist/capability-test.js.map +1 -0
- package/dist/chat.d.ts +1 -0
- package/dist/chat.js +166 -0
- package/dist/chat.js.map +1 -0
- package/dist/contacts-test.d.ts +1 -0
- package/dist/contacts-test.js +225 -0
- package/dist/contacts-test.js.map +1 -0
- package/dist/crypto.d.ts +11 -0
- package/dist/crypto.js +103 -0
- package/dist/crypto.js.map +1 -0
- package/dist/crypto.test.d.ts +1 -0
- package/dist/crypto.test.js +40 -0
- package/dist/crypto.test.js.map +1 -0
- package/dist/discovery.d.ts +36 -0
- package/dist/discovery.js +291 -0
- package/dist/discovery.js.map +1 -0
- package/dist/envelope.d.ts +42 -0
- package/dist/envelope.js +58 -0
- package/dist/envelope.js.map +1 -0
- package/dist/gateway.d.ts +44 -0
- package/dist/gateway.js +255 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/integration-test.d.ts +1 -0
- package/dist/integration-test.js +206 -0
- package/dist/integration-test.js.map +1 -0
- package/dist/key-store.d.ts +10 -0
- package/dist/key-store.js +81 -0
- package/dist/key-store.js.map +1 -0
- package/dist/manifest.d.ts +35 -0
- package/dist/manifest.js +24 -0
- package/dist/manifest.js.map +1 -0
- package/dist/mdns-test.d.ts +1 -0
- package/dist/mdns-test.js +93 -0
- package/dist/mdns-test.js.map +1 -0
- package/dist/relay-peer-test.d.ts +1 -0
- package/dist/relay-peer-test.js +220 -0
- package/dist/relay-peer-test.js.map +1 -0
- package/dist/relay-test.d.ts +1 -0
- package/dist/relay-test.js +92 -0
- package/dist/relay-test.js.map +1 -0
- package/dist/relay.d.ts +60 -0
- package/dist/relay.js +277 -0
- package/dist/relay.js.map +1 -0
- package/dist/src/agent-id.d.ts +9 -0
- package/dist/src/agent-id.js +44 -0
- package/dist/src/agent-id.js.map +1 -0
- package/dist/src/agent-id.test.d.ts +1 -0
- package/dist/src/agent-id.test.js +36 -0
- package/dist/src/agent-id.test.js.map +1 -0
- package/dist/src/canonical.d.ts +5 -0
- package/dist/src/canonical.js +37 -0
- package/dist/src/canonical.js.map +1 -0
- package/dist/src/canonical.test.d.ts +1 -0
- package/dist/src/canonical.test.js +33 -0
- package/dist/src/canonical.test.js.map +1 -0
- package/dist/src/capabilities.d.ts +3 -0
- package/dist/src/capabilities.js +39 -0
- package/dist/src/capabilities.js.map +1 -0
- package/dist/src/config.d.ts +35 -0
- package/dist/src/config.js +3 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/contacts.d.ts +28 -0
- package/dist/src/contacts.js +118 -0
- package/dist/src/contacts.js.map +1 -0
- package/dist/src/crypto.d.ts +11 -0
- package/dist/src/crypto.js +83 -0
- package/dist/src/crypto.js.map +1 -0
- package/dist/src/crypto.test.d.ts +1 -0
- package/dist/src/crypto.test.js +40 -0
- package/dist/src/crypto.test.js.map +1 -0
- package/dist/src/discovery.d.ts +39 -0
- package/dist/src/discovery.js +317 -0
- package/dist/src/discovery.js.map +1 -0
- package/dist/src/envelope.d.ts +55 -0
- package/dist/src/envelope.js +95 -0
- package/dist/src/envelope.js.map +1 -0
- package/dist/src/gateway.d.ts +78 -0
- package/dist/src/gateway.js +540 -0
- package/dist/src/gateway.js.map +1 -0
- package/dist/src/index.d.ts +22 -0
- package/dist/src/index.js +81 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/key-rotation.d.ts +27 -0
- package/dist/src/key-rotation.js +41 -0
- package/dist/src/key-rotation.js.map +1 -0
- package/dist/src/key-store.d.ts +10 -0
- package/dist/src/key-store.js +81 -0
- package/dist/src/key-store.js.map +1 -0
- package/dist/src/logger.d.ts +9 -0
- package/dist/src/logger.js +18 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/manifest.d.ts +37 -0
- package/dist/src/manifest.js +24 -0
- package/dist/src/manifest.js.map +1 -0
- package/dist/src/mcp-server.d.ts +38 -0
- package/dist/src/mcp-server.js +408 -0
- package/dist/src/mcp-server.js.map +1 -0
- package/dist/src/net-utils.d.ts +3 -0
- package/dist/src/net-utils.js +71 -0
- package/dist/src/net-utils.js.map +1 -0
- package/dist/src/registry/cache.d.ts +12 -0
- package/dist/src/registry/cache.js +45 -0
- package/dist/src/registry/cache.js.map +1 -0
- package/dist/src/registry/client.d.ts +43 -0
- package/dist/src/registry/client.js +245 -0
- package/dist/src/registry/client.js.map +1 -0
- package/dist/src/registry/config.d.ts +32 -0
- package/dist/src/registry/config.js +79 -0
- package/dist/src/registry/config.js.map +1 -0
- package/dist/src/registry/db.d.ts +10 -0
- package/dist/src/registry/db.js +97 -0
- package/dist/src/registry/db.js.map +1 -0
- package/dist/src/registry/index.d.ts +5 -0
- package/dist/src/registry/index.js +22 -0
- package/dist/src/registry/index.js.map +1 -0
- package/dist/src/registry/service.d.ts +45 -0
- package/dist/src/registry/service.js +802 -0
- package/dist/src/registry/service.js.map +1 -0
- package/dist/src/relay.d.ts +69 -0
- package/dist/src/relay.js +399 -0
- package/dist/src/relay.js.map +1 -0
- package/dist/src/task-manager.d.ts +55 -0
- package/dist/src/task-manager.js +150 -0
- package/dist/src/task-manager.js.map +1 -0
- package/dist/src/trust-store.d.ts +24 -0
- package/dist/src/trust-store.js +144 -0
- package/dist/src/trust-store.js.map +1 -0
- package/dist/src/webhook-client.d.ts +30 -0
- package/dist/src/webhook-client.js +78 -0
- package/dist/src/webhook-client.js.map +1 -0
- package/dist/start-mcp.d.ts +2 -0
- package/dist/start-mcp.js +126 -0
- package/dist/start-mcp.js.map +1 -0
- package/dist/start-registry.d.ts +2 -0
- package/dist/start-registry.js +33 -0
- package/dist/start-registry.js.map +1 -0
- package/dist/start-relay.d.ts +1 -0
- package/dist/start-relay.js +35 -0
- package/dist/start-relay.js.map +1 -0
- package/dist/start.d.ts +1 -0
- package/dist/start.js +364 -0
- package/dist/start.js.map +1 -0
- package/dist/task-manager.d.ts +55 -0
- package/dist/task-manager.js +145 -0
- package/dist/task-manager.js.map +1 -0
- package/dist/task-test.d.ts +1 -0
- package/dist/task-test.js +188 -0
- package/dist/task-test.js.map +1 -0
- package/dist/test-auth.d.ts +1 -0
- package/dist/test-auth.js +166 -0
- package/dist/test-auth.js.map +1 -0
- package/dist/test-key-rotation.d.ts +2 -0
- package/dist/test-key-rotation.js +114 -0
- package/dist/test-key-rotation.js.map +1 -0
- package/dist/test-registry.d.ts +2 -0
- package/dist/test-registry.js +123 -0
- package/dist/test-registry.js.map +1 -0
- package/dist/trust-store.d.ts +23 -0
- package/dist/trust-store.js +111 -0
- package/dist/trust-store.js.map +1 -0
- package/package.json +96 -0
- package/schema.sql +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-registry.js","sourceRoot":"","sources":["../test-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
interface TrustRecord {
|
|
2
|
+
public_key: string;
|
|
3
|
+
first_seen: string;
|
|
4
|
+
last_verified: string;
|
|
5
|
+
origin: 'tofu' | 'pinned' | 'rotation';
|
|
6
|
+
verified_by: string[];
|
|
7
|
+
superseded_by: string | null;
|
|
8
|
+
}
|
|
9
|
+
export declare class TrustStore {
|
|
10
|
+
private data;
|
|
11
|
+
private filePath;
|
|
12
|
+
constructor(filePath?: string);
|
|
13
|
+
load(): Promise<void>;
|
|
14
|
+
save(): Promise<void>;
|
|
15
|
+
has(agentId: string): boolean;
|
|
16
|
+
pin(agentId: string, publicKey: Uint8Array, origin: TrustRecord['origin'], verifiedBy?: string[]): void;
|
|
17
|
+
getPublicKey(agentId: string): Uint8Array | null;
|
|
18
|
+
updateLastVerified(agentId: string): void;
|
|
19
|
+
addRotation(oldAgentId: string, newAgentId: string, publicKey: Uint8Array): void;
|
|
20
|
+
hasConflict(agentId: string, publicKey: Uint8Array): boolean;
|
|
21
|
+
getRecord(agentId: string): TrustRecord | undefined;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TrustStore = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const crypto_1 = require("./crypto");
|
|
40
|
+
class TrustStore {
|
|
41
|
+
constructor(filePath) {
|
|
42
|
+
this.data = {};
|
|
43
|
+
this.filePath = filePath || path.join(process.env.HOME || process.env.USERPROFILE || '.', '.adp', 'trust_store.json');
|
|
44
|
+
}
|
|
45
|
+
async load() {
|
|
46
|
+
try {
|
|
47
|
+
const content = await fs.promises.readFile(this.filePath, 'utf-8');
|
|
48
|
+
this.data = JSON.parse(content);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
this.data = {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async save() {
|
|
55
|
+
const dir = path.dirname(this.filePath);
|
|
56
|
+
await fs.promises.mkdir(dir, { recursive: true });
|
|
57
|
+
await fs.promises.writeFile(this.filePath, JSON.stringify(this.data, null, 2));
|
|
58
|
+
}
|
|
59
|
+
has(agentId) {
|
|
60
|
+
return agentId in this.data;
|
|
61
|
+
}
|
|
62
|
+
pin(agentId, publicKey, origin, verifiedBy = ['tofu_single']) {
|
|
63
|
+
this.data[agentId] = {
|
|
64
|
+
public_key: (0, crypto_1.encodeBase64URL)(publicKey),
|
|
65
|
+
first_seen: new Date().toISOString(),
|
|
66
|
+
last_verified: new Date().toISOString(),
|
|
67
|
+
origin,
|
|
68
|
+
verified_by: verifiedBy,
|
|
69
|
+
superseded_by: null,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
getPublicKey(agentId) {
|
|
73
|
+
if (!(agentId in this.data)) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const record = this.data[agentId];
|
|
77
|
+
if (record.superseded_by) {
|
|
78
|
+
return this.getPublicKey(record.superseded_by);
|
|
79
|
+
}
|
|
80
|
+
return (0, crypto_1.decodeBase64URL)(record.public_key);
|
|
81
|
+
}
|
|
82
|
+
updateLastVerified(agentId) {
|
|
83
|
+
if (this.data[agentId]) {
|
|
84
|
+
this.data[agentId].last_verified = new Date().toISOString();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
addRotation(oldAgentId, newAgentId, publicKey) {
|
|
88
|
+
if (this.data[oldAgentId]) {
|
|
89
|
+
this.data[oldAgentId].superseded_by = newAgentId;
|
|
90
|
+
}
|
|
91
|
+
this.data[newAgentId] = {
|
|
92
|
+
public_key: (0, crypto_1.encodeBase64URL)(publicKey),
|
|
93
|
+
first_seen: new Date().toISOString(),
|
|
94
|
+
last_verified: new Date().toISOString(),
|
|
95
|
+
origin: 'rotation',
|
|
96
|
+
verified_by: ['rotation'],
|
|
97
|
+
superseded_by: null,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
hasConflict(agentId, publicKey) {
|
|
101
|
+
const existing = this.getPublicKey(agentId);
|
|
102
|
+
if (!existing)
|
|
103
|
+
return false;
|
|
104
|
+
return Buffer.from(existing).equals(Buffer.from(publicKey));
|
|
105
|
+
}
|
|
106
|
+
getRecord(agentId) {
|
|
107
|
+
return this.data[agentId];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.TrustStore = TrustStore;
|
|
111
|
+
//# sourceMappingURL=trust-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-store.js","sourceRoot":"","sources":["../src/trust-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "adp-agent",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Agent Discovery Protocol (ADP) - discover, query, and ping agents via MCP / OpenClaw",
|
|
5
|
+
"main": "dist/src/index.js",
|
|
6
|
+
"types": "dist/src/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"adp": "dist/start-mcp.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/",
|
|
12
|
+
"schema.sql",
|
|
13
|
+
"config.example.json"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"prepublishOnly": "npm run build",
|
|
18
|
+
"start": "npx ts-node start.ts",
|
|
19
|
+
"chat": "npx ts-node chat.ts",
|
|
20
|
+
"relay": "npx ts-node start-relay.ts",
|
|
21
|
+
"registry": "npx ts-node start-registry.ts",
|
|
22
|
+
"adp": "npx ts-node start-mcp.ts",
|
|
23
|
+
"example:openclaw": "npx ts-node examples/openclaw-agent.ts",
|
|
24
|
+
"example:video-client": "npx ts-node examples/video-client.ts",
|
|
25
|
+
"test:integration": "npx ts-node tests/integration/integration-test.ts",
|
|
26
|
+
"test:relay": "npx ts-node tests/integration/relay-test.ts",
|
|
27
|
+
"test:mdns": "npx ts-node tests/integration/mdns-test.ts",
|
|
28
|
+
"test:capability": "npx ts-node tests/integration/capability-test.ts",
|
|
29
|
+
"test:task": "npx ts-node tests/integration/task-test.ts",
|
|
30
|
+
"test:contacts": "npx ts-node tests/integration/contacts-test.ts",
|
|
31
|
+
"test:registry": "npx ts-node tests/integration/test-registry.ts",
|
|
32
|
+
"test:auth": "npx ts-node tests/integration/test-auth.ts",
|
|
33
|
+
"test:key-rotation": "npx ts-node tests/integration/test-key-rotation.ts",
|
|
34
|
+
"test:webhook": "npx ts-node tests/webhook/test-webhook.ts",
|
|
35
|
+
"test:webhook-flow": "npx ts-node tests/webhook/test-full-flow.ts",
|
|
36
|
+
"dev": "tsc --watch & nodemon dist/index.js",
|
|
37
|
+
"test": "jest",
|
|
38
|
+
"test:watch": "jest --watch",
|
|
39
|
+
"test:coverage": "jest --coverage",
|
|
40
|
+
"test:unit": "jest tests/unit",
|
|
41
|
+
"test:integration:jest": "jest tests/integration",
|
|
42
|
+
"test:e2e": "jest tests/e2e"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
46
|
+
"cors": "^2.8.6",
|
|
47
|
+
"express": "^5.2.1",
|
|
48
|
+
"multicast-dns": "^7.2.5",
|
|
49
|
+
"mysql2": "^3.22.3",
|
|
50
|
+
"redis": "^5.12.1",
|
|
51
|
+
"tweetnacl": "^1.0.3",
|
|
52
|
+
"ws": "^8.17.0",
|
|
53
|
+
"zod": "^4.4.3"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@faker-js/faker": "^10.4.0",
|
|
57
|
+
"@types/cors": "^2.8.17",
|
|
58
|
+
"@types/express": "^5.0.1",
|
|
59
|
+
"@types/jest": "^29.5.12",
|
|
60
|
+
"@types/multicast-dns": "^7.2.4",
|
|
61
|
+
"@types/node": "^20.12.7",
|
|
62
|
+
"@types/ws": "^8.5.10",
|
|
63
|
+
"@typescript-eslint/eslint-plugin": "^7.7.0",
|
|
64
|
+
"@typescript-eslint/parser": "^7.7.0",
|
|
65
|
+
"eslint": "^8.57.0",
|
|
66
|
+
"jest": "^29.7.0",
|
|
67
|
+
"nodemon": "^3.1.0",
|
|
68
|
+
"ts-jest": "^29.1.2",
|
|
69
|
+
"ts-mockito": "^2.6.1",
|
|
70
|
+
"ts-node": "^10.9.2",
|
|
71
|
+
"typescript": "^5.4.5"
|
|
72
|
+
},
|
|
73
|
+
"keywords": [
|
|
74
|
+
"adp",
|
|
75
|
+
"agent",
|
|
76
|
+
"discovery",
|
|
77
|
+
"protocol",
|
|
78
|
+
"mcp",
|
|
79
|
+
"model-context-protocol",
|
|
80
|
+
"openclaw",
|
|
81
|
+
"agent-discovery",
|
|
82
|
+
"p2p",
|
|
83
|
+
"mdns",
|
|
84
|
+
"websocket"
|
|
85
|
+
],
|
|
86
|
+
"author": "mengzhuowei@qq.com",
|
|
87
|
+
"license": "MIT",
|
|
88
|
+
"repository": {
|
|
89
|
+
"type": "git",
|
|
90
|
+
"url": "git+https://github.com/mengzhuowei/AgentDiscoveryProtocol.git"
|
|
91
|
+
},
|
|
92
|
+
"bugs": {
|
|
93
|
+
"url": "https://github.com/mengzhuowei/AgentDiscoveryProtocol/issues"
|
|
94
|
+
},
|
|
95
|
+
"homepage": "https://github.com/mengzhuowei/AgentDiscoveryProtocol#readme"
|
|
96
|
+
}
|
package/schema.sql
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
-- Agent Discovery Protocol Registry Database Schema
|
|
2
|
+
-- Version: 0.2
|
|
3
|
+
|
|
4
|
+
CREATE DATABASE IF NOT EXISTS adp_registry CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
5
|
+
USE adp_registry;
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
8
|
+
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
9
|
+
initial_id VARCHAR(512) NOT NULL UNIQUE,
|
|
10
|
+
current_agent_id VARCHAR(512) NOT NULL,
|
|
11
|
+
namespace VARCHAR(256) NOT NULL,
|
|
12
|
+
manifest JSON NOT NULL,
|
|
13
|
+
routes JSON NOT NULL,
|
|
14
|
+
last_seen DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
expires_at DATETIME NOT NULL,
|
|
16
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
17
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
18
|
+
INDEX idx_namespace (namespace),
|
|
19
|
+
INDEX idx_last_seen (last_seen),
|
|
20
|
+
INDEX idx_expires_at (expires_at)
|
|
21
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
|
|
22
|
+
|
|
23
|
+
CREATE TABLE IF NOT EXISTS rotation_chain (
|
|
24
|
+
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
25
|
+
initial_id VARCHAR(512) NOT NULL,
|
|
26
|
+
sequence INT NOT NULL,
|
|
27
|
+
from_agent_id VARCHAR(512) NOT NULL,
|
|
28
|
+
to_agent_id VARCHAR(512) NOT NULL,
|
|
29
|
+
envelope JSON NOT NULL,
|
|
30
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
FOREIGN KEY (initial_id) REFERENCES agents(initial_id) ON DELETE CASCADE,
|
|
32
|
+
INDEX idx_sequence (sequence),
|
|
33
|
+
UNIQUE KEY uk_initial_sequence (initial_id, sequence)
|
|
34
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
|
|
35
|
+
|
|
36
|
+
CREATE TABLE IF NOT EXISTS tokens (
|
|
37
|
+
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
38
|
+
token_hash VARCHAR(128) NOT NULL UNIQUE,
|
|
39
|
+
namespace VARCHAR(256),
|
|
40
|
+
capabilities JSON,
|
|
41
|
+
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
42
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
43
|
+
expires_at DATETIME,
|
|
44
|
+
INDEX idx_namespace (namespace)
|
|
45
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
|
|
46
|
+
|
|
47
|
+
CREATE TABLE IF NOT EXISTS agent_capabilities (
|
|
48
|
+
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
49
|
+
initial_id VARCHAR(512) NOT NULL,
|
|
50
|
+
capability VARCHAR(255) NOT NULL,
|
|
51
|
+
FOREIGN KEY (initial_id) REFERENCES agents(initial_id) ON DELETE CASCADE,
|
|
52
|
+
INDEX idx_capability (capability),
|
|
53
|
+
UNIQUE KEY uk_initial_capability (initial_id, capability)
|
|
54
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
|