@sireai/optimus 0.1.44 → 0.1.46

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 (92) hide show
  1. package/dist/cli/feedback-delivery.js +13 -8
  2. package/dist/cli/feedback-delivery.js.map +1 -1
  3. package/dist/cli/optimus.js +370 -63
  4. package/dist/cli/optimus.js.map +1 -1
  5. package/dist/integrations/feishu/feishu-client.d.ts +13 -0
  6. package/dist/integrations/feishu/feishu-client.js +111 -6
  7. package/dist/integrations/feishu/feishu-client.js.map +1 -1
  8. package/dist/integrations/feishu/feishu-reference-material-downloader.d.ts +34 -0
  9. package/dist/integrations/feishu/feishu-reference-material-downloader.js +572 -0
  10. package/dist/integrations/feishu/feishu-reference-material-downloader.js.map +1 -0
  11. package/dist/integrations/feishu/feishu-token-store.d.ts +25 -1
  12. package/dist/integrations/feishu/feishu-token-store.js +148 -4
  13. package/dist/integrations/feishu/feishu-token-store.js.map +1 -1
  14. package/dist/integrations/feishu/feishu-user-auth-service.d.ts +39 -0
  15. package/dist/integrations/feishu/feishu-user-auth-service.js +228 -0
  16. package/dist/integrations/feishu/feishu-user-auth-service.js.map +1 -0
  17. package/dist/integrations/jira/jira-cli.js +127 -19
  18. package/dist/integrations/jira/jira-cli.js.map +1 -1
  19. package/dist/task-environment/delivery/commit-message/coder-commit-message-template.d.ts +12 -0
  20. package/dist/task-environment/delivery/commit-message/coder-commit-message-template.js +105 -0
  21. package/dist/task-environment/delivery/commit-message/coder-commit-message-template.js.map +1 -0
  22. package/dist/task-environment/delivery/commit-message/commit-message-builder.js +2 -1
  23. package/dist/task-environment/delivery/commit-message/commit-message-builder.js.map +1 -1
  24. package/dist/task-environment/delivery/feishu-analysis-doc-service.d.ts +6 -0
  25. package/dist/task-environment/delivery/feishu-analysis-doc-service.js +106 -34
  26. package/dist/task-environment/delivery/feishu-analysis-doc-service.js.map +1 -1
  27. package/dist/task-environment/delivery/feishu-content/feishu-content-renderer.js +16 -1
  28. package/dist/task-environment/delivery/feishu-content/feishu-content-renderer.js.map +1 -1
  29. package/dist/task-environment/delivery/feishu-content/feishu-copy-config.d.ts +6 -0
  30. package/dist/task-environment/delivery/feishu-content/feishu-copy-config.js +19 -0
  31. package/dist/task-environment/delivery/feishu-content/feishu-copy-config.js.map +1 -1
  32. package/dist/task-environment/delivery/feishu-notifier.js +13 -11
  33. package/dist/task-environment/delivery/feishu-notifier.js.map +1 -1
  34. package/dist/task-environment/delivery/feishu-templates/coder-message-template.d.ts +6 -0
  35. package/dist/task-environment/delivery/feishu-templates/coder-message-template.js +58 -0
  36. package/dist/task-environment/delivery/feishu-templates/coder-message-template.js.map +1 -0
  37. package/dist/task-environment/delivery/feishu-templates/template-registry.js +2 -0
  38. package/dist/task-environment/delivery/feishu-templates/template-registry.js.map +1 -1
  39. package/dist/task-environment/delivery/task-delivery-dispatcher.js +6 -0
  40. package/dist/task-environment/delivery/task-delivery-dispatcher.js.map +1 -1
  41. package/dist/task-environment/delivery/task-delivery-service.d.ts +1 -0
  42. package/dist/task-environment/delivery/task-delivery-service.js +124 -8
  43. package/dist/task-environment/delivery/task-delivery-service.js.map +1 -1
  44. package/dist/task-environment/delivery/task-publication-service.js +9 -6
  45. package/dist/task-environment/delivery/task-publication-service.js.map +1 -1
  46. package/dist/task-environment/document-input/document-structure.d.ts +13 -0
  47. package/dist/task-environment/document-input/document-structure.js +438 -0
  48. package/dist/task-environment/document-input/document-structure.js.map +1 -0
  49. package/dist/task-environment/intake/manual-problem-intake.js +36 -0
  50. package/dist/task-environment/intake/manual-problem-intake.js.map +1 -1
  51. package/dist/task-environment/observability/logger.d.ts +1 -0
  52. package/dist/task-environment/observability/logger.js +26 -0
  53. package/dist/task-environment/observability/logger.js.map +1 -1
  54. package/dist/task-environment/observability/runtime-panel.js +10 -1
  55. package/dist/task-environment/observability/runtime-panel.js.map +1 -1
  56. package/dist/task-environment/orchestration/reference-material-relocator.d.ts +2 -0
  57. package/dist/task-environment/orchestration/reference-material-relocator.js +69 -0
  58. package/dist/task-environment/orchestration/reference-material-relocator.js.map +1 -0
  59. package/dist/task-environment/orchestration/task-orchestrator.d.ts +3 -0
  60. package/dist/task-environment/orchestration/task-orchestrator.js +182 -8
  61. package/dist/task-environment/orchestration/task-orchestrator.js.map +1 -1
  62. package/dist/task-environment/orchestration/task-package-inputs.js +7 -1
  63. package/dist/task-environment/orchestration/task-package-inputs.js.map +1 -1
  64. package/dist/task-environment/orchestration/task-runtime-policy.js +11 -0
  65. package/dist/task-environment/orchestration/task-runtime-policy.js.map +1 -1
  66. package/dist/task-environment/orchestration/triage-runner.js +3 -0
  67. package/dist/task-environment/orchestration/triage-runner.js.map +1 -1
  68. package/dist/task-environment/runtime/optimus-runtime.js +3 -0
  69. package/dist/task-environment/runtime/optimus-runtime.js.map +1 -1
  70. package/dist/task-environment/storage/sqlite-task-store.d.ts +4 -0
  71. package/dist/task-environment/storage/sqlite-task-store.js +70 -1
  72. package/dist/task-environment/storage/sqlite-task-store.js.map +1 -1
  73. package/dist/task-environment/task-handler-descriptor.d.ts +5 -0
  74. package/dist/task-environment/task-handler-descriptor.js +15 -0
  75. package/dist/task-environment/task-handler-descriptor.js.map +1 -0
  76. package/dist/types.d.ts +47 -1
  77. package/embedded-skills/shared/feishu-task-inputs/SKILL.md +56 -0
  78. package/embedded-skills/shared/feishu-task-inputs/scripts/fetch-feishu-doc.mjs +756 -0
  79. package/embedded-skills/shared/feishu-task-inputs/skill.json +5 -0
  80. package/package.json +4 -1
  81. package/task-harnesses/coder/ACCEPT.md +73 -0
  82. package/task-harnesses/coder/CONSTRAINTS.md +72 -0
  83. package/task-harnesses/coder/CONTEXT.md +36 -0
  84. package/task-harnesses/coder/EVOLUTION.md +83 -0
  85. package/task-harnesses/coder/ROLE.md +39 -0
  86. package/task-harnesses/coder/STANDARD.md +258 -0
  87. package/task-harnesses/coder/manifest.json +13 -0
  88. package/task-harnesses/pm/ACCEPT.md +7 -0
  89. package/task-harnesses/pm/CONSTRAINTS.md +5 -0
  90. package/task-harnesses/pm/ROLE.md +5 -8
  91. package/task-harnesses/pm/STANDARD.md +83 -124
  92. package/task-harnesses/registry.json +4 -0
@@ -19,11 +19,13 @@ export interface FeishuClientOptions {
19
19
  env?: NodeJS.ProcessEnv;
20
20
  fetchImpl?: typeof globalThis.fetch;
21
21
  tokenStore?: FeishuTokenStore;
22
+ authMode?: "tenant" | "user";
22
23
  }
23
24
  export declare class FeishuClient {
24
25
  private readonly env;
25
26
  private readonly fetchImpl;
26
27
  private readonly tokenStore;
28
+ private readonly authMode;
27
29
  private readonly baseUrl;
28
30
  private readonly appId;
29
31
  private readonly appSecret;
@@ -35,9 +37,18 @@ export declare class FeishuClient {
35
37
  patch<T>(path: string, body?: unknown, query?: Record<string, string | undefined>): Promise<T>;
36
38
  postAsTenant<T>(path: string, body?: unknown, query?: Record<string, string | undefined>): Promise<T>;
37
39
  postFormAsTenant<T>(path: string, body: FormData, query?: Record<string, string | undefined>): Promise<T>;
40
+ getBinary(path: string, query?: Record<string, string | undefined>, retryAfterAuthRefresh?: boolean): Promise<{
41
+ buffer: Buffer;
42
+ contentType?: string;
43
+ fileName?: string;
44
+ }>;
38
45
  private request;
46
+ private getAccessToken;
47
+ private clearAccessToken;
39
48
  private getTenantAccessToken;
49
+ private getUserAccessToken;
40
50
  private buildUrl;
51
+ private buildDiagnostics;
41
52
  private readResponsePayload;
42
53
  private payloadHasError;
43
54
  private extractCode;
@@ -46,4 +57,6 @@ export declare class FeishuClient {
46
57
  private readNumber;
47
58
  private normalizeBaseUrl;
48
59
  private compact;
60
+ private isJsonContentType;
61
+ private readFileNameFromHeaders;
49
62
  }
@@ -1,5 +1,6 @@
1
1
  import { FileFeishuTokenStore } from "./feishu-token-store.js";
2
2
  import { resolveFeishuAuthAppConfig } from "./feishu-auth-config.js";
3
+ import { FeishuUserAuthService } from "./feishu-user-auth-service.js";
3
4
  const DEFAULT_FEISHU_BASE_URL = "https://open.feishu.cn";
4
5
  const TENANT_TOKEN_SKEW_MS = 5 * 60 * 1000;
5
6
  export class FeishuIntegrationError extends Error {
@@ -14,6 +15,7 @@ export class FeishuClient {
14
15
  env;
15
16
  fetchImpl;
16
17
  tokenStore;
18
+ authMode;
17
19
  baseUrl;
18
20
  appId;
19
21
  appSecret;
@@ -21,6 +23,7 @@ export class FeishuClient {
21
23
  this.env = options.env ?? process.env;
22
24
  this.fetchImpl = options.fetchImpl ?? globalThis.fetch?.bind(globalThis);
23
25
  this.tokenStore = options.tokenStore ?? new FileFeishuTokenStore();
26
+ this.authMode = options.authMode ?? "tenant";
24
27
  const feishuConfig = options.config?.delivery.feishu;
25
28
  const builtinApp = resolveFeishuAuthAppConfig(this.env, feishuConfig?.baseUrl ? { baseUrl: feishuConfig.baseUrl } : undefined);
26
29
  this.baseUrl = this.normalizeBaseUrl(builtinApp.baseUrl ?? feishuConfig?.baseUrl ?? this.env.FEISHU_BASE_URL ?? DEFAULT_FEISHU_BASE_URL);
@@ -48,8 +51,43 @@ export class FeishuClient {
48
51
  async postFormAsTenant(path, body, query) {
49
52
  return await this.request("POST", path, body, query, true);
50
53
  }
54
+ async getBinary(path, query, retryAfterAuthRefresh = true) {
55
+ const token = await this.getAccessToken();
56
+ const response = await this.fetchImpl(this.buildUrl(path, query), {
57
+ method: "GET",
58
+ headers: {
59
+ authorization: `Bearer ${token}`
60
+ }
61
+ });
62
+ const contentType = response.headers.get("content-type")?.trim() || undefined;
63
+ if (response.ok && !this.isJsonContentType(contentType)) {
64
+ const buffer = Buffer.from(await response.arrayBuffer());
65
+ const fileName = this.readFileNameFromHeaders(response.headers);
66
+ return {
67
+ buffer,
68
+ ...(contentType ? { contentType } : {}),
69
+ ...(fileName ? { fileName } : {})
70
+ };
71
+ }
72
+ const payload = await this.readResponsePayload(response);
73
+ if (response.ok && !this.payloadHasError(payload)) {
74
+ const buffer = Buffer.from(JSON.stringify(payload), "utf8");
75
+ return {
76
+ buffer,
77
+ contentType: "application/json"
78
+ };
79
+ }
80
+ const code = this.extractCode(payload);
81
+ if (retryAfterAuthRefresh && this.isAuthExpired(response.status, code, payload)) {
82
+ await this.clearAccessToken().catch(() => undefined);
83
+ return await this.getBinary(path, query, false);
84
+ }
85
+ throw new FeishuIntegrationError("Feishu binary request failed.", {
86
+ ...this.buildDiagnostics(response.status, code, payload)
87
+ });
88
+ }
51
89
  async request(method, path, body, query, retryAfterAuthRefresh = true) {
52
- const token = await this.getTenantAccessToken();
90
+ const token = await this.getAccessToken();
53
91
  const isFormData = typeof FormData !== "undefined" && body instanceof FormData;
54
92
  const response = await this.fetchImpl(this.buildUrl(path, query), {
55
93
  method,
@@ -65,16 +103,32 @@ export class FeishuClient {
65
103
  }
66
104
  const code = this.extractCode(payload);
67
105
  if (retryAfterAuthRefresh && this.isAuthExpired(response.status, code, payload)) {
68
- await this.tokenStore.clearTenantToken().catch(() => undefined);
106
+ await this.clearAccessToken().catch(() => undefined);
69
107
  return await this.request(method, path, body, query, false);
70
108
  }
71
109
  throw new FeishuIntegrationError("Feishu API request failed.", {
72
- category: response.status === 401 || response.status === 403 ? "auth_failed" : "request_failed",
73
- status: response.status,
74
- ...(code !== undefined ? { code } : {}),
75
- detail: this.compact(JSON.stringify(payload))
110
+ ...this.buildDiagnostics(response.status, code, payload)
76
111
  });
77
112
  }
113
+ async getAccessToken() {
114
+ return this.authMode === "user"
115
+ ? await this.getUserAccessToken()
116
+ : await this.getTenantAccessToken();
117
+ }
118
+ async clearAccessToken() {
119
+ if (this.authMode === "user") {
120
+ const current = await this.tokenStore.readUserToken();
121
+ if (!current) {
122
+ return;
123
+ }
124
+ await this.tokenStore.writeUserToken({
125
+ ...current,
126
+ expireAtMs: 0
127
+ });
128
+ return;
129
+ }
130
+ await this.tokenStore.clearTenantToken();
131
+ }
78
132
  async getTenantAccessToken() {
79
133
  if (!this.fetchImpl) {
80
134
  throw new FeishuIntegrationError("Feishu integration requires global fetch.", { category: "request_failed" });
@@ -111,6 +165,34 @@ export class FeishuClient {
111
165
  }).catch(() => undefined);
112
166
  return token;
113
167
  }
168
+ async getUserAccessToken() {
169
+ if (!this.fetchImpl) {
170
+ throw new FeishuIntegrationError("Feishu integration requires global fetch.", { category: "request_failed" });
171
+ }
172
+ let record = await this.tokenStore.readUserToken();
173
+ if (!record) {
174
+ throw new FeishuIntegrationError("Feishu user authorization is required.", {
175
+ category: "auth_failed",
176
+ detail: "Run `optimus feishu auth` to authorize your user account."
177
+ });
178
+ }
179
+ if (record.expireAtMs > Date.now() + TENANT_TOKEN_SKEW_MS) {
180
+ return record.userAccessToken;
181
+ }
182
+ if (record.refreshExpireAtMs <= Date.now() + TENANT_TOKEN_SKEW_MS) {
183
+ throw new FeishuIntegrationError("Feishu user session expired.", {
184
+ category: "auth_failed",
185
+ detail: "Run `optimus feishu auth` again to refresh your user authorization."
186
+ });
187
+ }
188
+ record = await new FeishuUserAuthService({
189
+ env: this.env,
190
+ fetchImpl: this.fetchImpl,
191
+ tokenStore: this.tokenStore,
192
+ ...(this.baseUrl ? { baseUrl: this.baseUrl } : {})
193
+ }).refreshUserToken(record);
194
+ return record.userAccessToken;
195
+ }
114
196
  buildUrl(path, query) {
115
197
  const normalizedPath = path.startsWith("/") ? path : `/${path}`;
116
198
  const url = new URL(`${this.baseUrl}${normalizedPath}`);
@@ -121,6 +203,14 @@ export class FeishuClient {
121
203
  }
122
204
  return url.toString();
123
205
  }
206
+ buildDiagnostics(status, code, payload) {
207
+ return {
208
+ category: status === 401 || status === 403 ? "auth_failed" : "request_failed",
209
+ status,
210
+ ...(code !== undefined ? { code } : {}),
211
+ detail: this.compact(JSON.stringify(payload))
212
+ };
213
+ }
124
214
  async readResponsePayload(response) {
125
215
  const text = await response.text();
126
216
  if (!text.trim()) {
@@ -191,5 +281,20 @@ export class FeishuClient {
191
281
  compact(value) {
192
282
  return value.replace(/\s+/gu, " ").trim().slice(0, 2000);
193
283
  }
284
+ isJsonContentType(value) {
285
+ return typeof value === "string" && /json|javascript|text\/plain/iu.test(value);
286
+ }
287
+ readFileNameFromHeaders(headers) {
288
+ const value = headers.get("content-disposition")?.trim();
289
+ if (!value) {
290
+ return undefined;
291
+ }
292
+ const utf8Match = value.match(/filename\*\s*=\s*UTF-8''([^;]+)/iu);
293
+ if (utf8Match?.[1]) {
294
+ return decodeURIComponent(utf8Match[1]);
295
+ }
296
+ const plainMatch = value.match(/filename\s*=\s*"([^"]+)"/iu) || value.match(/filename\s*=\s*([^;]+)/iu);
297
+ return plainMatch?.[1]?.trim();
298
+ }
194
299
  }
195
300
  //# sourceMappingURL=feishu-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feishu-client.js","sourceRoot":"","sources":["../../../src/integrations/feishu/feishu-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feishu-client.js","sourceRoot":"","sources":["../../../src/integrations/feishu/feishu-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { OptimusConfig, TaskInputReferenceMaterial } from "../../types.js";
2
+ import { FeishuClient } from "./feishu-client.js";
3
+ interface ReferenceMaterialDownloadLogger {
4
+ info(event: string, context?: Record<string, unknown>): Promise<void>;
5
+ warn(event: string, context?: Record<string, unknown>): Promise<void>;
6
+ }
7
+ export interface FeishuReferenceMaterialDownloaderOptions {
8
+ config?: Pick<OptimusConfig, "delivery" | "storage">;
9
+ client?: Pick<FeishuClient, "getBinary" | "isConfigured">;
10
+ fetchImpl?: typeof globalThis.fetch;
11
+ rootDir?: string;
12
+ logger?: ReferenceMaterialDownloadLogger;
13
+ }
14
+ export declare class FeishuReferenceMaterialDownloader {
15
+ private readonly client;
16
+ private readonly fetchImpl;
17
+ private readonly rootDir;
18
+ private readonly logger;
19
+ constructor(options?: FeishuReferenceMaterialDownloaderOptions);
20
+ isConfigured(): boolean;
21
+ downloadReferenceMaterials(materials: TaskInputReferenceMaterial[], namespace: string, sourceUrl?: string): Promise<TaskInputReferenceMaterial[]>;
22
+ private shouldDownload;
23
+ private buildIdentity;
24
+ private downloadSingleMaterial;
25
+ private downloadMaterialViaDirectUrl;
26
+ private persistDownloadedBuffer;
27
+ private persistDirectBuffer;
28
+ private persistDownloadedMaterial;
29
+ private persistExistingLocalFile;
30
+ private finalizeLocalMaterialFile;
31
+ private formatDownloadError;
32
+ }
33
+ export declare function isFeishuManagedReferenceMaterial(material: TaskInputReferenceMaterial): boolean;
34
+ export {};