@sireai/optimus 0.1.13 → 0.1.15

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.
Files changed (77) hide show
  1. package/README.md +1 -2
  2. package/dist/cli/feedback-delivery.d.ts +56 -0
  3. package/dist/cli/feedback-delivery.js +297 -0
  4. package/dist/cli/feedback-delivery.js.map +1 -0
  5. package/dist/cli/feedback.d.ts +25 -0
  6. package/dist/cli/feedback.js +143 -0
  7. package/dist/cli/feedback.js.map +1 -0
  8. package/dist/cli/optimus.js +385 -196
  9. package/dist/cli/optimus.js.map +1 -1
  10. package/dist/config/load-config.js +5 -4
  11. package/dist/config/load-config.js.map +1 -1
  12. package/dist/config/optimus-paths.d.ts +1 -0
  13. package/dist/config/optimus-paths.js +3 -0
  14. package/dist/config/optimus-paths.js.map +1 -1
  15. package/dist/integrations/feishu/feishu-auth-config.d.ts +5 -1
  16. package/dist/integrations/feishu/feishu-auth-config.js +9 -6
  17. package/dist/integrations/feishu/feishu-auth-config.js.map +1 -1
  18. package/dist/integrations/feishu/feishu-client.d.ts +2 -6
  19. package/dist/integrations/feishu/feishu-client.js +16 -41
  20. package/dist/integrations/feishu/feishu-client.js.map +1 -1
  21. package/dist/integrations/feishu/feishu-doc-service.d.ts +8 -3
  22. package/dist/integrations/feishu/feishu-doc-service.js +16 -2
  23. package/dist/integrations/feishu/feishu-doc-service.js.map +1 -1
  24. package/dist/integrations/feishu/feishu-user-service.d.ts +1 -2
  25. package/dist/integrations/feishu/feishu-user-service.js +1 -2
  26. package/dist/integrations/feishu/feishu-user-service.js.map +1 -1
  27. package/dist/integrations/jira/jira-cli.js +21 -2
  28. package/dist/integrations/jira/jira-cli.js.map +1 -1
  29. package/dist/integrations/jira/jira-client.d.ts +2 -1
  30. package/dist/integrations/jira/jira-client.js +19 -2
  31. package/dist/integrations/jira/jira-client.js.map +1 -1
  32. package/dist/integrations/jira/jira-submit.js +24 -24
  33. package/dist/integrations/jira/jira-submit.js.map +1 -1
  34. package/dist/integrations/sentry/sentry-cli.js +21 -1
  35. package/dist/integrations/sentry/sentry-cli.js.map +1 -1
  36. package/dist/problem-solving-core/codex/codex-preflight.js +8 -0
  37. package/dist/problem-solving-core/codex/codex-preflight.js.map +1 -1
  38. package/dist/problem-solving-core/codex/codex-provider-profile.js +3 -0
  39. package/dist/problem-solving-core/codex/codex-provider-profile.js.map +1 -1
  40. package/dist/task-environment/delivery/feishu-analysis-doc-service.d.ts +7 -3
  41. package/dist/task-environment/delivery/feishu-analysis-doc-service.js +62 -3
  42. package/dist/task-environment/delivery/feishu-analysis-doc-service.js.map +1 -1
  43. package/dist/task-environment/delivery/feishu-card-renderer.d.ts +1 -0
  44. package/dist/task-environment/delivery/feishu-card-renderer.js +17 -6
  45. package/dist/task-environment/delivery/feishu-card-renderer.js.map +1 -1
  46. package/dist/task-environment/delivery/feishu-notifier.d.ts +13 -0
  47. package/dist/task-environment/delivery/feishu-notifier.js +206 -22
  48. package/dist/task-environment/delivery/feishu-notifier.js.map +1 -1
  49. package/dist/task-environment/delivery/sentry-feishu-card-renderer.d.ts +1 -0
  50. package/dist/task-environment/delivery/sentry-feishu-card-renderer.js +16 -5
  51. package/dist/task-environment/delivery/sentry-feishu-card-renderer.js.map +1 -1
  52. package/dist/task-environment/observability/runtime-panel.d.ts +1 -1
  53. package/dist/task-environment/observability/runtime-panel.js +4 -1
  54. package/dist/task-environment/observability/runtime-panel.js.map +1 -1
  55. package/dist/task-environment/orchestration/task-orchestrator.d.ts +0 -1
  56. package/dist/task-environment/orchestration/task-orchestrator.js +3 -23
  57. package/dist/task-environment/orchestration/task-orchestrator.js.map +1 -1
  58. package/dist/task-environment/runtime/optimus-runtime.d.ts +1 -0
  59. package/dist/task-environment/runtime/optimus-runtime.js +2 -1
  60. package/dist/task-environment/runtime/optimus-runtime.js.map +1 -1
  61. package/dist/types.d.ts +3 -2
  62. package/package.json +3 -5
  63. package/dist/integrations/feishu/feishu-auth-service.d.ts +0 -71
  64. package/dist/integrations/feishu/feishu-auth-service.js +0 -399
  65. package/dist/integrations/feishu/feishu-auth-service.js.map +0 -1
  66. package/dist/integrations/feishu/feishu-auth-store.d.ts +0 -29
  67. package/dist/integrations/feishu/feishu-auth-store.js +0 -113
  68. package/dist/integrations/feishu/feishu-auth-store.js.map +0 -1
  69. package/dist/integrations/jira/jira-cli-config.d.ts +0 -15
  70. package/dist/integrations/jira/jira-cli-config.js +0 -100
  71. package/dist/integrations/jira/jira-cli-config.js.map +0 -1
  72. package/dist/problem-solving-core/codex/codex-global-config.d.ts +0 -17
  73. package/dist/problem-solving-core/codex/codex-global-config.js +0 -100
  74. package/dist/problem-solving-core/codex/codex-global-config.js.map +0 -1
  75. package/dist/task-environment/orchestration/triage-agent.d.ts +0 -54
  76. package/dist/task-environment/orchestration/triage-agent.js +0 -636
  77. package/dist/task-environment/orchestration/triage-agent.js.map +0 -1
@@ -1,16 +1,20 @@
1
1
  import { FeishuDocumentService as DefaultFeishuDocumentService } from "../../integrations/feishu/feishu-doc-service.js";
2
+ import { FeishuUserService } from "../../integrations/feishu/feishu-user-service.js";
2
3
  const FEISHU_ANALYSIS_PARENT_REF_KEY = "feishu.analysis_parent_node";
3
4
  const FEISHU_ANALYSIS_PARENT_TITLE = "Optimus";
4
5
  const FEISHU_ANALYSIS_PARENT_SPACE = "my_library";
5
6
  const FEISHU_PUBLISH_TIMEOUT_MS = 30_000;
6
7
  export class FeishuAnalysisDocService {
7
8
  documentService;
9
+ userService;
8
10
  refStore;
9
11
  constructor(options = {}) {
10
12
  this.refStore = options.refStore;
11
13
  this.documentService = options.documentService ?? new DefaultFeishuDocumentService({
12
- ...(options.config ? { config: options.config } : {}),
13
- ...(options.authServiceOptions ? { authServiceOptions: options.authServiceOptions } : {})
14
+ ...(options.config ? { config: options.config } : {})
15
+ });
16
+ this.userService = options.userService ?? new FeishuUserService({
17
+ ...(options.config ? { config: options.config } : {})
14
18
  });
15
19
  }
16
20
  async publishIfNeeded(bundle) {
@@ -37,6 +41,7 @@ export class FeishuAnalysisDocService {
37
41
  ...(parentNode?.spaceId ? { parentSpaceId: parentNode.spaceId } : {}),
38
42
  ...(parentNode?.nodeToken ? { parentNodeToken: parentNode.nodeToken } : {})
39
43
  });
44
+ const permissionGrantError = await this.grantAccessToAssigneeBestEffort(created.token, bundle.summary.qAssignee);
40
45
  return {
41
46
  bundle: {
42
47
  ...bundle,
@@ -46,7 +51,8 @@ export class FeishuAnalysisDocService {
46
51
  }
47
52
  },
48
53
  status: "uploaded",
49
- url: created.url
54
+ url: created.url,
55
+ ...(permissionGrantError ? { reason: permissionGrantError } : {})
50
56
  };
51
57
  }, FEISHU_PUBLISH_TIMEOUT_MS, "analysis_doc_publish_timeout");
52
58
  }
@@ -64,6 +70,59 @@ export class FeishuAnalysisDocService {
64
70
  const compactTitle = normalizedTitle.length > 80 ? `${normalizedTitle.slice(0, 77)}...` : normalizedTitle;
65
71
  return `Optimus 分析|${compactTitle}`;
66
72
  }
73
+ async grantAccessToAssigneeBestEffort(documentToken, qAssignee) {
74
+ if (!qAssignee || !this.documentService.grantDocumentMemberPermission) {
75
+ return undefined;
76
+ }
77
+ const openId = await this.resolveAssigneeOpenId(qAssignee);
78
+ if (!openId) {
79
+ return undefined;
80
+ }
81
+ try {
82
+ await this.documentService.grantDocumentMemberPermission({
83
+ documentToken,
84
+ memberId: openId,
85
+ memberType: "openid",
86
+ perm: "view"
87
+ });
88
+ return undefined;
89
+ }
90
+ catch (error) {
91
+ return `analysis_doc_permission_grant_failed: ${error instanceof Error ? error.message : String(error)}`;
92
+ }
93
+ }
94
+ async resolveAssigneeOpenId(qAssignee) {
95
+ const direct = qAssignee.openId?.trim();
96
+ if (direct) {
97
+ return direct;
98
+ }
99
+ if (!this.userService.isConfigured()) {
100
+ return undefined;
101
+ }
102
+ const identifier = qAssignee.email?.trim() || this.normalizeCorporateEmail(qAssignee.login);
103
+ if (!identifier) {
104
+ return undefined;
105
+ }
106
+ try {
107
+ return await this.userService.resolveOpenId(identifier);
108
+ }
109
+ catch {
110
+ return undefined;
111
+ }
112
+ }
113
+ normalizeCorporateEmail(value) {
114
+ const normalized = value?.trim();
115
+ if (!normalized) {
116
+ return undefined;
117
+ }
118
+ if (normalized.includes("@")) {
119
+ return normalized.toLowerCase();
120
+ }
121
+ if (/^[a-zA-Z0-9._-]+$/u.test(normalized)) {
122
+ return `${normalized.toLowerCase()}@xiaomi.com`;
123
+ }
124
+ return undefined;
125
+ }
67
126
  async ensureAnalysisParentNode() {
68
127
  if (!this.refStore) {
69
128
  return undefined;
@@ -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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"}
@@ -37,4 +37,5 @@ export declare class FeishuCardRenderer {
37
37
  private escapeLinkLabel;
38
38
  private escapeAttribute;
39
39
  private escapeMarkdown;
40
+ private isCompactFieldValue;
40
41
  }
@@ -126,25 +126,27 @@ export class FeishuCardRenderer {
126
126
  const fields = [];
127
127
  const issue = this.renderIssueValue(bundle);
128
128
  if (issue) {
129
- fields.push(this.buildField("问题", issue, false));
129
+ fields.push(this.buildField("问题", issue, { escapeValue: false, preferShort: true }));
130
130
  }
131
131
  const qAssignee = this.renderQAssigneeValue(bundle);
132
132
  if (qAssignee) {
133
- fields.push(this.buildField("负责人", qAssignee, false));
133
+ fields.push(this.buildField("负责人", qAssignee, { escapeValue: false, preferShort: true }));
134
134
  }
135
135
  const sourceContext = this.renderSourceContextValue(bundle);
136
136
  if (sourceContext) {
137
- fields.push(this.buildField("来源", sourceContext, false));
137
+ fields.push(this.buildField("来源", sourceContext, { escapeValue: false, preferShort: true }));
138
138
  }
139
139
  const repositoryContext = this.renderRepositoryContext(bundle);
140
140
  if (repositoryContext) {
141
- fields.push(this.buildField("仓库", repositoryContext, false));
141
+ fields.push(this.buildField("仓库", repositoryContext, { escapeValue: false, preferShort: true }));
142
142
  }
143
143
  return fields;
144
144
  }
145
- buildField(label, value, escapeValue = true) {
145
+ buildField(label, value, options = {}) {
146
+ const escapeValue = options.escapeValue ?? true;
147
+ const preferShort = options.preferShort ?? false;
146
148
  return {
147
- is_short: false,
149
+ is_short: preferShort && this.isCompactFieldValue(value),
148
150
  text: {
149
151
  tag: "lark_md",
150
152
  content: `**${label}**:${escapeValue ? this.escapeMarkdown(value) : value}`
@@ -470,5 +472,14 @@ export class FeishuCardRenderer {
470
472
  .replace(/([*_`~])/g, "\\$1")
471
473
  .trim();
472
474
  }
475
+ isCompactFieldValue(value) {
476
+ const visibleText = value
477
+ .replace(/\[([^\]]+)\]\([^)]+\)/g, "$1")
478
+ .replace(/<at\b[^>]*><\/at>/g, "@")
479
+ .replace(/[*_`~]/g, "")
480
+ .replace(/\s+/g, " ")
481
+ .trim();
482
+ return visibleText.length > 0 && visibleText.length <= 36 && !visibleText.includes("\n");
483
+ }
473
484
  }
474
485
  //# sourceMappingURL=feishu-card-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feishu-card-renderer.js","sourceRoot":"","sources":["../../../src/task-environment/delivery/feishu-card-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feishu-card-renderer.js","sourceRoot":"","sources":["../../../src/task-environment/delivery/feishu-card-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { TaskDeliveryAttempt, TaskDeliveryBundle, TaskPublicationAttempt } from "../../types.js";
2
2
  import type { OptimusConfig } from "../../types.js";
3
+ import { FeishuClient } from "../../integrations/feishu/feishu-client.js";
4
+ import { FeishuUserService } from "../../integrations/feishu/feishu-user-service.js";
3
5
  export interface FeishuNotifierOptions {
4
6
  env?: NodeJS.ProcessEnv;
5
7
  config?: Pick<OptimusConfig, "delivery">;
@@ -12,6 +14,8 @@ export interface FeishuNotifierOptions {
12
14
  };
13
15
  format?: "text" | "card";
14
16
  sleepImpl?: (ms: number) => Promise<void>;
17
+ client?: Pick<FeishuClient, "hasTenantCredentials" | "postAsTenant">;
18
+ userService?: Pick<FeishuUserService, "isConfigured" | "resolveOpenId">;
15
19
  }
16
20
  export declare class FeishuNotifier {
17
21
  private readonly env;
@@ -23,9 +27,12 @@ export declare class FeishuNotifier {
23
27
  private readonly format;
24
28
  private readonly templates;
25
29
  private readonly contentRenderer;
30
+ private readonly client;
31
+ private readonly userService;
26
32
  constructor(options?: FeishuNotifierOptions);
27
33
  previewMessage(bundle: TaskDeliveryBundle): string;
28
34
  dispatch(bundle: TaskDeliveryBundle): Promise<TaskDeliveryAttempt[]>;
35
+ private dispatchAppTarget;
29
36
  private dispatchTarget;
30
37
  private shouldRetry;
31
38
  private shouldRetryHttpStatus;
@@ -33,9 +40,14 @@ export declare class FeishuNotifier {
33
40
  private retryDelayForAttempt;
34
41
  private buildAttempt;
35
42
  private resolveTargets;
43
+ private resolveAppTargets;
44
+ private normalizeCorporateEmail;
36
45
  private splitTargets;
37
46
  private readSecret;
38
47
  private buildPayload;
48
+ private buildAppPayload;
49
+ private buildMessageUuid;
50
+ private extractMessageId;
39
51
  private renderContent;
40
52
  private renderMessage;
41
53
  private renderCard;
@@ -43,4 +55,5 @@ export declare class FeishuNotifier {
43
55
  private truncateTitle;
44
56
  private compact;
45
57
  private normalizeError;
58
+ private describeError;
46
59
  }
@@ -1,8 +1,11 @@
1
- import { createHmac } from "node:crypto";
1
+ import { createHash, createHmac } from "node:crypto";
2
2
  import { FeishuContentRenderer } from "./feishu-content/feishu-content-renderer.js";
3
3
  import { FeishuCardRenderer } from "./feishu-card-renderer.js";
4
4
  import { SentryFeishuCardRenderer } from "./sentry-feishu-card-renderer.js";
5
5
  import { createDefaultFeishuTemplates } from "./feishu-templates/template-registry.js";
6
+ import { FeishuClient } from "../../integrations/feishu/feishu-client.js";
7
+ import { FeishuIntegrationError } from "../../integrations/feishu/feishu-client.js";
8
+ import { FeishuUserService } from "../../integrations/feishu/feishu-user-service.js";
6
9
  export class FeishuNotifier {
7
10
  env;
8
11
  config;
@@ -13,6 +16,8 @@ export class FeishuNotifier {
13
16
  format;
14
17
  templates = createDefaultFeishuTemplates();
15
18
  contentRenderer = new FeishuContentRenderer();
19
+ client;
20
+ userService;
16
21
  constructor(options = {}) {
17
22
  this.env = options.env ?? process.env;
18
23
  this.config = options.config;
@@ -25,6 +30,14 @@ export class FeishuNotifier {
25
30
  };
26
31
  this.sleepImpl = options.sleepImpl ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
27
32
  this.format = options.format ?? "text";
33
+ this.client = options.client ?? new FeishuClient({
34
+ ...(this.config ? { config: this.config } : {}),
35
+ env: this.env,
36
+ ...(this.fetchImpl ? { fetchImpl: this.fetchImpl } : {})
37
+ });
38
+ this.userService = options.userService ?? new FeishuUserService({
39
+ ...(this.config ? { config: this.config } : {})
40
+ });
28
41
  }
29
42
  previewMessage(bundle) {
30
43
  if (this.format === "card") {
@@ -35,30 +48,89 @@ export class FeishuNotifier {
35
48
  async dispatch(bundle) {
36
49
  const createdAt = new Date().toISOString();
37
50
  const targets = this.resolveTargets();
38
- if (targets.length === 0) {
51
+ if (targets.length > 0) {
52
+ if (!this.fetchImpl) {
53
+ return [this.buildAttempt(bundle, {
54
+ channel: "feishu",
55
+ status: "failed",
56
+ summary: "Feishu delivery unavailable because fetch is not present.",
57
+ createdAt,
58
+ error: "fetch_missing"
59
+ })];
60
+ }
61
+ const content = this.renderContent(bundle);
62
+ const secret = this.readSecret();
63
+ const attempts = [];
64
+ for (const target of targets) {
65
+ attempts.push(await this.dispatchTarget(bundle, target, content, secret));
66
+ }
67
+ return attempts;
68
+ }
69
+ const appTargets = await this.resolveAppTargets(bundle);
70
+ if (appTargets.length > 0 && this.client.hasTenantCredentials()) {
71
+ const attempts = [];
72
+ const content = this.renderContent(bundle);
73
+ for (const target of appTargets) {
74
+ attempts.push(await this.dispatchAppTarget(bundle, target, content));
75
+ }
76
+ return attempts;
77
+ }
78
+ if (appTargets.length === 0) {
39
79
  return [this.buildAttempt(bundle, {
40
80
  channel: "feishu",
41
81
  status: "skipped",
42
- summary: "Feishu webhook not configured. Set delivery.feishu.webhook/webhooks in config or OPTIMUS_FEISHU_WEBHOOK / OPTIMUS_FEISHU_WEBHOOKS.",
82
+ summary: "Feishu delivery is not configured. Add a Feishu webhook for group delivery, or provide an assignee that can be resolved for direct delivery.",
43
83
  createdAt
44
84
  })];
45
85
  }
46
- if (!this.fetchImpl) {
47
- return [this.buildAttempt(bundle, {
86
+ return [this.buildAttempt(bundle, {
87
+ channel: "feishu",
88
+ status: "skipped",
89
+ summary: "Feishu app targets were resolved, but the built-in Optimus Feishu app is unavailable.",
90
+ createdAt
91
+ })];
92
+ }
93
+ async dispatchAppTarget(bundle, target, content) {
94
+ const attemptCreatedAt = new Date().toISOString();
95
+ const maxAttempts = this.retryPolicy.enabled ? this.retryPolicy.maxAttempts : 1;
96
+ let lastError;
97
+ const appPayload = this.buildAppPayload(bundle, target, content);
98
+ for (let attemptIndex = 0; attemptIndex < maxAttempts; attemptIndex += 1) {
99
+ try {
100
+ const response = await this.client.postAsTenant("/open-apis/im/v1/messages", appPayload, {
101
+ receive_id_type: "open_id"
102
+ });
103
+ const messageId = this.extractMessageId(response);
104
+ const summary = attemptIndex === 0
105
+ ? `Feishu app notification delivered to ${target.label}.`
106
+ : `Feishu app notification delivered to ${target.label} after ${attemptIndex + 1} attempt(s).`;
107
+ return this.buildAttempt(bundle, {
48
108
  channel: "feishu",
49
- status: "failed",
50
- summary: "Feishu delivery unavailable because fetch is not present.",
51
- createdAt,
52
- error: "fetch_missing"
53
- })];
54
- }
55
- const content = this.renderContent(bundle);
56
- const secret = this.readSecret();
57
- const attempts = [];
58
- for (const target of targets) {
59
- attempts.push(await this.dispatchTarget(bundle, target, content, secret));
109
+ status: "dispatched",
110
+ summary,
111
+ createdAt: attemptCreatedAt,
112
+ deliveredAt: new Date().toISOString(),
113
+ ...(typeof appPayload.uuid === "string" ? { requestUuid: appPayload.uuid } : {}),
114
+ ...(messageId ? { messageId } : {})
115
+ });
116
+ }
117
+ catch (error) {
118
+ lastError = this.normalizeError(this.describeError(error));
119
+ if (!this.shouldRetry(attemptIndex, maxAttempts) || !this.shouldRetryNetworkError(lastError)) {
120
+ break;
121
+ }
122
+ }
123
+ await this.sleepImpl(this.retryDelayForAttempt(attemptIndex));
60
124
  }
61
- return attempts;
125
+ const retrySuffix = maxAttempts > 1 ? ` after ${maxAttempts} attempt(s)` : "";
126
+ return this.buildAttempt(bundle, {
127
+ channel: "feishu",
128
+ status: "failed",
129
+ summary: `Feishu app notification failed for ${target.label}${retrySuffix}.`,
130
+ createdAt: attemptCreatedAt,
131
+ ...(typeof appPayload.uuid === "string" ? { requestUuid: appPayload.uuid } : {}),
132
+ ...(lastError ? { error: lastError } : {})
133
+ });
62
134
  }
63
135
  async dispatchTarget(bundle, target, content, secret) {
64
136
  const attemptCreatedAt = new Date().toISOString();
@@ -93,7 +165,7 @@ export class FeishuNotifier {
93
165
  }
94
166
  }
95
167
  catch (error) {
96
- lastError = this.normalizeError(error instanceof Error ? error.message : String(error));
168
+ lastError = this.normalizeError(this.describeError(error));
97
169
  if (!this.shouldRetry(attemptIndex, maxAttempts) || !this.shouldRetryNetworkError(lastError)) {
98
170
  break;
99
171
  }
@@ -150,9 +222,7 @@ export class FeishuNotifier {
150
222
  const seen = new Set();
151
223
  const rawEntries = [
152
224
  ...this.splitTargets(this.config?.delivery.feishu.webhook),
153
- ...(this.config?.delivery.feishu.webhooks ?? []),
154
- ...this.splitTargets(this.env.OPTIMUS_FEISHU_WEBHOOK),
155
- ...this.splitTargets(this.env.OPTIMUS_FEISHU_WEBHOOKS)
225
+ ...(this.config?.delivery.feishu.webhooks ?? [])
156
226
  ];
157
227
  const targets = [];
158
228
  for (const entry of rawEntries) {
@@ -168,6 +238,61 @@ export class FeishuNotifier {
168
238
  }
169
239
  return targets;
170
240
  }
241
+ async resolveAppTargets(bundle) {
242
+ const targets = [];
243
+ const seen = new Set();
244
+ const qAssignee = bundle.summary.qAssignee;
245
+ const preferredLabel = qAssignee?.displayName?.trim() || qAssignee?.login?.trim() || qAssignee?.email?.trim();
246
+ if (qAssignee?.openId?.trim() && !seen.has(qAssignee.openId.trim())) {
247
+ const openId = qAssignee.openId.trim();
248
+ seen.add(openId);
249
+ targets.push({
250
+ openId,
251
+ label: preferredLabel || openId
252
+ });
253
+ return targets;
254
+ }
255
+ const lookupCandidates = [
256
+ qAssignee?.email?.trim(),
257
+ this.normalizeCorporateEmail(qAssignee?.login)
258
+ ].filter((value) => Boolean(value));
259
+ if (this.client.hasTenantCredentials() && this.userService.isConfigured()) {
260
+ for (const candidate of lookupCandidates) {
261
+ try {
262
+ const resolved = await this.userService.resolveOpenId(candidate);
263
+ if (!resolved || seen.has(resolved)) {
264
+ continue;
265
+ }
266
+ seen.add(resolved);
267
+ targets.push({
268
+ openId: resolved,
269
+ label: preferredLabel || candidate
270
+ });
271
+ return targets;
272
+ }
273
+ catch {
274
+ // Fall through to the next candidate or legacy fallback.
275
+ }
276
+ }
277
+ if (lookupCandidates.length > 0) {
278
+ return targets;
279
+ }
280
+ }
281
+ return targets;
282
+ }
283
+ normalizeCorporateEmail(value) {
284
+ const normalized = value?.trim();
285
+ if (!normalized) {
286
+ return undefined;
287
+ }
288
+ if (normalized.includes("@")) {
289
+ return normalized.toLowerCase();
290
+ }
291
+ if (/^[a-zA-Z0-9._-]+$/u.test(normalized)) {
292
+ return `${normalized.toLowerCase()}@xiaomi.com`;
293
+ }
294
+ return undefined;
295
+ }
171
296
  splitTargets(rawValue) {
172
297
  if (!rawValue) {
173
298
  return [];
@@ -202,6 +327,53 @@ export class FeishuNotifier {
202
327
  ...payload
203
328
  };
204
329
  }
330
+ buildAppPayload(bundle, target, content) {
331
+ const msgType = content.card ? "interactive" : "text";
332
+ const messageContent = content.card
333
+ ? JSON.stringify(content.card)
334
+ : JSON.stringify({ text: content.text ?? "" });
335
+ return {
336
+ receive_id: target.openId,
337
+ msg_type: msgType,
338
+ content: messageContent,
339
+ uuid: this.buildMessageUuid(bundle, target.openId)
340
+ };
341
+ }
342
+ buildMessageUuid(bundle, openId) {
343
+ const hash = createHash("sha1")
344
+ .update(`${bundle.taskId}:${bundle.runId ?? "no-run"}:${openId}`)
345
+ .digest("hex")
346
+ .slice(0, 12);
347
+ const taskId = bundle.taskId.replace(/[^a-zA-Z0-9_-]+/g, "").slice(-8) || "task";
348
+ const runId = (bundle.runId ?? "norun").replace(/[^a-zA-Z0-9_-]+/g, "").slice(-8) || "run";
349
+ return `opt-${taskId}-${runId}-${hash}`;
350
+ }
351
+ extractMessageId(value) {
352
+ if (!value) {
353
+ return undefined;
354
+ }
355
+ if (typeof value === "string") {
356
+ return /^om_/u.test(value) ? value : undefined;
357
+ }
358
+ if (Array.isArray(value)) {
359
+ for (const item of value) {
360
+ const messageId = this.extractMessageId(item);
361
+ if (messageId) {
362
+ return messageId;
363
+ }
364
+ }
365
+ return undefined;
366
+ }
367
+ if (typeof value !== "object") {
368
+ return undefined;
369
+ }
370
+ const record = value;
371
+ return this.extractMessageId(record.message_id)
372
+ ?? this.extractMessageId(record.messageId)
373
+ ?? this.extractMessageId(record.data)
374
+ ?? this.extractMessageId(record.items)
375
+ ?? this.extractMessageId(record.results);
376
+ }
205
377
  renderContent(bundle) {
206
378
  if (this.format === "card") {
207
379
  return {
@@ -259,7 +431,19 @@ export class FeishuNotifier {
259
431
  }
260
432
  normalizeError(value) {
261
433
  const compacted = this.compact(value);
262
- return compacted.length > 300 ? `${compacted.slice(0, 297)}...` : compacted;
434
+ return compacted.length > 1200 ? `${compacted.slice(0, 1197)}...` : compacted;
435
+ }
436
+ describeError(error) {
437
+ if (error instanceof FeishuIntegrationError) {
438
+ const diagnostics = [
439
+ error.diagnostics.category ? `category=${error.diagnostics.category}` : undefined,
440
+ error.diagnostics.status !== undefined ? `status=${error.diagnostics.status}` : undefined,
441
+ error.diagnostics.code !== undefined ? `code=${error.diagnostics.code}` : undefined,
442
+ error.diagnostics.detail ? `detail=${error.diagnostics.detail}` : undefined
443
+ ].filter((entry) => Boolean(entry));
444
+ return diagnostics.length > 0 ? `${error.message} (${diagnostics.join(", ")})` : error.message;
445
+ }
446
+ return error instanceof Error ? error.message : String(error);
263
447
  }
264
448
  }
265
449
  //# sourceMappingURL=feishu-notifier.js.map