@unifiedmemory/cli 1.3.7 → 1.3.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.
@@ -1,6 +1,7 @@
1
1
  import { getToken, saveToken } from './token-storage.js';
2
2
  import { config } from './config.js';
3
3
  import { parseJWT } from './jwt-utils.js';
4
+ import { getOrgScopedToken } from './clerk-api.js';
4
5
 
5
6
  /**
6
7
  * Check if token has expired
@@ -71,13 +72,36 @@ export async function refreshAccessToken(tokenData) {
71
72
 
72
73
  const newTokenData = await response.json();
73
74
 
74
- // Parse new JWT
75
- const decoded = parseJWT(newTokenData.id_token || newTokenData.access_token);
75
+ // Parse refreshed JWT
76
+ const refreshedToken = newTokenData.id_token || newTokenData.access_token;
77
+ let finalIdToken = newTokenData.id_token;
78
+ let decoded = parseJWT(refreshedToken);
79
+
80
+ // Debug: log what we got from refresh
81
+ console.error(` Refreshed token has sid: ${decoded?.sid ? 'yes' : 'no'}`);
82
+ console.error(` selectedOrg: ${tokenData.selectedOrg?.id || 'none'}`);
83
+
84
+ // If we have org context, get org-scoped token to ensure JWT has org claims
85
+ if (tokenData.selectedOrg?.id && decoded?.sid) {
86
+ try {
87
+ const orgToken = await getOrgScopedToken(
88
+ decoded.sid,
89
+ tokenData.selectedOrg.id,
90
+ refreshedToken
91
+ );
92
+ finalIdToken = orgToken.jwt;
93
+ decoded = parseJWT(orgToken.jwt);
94
+ } catch (error) {
95
+ // Log warning but continue with base token
96
+ // The subsequent API call may fail, prompting re-login
97
+ console.error(`⚠️ Could not refresh org-scoped token: ${error.message}`);
98
+ }
99
+ }
76
100
 
77
101
  // Build updated token object, preserving selectedOrg
78
102
  const updatedToken = {
79
103
  accessToken: newTokenData.access_token,
80
- idToken: newTokenData.id_token,
104
+ idToken: finalIdToken,
81
105
  tokenType: newTokenData.token_type || 'Bearer',
82
106
  expiresIn: newTokenData.expires_in,
83
107
  receivedAt: Date.now(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unifiedmemory/cli",
3
- "version": "1.3.7",
3
+ "version": "1.3.9",
4
4
  "description": "UnifiedMemory CLI - AI code assistant integration",
5
5
  "main": "index.js",
6
6
  "type": "module",