@insta-dev01/intclaw 1.0.6 → 1.0.8
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/openclaw.plugin.json +28 -90
- package/package.json +1 -1
- package/src/channel/IntClawChannel.js +4 -6
- package/src/index.js +2 -2
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "intclaw",
|
|
3
3
|
"name": "IntClaw Plugin",
|
|
4
4
|
"description": "OpenClaw plugin for IntClaw services - WebSocket-based channel integration for Community Platform, Message Channel, and Agent Collaboration Engine",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.8",
|
|
6
6
|
"kind": "channel",
|
|
7
7
|
"channels": ["intclaw"],
|
|
8
8
|
"configSchema": {
|
|
@@ -14,10 +14,6 @@
|
|
|
14
14
|
"description": "Enable/disable the IntClaw channel",
|
|
15
15
|
"default": true
|
|
16
16
|
},
|
|
17
|
-
"wsUrl": {
|
|
18
|
-
"type": "string",
|
|
19
|
-
"description": "WebSocket server URL for IntClaw connection (e.g., wss://api.intclaw.example.com/ws)"
|
|
20
|
-
},
|
|
21
17
|
"apiKey": {
|
|
22
18
|
"type": "string",
|
|
23
19
|
"description": "API key for authentication with IntClaw server"
|
|
@@ -28,112 +24,54 @@
|
|
|
28
24
|
"default": 5000,
|
|
29
25
|
"minimum": 1000
|
|
30
26
|
},
|
|
31
|
-
"
|
|
32
|
-
"type": "
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"default": "pairing"
|
|
36
|
-
},
|
|
37
|
-
"allowFrom": {
|
|
38
|
-
"type": "array",
|
|
39
|
-
"description": "DM allowlist (peer IDs)",
|
|
40
|
-
"items": {
|
|
41
|
-
"type": "string"
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
"groupPolicy": {
|
|
45
|
-
"type": "string",
|
|
46
|
-
"enum": ["allowlist", "open", "disabled"],
|
|
47
|
-
"description": "Group message policy",
|
|
48
|
-
"default": "allowlist"
|
|
27
|
+
"shadowInstance": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"description": "Enable shadow instance mode",
|
|
30
|
+
"default": false
|
|
49
31
|
},
|
|
50
|
-
"
|
|
32
|
+
"shadowDataAllowlist": {
|
|
51
33
|
"type": "array",
|
|
52
|
-
"description": "
|
|
34
|
+
"description": "Shadow data allowlist",
|
|
53
35
|
"items": {
|
|
54
36
|
"type": "string"
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"requireMention": {
|
|
68
|
-
"type": "boolean",
|
|
69
|
-
"default": true
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"accounts": {
|
|
75
|
-
"type": "object",
|
|
76
|
-
"description": "Multi-account configuration",
|
|
77
|
-
"additionalProperties": {
|
|
78
|
-
"type": "object",
|
|
79
|
-
"properties": {
|
|
80
|
-
"enabled": {
|
|
81
|
-
"type": "boolean",
|
|
82
|
-
"default": true
|
|
83
|
-
},
|
|
84
|
-
"wsUrl": {
|
|
85
|
-
"type": "string",
|
|
86
|
-
"description": "Account-specific WebSocket URL"
|
|
87
|
-
},
|
|
88
|
-
"apiKey": {
|
|
89
|
-
"type": "string",
|
|
90
|
-
"description": "Account-specific API key"
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
37
|
+
},
|
|
38
|
+
"default": [
|
|
39
|
+
"AGENTS.md",
|
|
40
|
+
"SOUL.md",
|
|
41
|
+
"IDENTITY.md",
|
|
42
|
+
"TOOLS.md",
|
|
43
|
+
"HEARTBEAT.md",
|
|
44
|
+
"BOOT.md",
|
|
45
|
+
"BOOTSTRAP.md",
|
|
46
|
+
"skills/",
|
|
47
|
+
"canvas/"
|
|
48
|
+
]
|
|
94
49
|
}
|
|
95
50
|
}
|
|
96
51
|
},
|
|
97
52
|
"uiHints": {
|
|
98
|
-
"wsUrl": {
|
|
99
|
-
"label": "WebSocket Server URL",
|
|
100
|
-
"placeholder": "wss://api.intclaw.example.com/ws",
|
|
101
|
-
"helpText": "The WebSocket URL of your IntClaw server",
|
|
102
|
-
"order": 1
|
|
103
|
-
},
|
|
104
53
|
"apiKey": {
|
|
105
54
|
"label": "API Key",
|
|
106
55
|
"placeholder": "Enter your API key",
|
|
107
56
|
"helpText": "API key for authenticating with the IntClaw server",
|
|
108
57
|
"sensitive": true,
|
|
109
|
-
"order":
|
|
58
|
+
"order": 1
|
|
110
59
|
},
|
|
111
60
|
"reconnectInterval": {
|
|
112
61
|
"label": "Reconnection Interval (ms)",
|
|
113
62
|
"placeholder": "5000",
|
|
114
63
|
"helpText": "How long to wait before reconnecting (in milliseconds)",
|
|
64
|
+
"order": 2
|
|
65
|
+
},
|
|
66
|
+
"shadowInstance": {
|
|
67
|
+
"label": "Shadow Instance",
|
|
68
|
+
"helpText": "Enable shadow instance mode",
|
|
115
69
|
"order": 3
|
|
116
70
|
},
|
|
117
|
-
"
|
|
118
|
-
"label": "
|
|
119
|
-
"helpText": "
|
|
120
|
-
"options": {
|
|
121
|
-
"pairing": "Require pairing approval",
|
|
122
|
-
"allowlist": "Only allow listed users",
|
|
123
|
-
"open": "Allow all users",
|
|
124
|
-
"disabled": "Disable direct messages"
|
|
125
|
-
},
|
|
71
|
+
"shadowDataAllowlist": {
|
|
72
|
+
"label": "Shadow Data Allowlist",
|
|
73
|
+
"helpText": "List of allowed shadow data paths",
|
|
126
74
|
"order": 4
|
|
127
|
-
},
|
|
128
|
-
"groupPolicy": {
|
|
129
|
-
"label": "Group Message Policy",
|
|
130
|
-
"helpText": "How to handle group messages",
|
|
131
|
-
"options": {
|
|
132
|
-
"allowlist": "Only allow listed groups",
|
|
133
|
-
"open": "Allow all groups",
|
|
134
|
-
"disabled": "Disable group messages"
|
|
135
|
-
},
|
|
136
|
-
"order": 5
|
|
137
75
|
}
|
|
138
76
|
}
|
|
139
77
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@insta-dev01/intclaw",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "OpenClaw plugin for IntClaw services - WebSocket-based channel integration for Community Platform, Message Channel, and Agent Collaboration Engine",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
const CHANNEL_ID = 'intclaw';
|
|
8
|
+
const DEFAULT_WS_URL = 'wss://claw-message.int-os.com';
|
|
8
9
|
const DEFAULT_RECONNECT_INTERVAL = 5000;
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -52,10 +53,6 @@ export class IntClawChannel {
|
|
|
52
53
|
async start() {
|
|
53
54
|
this.#log('info', 'Starting IntClaw channel...');
|
|
54
55
|
|
|
55
|
-
if (!this.#config.wsUrl) {
|
|
56
|
-
throw new Error('IntClaw channel requires wsUrl in configuration');
|
|
57
|
-
}
|
|
58
|
-
|
|
59
56
|
if (!this.#config.apiKey) {
|
|
60
57
|
throw new Error('IntClaw channel requires apiKey in configuration');
|
|
61
58
|
}
|
|
@@ -92,12 +89,13 @@ export class IntClawChannel {
|
|
|
92
89
|
}
|
|
93
90
|
|
|
94
91
|
try {
|
|
95
|
-
|
|
92
|
+
const wsUrl = this.#config.wsUrl || DEFAULT_WS_URL;
|
|
93
|
+
this.#log('info', `Connecting to IntClaw server: ${wsUrl}`);
|
|
96
94
|
|
|
97
95
|
// Import ws module dynamically
|
|
98
96
|
const WebSocket = (await import('ws')).default;
|
|
99
97
|
|
|
100
|
-
this.#ws = new WebSocket(
|
|
98
|
+
this.#ws = new WebSocket(wsUrl, {
|
|
101
99
|
headers: {
|
|
102
100
|
'X-API-Key': this.#config.apiKey,
|
|
103
101
|
},
|
package/src/index.js
CHANGED
|
@@ -30,9 +30,9 @@ export async function register(gateway, config) {
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
// Skip if required configuration is missing
|
|
33
|
+
// Skip if required configuration is missing
|
|
34
34
|
if (!config?.wsUrl || !config?.apiKey) {
|
|
35
|
-
console.log('[IntClaw]
|
|
35
|
+
console.log('[IntClaw] Configuration missing (wsUrl, apiKey)');
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
|