|
18 | 18 | ---@field model string? |
19 | 19 | ---@field chunk_size number? |
20 | 20 |
|
21 | | -local async = require('plenary.async') |
22 | 21 | local log = require('plenary.log') |
23 | | -local curl = require('plenary.curl') |
24 | 22 | local prompts = require('CopilotChat.prompts') |
25 | 23 | local tiktoken = require('CopilotChat.tiktoken') |
26 | 24 | local utils = require('CopilotChat.utils') |
@@ -49,32 +47,6 @@ local VERSION_HEADERS = { |
49 | 47 | -- ['x-github-api-version'] = '2023-07-07', |
50 | 48 | } |
51 | 49 |
|
52 | | -local curl_get = async.wrap(function(url, opts, callback) |
53 | | - opts = vim.tbl_deep_extend('force', opts, { |
54 | | - callback = callback, |
55 | | - on_error = function(err) |
56 | | - err = err and err.stderr or vim.inspect(err) |
57 | | - callback(nil, err) |
58 | | - end, |
59 | | - }) |
60 | | - curl.get(url, opts) |
61 | | -end, 3) |
62 | | - |
63 | | -local curl_post = async.wrap(function(url, opts, callback) |
64 | | - opts = vim.tbl_deep_extend('force', opts, { |
65 | | - callback = callback, |
66 | | - on_error = function(err) |
67 | | - err = err and err.stderr or vim.inspect(err) |
68 | | - callback(nil, err) |
69 | | - end, |
70 | | - }) |
71 | | - curl.post(url, opts) |
72 | | -end, 3) |
73 | | - |
74 | | -local tiktoken_load = async.wrap(function(tokenizer, callback) |
75 | | - tiktoken.load(tokenizer, callback) |
76 | | -end, 2) |
77 | | - |
78 | 50 | --- Get the github oauth cached token |
79 | 51 | ---@return string|nil |
80 | 52 | local function get_cached_token() |
@@ -384,7 +356,7 @@ function Copilot:authenticate() |
384 | 356 | ['accept'] = 'application/json', |
385 | 357 | }, VERSION_HEADERS) |
386 | 358 |
|
387 | | - local response, err = curl_get( |
| 359 | + local response, err = utils.curl_get( |
388 | 360 | 'https://api.github.com/copilot_internal/v2/token', |
389 | 361 | vim.tbl_extend('force', self.request_args, { |
390 | 362 | headers = headers, |
@@ -427,7 +399,7 @@ function Copilot:fetch_models() |
427 | 399 | return self.models |
428 | 400 | end |
429 | 401 |
|
430 | | - local response, err = curl_get( |
| 402 | + local response, err = utils.curl_get( |
431 | 403 | 'https://api.githubcopilot.com/models', |
432 | 404 | vim.tbl_extend('force', self.request_args, { |
433 | 405 | headers = self:authenticate(), |
@@ -468,7 +440,7 @@ function Copilot:fetch_agents() |
468 | 440 | return self.agents |
469 | 441 | end |
470 | 442 |
|
471 | | - local response, err = curl_get( |
| 443 | + local response, err = utils.curl_get( |
472 | 444 | 'https://api.githubcopilot.com/agents', |
473 | 445 | vim.tbl_extend('force', self.request_args, { |
474 | 446 | headers = self:authenticate(), |
@@ -504,7 +476,7 @@ function Copilot:enable_policy(model) |
504 | 476 | return |
505 | 477 | end |
506 | 478 |
|
507 | | - local response, err = curl_post( |
| 479 | + local response, err = utils.curl_post( |
508 | 480 | 'https://api.githubcopilot.com/models/' .. model .. '/policy', |
509 | 481 | vim.tbl_extend('force', self.request_args, { |
510 | 482 | headers = self:authenticate(), |
@@ -565,7 +537,7 @@ function Copilot:ask(prompt, opts) |
565 | 537 | local tokenizer = capabilities.tokenizer |
566 | 538 | log.debug('Max tokens: ' .. max_tokens) |
567 | 539 | log.debug('Tokenizer: ' .. tokenizer) |
568 | | - tiktoken_load(tokenizer) |
| 540 | + tiktoken.load(tokenizer) |
569 | 541 |
|
570 | 542 | local generated_messages = {} |
571 | 543 | local selection_messages = generate_selection_messages(selection) |
@@ -740,7 +712,7 @@ function Copilot:ask(prompt, opts) |
740 | 712 | args.stream = stream_func |
741 | 713 | end |
742 | 714 |
|
743 | | - local response, err = curl_post(url, args) |
| 715 | + local response, err = utils.curl_post(url, args) |
744 | 716 |
|
745 | 717 | if self.current_job ~= job_id then |
746 | 718 | return nil, nil, nil |
@@ -902,7 +874,7 @@ function Copilot:embed(inputs, opts) |
902 | 874 | for i = 1, #uncached_embeddings, chunk_size do |
903 | 875 | local chunk = vim.list_slice(uncached_embeddings, i, i + chunk_size - 1) |
904 | 876 | local body = vim.json.encode(generate_embedding_request(chunk, model)) |
905 | | - local response, err = curl_post( |
| 877 | + local response, err = utils.curl_post( |
906 | 878 | 'https://api.githubcopilot.com/embeddings', |
907 | 879 | vim.tbl_extend('force', self.request_args, { |
908 | 880 | headers = self:authenticate(), |
|
0 commit comments