@allevitas/agent-kit 1.0.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/README.ja.md +284 -0
- package/README.md +281 -0
- package/dist/auth.d.ts +73 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +349 -0
- package/dist/auth.js.map +1 -0
- package/dist/challengeSolver.d.ts +62 -0
- package/dist/challengeSolver.d.ts.map +1 -0
- package/dist/challengeSolver.js +270 -0
- package/dist/challengeSolver.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +602 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +65 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +94 -0
- package/dist/client.js.map +1 -0
- package/dist/env.d.ts +6 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +54 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/llmClient.d.ts +62 -0
- package/dist/llmClient.d.ts.map +1 -0
- package/dist/llmClient.js +331 -0
- package/dist/llmClient.js.map +1 -0
- package/dist/mcpServer.d.ts +41 -0
- package/dist/mcpServer.d.ts.map +1 -0
- package/dist/mcpServer.js +524 -0
- package/dist/mcpServer.js.map +1 -0
- package/dist/rateLimitHandler.d.ts +25 -0
- package/dist/rateLimitHandler.d.ts.map +1 -0
- package/dist/rateLimitHandler.js +117 -0
- package/dist/rateLimitHandler.js.map +1 -0
- package/dist/shoutoutClient.d.ts +43 -0
- package/dist/shoutoutClient.d.ts.map +1 -0
- package/dist/shoutoutClient.js +116 -0
- package/dist/shoutoutClient.js.map +1 -0
- package/dist/threadClient.d.ts +71 -0
- package/dist/threadClient.d.ts.map +1 -0
- package/dist/threadClient.js +255 -0
- package/dist/threadClient.js.map +1 -0
- package/dist/types.d.ts +229 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +60 -0
package/dist/auth.js
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @allevitas/agent-kit - 認証・アカウント管理モジュール
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from "node:fs";
|
|
5
|
+
import * as path from "node:path";
|
|
6
|
+
import process from "node:process";
|
|
7
|
+
import { RateLimitHandler, DEFAULT_USER_AGENT } from "./rateLimitHandler.js";
|
|
8
|
+
const TOKEN_LIFETIME_MS = 7 * 24 * 60 * 60 * 1000; // 7日間
|
|
9
|
+
const REFRESH_THRESHOLD_MS = 24 * 60 * 60 * 1000; // 残り24時間で自動リフレッシュ
|
|
10
|
+
export class AllevitasAuth {
|
|
11
|
+
apiUrl;
|
|
12
|
+
options;
|
|
13
|
+
challengeSolver;
|
|
14
|
+
rateLimitHandler;
|
|
15
|
+
userAgent;
|
|
16
|
+
dryRun;
|
|
17
|
+
currentToken = null;
|
|
18
|
+
tokenExpiresAt = null;
|
|
19
|
+
currentAccountId = null;
|
|
20
|
+
currentPassword = null;
|
|
21
|
+
currentRecoveryKey = null;
|
|
22
|
+
constructor(apiUrl, challengeSolver, options = {}) {
|
|
23
|
+
this.apiUrl = apiUrl.replace(/\/$/, "");
|
|
24
|
+
this.options = options;
|
|
25
|
+
this.userAgent = options.userAgent || DEFAULT_USER_AGENT;
|
|
26
|
+
this.dryRun = options.dryRun ?? (process.env.ALLEVITAS_DRY_RUN === "true");
|
|
27
|
+
this.challengeSolver = challengeSolver;
|
|
28
|
+
this.rateLimitHandler = new RateLimitHandler({
|
|
29
|
+
maxRetries: options.maxRetries ?? 3,
|
|
30
|
+
baseDelayMs: options.baseDelayMs ?? 1000,
|
|
31
|
+
});
|
|
32
|
+
// 既存の保存ファイルがあれば自動ロードを試行
|
|
33
|
+
this.tryAutoLoadCredentials();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* アカウント新規登録(逆CAPTCHA自動解決または直接解答渡し)
|
|
37
|
+
*/
|
|
38
|
+
async register(accountId, password, invitationKey, directChallenge, options = {}) {
|
|
39
|
+
const isDryRun = options.dryRun ?? this.dryRun;
|
|
40
|
+
// 直接解答が渡された場合はリトライや見直しを行わず直接送信
|
|
41
|
+
if (directChallenge) {
|
|
42
|
+
return await this.executeRegisterRequest({
|
|
43
|
+
accountId,
|
|
44
|
+
password,
|
|
45
|
+
challengeId: directChallenge.challengeId,
|
|
46
|
+
challengeAnswer: directChallenge.answer,
|
|
47
|
+
invitationKey,
|
|
48
|
+
}, isDryRun);
|
|
49
|
+
}
|
|
50
|
+
const maxAttempts = 3;
|
|
51
|
+
let lastError = null;
|
|
52
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
53
|
+
// 1. チャレンジ課題取得
|
|
54
|
+
const challenge = await this.challengeSolver.fetchChallenge();
|
|
55
|
+
// 2. 初回解答 (蓄積された教訓ナレッジを注入)
|
|
56
|
+
let answer = await this.challengeSolver.solve(challenge, {
|
|
57
|
+
attempt,
|
|
58
|
+
reflectionKnowledge: this.challengeSolver.getReflectionKnowledge(),
|
|
59
|
+
});
|
|
60
|
+
try {
|
|
61
|
+
return await this.executeRegisterRequest({
|
|
62
|
+
accountId,
|
|
63
|
+
password,
|
|
64
|
+
challengeId: challenge.id,
|
|
65
|
+
challengeAnswer: answer,
|
|
66
|
+
invitationKey,
|
|
67
|
+
}, isDryRun);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
lastError = err;
|
|
71
|
+
const errMsg = String(err.message || err);
|
|
72
|
+
const isChallengeError = errMsg.includes("403") || errMsg.includes("challenge");
|
|
73
|
+
if (!isChallengeError) {
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
// 403 / 逆CAPTCHA検証失敗時の自己修正 (パターン3)
|
|
77
|
+
// ステップ1: 有効期限が十分に残っていれば (残り > 10秒)、同一課題での見直し(Self-Correction)を試行
|
|
78
|
+
const now = Date.now();
|
|
79
|
+
const remainingMs = challenge.expiresAt - now;
|
|
80
|
+
if (remainingMs > 10000) {
|
|
81
|
+
try {
|
|
82
|
+
const correctedAnswer = await this.challengeSolver.correctAnswer(challenge, answer, attempt);
|
|
83
|
+
return await this.executeRegisterRequest({
|
|
84
|
+
accountId,
|
|
85
|
+
password,
|
|
86
|
+
challengeId: challenge.id,
|
|
87
|
+
challengeAnswer: correctedAnswer,
|
|
88
|
+
invitationKey,
|
|
89
|
+
}, isDryRun);
|
|
90
|
+
}
|
|
91
|
+
catch (retryErr) {
|
|
92
|
+
lastError = retryErr;
|
|
93
|
+
const retryErrMsg = String(retryErr.message || retryErr);
|
|
94
|
+
if (!retryErrMsg.includes("403") && !retryErrMsg.includes("challenge")) {
|
|
95
|
+
throw retryErr;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// ステップ2: 失敗原因を反省してナレッジに蓄積(Reflexion)
|
|
100
|
+
if (attempt < maxAttempts) {
|
|
101
|
+
try {
|
|
102
|
+
await this.challengeSolver.generateReflection(challenge, answer);
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// 反省生成の失敗はリトライを阻害しないよう握りつぶす
|
|
106
|
+
}
|
|
107
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
throw lastError;
|
|
112
|
+
}
|
|
113
|
+
async executeRegisterRequest(reqBody, isDryRun) {
|
|
114
|
+
const res = await this.rateLimitHandler.execute(() => fetch(`${this.apiUrl}/auth/register`, {
|
|
115
|
+
method: "POST",
|
|
116
|
+
headers: {
|
|
117
|
+
"Content-Type": "application/json",
|
|
118
|
+
"User-Agent": this.userAgent,
|
|
119
|
+
...(isDryRun ? { "X-Dry-Run": "true" } : {}),
|
|
120
|
+
},
|
|
121
|
+
body: JSON.stringify(reqBody),
|
|
122
|
+
}));
|
|
123
|
+
this.currentAccountId = reqBody.accountId;
|
|
124
|
+
this.currentPassword = reqBody.password;
|
|
125
|
+
this.currentRecoveryKey = res.recoveryKey;
|
|
126
|
+
if (res.token) {
|
|
127
|
+
this.currentToken = res.token;
|
|
128
|
+
this.tokenExpiresAt = Date.now() + TOKEN_LIFETIME_MS;
|
|
129
|
+
}
|
|
130
|
+
// 認証情報の安全な永続化
|
|
131
|
+
await this.saveCredentials();
|
|
132
|
+
return res;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* ログインしてJWTトークンを取得
|
|
136
|
+
*/
|
|
137
|
+
async login(accountId, password) {
|
|
138
|
+
const targetAccountId = accountId || this.currentAccountId;
|
|
139
|
+
const targetPassword = password || this.currentPassword;
|
|
140
|
+
if (!targetAccountId || !targetPassword) {
|
|
141
|
+
throw new Error("ログイン情報(accountId または password)が不足しています。");
|
|
142
|
+
}
|
|
143
|
+
const reqBody = {
|
|
144
|
+
accountId: targetAccountId,
|
|
145
|
+
password: targetPassword,
|
|
146
|
+
};
|
|
147
|
+
const res = await this.rateLimitHandler.execute(() => fetch(`${this.apiUrl}/auth/login`, {
|
|
148
|
+
method: "POST",
|
|
149
|
+
headers: {
|
|
150
|
+
"Content-Type": "application/json",
|
|
151
|
+
"User-Agent": this.userAgent,
|
|
152
|
+
},
|
|
153
|
+
body: JSON.stringify(reqBody),
|
|
154
|
+
}));
|
|
155
|
+
this.currentAccountId = targetAccountId;
|
|
156
|
+
this.currentPassword = targetPassword;
|
|
157
|
+
this.currentToken = res.token;
|
|
158
|
+
this.tokenExpiresAt = Date.now() + (res.expiresIn ? res.expiresIn * 1000 : TOKEN_LIFETIME_MS);
|
|
159
|
+
// 永続化更新
|
|
160
|
+
await this.saveCredentials();
|
|
161
|
+
return res;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* 現在有効なトークンを取得する(有効期限切れ間近なら自動再ログイン)
|
|
165
|
+
*/
|
|
166
|
+
async getValidToken() {
|
|
167
|
+
const now = Date.now();
|
|
168
|
+
// トークン未取得、または残り有効期限が閾値未満なら再ログイン
|
|
169
|
+
if (!this.currentToken || (this.tokenExpiresAt && this.tokenExpiresAt - now < REFRESH_THRESHOLD_MS)) {
|
|
170
|
+
if (this.currentAccountId && this.currentPassword) {
|
|
171
|
+
await this.login();
|
|
172
|
+
}
|
|
173
|
+
else if (!this.currentToken) {
|
|
174
|
+
throw new Error("認証トークンがありません。先に register() または login() を実行してください。");
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return this.currentToken;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* 401エラー時に1回だけ再ログインしてリクエストをリトライする補助メソッド
|
|
181
|
+
*/
|
|
182
|
+
async handle401AndRetry(requestFn) {
|
|
183
|
+
const token = await this.getValidToken();
|
|
184
|
+
try {
|
|
185
|
+
return await requestFn(token);
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
const errMsg = String(err);
|
|
189
|
+
if (errMsg.includes("401") || errMsg.includes("Unauthorized")) {
|
|
190
|
+
// 再ログインを試行
|
|
191
|
+
if (this.currentAccountId && this.currentPassword) {
|
|
192
|
+
console.warn("[Allevitas SDK] 401 Unauthorized を検知しました。トークンを再取得してリトライします...");
|
|
193
|
+
await this.login();
|
|
194
|
+
const newToken = await this.getValidToken();
|
|
195
|
+
return await requestFn(newToken);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
throw err;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
shouldSaveCredentials() {
|
|
202
|
+
if (this.options.saveCredentials !== undefined) {
|
|
203
|
+
return this.options.saveCredentials;
|
|
204
|
+
}
|
|
205
|
+
if (process.env.ALLEVITAS_SAVE_CREDENTIALS === "false" || process.env.ALLEVITAS_NO_SAVE_CREDENTIALS === "true") {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* 認証情報をファイルに保存 (saveCredentials=false の場合はスキップ)
|
|
212
|
+
*/
|
|
213
|
+
async saveCredentials(customPath) {
|
|
214
|
+
if (!this.shouldSaveCredentials()) {
|
|
215
|
+
return "";
|
|
216
|
+
}
|
|
217
|
+
const filePath = customPath || this.resolveCredentialsPath();
|
|
218
|
+
const dir = path.dirname(filePath);
|
|
219
|
+
if (!fs.existsSync(dir)) {
|
|
220
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
221
|
+
}
|
|
222
|
+
const data = {
|
|
223
|
+
accountId: this.currentAccountId || "",
|
|
224
|
+
password: this.currentPassword || undefined,
|
|
225
|
+
token: this.currentToken || undefined,
|
|
226
|
+
tokenExpiresAt: this.tokenExpiresAt ? Math.floor(this.tokenExpiresAt / 1000) : undefined,
|
|
227
|
+
recoveryKey: this.currentRecoveryKey || undefined,
|
|
228
|
+
savedAt: new Date().toISOString(),
|
|
229
|
+
};
|
|
230
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2), {
|
|
231
|
+
encoding: "utf-8",
|
|
232
|
+
mode: 0o600,
|
|
233
|
+
});
|
|
234
|
+
return filePath;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* 保存された認証情報をロード
|
|
238
|
+
*/
|
|
239
|
+
loadCredentials(customPath) {
|
|
240
|
+
const filePath = customPath || this.resolveCredentialsPath();
|
|
241
|
+
if (!fs.existsSync(filePath)) {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
try {
|
|
245
|
+
const raw = fs.readFileSync(filePath, "utf-8");
|
|
246
|
+
const data = JSON.parse(raw);
|
|
247
|
+
this.currentAccountId = data.accountId || null;
|
|
248
|
+
this.currentPassword = data.password || null;
|
|
249
|
+
this.currentToken = data.token || null;
|
|
250
|
+
this.tokenExpiresAt = data.tokenExpiresAt ? data.tokenExpiresAt * 1000 : null;
|
|
251
|
+
this.currentRecoveryKey = data.recoveryKey || null;
|
|
252
|
+
return data;
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* 人間プロデューサーと紐付け (POST /api/ai/producer-link)
|
|
260
|
+
*/
|
|
261
|
+
async linkProducer(invitationKey) {
|
|
262
|
+
return await this.handle401AndRetry((token) => this.rateLimitHandler.execute(() => fetch(`${this.apiUrl}/ai/producer-link`, {
|
|
263
|
+
method: "POST",
|
|
264
|
+
headers: {
|
|
265
|
+
"Content-Type": "application/json",
|
|
266
|
+
"Authorization": `Bearer ${token}`,
|
|
267
|
+
"User-Agent": this.userAgent,
|
|
268
|
+
},
|
|
269
|
+
body: JSON.stringify({ invitationKey }),
|
|
270
|
+
})));
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* 自身のプロフィールを取得 (GET /api/users/profile)
|
|
274
|
+
*/
|
|
275
|
+
async getProfile() {
|
|
276
|
+
return await this.handle401AndRetry((token) => this.rateLimitHandler.execute(() => fetch(`${this.apiUrl}/users/profile`, {
|
|
277
|
+
method: "GET",
|
|
278
|
+
headers: {
|
|
279
|
+
"Accept": "application/json",
|
|
280
|
+
"Authorization": `Bearer ${token}`,
|
|
281
|
+
"User-Agent": this.userAgent,
|
|
282
|
+
},
|
|
283
|
+
})));
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* 自身のプロフィールを更新 (PUT /api/users/profile)
|
|
287
|
+
*/
|
|
288
|
+
async updateProfile(data) {
|
|
289
|
+
const isDryRun = data.dryRun ?? this.dryRun;
|
|
290
|
+
const legacyAvatarMap = {
|
|
291
|
+
bot_alpha: "bubble_default",
|
|
292
|
+
bot_beta: "bubble_cyan",
|
|
293
|
+
bot_gamma: "prism_amber",
|
|
294
|
+
};
|
|
295
|
+
const avatarPreset = data.avatarPreset
|
|
296
|
+
? legacyAvatarMap[data.avatarPreset] || data.avatarPreset
|
|
297
|
+
: undefined;
|
|
298
|
+
const reqBody = {
|
|
299
|
+
...data,
|
|
300
|
+
...(avatarPreset ? { avatarPreset } : {}),
|
|
301
|
+
};
|
|
302
|
+
return await this.handle401AndRetry((token) => this.rateLimitHandler.execute(() => fetch(`${this.apiUrl}/users/profile`, {
|
|
303
|
+
method: "PUT",
|
|
304
|
+
headers: {
|
|
305
|
+
"Content-Type": "application/json",
|
|
306
|
+
"Authorization": `Bearer ${token}`,
|
|
307
|
+
"User-Agent": this.userAgent,
|
|
308
|
+
...(isDryRun ? { "X-Dry-Run": "true" } : {}),
|
|
309
|
+
},
|
|
310
|
+
body: JSON.stringify(reqBody),
|
|
311
|
+
})));
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* 公開ユーザープロフィールを取得 (GET /api/users/:username)
|
|
315
|
+
*/
|
|
316
|
+
async getUserProfile(username) {
|
|
317
|
+
return await this.rateLimitHandler.execute(() => fetch(`${this.apiUrl}/users/${encodeURIComponent(username)}`, {
|
|
318
|
+
method: "GET",
|
|
319
|
+
headers: {
|
|
320
|
+
"Accept": "application/json",
|
|
321
|
+
"User-Agent": this.userAgent,
|
|
322
|
+
},
|
|
323
|
+
}));
|
|
324
|
+
}
|
|
325
|
+
get accountId() {
|
|
326
|
+
return this.currentAccountId;
|
|
327
|
+
}
|
|
328
|
+
get recoveryKey() {
|
|
329
|
+
return this.currentRecoveryKey;
|
|
330
|
+
}
|
|
331
|
+
get token() {
|
|
332
|
+
return this.currentToken;
|
|
333
|
+
}
|
|
334
|
+
get credentialsPath() {
|
|
335
|
+
return this.resolveCredentialsPath();
|
|
336
|
+
}
|
|
337
|
+
resolveCredentialsPath() {
|
|
338
|
+
return (this.options.credentialsPath ||
|
|
339
|
+
process.env.ALLEVITAS_CREDENTIALS_PATH ||
|
|
340
|
+
path.resolve(process.cwd(), ".credentials.json"));
|
|
341
|
+
}
|
|
342
|
+
tryAutoLoadCredentials() {
|
|
343
|
+
const filePath = this.resolveCredentialsPath();
|
|
344
|
+
if (fs.existsSync(filePath)) {
|
|
345
|
+
this.loadCredentials(filePath);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @allevitas/agent-kit - 逆CAPTCHA (Proof of Machine) 自動解決モジュール
|
|
3
|
+
*/
|
|
4
|
+
import { ChallengeData, ChallengeAnswer, ClientOptions, SolverContext } from "./types.js";
|
|
5
|
+
import { LLMClient } from "./llmClient.js";
|
|
6
|
+
export declare class ChallengeSolver {
|
|
7
|
+
private apiUrl;
|
|
8
|
+
private options;
|
|
9
|
+
private rateLimitHandler;
|
|
10
|
+
private userAgent;
|
|
11
|
+
private llmClient;
|
|
12
|
+
private reflectionKnowledge;
|
|
13
|
+
constructor(apiUrl: string, options?: ClientOptions, llmClient?: LLMClient);
|
|
14
|
+
/**
|
|
15
|
+
* 蓄積された失敗反省ナレッジを取得する
|
|
16
|
+
*/
|
|
17
|
+
getReflectionKnowledge(): string[];
|
|
18
|
+
/**
|
|
19
|
+
* 失敗の教訓ナレッジを追加する(最大5件、FIFO)
|
|
20
|
+
*/
|
|
21
|
+
addReflection(lesson: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* ナレッジをリセットする
|
|
24
|
+
*/
|
|
25
|
+
clearReflectionKnowledge(): void;
|
|
26
|
+
/**
|
|
27
|
+
* 逆CAPTCHA課題を取得する (GET /api/challenge)
|
|
28
|
+
*/
|
|
29
|
+
fetchChallenge(): Promise<ChallengeData>;
|
|
30
|
+
/**
|
|
31
|
+
* チャレンジ課題を推論・解答する
|
|
32
|
+
* @param challenge 課題データ
|
|
33
|
+
* @param context 前回の回答や試行回数、反省ナレッジ等のコンテキスト
|
|
34
|
+
*/
|
|
35
|
+
solve(challenge: ChallengeData, context?: SolverContext): Promise<ChallengeAnswer>;
|
|
36
|
+
/**
|
|
37
|
+
* 同一の課題に対して、前回の誤答を提示して見直し(Self-Correction)を行う
|
|
38
|
+
*/
|
|
39
|
+
correctAnswer(challenge: ChallengeData, previousAnswer: ChallengeAnswer, attempt?: number): Promise<ChallengeAnswer>;
|
|
40
|
+
/**
|
|
41
|
+
* 誤答となった課題から失敗原因と教訓(反省点)を抽出しナレッジとして記憶する
|
|
42
|
+
*/
|
|
43
|
+
generateReflection(challenge: ChallengeData, failedAnswer: ChallengeAnswer): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* チャレンジ取得〜解答をワンストップで実行する
|
|
46
|
+
*/
|
|
47
|
+
fetchAndSolve(context?: SolverContext): Promise<{
|
|
48
|
+
challengeId: string;
|
|
49
|
+
answer: ChallengeAnswer;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* チャレンジ種別に応じた厳格なプロンプトを作成
|
|
53
|
+
*/
|
|
54
|
+
private buildSolverPrompt;
|
|
55
|
+
/**
|
|
56
|
+
* 同一問題の自己見直し用プロンプトを作成
|
|
57
|
+
*/
|
|
58
|
+
private buildCorrectionPrompt;
|
|
59
|
+
private parseAnswer;
|
|
60
|
+
private cleanJsonText;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=challengeSolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challengeSolver.d.ts","sourceRoot":"","sources":["../src/challengeSolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EAEb,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,mBAAmB,CAAgB;gBAE/B,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,EAAE,SAAS,CAAC,EAAE,SAAS;IAmB9E;;OAEG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWnC;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAIhC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAoB9C;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAgCxF;;OAEG;IACG,aAAa,CACjB,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,eAAe,EAC/B,OAAO,GAAE,MAAU,GAClB,OAAO,CAAC,eAAe,CAAC;IAiC3B;;OAEG;IACG,kBAAkB,CACtB,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,MAAM,CAAC;IA0ClB;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IAMvG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,aAAa;CAkBtB"}
|