@sireai/optimus 0.1.8 → 0.1.9
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.md +2 -1
- package/dist/cli/optimus.js +145 -81
- package/dist/cli/optimus.js.map +1 -1
- package/dist/config/load-config.js +3 -0
- package/dist/config/load-config.js.map +1 -1
- package/dist/integrations/feishu/feishu-auth-config.d.ts +7 -0
- package/dist/integrations/feishu/feishu-auth-config.js +37 -0
- package/dist/integrations/feishu/feishu-auth-config.js.map +1 -0
- package/dist/integrations/feishu/feishu-auth-service.d.ts +71 -0
- package/dist/integrations/feishu/feishu-auth-service.js +399 -0
- package/dist/integrations/feishu/feishu-auth-service.js.map +1 -0
- package/dist/integrations/feishu/feishu-auth-store.d.ts +29 -0
- package/dist/integrations/feishu/feishu-auth-store.js +113 -0
- package/dist/integrations/feishu/feishu-auth-store.js.map +1 -0
- package/dist/integrations/feishu/feishu-client.d.ts +52 -0
- package/dist/integrations/feishu/feishu-client.js +217 -0
- package/dist/integrations/feishu/feishu-client.js.map +1 -0
- package/dist/integrations/feishu/feishu-doc-service.d.ts +46 -0
- package/dist/integrations/feishu/feishu-doc-service.js +281 -0
- package/dist/integrations/feishu/feishu-doc-service.js.map +1 -0
- package/dist/integrations/feishu/feishu-token-store.d.ts +17 -0
- package/dist/integrations/feishu/feishu-token-store.js +34 -0
- package/dist/integrations/feishu/feishu-token-store.js.map +1 -0
- package/dist/integrations/feishu/feishu-user-service.d.ts +14 -0
- package/dist/integrations/feishu/feishu-user-service.js +60 -0
- package/dist/integrations/feishu/feishu-user-service.js.map +1 -0
- package/dist/integrations/jira/jira-cli.js +25 -11
- package/dist/integrations/jira/jira-cli.js.map +1 -1
- package/dist/integrations/jira/jira-client.d.ts +26 -0
- package/dist/integrations/jira/jira-client.js +111 -0
- package/dist/integrations/jira/jira-client.js.map +1 -1
- package/dist/integrations/jira/jira-submit.d.ts +5 -5
- package/dist/integrations/jira/jira-submit.js +97 -66
- package/dist/integrations/jira/jira-submit.js.map +1 -1
- package/dist/problem-solving-core/codex/codex-runner.d.ts +2 -0
- package/dist/problem-solving-core/codex/codex-runner.js +65 -0
- package/dist/problem-solving-core/codex/codex-runner.js.map +1 -1
- package/dist/task-environment/delivery/feishu-analysis-doc-service.d.ts +7 -25
- package/dist/task-environment/delivery/feishu-analysis-doc-service.js +32 -337
- package/dist/task-environment/delivery/feishu-analysis-doc-service.js.map +1 -1
- package/dist/task-environment/delivery/task-publication-service.d.ts +4 -0
- package/dist/task-environment/delivery/task-publication-service.js +56 -6
- package/dist/task-environment/delivery/task-publication-service.js.map +1 -1
- package/dist/task-environment/evidence/evidence-preparation-service.d.ts +36 -0
- package/dist/task-environment/evidence/evidence-preparation-service.js +341 -0
- package/dist/task-environment/evidence/evidence-preparation-service.js.map +1 -0
- package/dist/task-environment/intake/manual-problem-intake.js +15 -0
- package/dist/task-environment/intake/manual-problem-intake.js.map +1 -1
- package/dist/task-environment/observability/logger.js +21 -0
- package/dist/task-environment/observability/logger.js.map +1 -1
- package/dist/task-environment/orchestration/task-orchestrator.d.ts +3 -0
- package/dist/task-environment/orchestration/task-orchestrator.js +87 -1
- package/dist/task-environment/orchestration/task-orchestrator.js.map +1 -1
- package/dist/task-environment/orchestration/triage-runner.d.ts +2 -0
- package/dist/task-environment/orchestration/triage-runner.js +27 -1
- package/dist/task-environment/orchestration/triage-runner.js.map +1 -1
- package/dist/task-environment/runtime/optimus-runtime.js +4 -3
- package/dist/task-environment/runtime/optimus-runtime.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/embedded-skills/shared/video-keyframe-analyzer/SKILL.md +88 -0
- package/embedded-skills/shared/video-keyframe-analyzer/references/encountered-problems.md +12 -0
- package/embedded-skills/shared/video-keyframe-analyzer/references/triage-checklist.md +48 -0
- package/embedded-skills/shared/video-keyframe-analyzer/scripts/extract-keyframes.mjs +614 -0
- package/embedded-skills/shared/{repo-inspection → video-keyframe-analyzer}/skill.json +1 -1
- package/package.json +6 -2
- package/embedded-skills/shared/repo-inspection/SKILL.md +0 -9
|
@@ -1,29 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { promisify } from "node:util";
|
|
3
|
-
const execFileAsync = promisify(execFile);
|
|
4
|
-
const EXEC_MAX_BUFFER = 4 * 1024 * 1024;
|
|
5
|
-
const FEISHU_DOC_URL_PATTERN = /https?:\/\/[^\s"'`<>]+\/(?:docx|wiki)\/[^\s"'`<>]+/gu;
|
|
6
|
-
const FEISHU_DOC_TOKEN_PATTERN = /\/docx\/([A-Za-z0-9]+)/u;
|
|
7
|
-
const FEISHU_WIKI_NODE_PATTERN = /\/wiki\/([A-Za-z0-9]+)/u;
|
|
1
|
+
import { FeishuDocumentService as DefaultFeishuDocumentService } from "../../integrations/feishu/feishu-doc-service.js";
|
|
8
2
|
const FEISHU_ANALYSIS_PARENT_REF_KEY = "feishu.analysis_parent_node";
|
|
9
3
|
const FEISHU_ANALYSIS_PARENT_TITLE = "Optimus";
|
|
10
4
|
const FEISHU_ANALYSIS_PARENT_SPACE = "my_library";
|
|
11
|
-
const FEISHU_COMMAND_TIMEOUT_MS = 30_000;
|
|
12
5
|
const FEISHU_PUBLISH_TIMEOUT_MS = 30_000;
|
|
13
6
|
export class FeishuAnalysisDocService {
|
|
14
|
-
|
|
7
|
+
documentService;
|
|
15
8
|
refStore;
|
|
16
9
|
constructor(options = {}) {
|
|
17
10
|
this.refStore = options.refStore;
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
...execOptions
|
|
22
|
-
});
|
|
23
|
-
return {
|
|
24
|
-
stdout: String(result.stdout),
|
|
25
|
-
stderr: String(result.stderr)
|
|
26
|
-
};
|
|
11
|
+
this.documentService = options.documentService ?? new DefaultFeishuDocumentService({
|
|
12
|
+
...(options.config ? { config: options.config } : {}),
|
|
13
|
+
...(options.authServiceOptions ? { authServiceOptions: options.authServiceOptions } : {})
|
|
27
14
|
});
|
|
28
15
|
}
|
|
29
16
|
async publishIfNeeded(bundle) {
|
|
@@ -37,47 +24,28 @@ export class FeishuAnalysisDocService {
|
|
|
37
24
|
if (!resultMdPath) {
|
|
38
25
|
return { bundle, status: "skipped", reason: "result_md_missing" };
|
|
39
26
|
}
|
|
27
|
+
if (!this.documentService.isConfigured()) {
|
|
28
|
+
return { bundle, status: "skipped", reason: "feishu_auth_not_configured" };
|
|
29
|
+
}
|
|
40
30
|
const title = this.buildTitle(bundle);
|
|
41
31
|
try {
|
|
42
32
|
return await this.withTimeout(async () => {
|
|
43
33
|
const parentNode = await this.ensureAnalysisParentNode();
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const token = this.extractDocumentToken(response.stdout, response.stderr);
|
|
50
|
-
const url = this.extractDocumentUrl(response.stdout, response.stderr);
|
|
51
|
-
if (!token && !url) {
|
|
52
|
-
return {
|
|
53
|
-
bundle,
|
|
54
|
-
status: "failed",
|
|
55
|
-
reason: "feishu_doc_created_but_identifier_missing"
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
const documentToken = token ?? this.extractTokenFromUrl(url);
|
|
59
|
-
const updateTarget = url?.trim() || documentToken;
|
|
60
|
-
if (updateTarget) {
|
|
61
|
-
await this.runBestEffortPostCreateCommand("feishu", ["docx", "update", updateTarget, "--title", title]);
|
|
62
|
-
}
|
|
63
|
-
const finalUrl = url ?? (documentToken ? `https://mi.feishu.cn/docx/${documentToken}` : undefined);
|
|
64
|
-
if (!finalUrl) {
|
|
65
|
-
return {
|
|
66
|
-
bundle,
|
|
67
|
-
status: "failed",
|
|
68
|
-
reason: "feishu_doc_created_but_url_missing"
|
|
69
|
-
};
|
|
70
|
-
}
|
|
34
|
+
const created = await this.documentService.createMarkdownDocument({
|
|
35
|
+
title,
|
|
36
|
+
markdownPath: resultMdPath,
|
|
37
|
+
...(parentNode?.nodeToken ? { parentNodeToken: parentNode.nodeToken } : {})
|
|
38
|
+
});
|
|
71
39
|
return {
|
|
72
40
|
bundle: {
|
|
73
41
|
...bundle,
|
|
74
42
|
summary: {
|
|
75
43
|
...bundle.summary,
|
|
76
|
-
analysisDocUrl:
|
|
44
|
+
analysisDocUrl: created.url
|
|
77
45
|
}
|
|
78
46
|
},
|
|
79
47
|
status: "uploaded",
|
|
80
|
-
url:
|
|
48
|
+
url: created.url
|
|
81
49
|
};
|
|
82
50
|
}, FEISHU_PUBLISH_TIMEOUT_MS, "analysis_doc_publish_timeout");
|
|
83
51
|
}
|
|
@@ -121,23 +89,13 @@ export class FeishuAnalysisDocService {
|
|
|
121
89
|
}
|
|
122
90
|
async validateAnalysisParentNode(ref) {
|
|
123
91
|
try {
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
|
|
127
|
-
return undefined;
|
|
128
|
-
}
|
|
129
|
-
const candidate = payload;
|
|
130
|
-
const nodeToken = this.readString(candidate, ["node_token", "nodeToken"]);
|
|
131
|
-
const title = this.readString(candidate, ["title"]);
|
|
132
|
-
if (!nodeToken || title !== FEISHU_ANALYSIS_PARENT_TITLE) {
|
|
92
|
+
const node = await this.documentService.getWikiNode(ref.nodeToken);
|
|
93
|
+
if (!node || node.title !== FEISHU_ANALYSIS_PARENT_TITLE) {
|
|
133
94
|
return undefined;
|
|
134
95
|
}
|
|
135
|
-
const spaceId = this.readString(candidate, ["space_id", "spaceId"]);
|
|
136
96
|
return {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
...(spaceId ? { spaceId } : {}),
|
|
140
|
-
...(ref.url ? { url: ref.url } : {})
|
|
97
|
+
...node,
|
|
98
|
+
...(ref.url && !node.url ? { url: ref.url } : {})
|
|
141
99
|
};
|
|
142
100
|
}
|
|
143
101
|
catch {
|
|
@@ -146,30 +104,8 @@ export class FeishuAnalysisDocService {
|
|
|
146
104
|
}
|
|
147
105
|
async findExistingAnalysisParentNode() {
|
|
148
106
|
try {
|
|
149
|
-
const
|
|
150
|
-
const
|
|
151
|
-
if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
|
|
152
|
-
return undefined;
|
|
153
|
-
}
|
|
154
|
-
const nodes = payload.nodes;
|
|
155
|
-
if (!Array.isArray(nodes)) {
|
|
156
|
-
return undefined;
|
|
157
|
-
}
|
|
158
|
-
const matches = nodes.flatMap((entry) => {
|
|
159
|
-
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
160
|
-
return [];
|
|
161
|
-
}
|
|
162
|
-
const candidate = entry;
|
|
163
|
-
const nodeToken = this.readString(candidate, ["node_token", "nodeToken"]);
|
|
164
|
-
const title = this.readString(candidate, ["title"]);
|
|
165
|
-
if (!nodeToken || title !== FEISHU_ANALYSIS_PARENT_TITLE) {
|
|
166
|
-
return [];
|
|
167
|
-
}
|
|
168
|
-
return [{
|
|
169
|
-
nodeToken,
|
|
170
|
-
title
|
|
171
|
-
}];
|
|
172
|
-
});
|
|
107
|
+
const nodes = await this.documentService.listWikiNodes(FEISHU_ANALYSIS_PARENT_SPACE);
|
|
108
|
+
const matches = nodes.filter((node) => node.title === FEISHU_ANALYSIS_PARENT_TITLE && node.nodeToken);
|
|
173
109
|
return matches.length === 1 ? matches[0] : undefined;
|
|
174
110
|
}
|
|
175
111
|
catch {
|
|
@@ -177,50 +113,20 @@ export class FeishuAnalysisDocService {
|
|
|
177
113
|
}
|
|
178
114
|
}
|
|
179
115
|
async createAnalysisParentNode() {
|
|
180
|
-
const response = await this.execFeishuCommand("feishu", ["docx", "create", FEISHU_ANALYSIS_PARENT_TITLE], { encoding: "utf8", maxBuffer: EXEC_MAX_BUFFER });
|
|
181
|
-
const url = this.extractDocumentUrl(response.stdout, response.stderr);
|
|
182
|
-
const payload = this.parseJsonPayload(response.stdout) ?? this.parseJsonPayload(response.stderr);
|
|
183
|
-
const nodeToken = this.extractWikiNodeToken(payload) ?? this.extractWikiNodeTokenFromUrl(url);
|
|
184
|
-
if (!nodeToken) {
|
|
185
|
-
return undefined;
|
|
186
|
-
}
|
|
187
|
-
const extractedSpaceId = this.extractSpaceId(payload);
|
|
188
|
-
return {
|
|
189
|
-
nodeToken,
|
|
190
|
-
title: FEISHU_ANALYSIS_PARENT_TITLE,
|
|
191
|
-
...(extractedSpaceId ? { spaceId: extractedSpaceId } : {}),
|
|
192
|
-
...(url ? { url } : {})
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
async runBestEffortPostCreateCommand(file, args) {
|
|
196
|
-
try {
|
|
197
|
-
await this.execFeishuCommand(file, args, { encoding: "utf8", maxBuffer: EXEC_MAX_BUFFER });
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
// Post-create title correction should not hide a successfully created analysis doc url.
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
async execFeishuCommand(file, args, options) {
|
|
204
|
-
const abortController = new AbortController();
|
|
205
|
-
const timeout = setTimeout(() => {
|
|
206
|
-
abortController.abort(new Error(`feishu_command_timeout: ${file} ${args.join(" ")}`));
|
|
207
|
-
}, FEISHU_COMMAND_TIMEOUT_MS);
|
|
208
116
|
try {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
catch (error) {
|
|
215
|
-
if (abortController.signal.aborted) {
|
|
216
|
-
throw abortController.signal.reason instanceof Error
|
|
217
|
-
? abortController.signal.reason
|
|
218
|
-
: new Error(String(abortController.signal.reason));
|
|
117
|
+
const created = await this.documentService.createEmptyDocument(FEISHU_ANALYSIS_PARENT_TITLE);
|
|
118
|
+
if (!created.nodeToken) {
|
|
119
|
+
return undefined;
|
|
219
120
|
}
|
|
220
|
-
|
|
121
|
+
return {
|
|
122
|
+
nodeToken: created.nodeToken,
|
|
123
|
+
title: FEISHU_ANALYSIS_PARENT_TITLE,
|
|
124
|
+
...(created.spaceId ? { spaceId: created.spaceId } : {}),
|
|
125
|
+
url: created.url
|
|
126
|
+
};
|
|
221
127
|
}
|
|
222
|
-
|
|
223
|
-
|
|
128
|
+
catch {
|
|
129
|
+
return undefined;
|
|
224
130
|
}
|
|
225
131
|
}
|
|
226
132
|
async withTimeout(operation, timeoutMs, reason) {
|
|
@@ -239,216 +145,5 @@ export class FeishuAnalysisDocService {
|
|
|
239
145
|
});
|
|
240
146
|
});
|
|
241
147
|
}
|
|
242
|
-
extractDocumentUrl(...outputs) {
|
|
243
|
-
for (const output of outputs) {
|
|
244
|
-
const directUrl = this.extractUrlFromText(output);
|
|
245
|
-
if (directUrl) {
|
|
246
|
-
return directUrl;
|
|
247
|
-
}
|
|
248
|
-
const payload = this.parseJsonPayload(output);
|
|
249
|
-
if (!payload) {
|
|
250
|
-
continue;
|
|
251
|
-
}
|
|
252
|
-
const nestedUrl = this.findStringValue(payload, (value) => {
|
|
253
|
-
FEISHU_DOC_URL_PATTERN.lastIndex = 0;
|
|
254
|
-
return FEISHU_DOC_URL_PATTERN.test(value);
|
|
255
|
-
});
|
|
256
|
-
if (nestedUrl) {
|
|
257
|
-
FEISHU_DOC_URL_PATTERN.lastIndex = 0;
|
|
258
|
-
const [firstMatch] = nestedUrl.match(FEISHU_DOC_URL_PATTERN) ?? [];
|
|
259
|
-
if (firstMatch) {
|
|
260
|
-
FEISHU_DOC_URL_PATTERN.lastIndex = 0;
|
|
261
|
-
return firstMatch;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
return undefined;
|
|
266
|
-
}
|
|
267
|
-
extractDocumentToken(...outputs) {
|
|
268
|
-
for (const output of outputs) {
|
|
269
|
-
const directUrl = this.extractUrlFromText(output);
|
|
270
|
-
const tokenFromUrl = this.extractTokenFromUrl(directUrl);
|
|
271
|
-
if (tokenFromUrl) {
|
|
272
|
-
return tokenFromUrl;
|
|
273
|
-
}
|
|
274
|
-
const payload = this.parseJsonPayload(output);
|
|
275
|
-
if (!payload) {
|
|
276
|
-
continue;
|
|
277
|
-
}
|
|
278
|
-
const token = this.findDocumentTokenInValue(payload);
|
|
279
|
-
if (token) {
|
|
280
|
-
return token;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
return undefined;
|
|
284
|
-
}
|
|
285
|
-
extractUrlFromText(text) {
|
|
286
|
-
if (!text) {
|
|
287
|
-
return undefined;
|
|
288
|
-
}
|
|
289
|
-
FEISHU_DOC_URL_PATTERN.lastIndex = 0;
|
|
290
|
-
const [firstMatch] = text.match(FEISHU_DOC_URL_PATTERN) ?? [];
|
|
291
|
-
FEISHU_DOC_URL_PATTERN.lastIndex = 0;
|
|
292
|
-
return firstMatch;
|
|
293
|
-
}
|
|
294
|
-
extractTokenFromUrl(url) {
|
|
295
|
-
const normalized = url?.trim();
|
|
296
|
-
if (!normalized) {
|
|
297
|
-
return undefined;
|
|
298
|
-
}
|
|
299
|
-
const matched = normalized.match(FEISHU_DOC_TOKEN_PATTERN);
|
|
300
|
-
return matched?.[1];
|
|
301
|
-
}
|
|
302
|
-
extractWikiNodeTokenFromUrl(url) {
|
|
303
|
-
const normalized = url?.trim();
|
|
304
|
-
if (!normalized) {
|
|
305
|
-
return undefined;
|
|
306
|
-
}
|
|
307
|
-
const matched = normalized.match(FEISHU_WIKI_NODE_PATTERN);
|
|
308
|
-
return matched?.[1];
|
|
309
|
-
}
|
|
310
|
-
parseJsonPayload(text) {
|
|
311
|
-
const normalized = text?.trim();
|
|
312
|
-
if (!normalized) {
|
|
313
|
-
return undefined;
|
|
314
|
-
}
|
|
315
|
-
try {
|
|
316
|
-
return JSON.parse(normalized);
|
|
317
|
-
}
|
|
318
|
-
catch {
|
|
319
|
-
const candidates = normalized
|
|
320
|
-
.split(/\r?\n/u)
|
|
321
|
-
.map((line) => line.trim())
|
|
322
|
-
.filter((line) => line.startsWith("{") || line.startsWith("["));
|
|
323
|
-
for (let index = candidates.length - 1; index >= 0; index -= 1) {
|
|
324
|
-
const candidate = candidates[index];
|
|
325
|
-
if (!candidate) {
|
|
326
|
-
continue;
|
|
327
|
-
}
|
|
328
|
-
try {
|
|
329
|
-
return JSON.parse(candidate);
|
|
330
|
-
}
|
|
331
|
-
catch {
|
|
332
|
-
continue;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return undefined;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
findStringValue(value, predicate) {
|
|
339
|
-
if (typeof value === "string") {
|
|
340
|
-
return predicate(value) ? value : undefined;
|
|
341
|
-
}
|
|
342
|
-
if (Array.isArray(value)) {
|
|
343
|
-
for (const entry of value) {
|
|
344
|
-
const matched = this.findStringValue(entry, predicate);
|
|
345
|
-
if (matched) {
|
|
346
|
-
return matched;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
return undefined;
|
|
350
|
-
}
|
|
351
|
-
if (!value || typeof value !== "object") {
|
|
352
|
-
return undefined;
|
|
353
|
-
}
|
|
354
|
-
for (const entry of Object.values(value)) {
|
|
355
|
-
const matched = this.findStringValue(entry, predicate);
|
|
356
|
-
if (matched) {
|
|
357
|
-
return matched;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
return undefined;
|
|
361
|
-
}
|
|
362
|
-
findDocumentTokenInValue(value) {
|
|
363
|
-
if (typeof value === "string") {
|
|
364
|
-
return this.extractTokenFromUrl(value);
|
|
365
|
-
}
|
|
366
|
-
if (Array.isArray(value)) {
|
|
367
|
-
for (const entry of value) {
|
|
368
|
-
const matched = this.findDocumentTokenInValue(entry);
|
|
369
|
-
if (matched) {
|
|
370
|
-
return matched;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
return undefined;
|
|
374
|
-
}
|
|
375
|
-
if (!value || typeof value !== "object") {
|
|
376
|
-
return undefined;
|
|
377
|
-
}
|
|
378
|
-
const candidate = value;
|
|
379
|
-
const type = this.readString(candidate, ["type", "obj_type", "objType"]);
|
|
380
|
-
const token = this.readString(candidate, ["token", "doc_token", "docToken", "file_token", "fileToken"]);
|
|
381
|
-
if (token && (!type || type === "docx")) {
|
|
382
|
-
return token;
|
|
383
|
-
}
|
|
384
|
-
for (const entry of Object.values(candidate)) {
|
|
385
|
-
const matched = this.findDocumentTokenInValue(entry);
|
|
386
|
-
if (matched) {
|
|
387
|
-
return matched;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
return undefined;
|
|
391
|
-
}
|
|
392
|
-
extractWikiNodeToken(value) {
|
|
393
|
-
if (Array.isArray(value)) {
|
|
394
|
-
for (const entry of value) {
|
|
395
|
-
const matched = this.extractWikiNodeToken(entry);
|
|
396
|
-
if (matched) {
|
|
397
|
-
return matched;
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
return undefined;
|
|
401
|
-
}
|
|
402
|
-
if (!value || typeof value !== "object") {
|
|
403
|
-
return undefined;
|
|
404
|
-
}
|
|
405
|
-
const candidate = value;
|
|
406
|
-
const nodeToken = this.readString(candidate, ["node_token", "nodeToken"]);
|
|
407
|
-
if (nodeToken) {
|
|
408
|
-
return nodeToken;
|
|
409
|
-
}
|
|
410
|
-
for (const entry of Object.values(candidate)) {
|
|
411
|
-
const matched = this.extractWikiNodeToken(entry);
|
|
412
|
-
if (matched) {
|
|
413
|
-
return matched;
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
return undefined;
|
|
417
|
-
}
|
|
418
|
-
extractSpaceId(value) {
|
|
419
|
-
if (Array.isArray(value)) {
|
|
420
|
-
for (const entry of value) {
|
|
421
|
-
const matched = this.extractSpaceId(entry);
|
|
422
|
-
if (matched) {
|
|
423
|
-
return matched;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
return undefined;
|
|
427
|
-
}
|
|
428
|
-
if (!value || typeof value !== "object") {
|
|
429
|
-
return undefined;
|
|
430
|
-
}
|
|
431
|
-
const candidate = value;
|
|
432
|
-
const direct = this.readString(candidate, ["space_id", "spaceId"]);
|
|
433
|
-
if (direct) {
|
|
434
|
-
return direct;
|
|
435
|
-
}
|
|
436
|
-
for (const entry of Object.values(candidate)) {
|
|
437
|
-
const matched = this.extractSpaceId(entry);
|
|
438
|
-
if (matched) {
|
|
439
|
-
return matched;
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
return undefined;
|
|
443
|
-
}
|
|
444
|
-
readString(candidate, keys) {
|
|
445
|
-
for (const key of keys) {
|
|
446
|
-
const value = candidate[key];
|
|
447
|
-
if (typeof value === "string" && value.trim()) {
|
|
448
|
-
return value.trim();
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
return undefined;
|
|
452
|
-
}
|
|
453
148
|
}
|
|
454
149
|
//# sourceMappingURL=feishu-analysis-doc-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu-analysis-doc-service.js","sourceRoot":"","sources":["../../../src/task-environment/delivery/feishu-analysis-doc-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feishu-analysis-doc-service.js","sourceRoot":"","sources":["../../../src/task-environment/delivery/feishu-analysis-doc-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,10 @@ export declare class TaskPublicationService {
|
|
|
35
35
|
private commentJiraAfterReviewSubmit;
|
|
36
36
|
private resolveJiraCommentIssueKey;
|
|
37
37
|
private buildJiraReviewCommentBody;
|
|
38
|
+
private extractJiraResultFields;
|
|
39
|
+
private assignResultField;
|
|
40
|
+
private optionalJiraCommentLine;
|
|
41
|
+
private truncateForJiraComment;
|
|
38
42
|
private collectAttemptReviewUrls;
|
|
39
43
|
private readResultMarkdownForJiraComment;
|
|
40
44
|
private buildSentryJiraDescription;
|
|
@@ -279,19 +279,69 @@ export class TaskPublicationService {
|
|
|
279
279
|
async buildJiraReviewCommentBody(bundle, attempt) {
|
|
280
280
|
const reviewLinks = this.collectAttemptReviewUrls(attempt);
|
|
281
281
|
const resultContent = await this.readResultMarkdownForJiraComment(bundle.artifacts.resultMd);
|
|
282
|
+
const resultFields = this.extractJiraResultFields(resultContent);
|
|
282
283
|
const lines = [
|
|
283
|
-
"Optimus
|
|
284
|
+
"Optimus review submitted.",
|
|
284
285
|
"",
|
|
285
|
-
"Review
|
|
286
|
+
"Review",
|
|
286
287
|
...(reviewLinks.length > 0
|
|
287
|
-
? reviewLinks.map((url) => `- ${url}`)
|
|
288
|
-
: ["- Review link was not returned by the review system."]),
|
|
288
|
+
? reviewLinks.map((url, index) => `- ${reviewLinks.length === 1 ? "URL" : `URL ${index + 1}`}: ${url}`)
|
|
289
|
+
: ["- URL: Review link was not returned by the review system."]),
|
|
289
290
|
"",
|
|
290
|
-
"Result
|
|
291
|
-
|
|
291
|
+
"Result",
|
|
292
|
+
`- Outcome: ${this.compact(bundle.summary.decision)}`,
|
|
293
|
+
...this.optionalJiraCommentLine("Conclusion", bundle.summary.rootCauseConclusion ?? resultFields.conclusion),
|
|
294
|
+
...this.optionalJiraCommentLine("Evidence", bundle.summary.keyEvidence ?? resultFields.evidence, 600),
|
|
295
|
+
...this.optionalJiraCommentLine("Validation", bundle.summary.validation ?? resultFields.validation),
|
|
296
|
+
...this.optionalJiraCommentLine("Risk", bundle.summary.risk ?? resultFields.risk, 400),
|
|
297
|
+
...this.optionalJiraCommentLine("Next", bundle.summary.recommendedAction ?? bundle.summary.nextAction ?? resultFields.nextAction, 400),
|
|
298
|
+
...(!resultContent ? ["- Note: result.md was not available when the review comment was generated."] : [])
|
|
292
299
|
];
|
|
293
300
|
return lines.join("\n").trim();
|
|
294
301
|
}
|
|
302
|
+
extractJiraResultFields(resultContent) {
|
|
303
|
+
const fields = {};
|
|
304
|
+
if (!resultContent) {
|
|
305
|
+
return fields;
|
|
306
|
+
}
|
|
307
|
+
for (const rawLine of resultContent.split(/\r?\n/u)) {
|
|
308
|
+
const line = rawLine.trim();
|
|
309
|
+
if (!line) {
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
this.assignResultField(fields, "conclusion", line, ["Strongest Current Conclusion", "Analysis Summary"]);
|
|
313
|
+
this.assignResultField(fields, "evidence", line, ["Key Evidence"]);
|
|
314
|
+
this.assignResultField(fields, "validation", line, ["Validation Summary"]);
|
|
315
|
+
this.assignResultField(fields, "risk", line, ["Residual Risk"]);
|
|
316
|
+
this.assignResultField(fields, "nextAction", line, ["Recommended Action"]);
|
|
317
|
+
}
|
|
318
|
+
return fields;
|
|
319
|
+
}
|
|
320
|
+
assignResultField(fields, key, line, labels) {
|
|
321
|
+
if (fields[key]) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
for (const label of labels) {
|
|
325
|
+
const prefix = `${label}:`;
|
|
326
|
+
if (line.startsWith(prefix)) {
|
|
327
|
+
fields[key] = line.slice(prefix.length).trim();
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
optionalJiraCommentLine(label, value, maxLength = 300) {
|
|
333
|
+
const normalized = value?.trim();
|
|
334
|
+
if (!normalized) {
|
|
335
|
+
return [];
|
|
336
|
+
}
|
|
337
|
+
return [`- ${label}: ${this.truncateForJiraComment(this.compact(normalized), maxLength)}`];
|
|
338
|
+
}
|
|
339
|
+
truncateForJiraComment(value, maxLength) {
|
|
340
|
+
if (value.length <= maxLength) {
|
|
341
|
+
return value;
|
|
342
|
+
}
|
|
343
|
+
return `${value.slice(0, Math.max(0, maxLength - 3)).trimEnd()}...`;
|
|
344
|
+
}
|
|
295
345
|
collectAttemptReviewUrls(attempt) {
|
|
296
346
|
return [...new Set([
|
|
297
347
|
attempt.reviewUrl?.trim(),
|