@acip/cli 1.5.5 → 1.6.1
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/dist/utils/project.d.ts.map +1 -1
- package/dist/utils/project.js +8 -0
- package/dist/utils/project.js.map +1 -1
- package/package.json +1 -1
- package/templates/.env.example.template +7 -0
- package/templates/advanced/src/components/assistant.js.template +311 -29
- package/templates/advanced/src/components/assistant.ts.template +322 -42
- package/templates/advanced/src/index.js.template +112 -29
- package/templates/advanced/src/index.ts.template +114 -34
- package/templates/basic/src/index.js.template +188 -19
- package/templates/basic/src/index.ts.template +187 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FnF"}
|
package/dist/utils/project.js
CHANGED
|
@@ -49,7 +49,15 @@ export async function createProjectStructure(options) {
|
|
|
49
49
|
author: '',
|
|
50
50
|
license: 'MIT',
|
|
51
51
|
dependencies: {
|
|
52
|
+
...(template === 'basic' || template === 'advanced'
|
|
53
|
+
? { '@acip/core': '^1.5.0' } : {}),
|
|
52
54
|
'@acip/model-invocation': '^1.5.0',
|
|
55
|
+
...(template === 'advanced' ? {
|
|
56
|
+
'@acip/context-management': '^1.5.0',
|
|
57
|
+
'@acip/data-access': '^1.5.0',
|
|
58
|
+
'@acip/blockchain': '^1.5.0',
|
|
59
|
+
'@acip/security-authentication': '^1.5.0'
|
|
60
|
+
} : {}),
|
|
53
61
|
'dotenv': '^16.3.1'
|
|
54
62
|
},
|
|
55
63
|
devDependencies: devDeps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,6 +7,13 @@ OPENAI_BASE_URL=https://api.openai.com/v1
|
|
|
7
7
|
# 默认 AI 模型 ID
|
|
8
8
|
DEFAULT_MODEL_ID=gpt-5.2
|
|
9
9
|
|
|
10
|
+
# 请求超时(毫秒),适用于流式响应
|
|
11
|
+
ACIP_REQUEST_TIMEOUT_MS=180000
|
|
12
|
+
|
|
10
13
|
# 应用配置
|
|
11
14
|
APP_PORT=3000
|
|
12
15
|
NODE_ENV=development
|
|
16
|
+
|
|
17
|
+
# 安全认证(advanced 模板使用)
|
|
18
|
+
JWT_SECRET=your_jwt_secret_here
|
|
19
|
+
ADMIN_PASSWORD=Demo@1234
|
|
@@ -1,48 +1,330 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import * as readline from 'readline';
|
|
2
|
+
|
|
3
|
+
const SYSTEM_PROMPT = `You are ACIP Assistant, an AI powered by the Adaptive Contextual Intelligence Protocol (ACIP).
|
|
4
|
+
ACIP is a distributed AI communication protocol providing semantic routing, resource-aware scheduling, QoS management, blockchain integration, and edge computing support.
|
|
5
|
+
You have access to context management, data access, blockchain audit, and security modules.
|
|
6
|
+
Help users understand and build with ACIP. Be concise and helpful.`;
|
|
7
|
+
|
|
8
|
+
export function createAssistant(modules) {
|
|
9
|
+
const {
|
|
10
|
+
modelInvocation,
|
|
11
|
+
modelId,
|
|
12
|
+
provider,
|
|
13
|
+
contextManager,
|
|
14
|
+
contextId,
|
|
15
|
+
blockchain,
|
|
16
|
+
auditService,
|
|
17
|
+
dataAccess,
|
|
18
|
+
authManager
|
|
19
|
+
} = modules;
|
|
20
|
+
|
|
5
21
|
const history = [];
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
let requestCount = 0;
|
|
23
|
+
const requestTimeoutMs = Number(process.env.ACIP_REQUEST_TIMEOUT_MS || '180000');
|
|
24
|
+
|
|
25
|
+
const resolveModelsUrl = (rawBaseUrl) => {
|
|
26
|
+
const fallback = 'https://api.openai.com/v1';
|
|
27
|
+
const trimmed = (rawBaseUrl || fallback).replace(/\/$/, '');
|
|
28
|
+
if (trimmed.endsWith('/models')) {
|
|
29
|
+
return trimmed;
|
|
30
|
+
}
|
|
31
|
+
if (trimmed.endsWith('/v1')) {
|
|
32
|
+
return `${trimmed}/models`;
|
|
33
|
+
}
|
|
34
|
+
return `${trimmed}/v1/models`;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const listModels = async () => {
|
|
38
|
+
const apiKey = process.env.OPENAI_API_KEY || process.env.ACIP_API_KEY;
|
|
39
|
+
const baseUrl = process.env.OPENAI_BASE_URL || process.env.ACIP_BASE_URL;
|
|
40
|
+
|
|
41
|
+
if (!apiKey) {
|
|
42
|
+
console.log('Missing API key. Set OPENAI_API_KEY (or ACIP_API_KEY) in .env file.');
|
|
43
|
+
console.log('');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const modelsUrl = resolveModelsUrl(baseUrl);
|
|
48
|
+
try {
|
|
49
|
+
const response = await fetch(modelsUrl, {
|
|
50
|
+
method: 'GET',
|
|
51
|
+
headers: {
|
|
52
|
+
'Authorization': `Bearer ${apiKey}`
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
let errorMessage = `HTTP ${response.status}`;
|
|
58
|
+
try {
|
|
59
|
+
const error = await response.json();
|
|
60
|
+
errorMessage = error?.error?.message || error?.message || errorMessage;
|
|
61
|
+
} catch {
|
|
62
|
+
const text = await response.text();
|
|
63
|
+
if (text) {
|
|
64
|
+
errorMessage = text;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
console.log(`Models list error: ${errorMessage}`);
|
|
68
|
+
console.log('');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const data = await response.json();
|
|
73
|
+
const models = Array.isArray(data?.data)
|
|
74
|
+
? data.data
|
|
75
|
+
: Array.isArray(data?.models)
|
|
76
|
+
? data.models
|
|
77
|
+
: [];
|
|
78
|
+
|
|
79
|
+
if (models.length === 0) {
|
|
80
|
+
console.log('No models returned.');
|
|
81
|
+
console.log('');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
console.log('');
|
|
86
|
+
console.log(`--- Models (${models.length}) ---`);
|
|
87
|
+
for (const model of models) {
|
|
88
|
+
const id = model?.id || model?.name || model?.model || JSON.stringify(model);
|
|
89
|
+
console.log(` - ${id}`);
|
|
90
|
+
}
|
|
91
|
+
console.log('---');
|
|
92
|
+
console.log('');
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.log(`Models list error: ${error.message}`);
|
|
95
|
+
console.log('');
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const streamReply = (messages) => new Promise((resolve, reject) => {
|
|
100
|
+
const stream = modelInvocation.invokeStream({
|
|
101
|
+
model: modelId,
|
|
102
|
+
provider,
|
|
103
|
+
timeout: requestTimeoutMs,
|
|
104
|
+
messages
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
let full = '';
|
|
108
|
+
process.stdout.write('\nAssistant> ');
|
|
109
|
+
|
|
110
|
+
stream.on('data', (chunk) => {
|
|
111
|
+
|
|
112
|
+
const content = chunk?.output?.content ?? chunk?.content;
|
|
113
|
+
|
|
114
|
+
if (typeof content === 'string') {
|
|
115
|
+
|
|
116
|
+
full += content;
|
|
117
|
+
|
|
118
|
+
process.stdout.write(content);
|
|
119
|
+
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
stream.on('end', () => {
|
|
125
|
+
process.stdout.write('\n\n');
|
|
126
|
+
resolve(full);
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
stream.on('error', (err) => {
|
|
130
|
+
const message = err?.error || err?.message || 'Unknown error';
|
|
131
|
+
process.stdout.write('\n');
|
|
132
|
+
reject(new Error(message));
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
async function sendMessage(content) {
|
|
16
138
|
const messages = [
|
|
17
|
-
{ role: 'system', content:
|
|
139
|
+
{ role: 'system', content: SYSTEM_PROMPT },
|
|
18
140
|
...history,
|
|
19
141
|
{ role: 'user', content }
|
|
20
142
|
];
|
|
21
143
|
|
|
22
|
-
const
|
|
23
|
-
model: modelId,
|
|
24
|
-
provider,
|
|
25
|
-
messages,
|
|
26
|
-
...invokeOptions
|
|
27
|
-
});
|
|
144
|
+
const responseContent = await streamReply(messages);
|
|
28
145
|
|
|
29
146
|
history.push({ role: 'user', content });
|
|
30
|
-
history.push({ role: 'assistant', content:
|
|
147
|
+
history.push({ role: 'assistant', content: responseContent });
|
|
148
|
+
requestCount++;
|
|
149
|
+
|
|
150
|
+
// 自动保存到上下文管理
|
|
151
|
+
if (contextManager && contextId) {
|
|
152
|
+
try {
|
|
153
|
+
await contextManager.addToContext(contextId, {
|
|
154
|
+
type: 'text',
|
|
155
|
+
text: `User: ${content}\nAssistant: ${responseContent}`,
|
|
156
|
+
timestamp: Date.now()
|
|
157
|
+
});
|
|
158
|
+
} catch { /* 静默降级 */ }
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// 自动审计到区块链
|
|
162
|
+
if (blockchain) {
|
|
163
|
+
try {
|
|
164
|
+
const tx = blockchain.createTransaction('user', 'ai-assistant', 1);
|
|
165
|
+
tx.type = 'CONTRIBUTION';
|
|
166
|
+
blockchain.addTransaction(tx);
|
|
167
|
+
} catch { /* 静默降级 */ }
|
|
168
|
+
}
|
|
31
169
|
|
|
32
|
-
return
|
|
170
|
+
return responseContent;
|
|
33
171
|
}
|
|
34
172
|
|
|
35
|
-
function
|
|
36
|
-
|
|
173
|
+
async function handleCommand(cmd) {
|
|
174
|
+
const parts = cmd.split(/\s+/);
|
|
175
|
+
const command = parts[0];
|
|
176
|
+
|
|
177
|
+
switch (command) {
|
|
178
|
+
case '/help':
|
|
179
|
+
console.log('\nCommands:');
|
|
180
|
+
console.log(' /help - Show this help');
|
|
181
|
+
console.log(' /clear - Clear conversation history');
|
|
182
|
+
console.log(' /history - Show conversation history');
|
|
183
|
+
console.log(' /status - Show module status');
|
|
184
|
+
console.log(' /models - List available models');
|
|
185
|
+
console.log(' /audit - Show blockchain audit trail');
|
|
186
|
+
console.log(' /data list - List registered data sources');
|
|
187
|
+
console.log(' /exit - Exit the application\n');
|
|
188
|
+
return true;
|
|
189
|
+
|
|
190
|
+
case '/clear':
|
|
191
|
+
history.length = 0;
|
|
192
|
+
requestCount = 0;
|
|
193
|
+
console.log('Conversation history cleared.\n');
|
|
194
|
+
return true;
|
|
195
|
+
|
|
196
|
+
case '/history':
|
|
197
|
+
if (history.length === 0) {
|
|
198
|
+
console.log('No conversation history yet.\n');
|
|
199
|
+
} else {
|
|
200
|
+
console.log(`\n--- Conversation History (${history.length} messages) ---`);
|
|
201
|
+
for (const msg of history) {
|
|
202
|
+
const prefix = msg.role === 'user' ? 'You' : 'Assistant';
|
|
203
|
+
const text = msg.content.length > 120
|
|
204
|
+
? msg.content.substring(0, 120) + '...'
|
|
205
|
+
: msg.content;
|
|
206
|
+
console.log(` [${prefix}] ${text}`);
|
|
207
|
+
}
|
|
208
|
+
console.log('---\n');
|
|
209
|
+
}
|
|
210
|
+
return true;
|
|
211
|
+
|
|
212
|
+
case '/status': {
|
|
213
|
+
console.log('\n--- Module Status ---');
|
|
214
|
+
console.log(` Core: active`);
|
|
215
|
+
console.log(` Model Invocation: active (model: ${modelId})`);
|
|
216
|
+
console.log(` Context Mgmt: ${contextManager ? 'active' : 'unavailable'}`);
|
|
217
|
+
console.log(` Data Access: ${dataAccess ? 'active' : 'unavailable'}`);
|
|
218
|
+
console.log(` Blockchain: ${blockchain ? 'active' : 'unavailable'}`);
|
|
219
|
+
console.log(` Security/Auth: ${authManager ? 'active' : 'unavailable'}`);
|
|
220
|
+
console.log(` Requests: ${requestCount}`);
|
|
221
|
+
console.log(` History: ${history.length} messages`);
|
|
222
|
+
if (authManager) {
|
|
223
|
+
try {
|
|
224
|
+
const stats = authManager.getStats();
|
|
225
|
+
console.log(` Users: ${stats.userCount}`);
|
|
226
|
+
console.log(` Sessions: ${stats.sessionCount}`);
|
|
227
|
+
} catch { /* ignore */ }
|
|
228
|
+
}
|
|
229
|
+
console.log('---\n');
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
case '/models':
|
|
234
|
+
await listModels();
|
|
235
|
+
return true;
|
|
236
|
+
|
|
237
|
+
case '/audit':
|
|
238
|
+
if (!auditService) {
|
|
239
|
+
console.log('Blockchain audit is not available.\n');
|
|
240
|
+
} else {
|
|
241
|
+
try {
|
|
242
|
+
const trail = auditService.getAuditTrailForAddress('user');
|
|
243
|
+
if (trail.length === 0) {
|
|
244
|
+
console.log('No audit records yet.\n');
|
|
245
|
+
} else {
|
|
246
|
+
console.log(`\n--- Audit Trail (${trail.length} records) ---`);
|
|
247
|
+
for (const tx of trail.slice(-10)) {
|
|
248
|
+
const time = new Date(tx.timestamp).toLocaleTimeString();
|
|
249
|
+
console.log(` [${time}] ${tx.from} -> ${tx.to} (${tx.type}, amount: ${tx.amount})`);
|
|
250
|
+
}
|
|
251
|
+
console.log('---\n');
|
|
252
|
+
}
|
|
253
|
+
} catch (err) {
|
|
254
|
+
console.log(`Audit error: ${err.message}\n`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return true;
|
|
258
|
+
|
|
259
|
+
case '/data':
|
|
260
|
+
if (!dataAccess) {
|
|
261
|
+
console.log('Data Access module is not available.\n');
|
|
262
|
+
} else if (parts[1] === 'list') {
|
|
263
|
+
try {
|
|
264
|
+
const sources = dataAccess.listSources();
|
|
265
|
+
if (sources.length === 0) {
|
|
266
|
+
console.log('No data sources registered.\n');
|
|
267
|
+
} else {
|
|
268
|
+
console.log(`\n--- Data Sources (${sources.length}) ---`);
|
|
269
|
+
for (const src of sources) {
|
|
270
|
+
console.log(` - ${src.name || src}`);
|
|
271
|
+
}
|
|
272
|
+
console.log('---\n');
|
|
273
|
+
}
|
|
274
|
+
} catch (err) {
|
|
275
|
+
console.log(`Data access error: ${err.message}\n`);
|
|
276
|
+
}
|
|
277
|
+
} else {
|
|
278
|
+
console.log('Usage: /data list\n');
|
|
279
|
+
}
|
|
280
|
+
return true;
|
|
281
|
+
|
|
282
|
+
case '/exit':
|
|
283
|
+
case '/quit':
|
|
284
|
+
console.log('Goodbye!');
|
|
285
|
+
process.exit(0);
|
|
286
|
+
|
|
287
|
+
default:
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
37
290
|
}
|
|
38
291
|
|
|
39
|
-
function
|
|
40
|
-
|
|
292
|
+
function startREPL() {
|
|
293
|
+
const rl = readline.createInterface({
|
|
294
|
+
input: process.stdin,
|
|
295
|
+
output: process.stdout
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
console.log('\n=== ACIP Advanced Assistant ===');
|
|
299
|
+
console.log('All modules integrated. Type /help for commands.\n');
|
|
300
|
+
|
|
301
|
+
const prompt = () => {
|
|
302
|
+
rl.question('You> ', async (input) => {
|
|
303
|
+
const trimmed = input.trim();
|
|
304
|
+
if (!trimmed) { prompt(); return; }
|
|
305
|
+
|
|
306
|
+
if (trimmed.startsWith('/')) {
|
|
307
|
+
const handled = await handleCommand(trimmed);
|
|
308
|
+
if (handled) { prompt(); return; }
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
try {
|
|
312
|
+
await sendMessage(trimmed);
|
|
313
|
+
} catch (error) {
|
|
314
|
+
console.error(`\nError: ${error.message}\n`);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
prompt();
|
|
318
|
+
});
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
prompt();
|
|
41
322
|
}
|
|
42
323
|
|
|
43
324
|
return {
|
|
325
|
+
startREPL,
|
|
44
326
|
sendMessage,
|
|
45
|
-
getHistory,
|
|
46
|
-
clearHistory
|
|
327
|
+
getHistory: () => [...history],
|
|
328
|
+
clearHistory: () => { history.length = 0; }
|
|
47
329
|
};
|
|
48
330
|
}
|