@newpeak/barista-cli 0.2.264 → 0.2.265

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.
@@ -3838,6 +3838,45 @@ export const apiClient = {
3838
3838
  return handleApiErrorTeamIssue(error);
3839
3839
  }
3840
3840
  },
3841
+ /**
3842
+ * Resolve a user-supplied team issue reference to a 19-digit snowflake teamIssueId.
3843
+ * - 19-digit pure numeric input → treated as teamIssueId (passed through, no lookup).
3844
+ * - Anything else → treated as teamIssueCode, reverse-looked-up via the page endpoint
3845
+ * (tenant-isolated). Not found → structured ISSUE_NOT_FOUND (never the ambiguous A958001).
3846
+ */
3847
+ async resolveTeamIssueReference(environment, tenant, ref) {
3848
+ const trimmed = (ref || '').trim();
3849
+ if (!trimmed) {
3850
+ return { success: false, error: { code: 'INPUT_ERROR', message: 'Issue ID is required' } };
3851
+ }
3852
+ if (/^\d{19}$/.test(trimmed)) {
3853
+ return { success: true, teamIssueId: trimmed };
3854
+ }
3855
+ const lookup = await apiClient.listTeamIssues(environment, tenant, {
3856
+ pageNo: 1,
3857
+ pageSize: 20,
3858
+ teamIssueCode: trimmed,
3859
+ });
3860
+ if (!lookup.success) {
3861
+ return {
3862
+ success: false,
3863
+ error: lookup.error || { code: 'LOOKUP_FAILED', message: 'Failed to resolve issue code ' + trimmed },
3864
+ };
3865
+ }
3866
+ const listData = lookup.data;
3867
+ const rows = listData?.rows || listData?.items || [];
3868
+ const matched = rows.find((r) => r.teamIssueCode === trimmed) || rows[0];
3869
+ if (!matched) {
3870
+ return {
3871
+ success: false,
3872
+ error: {
3873
+ code: 'ISSUE_NOT_FOUND',
3874
+ message: `Team issue with code ${trimmed} was not found in tenant ${tenant}. Use 'barista liberica teams issues list --issue-code ${trimmed}' to check, or pass the 19-digit teamIssueId.`,
3875
+ },
3876
+ };
3877
+ }
3878
+ return { success: true, teamIssueId: matched.teamIssueId };
3879
+ },
3841
3880
  async getTeamIssue(environment, tenant, teamIssueId) {
3842
3881
  try {
3843
3882
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
@@ -3850,11 +3889,15 @@ export const apiClient = {
3850
3889
  },
3851
3890
  };
3852
3891
  }
3892
+ const resolved = await apiClient.resolveTeamIssueReference(environment, tenant, teamIssueId);
3893
+ if (!resolved.success) {
3894
+ return { success: false, error: resolved.error };
3895
+ }
3853
3896
  const client = createAPIClient('liberica', environment, tenant);
3854
3897
  client.setAuthToken(token);
3855
3898
  const response = await client
3856
3899
  .getClient()
3857
- .get(`/api/enterprise/team/issue/detail?teamIssueId=${teamIssueId}`);
3900
+ .get(`/api/enterprise/team/issue/detail?teamIssueId=${resolved.teamIssueId}`);
3858
3901
  return response.data;
3859
3902
  }
3860
3903
  catch (error) {
@@ -4057,11 +4100,16 @@ export const apiClient = {
4057
4100
  },
4058
4101
  };
4059
4102
  }
4103
+ const resolved = await apiClient.resolveTeamIssueReference(environment, tenant, data.teamIssueId);
4104
+ if (!resolved.success) {
4105
+ return { success: false, error: resolved.error };
4106
+ }
4107
+ const requestBody = { ...data, teamIssueId: resolved.teamIssueId };
4060
4108
  const client = createAPIClient('liberica', environment, tenant);
4061
4109
  client.setAuthToken(token);
4062
4110
  const response = await client
4063
4111
  .getClient()
4064
- .post('/api/enterprise/team/issue/edit', data);
4112
+ .post('/api/enterprise/team/issue/edit', requestBody);
4065
4113
  return response.data;
4066
4114
  }
4067
4115
  catch (error) {
@@ -4103,11 +4151,15 @@ export const apiClient = {
4103
4151
  },
4104
4152
  };
4105
4153
  }
4154
+ const resolved = await apiClient.resolveTeamIssueReference(environment, tenant, teamIssueId);
4155
+ if (!resolved.success) {
4156
+ return { success: false, error: resolved.error };
4157
+ }
4106
4158
  const client = createAPIClient('liberica', environment, tenant);
4107
4159
  client.setAuthToken(token);
4108
4160
  const response = await client
4109
4161
  .getClient()
4110
- .post('/api/enterprise/team/issue/delete', { teamIssueId });
4162
+ .post('/api/enterprise/team/issue/delete', { teamIssueId: resolved.teamIssueId });
4111
4163
  return response.data;
4112
4164
  }
4113
4165
  catch (error) {
@@ -4126,11 +4178,16 @@ export const apiClient = {
4126
4178
  },
4127
4179
  };
4128
4180
  }
4181
+ const resolved = await apiClient.resolveTeamIssueReference(environment, tenant, data.issueId);
4182
+ if (!resolved.success) {
4183
+ return { success: false, error: resolved.error };
4184
+ }
4185
+ const requestBody = { ...data, issueId: resolved.teamIssueId };
4129
4186
  const client = createAPIClient('liberica', environment, tenant);
4130
4187
  client.setAuthToken(token);
4131
4188
  const response = await client
4132
4189
  .getClient()
4133
- .post('/api/enterprise/team/issue/comment/add', data);
4190
+ .post('/api/enterprise/team/issue/comment/add', requestBody);
4134
4191
  return response.data;
4135
4192
  }
4136
4193
  catch (error) {
@@ -4149,10 +4206,14 @@ export const apiClient = {
4149
4206
  },
4150
4207
  };
4151
4208
  }
4209
+ const resolved = await apiClient.resolveTeamIssueReference(environment, tenant, params.issueId);
4210
+ if (!resolved.success) {
4211
+ return { success: false, error: resolved.error };
4212
+ }
4152
4213
  const client = createAPIClient('liberica', environment, tenant);
4153
4214
  client.setAuthToken(token);
4154
4215
  const queryParams = new URLSearchParams();
4155
- queryParams.append('issueId', params.issueId);
4216
+ queryParams.append('issueId', resolved.teamIssueId);
4156
4217
  if (params.pageNo)
4157
4218
  queryParams.append('pageNo', params.pageNo.toString());
4158
4219
  if (params.pageSize)