@brxce/mcp-server 1.1.11 → 1.1.13

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 (78) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +1 -27
  3. package/dist/index.js.map +1 -1
  4. package/dist/services/api-client.d.ts +32 -12
  5. package/dist/services/api-client.d.ts.map +1 -1
  6. package/dist/services/api-client.js +117 -75
  7. package/dist/services/api-client.js.map +1 -1
  8. package/dist/services/workspace-context.d.ts +27 -24
  9. package/dist/services/workspace-context.d.ts.map +1 -1
  10. package/dist/services/workspace-context.js +46 -45
  11. package/dist/services/workspace-context.js.map +1 -1
  12. package/dist/tools/comment-tool.d.ts.map +1 -1
  13. package/dist/tools/comment-tool.js +3 -0
  14. package/dist/tools/comment-tool.js.map +1 -1
  15. package/dist/tools/criteria-tool.d.ts.map +1 -1
  16. package/dist/tools/criteria-tool.js +3 -0
  17. package/dist/tools/criteria-tool.js.map +1 -1
  18. package/dist/tools/meeting-agenda-notes-tool.js +22 -22
  19. package/dist/tools/meeting-agenda-notes-tool.js.map +1 -1
  20. package/dist/tools/meeting-agenda-tool.js +29 -29
  21. package/dist/tools/meeting-agenda-tool.js.map +1 -1
  22. package/dist/tools/meeting-decisions-tool.js +28 -28
  23. package/dist/tools/meeting-decisions-tool.js.map +1 -1
  24. package/dist/tools/meeting-notes-tool.js +22 -22
  25. package/dist/tools/meeting-notes-tool.js.map +1 -1
  26. package/dist/tools/tag-category-tool.js +13 -13
  27. package/dist/tools/tag-category-tool.js.map +1 -1
  28. package/dist/tools/tag-search-tool.js +38 -38
  29. package/dist/tools/tag-search-tool.js.map +1 -1
  30. package/dist/tools/tag-tool.js +40 -40
  31. package/dist/tools/tag-tool.js.map +1 -1
  32. package/dist/tools/worknode-batch-tool.d.ts.map +1 -1
  33. package/dist/tools/worknode-batch-tool.js +7 -0
  34. package/dist/tools/worknode-batch-tool.js.map +1 -1
  35. package/dist/tools/worknode-create-tool.d.ts.map +1 -1
  36. package/dist/tools/worknode-create-tool.js +18 -2
  37. package/dist/tools/worknode-create-tool.js.map +1 -1
  38. package/dist/tools/worknode-delete-tool.d.ts.map +1 -1
  39. package/dist/tools/worknode-delete-tool.js +7 -0
  40. package/dist/tools/worknode-delete-tool.js.map +1 -1
  41. package/dist/tools/worknode-detail-tool.d.ts.map +1 -1
  42. package/dist/tools/worknode-detail-tool.js +53 -31
  43. package/dist/tools/worknode-detail-tool.js.map +1 -1
  44. package/dist/tools/worknode-history-tool.d.ts.map +1 -1
  45. package/dist/tools/worknode-history-tool.js +3 -1
  46. package/dist/tools/worknode-history-tool.js.map +1 -1
  47. package/dist/tools/worknode-move-tool.d.ts.map +1 -1
  48. package/dist/tools/worknode-move-tool.js +4 -1
  49. package/dist/tools/worknode-move-tool.js.map +1 -1
  50. package/dist/tools/worknode-permanent-delete-tool.d.ts.map +1 -1
  51. package/dist/tools/worknode-permanent-delete-tool.js +7 -0
  52. package/dist/tools/worknode-permanent-delete-tool.js.map +1 -1
  53. package/dist/tools/worknode-read-tool.d.ts.map +1 -1
  54. package/dist/tools/worknode-read-tool.js +18 -1
  55. package/dist/tools/worknode-read-tool.js.map +1 -1
  56. package/dist/tools/worknode-subtree-tool.js +19 -19
  57. package/dist/tools/worknode-subtree-tool.js.map +1 -1
  58. package/dist/tools/worknode-tag-relations-tool.d.ts.map +1 -1
  59. package/dist/tools/worknode-tag-relations-tool.js +3 -1
  60. package/dist/tools/worknode-tag-relations-tool.js.map +1 -1
  61. package/dist/tools/worknode-tag-tool.d.ts.map +1 -1
  62. package/dist/tools/worknode-tag-tool.js +43 -31
  63. package/dist/tools/worknode-tag-tool.js.map +1 -1
  64. package/dist/tools/worknode-update-tool.d.ts.map +1 -1
  65. package/dist/tools/worknode-update-tool.js +20 -3
  66. package/dist/tools/worknode-update-tool.js.map +1 -1
  67. package/dist/tools/workspace-tree-tool.d.ts.map +1 -1
  68. package/dist/tools/workspace-tree-tool.js +29 -22
  69. package/dist/tools/workspace-tree-tool.js.map +1 -1
  70. package/dist/utils/error-utils.d.ts +6 -4
  71. package/dist/utils/error-utils.d.ts.map +1 -1
  72. package/dist/utils/error-utils.js +13 -16
  73. package/dist/utils/error-utils.js.map +1 -1
  74. package/dist/utils/index.d.ts +0 -1
  75. package/dist/utils/index.d.ts.map +1 -1
  76. package/dist/utils/index.js +0 -1
  77. package/dist/utils/index.js.map +1 -1
  78. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA2DA,wBAAsB,SAAS,kBAkN9B;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,iBAG/C;AAED,eAAO,MAAM,gBAAgB,eAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAyDA,wBAAsB,SAAS,kBAwL9B;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,iBAG/C;AAED,eAAO,MAAM,gBAAgB,eAAiC,CAAA"}
package/dist/index.js CHANGED
@@ -1,10 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
- import jwt from 'jsonwebtoken';
5
4
  import { loadEnvironment } from './config/environment.js';
6
5
  import { ApiClient } from './services/api-client.js';
7
- import { getErrorMessage } from './utils/error-utils.js';
8
6
  import { registerUserResource } from './resources/user-resource.js';
9
7
  import { registerWorkspaceResource } from './resources/workspace-resource.js';
10
8
  import { registerWorkspaceMembersResource } from './resources/workspace-members-resource.js';
@@ -57,11 +55,6 @@ import { registerAttachmentTools } from './tools/attachment-tool.js';
57
55
  import { registerGoalProgressTool } from './tools/goal-progress-tool.js';
58
56
  import { registerDailyReportTool } from './tools/daily-report-tool.js';
59
57
  export async function bootstrap() {
60
- // Always log environment variables for debugging
61
- console.error('[MCP] Environment variables:');
62
- console.error(' BACKEND_URL:', process.env.BACKEND_URL);
63
- console.error(' AUTH_TOKEN:', process.env.AUTH_TOKEN ? 'SET' : 'NOT SET');
64
- console.error(' MCP_DEBUG:', process.env.MCP_DEBUG);
65
58
  const config = loadEnvironment();
66
59
  console.error('[MCP] Starting BRXCE MCP Server');
67
60
  console.error('[MCP] Configuration:', {
@@ -70,30 +63,11 @@ export async function bootstrap() {
70
63
  hasRefreshToken: Boolean(config.refreshToken),
71
64
  debug: config.debug,
72
65
  });
73
- // Extract user information from auth token
74
- let currentUserId;
75
- if (config.authToken) {
76
- // JWT token: decode locally
77
- try {
78
- const decoded = jwt.decode(config.authToken);
79
- const maybeUserId = decoded?.['userId'];
80
- if (typeof maybeUserId === 'string') {
81
- currentUserId = maybeUserId;
82
- if (config.debug) {
83
- console.error(`[MCP] Authenticated user: ${currentUserId}`);
84
- }
85
- }
86
- }
87
- catch (error) {
88
- if (config.debug) {
89
- console.error('[MCP] Failed to decode auth token:', getErrorMessage(error));
90
- }
91
- }
92
- }
93
66
  // Initialize API client
94
67
  const apiClient = new ApiClient({
95
68
  baseUrl: config.backendUrl,
96
69
  authToken: config.authToken,
70
+ refreshToken: config.refreshToken,
97
71
  });
98
72
  const server = new McpServer({
99
73
  name: 'brxce-mcp-server',
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Enhanced API client for BRXCE backend with:
3
- * - Token auto-refresh
4
- * - Retry logic with exponential backoff
5
- * - Request timeout
6
- * - Error classification and handling
3
+ * - Token auto-refresh (deduped against concurrent callers)
4
+ * - Retry logic with exponential backoff (GET only for 5xx)
5
+ * - Per-request timeout override
6
+ * - Error classification and handling with status code propagation
7
7
  */
8
8
  export interface ApiClientConfig {
9
9
  baseUrl: string;
@@ -12,6 +12,10 @@ export interface ApiClientConfig {
12
12
  timeout?: number;
13
13
  maxRetries?: number;
14
14
  }
15
+ export interface RequestOptions {
16
+ /** Override the default timeout for this single call. */
17
+ timeoutMs?: number;
18
+ }
15
19
  export declare class ApiClient {
16
20
  private baseUrl;
17
21
  private authToken?;
@@ -20,10 +24,18 @@ export declare class ApiClient {
20
24
  private maxRetries;
21
25
  private refreshFailureCount;
22
26
  private readonly MAX_REFRESH_FAILURES;
27
+ private refreshInFlight;
23
28
  constructor(config: ApiClientConfig);
29
+ /**
30
+ * Refresh the access token. Concurrent callers share the same in-flight
31
+ * promise so the backend only sees one refresh request at a time.
32
+ * Returns true on success, false on failure (without throwing).
33
+ */
34
+ private refreshAccessToken;
35
+ private doRefresh;
24
36
  /**
25
37
  * A-1: Token auto-refresh
26
- * Ensures token is valid, refreshes if expiring within 60 seconds
38
+ * Ensures token is valid, refreshes if expiring within 60 seconds.
27
39
  */
28
40
  ensureValidToken(): Promise<void>;
29
41
  /**
@@ -35,17 +47,25 @@ export declare class ApiClient {
35
47
  */
36
48
  fetchWithTimeout(url: string, options: RequestInit, timeoutMs?: number): Promise<Response>;
37
49
  /**
38
- * A-4: Error classification and smart retry
50
+ * Build a structured ApiError with status + skipRetry flags.
51
+ */
52
+ private buildApiError;
53
+ /**
54
+ * A-4: Error classification
55
+ * - 401: Refresh once and retry the original request once.
56
+ * - 429: Wait Retry-After and retry.
57
+ * - 5xx: Retry only if the verb is idempotent.
58
+ * - 4xx: Throw immediately, no retry.
39
59
  */
40
60
  private handleErrorResponse;
41
61
  /**
42
- * Core request method with all features
62
+ * Core request method with all features.
43
63
  */
44
64
  private request;
45
- get<T>(path: string): Promise<T>;
46
- post<T>(path: string, data?: unknown): Promise<T>;
47
- put<T>(path: string, data?: unknown): Promise<T>;
48
- patch<T>(path: string, data?: unknown): Promise<T>;
49
- delete<T>(path: string, data?: unknown): Promise<T>;
65
+ get<T>(path: string, options?: RequestOptions): Promise<T>;
66
+ post<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
67
+ put<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
68
+ patch<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
69
+ delete<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
50
70
  }
51
71
  //# sourceMappingURL=api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;gBAE9B,MAAM,EAAE,eAAe;IAQnC;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CvC;;OAEG;IACG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,MAAwB,GAAG,OAAO,CAAC,CAAC,CAAC;IA4BvF;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,EACpB,SAAS,GAAE,MAAqB,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAuBpB;;OAEG;YACW,mBAAmB;IAgDjC;;OAEG;YACW,OAAO;IA+Cf,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAG1D"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAC1C,OAAO,CAAC,eAAe,CAA8B;gBAEzC,MAAM,EAAE,eAAe;IAQnC;;;;OAIG;YACW,kBAAkB;YAiBlB,SAAS;IA4BvB;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBvC;;OAEG;IACG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,MAAwB,GAAG,OAAO,CAAC,CAAC,CAAC;IA+BvF;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,EACpB,SAAS,GAAE,MAAqB,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAuBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;;OAMG;YACW,mBAAmB;IAqCjC;;OAEG;YACW,OAAO;IAyDf,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1E,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5E,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CAGpF"}
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Enhanced API client for BRXCE backend with:
3
- * - Token auto-refresh
4
- * - Retry logic with exponential backoff
5
- * - Request timeout
6
- * - Error classification and handling
3
+ * - Token auto-refresh (deduped against concurrent callers)
4
+ * - Retry logic with exponential backoff (GET only for 5xx)
5
+ * - Per-request timeout override
6
+ * - Error classification and handling with status code propagation
7
7
  */
8
8
  import jwt from 'jsonwebtoken';
9
9
  import { getErrorMessage } from '../utils/error-utils.js';
10
+ const IDEMPOTENT_METHODS = new Set(['GET', 'HEAD', 'OPTIONS']);
10
11
  export class ApiClient {
11
12
  baseUrl;
12
13
  authToken;
@@ -15,6 +16,7 @@ export class ApiClient {
15
16
  maxRetries;
16
17
  refreshFailureCount = 0;
17
18
  MAX_REFRESH_FAILURES = 3;
19
+ refreshInFlight = null;
18
20
  constructor(config) {
19
21
  this.baseUrl = config.baseUrl;
20
22
  this.authToken = config.authToken;
@@ -23,42 +25,70 @@ export class ApiClient {
23
25
  this.maxRetries = config.maxRetries ?? 3;
24
26
  }
25
27
  /**
26
- * A-1: Token auto-refresh
27
- * Ensures token is valid, refreshes if expiring within 60 seconds
28
+ * Refresh the access token. Concurrent callers share the same in-flight
29
+ * promise so the backend only sees one refresh request at a time.
30
+ * Returns true on success, false on failure (without throwing).
28
31
  */
29
- async ensureValidToken() {
30
- if (!this.authToken || !this.refreshToken) {
31
- return;
32
+ async refreshAccessToken() {
33
+ if (!this.refreshToken)
34
+ return false;
35
+ if (!this.refreshInFlight) {
36
+ this.refreshInFlight = this.doRefresh().finally(() => {
37
+ this.refreshInFlight = null;
38
+ });
32
39
  }
33
40
  try {
34
- const decoded = jwt.decode(this.authToken);
35
- if (!decoded || !decoded.exp) {
36
- return;
37
- }
38
- const now = Math.floor(Date.now() / 1000);
39
- const timeUntilExpiry = decoded.exp - now;
40
- // Refresh if expiring within 60 seconds
41
- if (timeUntilExpiry < 60) {
42
- const response = await fetch(`${this.baseUrl}/auth/refresh`, {
43
- method: 'POST',
44
- headers: { 'Content-Type': 'application/json' },
45
- body: JSON.stringify({ refreshToken: this.refreshToken }),
46
- });
47
- if (response.ok) {
48
- const data = (await response.json());
49
- this.authToken = data.accessToken;
50
- // Reset failure count on successful refresh
51
- this.refreshFailureCount = 0;
52
- }
41
+ await this.refreshInFlight;
42
+ return true;
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ }
48
+ async doRefresh() {
49
+ try {
50
+ const response = await fetch(`${this.baseUrl}/auth/refresh`, {
51
+ method: 'POST',
52
+ headers: { 'Content-Type': 'application/json' },
53
+ body: JSON.stringify({ refreshToken: this.refreshToken }),
54
+ });
55
+ if (!response.ok) {
56
+ throw new Error(`refresh failed: ${response.status}`);
53
57
  }
58
+ const data = (await response.json());
59
+ this.authToken = data.accessToken;
60
+ this.refreshFailureCount = 0;
54
61
  }
55
- catch (error) {
62
+ catch (err) {
56
63
  this.refreshFailureCount++;
57
64
  console.error(`[MCP] Token refresh failed (${this.refreshFailureCount}/${this.MAX_REFRESH_FAILURES})`);
58
65
  if (this.refreshFailureCount >= this.MAX_REFRESH_FAILURES) {
59
66
  console.error('[MCP] Max refresh attempts reached. Please re-authenticate.');
60
67
  this.authToken = undefined;
61
68
  }
69
+ throw err;
70
+ }
71
+ }
72
+ /**
73
+ * A-1: Token auto-refresh
74
+ * Ensures token is valid, refreshes if expiring within 60 seconds.
75
+ */
76
+ async ensureValidToken() {
77
+ if (!this.authToken || !this.refreshToken)
78
+ return;
79
+ let decoded;
80
+ try {
81
+ decoded = jwt.decode(this.authToken);
82
+ }
83
+ catch {
84
+ return;
85
+ }
86
+ if (!decoded || !decoded.exp)
87
+ return;
88
+ const now = Math.floor(Date.now() / 1000);
89
+ const timeUntilExpiry = decoded.exp - now;
90
+ if (timeUntilExpiry < 60) {
91
+ await this.refreshAccessToken();
62
92
  }
63
93
  }
64
94
  /**
@@ -72,14 +102,16 @@ export class ApiClient {
72
102
  }
73
103
  catch (error) {
74
104
  lastError = error instanceof Error ? error : new Error(getErrorMessage(error));
75
- // Don't retry if error has skipRetry flag (4xx errors)
76
- if (error !== null && typeof error === 'object' && 'skipRetry' in error && error.skipRetry) {
105
+ // Don't retry if error has skipRetry flag (4xx errors, non-idempotent 5xx)
106
+ if (error !== null &&
107
+ typeof error === 'object' &&
108
+ 'skipRetry' in error &&
109
+ error.skipRetry) {
77
110
  throw error;
78
111
  }
79
112
  // Don't retry on last attempt
80
- if (attempt === retries) {
113
+ if (attempt === retries)
81
114
  break;
82
- }
83
115
  // Exponential backoff: 100ms, 200ms, 400ms
84
116
  const delay = 100 * Math.pow(2, attempt);
85
117
  await new Promise((resolve) => setTimeout(resolve, delay));
@@ -112,63 +144,73 @@ export class ApiClient {
112
144
  }
113
145
  }
114
146
  /**
115
- * A-4: Error classification and smart retry
147
+ * Build a structured ApiError with status + skipRetry flags.
148
+ */
149
+ buildApiError(status, statusText, url, body, skipRetry) {
150
+ const err = new Error(`API request failed: ${status} ${statusText}\nURL: ${url}\nResponse: ${body}`);
151
+ err.status = status;
152
+ if (skipRetry)
153
+ err.skipRetry = true;
154
+ return err;
155
+ }
156
+ /**
157
+ * A-4: Error classification
158
+ * - 401: Refresh once and retry the original request once.
159
+ * - 429: Wait Retry-After and retry.
160
+ * - 5xx: Retry only if the verb is idempotent.
161
+ * - 4xx: Throw immediately, no retry.
116
162
  */
117
- async handleErrorResponse(response, url, retryFn) {
163
+ async handleErrorResponse(response, url, method, retryFn, canRefresh) {
118
164
  const status = response.status;
119
165
  const errorText = await response.text().catch(() => 'Unable to read error response');
120
- // 401: Try token refresh and retry once
121
- if (status === 401 && this.refreshToken) {
122
- const refreshResponse = await fetch(`${this.baseUrl}/auth/refresh`, {
123
- method: 'POST',
124
- headers: { 'Content-Type': 'application/json' },
125
- body: JSON.stringify({ refreshToken: this.refreshToken }),
126
- });
127
- if (refreshResponse.ok) {
128
- const data = (await refreshResponse.json());
129
- this.authToken = data.accessToken;
166
+ // 401: try refresh + retry exactly once per request
167
+ if (status === 401 && this.refreshToken && canRefresh) {
168
+ const refreshed = await this.refreshAccessToken();
169
+ if (refreshed) {
130
170
  return retryFn();
131
171
  }
132
172
  }
133
- // 429: Rate limit, wait and retry
173
+ // 429: rate limit wait then retry (handled inside withRetry as a thrown error)
134
174
  if (status === 429) {
135
175
  const retryAfter = response.headers.get('Retry-After');
136
176
  const delay = retryAfter ? parseInt(retryAfter) * 1000 : 1000;
137
177
  await new Promise((resolve) => setTimeout(resolve, delay));
138
178
  return retryFn();
139
179
  }
140
- // 5xx: Server error surface as structured API error so the outer catch
141
- // does NOT wrap it as "Network error" (#1098). Retry logic still triggers
142
- // on this error because skipRetry is not set.
180
+ // 5xx: idempotent verbs go through withRetry; non-idempotent verbs surface
181
+ // immediately so callers can decide whether the partial write succeeded.
143
182
  if (status >= 500) {
144
- throw new Error(`API request failed: ${status} ${response.statusText}\nURL: ${url}\nResponse: ${errorText}`);
183
+ const skipRetry = !IDEMPOTENT_METHODS.has(method);
184
+ throw this.buildApiError(status, response.statusText, url, errorText, skipRetry);
145
185
  }
146
- // 4xx: Client error - throw immediately, don't retry
147
- const err = new Error(`API request failed: ${status} ${response.statusText}\nURL: ${url}\nResponse: ${errorText}`);
148
- err.skipRetry = true;
149
- throw err;
186
+ // 4xx (client error): throw, never retry
187
+ throw this.buildApiError(status, response.statusText, url, errorText, /* skipRetry */ true);
150
188
  }
151
189
  /**
152
- * Core request method with all features
190
+ * Core request method with all features.
153
191
  */
154
- async request(method, path, data) {
192
+ async request(method, path, data, options = {}) {
155
193
  await this.ensureValidToken();
156
194
  const url = `${this.baseUrl}${path}`;
157
- const headers = {};
158
- if (this.authToken) {
159
- headers['Authorization'] = `Bearer ${this.authToken}`;
160
- }
161
- if (data !== undefined) {
162
- headers['Content-Type'] = 'application/json';
163
- }
195
+ let canRefresh = true;
164
196
  const makeRequest = async () => {
197
+ // Build headers fresh each attempt so a refreshed token is picked up.
198
+ const headers = {};
199
+ if (this.authToken) {
200
+ headers['Authorization'] = `Bearer ${this.authToken}`;
201
+ }
202
+ if (data !== undefined) {
203
+ headers['Content-Type'] = 'application/json';
204
+ }
165
205
  const response = await this.fetchWithTimeout(url, {
166
206
  method,
167
207
  headers,
168
208
  body: data ? JSON.stringify(data) : undefined,
169
- });
209
+ }, options.timeoutMs);
170
210
  if (!response.ok) {
171
- return this.handleErrorResponse(response, url, makeRequest);
211
+ const allowRefresh = canRefresh;
212
+ canRefresh = false;
213
+ return this.handleErrorResponse(response, url, method, makeRequest, allowRefresh);
172
214
  }
173
215
  return response;
174
216
  };
@@ -186,20 +228,20 @@ export class ApiClient {
186
228
  throw new Error(`Network error when calling ${url}: ${error instanceof Error ? error.message : String(error)}`);
187
229
  }
188
230
  }
189
- async get(path) {
190
- return this.request('GET', path);
231
+ async get(path, options) {
232
+ return this.request('GET', path, undefined, options);
191
233
  }
192
- async post(path, data) {
193
- return this.request('POST', path, data);
234
+ async post(path, data, options) {
235
+ return this.request('POST', path, data, options);
194
236
  }
195
- async put(path, data) {
196
- return this.request('PUT', path, data);
237
+ async put(path, data, options) {
238
+ return this.request('PUT', path, data, options);
197
239
  }
198
- async patch(path, data) {
199
- return this.request('PATCH', path, data);
240
+ async patch(path, data, options) {
241
+ return this.request('PATCH', path, data, options);
200
242
  }
201
- async delete(path, data) {
202
- return this.request('DELETE', path, data);
243
+ async delete(path, data, options) {
244
+ return this.request('DELETE', path, data, options);
203
245
  }
204
246
  }
205
247
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAyB1D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAE/D,MAAM,OAAO,SAAS;IACZ,OAAO,CAAS;IAChB,SAAS,CAAU;IACnB,YAAY,CAAU;IACtB,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,mBAAmB,GAAG,CAAC,CAAC;IACf,oBAAoB,GAAG,CAAC,CAAC;IAClC,eAAe,GAAyB,IAAI,CAAC;IAErD,YAAY,MAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;aAC1D,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;YAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CACX,+BAA+B,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,GAAG,CACxF,CAAC;YACF,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1D,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBAC7E,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAElD,IAAI,OAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAsB,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,OAAO;QAErC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QAC1C,IAAI,eAAe,GAAG,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAI,EAAoB,EAAE,UAAkB,IAAI,CAAC,UAAU;QACxE,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE/E,2EAA2E;gBAC3E,IACE,KAAK,KAAK,IAAI;oBACd,OAAO,KAAK,KAAK,QAAQ;oBACzB,WAAW,IAAI,KAAK;oBACnB,KAAiC,CAAC,SAAS,EAC5C,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,OAAO,KAAK,OAAO;oBAAE,MAAM;gBAE/B,2CAA2C;gBAC3C,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACzC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,GAAW,EACX,OAAoB,EACpB,YAAoB,IAAI,CAAC,OAAO;QAEhC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,OAAO;gBACV,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,YAAY,GAChB,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;gBACvD,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,MAAc,EACd,UAAkB,EAClB,GAAW,EACX,IAAY,EACZ,SAAkB;QAElB,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,uBAAuB,MAAM,IAAI,UAAU,UAAU,GAAG,eAAe,IAAI,EAAE,CAClE,CAAC;QACd,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,SAAS;YAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,mBAAmB,CAC/B,QAAkB,EAClB,GAAW,EACX,MAAc,EACd,OAAgC,EAChC,UAAmB;QAEnB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;QAErF,oDAAoD;QACpD,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3D,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACnF,CAAC;QAED,yCAAyC;QACzC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,UAA0B,EAAE;QAE5B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,IAAI,UAAU,GAAG,IAAI,CAAC;QAEtB,MAAM,WAAW,GAAG,KAAK,IAAuB,EAAE;YAChD,sEAAsE;YACtE,MAAM,OAAO,GAAgB,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC/C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC1C,GAAG,EACH;gBACE,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9C,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,UAAU,CAAC;gBAChC,UAAU,GAAG,KAAK,CAAC;gBACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,iEAAiE;YACjE,IACE,KAAK,YAAY,KAAK;gBACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACnF,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,gCAAgC;YAChC,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,OAAwB;QACjD,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QACjE,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QACnE,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QACpE,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF"}
@@ -8,49 +8,52 @@
8
8
  * This solves the problem where LLM sees displayId (#123) in responses but
9
9
  * doesn't know to include workspaceId in follow-up tool calls.
10
10
  */
11
+ export interface ResolveResult {
12
+ workspaceId: string | null;
13
+ inferredFromContext: boolean;
14
+ }
11
15
  declare class WorkspaceContextService {
12
16
  private currentWorkspaceId;
13
17
  private lastUpdated;
14
- /**
15
- * Set the current workspace context
16
- * Called when a tool operation uses a specific workspace
17
- */
18
18
  setWorkspace(workspaceId: string): void;
19
- /**
20
- * Get the current workspace context
21
- */
22
19
  getWorkspace(): string | null;
23
- /**
24
- * Check if a string looks like a displayId (not UUID)
25
- */
26
20
  isDisplayId(nodeId: string): boolean;
27
21
  /**
28
- * Resolve workspaceId for a tool call
22
+ * Resolve workspaceId for a tool call given any number of node identifiers,
23
+ * and report whether the result came from stored context (callers can warn
24
+ * the LLM that the value might be stale).
29
25
  *
30
- * If workspaceId is provided, use it and update context.
31
- * If not provided but nodeId is a displayId, use stored context.
26
+ * 1. Explicit providedWorkspaceId always wins and updates the context.
27
+ * 2. Otherwise, if any nodeId looks like a displayId, fall back to the
28
+ * stored context and mark the result as inferred.
29
+ * 3. UUID-only inputs return null + not inferred.
32
30
  *
33
- * @param providedWorkspaceId - The workspaceId provided in the tool call
34
- * @param nodeId - The node identifier (UUID or displayId)
35
- * @returns The resolved workspaceId or null
31
+ * Inputs are deliberately loose (`unknown`) so callers don't have to narrow
32
+ * `args.workspaceId` themselves at every site.
36
33
  */
37
- resolveWorkspaceId(providedWorkspaceId?: string, nodeId?: string): string | null;
34
+ resolve(providedWorkspaceId?: unknown, nodeIds?: ReadonlyArray<unknown>): ResolveResult;
38
35
  /**
39
- * Resolve workspaceId for batch operations with multiple nodeIds
36
+ * Resolve and write the result back into a tool's args object so the
37
+ * downstream API call automatically picks up the inferred workspaceId.
38
+ * Returns the same info as `resolve()`.
40
39
  */
40
+ resolveInto(args: Record<string, unknown>, nodeIds: ReadonlyArray<unknown>, key?: string): ResolveResult;
41
+ /** @deprecated Use `resolve(providedWorkspaceId, [nodeId]).workspaceId`. */
42
+ resolveWorkspaceId(providedWorkspaceId?: string, nodeId?: string): string | null;
43
+ /** @deprecated Use `resolve(providedWorkspaceId, nodeIds).workspaceId`. */
41
44
  resolveWorkspaceIdForBatch(providedWorkspaceId?: string, nodeIds?: string[]): string | null;
42
- /**
43
- * Clear the current context (e.g., on logout or session end)
44
- */
45
45
  clear(): void;
46
- /**
47
- * Get context info for debugging
48
- */
49
46
  getContextInfo(): {
50
47
  workspaceId: string | null;
51
48
  lastUpdated: Date | null;
52
49
  };
53
50
  }
54
51
  export declare const workspaceContext: WorkspaceContextService;
52
+ /**
53
+ * Render the standard "workspaceId was inferred from prior context" notice.
54
+ * Returns an empty string when no notice should be shown so callers can
55
+ * unconditionally prepend it to their result text.
56
+ */
57
+ export declare function inferredWorkspaceNotice(result: ResolveResult, variant?: 'preview' | 'result'): string;
55
58
  export {};
56
59
  //# sourceMappingURL=workspace-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-context.d.ts","sourceRoot":"","sources":["../../src/services/workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,cAAM,uBAAuB;IAC3B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,WAAW,CAAqB;IAExC;;;OAGG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOvC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASpC;;;;;;;;;OASG;IACH,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAgBhF;;OAEG;IACH,0BAA0B,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IAe3F;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,cAAc,IAAI;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE;CAM3E;AAGD,eAAO,MAAM,gBAAgB,yBAAgC,CAAC"}
1
+ {"version":3,"file":"workspace-context.d.ts","sourceRoot":"","sources":["../../src/services/workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,cAAM,uBAAuB;IAC3B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,WAAW,CAAqB;IAExC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOvC,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOpC;;;;;;;;;;;;OAYG;IACH,OAAO,CACL,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,GAAE,aAAa,CAAC,OAAO,CAAM,GACnC,aAAa;IAgBhB;;;;OAIG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAC/B,GAAG,GAAE,MAAsB,GAC1B,aAAa;IAQhB,4EAA4E;IAC5E,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhF,2EAA2E;IAC3E,0BAA0B,CACxB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,IAAI;IAIhB,KAAK,IAAI,IAAI;IAKb,cAAc,IAAI;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE;CAM3E;AAGD,eAAO,MAAM,gBAAgB,yBAAgC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,SAAS,GAAG,QAAoB,GACxC,MAAM,CAOR"}