nolo-cli 0.108.0-alpha.1 → 0.108.0-alpha.2

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 (72) hide show
  1. package/{_executeModel-GTYLDSJW.js → _executeModel-BY3P5LBB.js} +12 -12
  2. package/{agentDeleteCommand-OWYHN6D6.js → agentDeleteCommand-66KXCSRR.js} +7 -6
  3. package/{agentEmailCommands-C6J2KUL2.js → agentEmailCommands-63UTONDK.js} +18 -17
  4. package/{agentListCommands-B2V4YAC4.js → agentListCommands-NXCOTTZL.js} +9 -8
  5. package/{agentMachineCommands-UDEXV472.js → agentMachineCommands-Z6RGPZSG.js} +7 -6
  6. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-X3UNW77C.js} +1 -1
  7. package/{agentRecordCommands-XBVDEYVC.js → agentRecordCommands-JP54ZWND.js} +17 -16
  8. package/{agentRunCommand-V6RTNFRH.js → agentRunCommand-RMQWWSHF.js} +17 -16
  9. package/{agentRuntimeLocal-KCMC2TBD.js → agentRuntimeLocal-E67CTV45.js} +5 -4
  10. package/{agentSlice-TNH7BSUC.js → agentSlice-DG5TIQHE.js} +1 -1
  11. package/{appDeleteCommands-JEPA3EWE.js → appDeleteCommands-Z36CLGUK.js} +8 -7
  12. package/{appDeployCommands-UTB76XFM.js → appDeployCommands-ECMUWG6S.js} +8 -7
  13. package/{appDeployStatusCommands-LGHF2SBD.js → appDeployStatusCommands-CL24TDMA.js} +8 -7
  14. package/{appGetCommands-PX2BFHOB.js → appGetCommands-ITHGOYGJ.js} +8 -7
  15. package/{appListCommands-BSMPTWKC.js → appListCommands-EEOSI6RC.js} +8 -7
  16. package/{authCommand-YW42YZA4.js → authCommand-HGP2XTKC.js} +99 -7
  17. package/{chatQueueReduxAdapter-XMFWRG3P.js → chatQueueReduxAdapter-DKLWTT3G.js} +2 -2
  18. package/{chunk-PQFHGD77.js → chunk-2OASQKU2.js} +1 -1
  19. package/{chunk-62CATUYY.js → chunk-4NNTATRH.js} +12 -769
  20. package/{chunk-EEGDMATE.js → chunk-AODJ7WSF.js} +3 -3
  21. package/{chunk-CSC3CU4K.js → chunk-CW67PN7L.js} +3 -3
  22. package/{chunk-7U6P3PHS.js → chunk-DOTZ5GTO.js} +1 -1
  23. package/chunk-FV3JEYR3.js +870 -0
  24. package/{chunk-RRM7AJ3M.js → chunk-G4VIHCGJ.js} +3 -3
  25. package/chunk-GMZLP5DV.js +82 -0
  26. package/{chunk-UZGQNTVW.js → chunk-GNCCNNZD.js} +3 -1
  27. package/{chunk-GO3Z72MT.js → chunk-H4AHY5BU.js} +3 -80
  28. package/{chunk-NA35QHCF.js → chunk-HSSRGGXJ.js} +1 -1
  29. package/{chunk-GEPUP7OO.js → chunk-IQPFGYO3.js} +1 -1
  30. package/{chunk-XT35TTFG.js → chunk-KZJP33ZK.js} +1 -1
  31. package/{chunk-GPCZ7UXG.js → chunk-LJ5VW2UJ.js} +1 -1
  32. package/{chunk-AG2AZ6GX.js → chunk-LPIYPEME.js} +9 -9
  33. package/{chunk-AEOE4Z6Q.js → chunk-LWKP7AWH.js} +1 -1
  34. package/{chunk-QQWJUHSL.js → chunk-P3GYTNDF.js} +1 -1
  35. package/{chunk-ETI2NYVF.js → chunk-PHXD6JTX.js} +1 -1
  36. package/{chunk-TYYSADX4.js → chunk-PWBDVI4R.js} +5 -5
  37. package/{chunk-KQ4ONNQD.js → chunk-QU7KDSZX.js} +1 -1
  38. package/{chunk-RRPWH4LX.js → chunk-RVE4DCV3.js} +2 -2
  39. package/{chunk-R7RHOSZU.js → chunk-RZGLXO2B.js} +26 -22
  40. package/{chunk-DUK4OQNO.js → chunk-SYXOBWOC.js} +4 -4
  41. package/{chunk-L7OXGGBN.js → chunk-T3GEOSRJ.js} +2 -2
  42. package/{chunk-QWL5QZGU.js → chunk-TR22GEUU.js} +2 -2
  43. package/{chunk-BVGTK7MR.js → chunk-UDIIVXKA.js} +41 -28
  44. package/{chunk-PVZT43MU.js → chunk-YTLRHRH3.js} +3 -3
  45. package/{chunk-TWQWYIMJ.js → chunk-YWIEQS6H.js} +8 -8
  46. package/{chunk-53HEEOTT.js → chunk-Z5625XML.js} +1 -1
  47. package/{contentThunks-3Z6NAUW6.js → contentThunks-JHK6X2KU.js} +3 -3
  48. package/{createAgentAutomationAction-OBH7GPW5.js → createAgentAutomationAction-7HX7KBES.js} +3 -3
  49. package/{createDialogAction-7XW3RX2A.js → createDialogAction-VUUUZL54.js} +4 -4
  50. package/{createPageAction-JJ7UUTWC.js → createPageAction-QWNMGO3O.js} +3 -3
  51. package/{dialogCommands-H7FPUYUQ.js → dialogCommands-EN7TYD3I.js} +8 -7
  52. package/{dialogSlice-6Z2BPC3T.js → dialogSlice-P2K47T3P.js} +2 -2
  53. package/{docCreateCommands-WRG2JLGM.js → docCreateCommands-43JKQEIH.js} +7 -6
  54. package/{docDeleteCommands-SHWJIBJS.js → docDeleteCommands-RL6D46XE.js} +8 -7
  55. package/{docReadCommands-WJN3WT6O.js → docReadCommands-TOEUEQDG.js} +7 -6
  56. package/{docStore-7WUS6XXX.js → docStore-3AHKTJRI.js} +1 -1
  57. package/{docUpdateCommands-IE32IL6O.js → docUpdateCommands-FWU5G2XB.js} +7 -6
  58. package/{handleSendMessageAction-GUBOMCGM.js → handleSendMessageAction-ID5IKXUE.js} +2 -2
  59. package/index.js +51 -51
  60. package/{machineCommands-KSN4COGR.js → machineCommands-TTKK4F7C.js} +16 -15
  61. package/{machineWsRunDispatch-AAG6PDBY.js → machineWsRunDispatch-RX64L3ET.js} +16 -15
  62. package/package.json +1 -1
  63. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-XI3WUPTI.js} +2 -2
  64. package/{providerRegistry-757OWH3O.js → providerRegistry-KEPWWGXD.js} +2 -2
  65. package/{readlineWorkspace-HO62DKCG.js → readlineWorkspace-KIMUDPPV.js} +20 -19
  66. package/{runAgentClientLoop-JLRJIF3F.js → runAgentClientLoop-AN4WIRPQ.js} +10 -10
  67. package/{spaceCommands-5GLCWZPO.js → spaceCommands-NA4JMIGT.js} +7 -6
  68. package/{streamAgentChatTurn-DZ3PP7ZH.js → streamAgentChatTurn-3TYTHZPJ.js} +11 -11
  69. package/{tools-XA4ZWLH4.js → tools-34SEJSLQ.js} +8 -8
  70. package/{tuiSummaryLlmCaller-OHHFTHMG.js → tuiSummaryLlmCaller-UFGFOIIW.js} +2 -1
  71. package/{updateDialogTitleAction-VWZT4J6J.js → updateDialogTitleAction-RDHNT265.js} +3 -3
  72. package/chunk-Q5FJJ6XI.js +0 -103
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-QQWJUHSL.js";
3
+ } from "./chunk-P3GYTNDF.js";
4
4
  import {
5
5
  generateRequestBody,
6
6
  mergeReferences,
7
7
  performFetchRequest,
8
8
  sanitizeOutboundBody
9
- } from "./chunk-DUK4OQNO.js";
9
+ } from "./chunk-SYXOBWOC.js";
10
10
  import "./chunk-EOARMOVD.js";
11
11
  import "./chunk-HS7MLR74.js";
12
12
  import {
13
13
  findToolExecutor,
14
14
  getToolResultErrorData
15
- } from "./chunk-AG2AZ6GX.js";
15
+ } from "./chunk-LPIYPEME.js";
16
16
  import "./chunk-5UTFL4QJ.js";
17
17
  import "./chunk-NF64D32W.js";
18
18
  import "./chunk-3L2WKC3W.js";
19
19
  import "./chunk-3VNWWVKB.js";
20
- import "./chunk-PQFHGD77.js";
20
+ import "./chunk-2OASQKU2.js";
21
21
  import "./chunk-KQHGZWSV.js";
22
22
  import "./chunk-J4MOO56S.js";
23
23
  import "./chunk-6Z7MY3V7.js";
@@ -28,18 +28,18 @@ import "./chunk-FZGV4FGK.js";
28
28
  import "./chunk-MEYIRKDN.js";
29
29
  import "./chunk-63W5N6P3.js";
30
30
  import "./chunk-VF4K2QE6.js";
31
- import "./chunk-QWL5QZGU.js";
32
- import "./chunk-RRPWH4LX.js";
33
- import "./chunk-7U6P3PHS.js";
31
+ import "./chunk-TR22GEUU.js";
32
+ import "./chunk-RVE4DCV3.js";
33
+ import "./chunk-DOTZ5GTO.js";
34
34
  import "./chunk-ZJ7UHBJS.js";
35
35
  import {
36
36
  updateTokensAction
37
- } from "./chunk-TWQWYIMJ.js";
37
+ } from "./chunk-YWIEQS6H.js";
38
38
  import "./chunk-MC4XLIJ7.js";
39
39
  import "./chunk-3BMYXEUW.js";
40
40
  import "./chunk-YYLHWIW6.js";
41
41
  import "./chunk-AGGIDPCZ.js";
42
- import "./chunk-PVZT43MU.js";
42
+ import "./chunk-YTLRHRH3.js";
43
43
  import "./chunk-BFDFRLLQ.js";
44
44
  import "./chunk-5RGU3J7P.js";
45
45
  import "./chunk-6YTOJY35.js";
@@ -53,7 +53,7 @@ import "./chunk-MRIHM22T.js";
53
53
  import "./chunk-PUOC4YRO.js";
54
54
  import "./chunk-IIVGDG4I.js";
55
55
  import "./chunk-FDTR4QJ6.js";
56
- import "./chunk-UZGQNTVW.js";
56
+ import "./chunk-GNCCNNZD.js";
57
57
  import "./chunk-6OZ36FXI.js";
58
58
  import "./chunk-HKNXJGEC.js";
59
59
  import "./chunk-P5EVSOPA.js";
@@ -3,17 +3,18 @@ import {
3
3
  } from "./chunk-M3JEW6N6.js";
4
4
  import {
5
5
  readLiveDbRecordAfterTombstoneMerge
6
- } from "./chunk-GEPUP7OO.js";
6
+ } from "./chunk-IQPFGYO3.js";
7
7
  import {
8
8
  readDbRecord,
9
9
  writeAgentRecord
10
- } from "./chunk-AEOE4Z6Q.js";
10
+ } from "./chunk-LWKP7AWH.js";
11
11
  import "./chunk-Z77CRGTW.js";
12
12
  import "./chunk-SV5IJK6K.js";
13
13
  import "./chunk-KQHGZWSV.js";
14
- import "./chunk-62CATUYY.js";
15
- import "./chunk-GO3Z72MT.js";
16
- import "./chunk-Q5FJJ6XI.js";
14
+ import "./chunk-4NNTATRH.js";
15
+ import "./chunk-H4AHY5BU.js";
16
+ import "./chunk-FV3JEYR3.js";
17
+ import "./chunk-GMZLP5DV.js";
17
18
  import "./chunk-ZNFJWEN4.js";
18
19
  import "./chunk-4MK3I7Y4.js";
19
20
  import "./chunk-CQ3WA2NE.js";
@@ -23,7 +24,7 @@ import "./chunk-MRIHM22T.js";
23
24
  import "./chunk-PUOC4YRO.js";
24
25
  import "./chunk-IIVGDG4I.js";
25
26
  import "./chunk-FDTR4QJ6.js";
26
- import "./chunk-UZGQNTVW.js";
27
+ import "./chunk-GNCCNNZD.js";
27
28
  import "./chunk-6OZ36FXI.js";
28
29
  import "./chunk-2MBTWINN.js";
29
30
  import "./chunk-HKNXJGEC.js";
@@ -16,11 +16,11 @@ import {
16
16
  readStreamChunk,
17
17
  sendOpenAICompletionsRequest,
18
18
  updateTotalUsage
19
- } from "./chunk-TYYSADX4.js";
19
+ } from "./chunk-PWBDVI4R.js";
20
20
  import "./chunk-JEXVIMYZ.js";
21
21
  import {
22
22
  prepareTools
23
- } from "./chunk-L7OXGGBN.js";
23
+ } from "./chunk-T3GEOSRJ.js";
24
24
  import {
25
25
  INVALID_TOOL_ARGS_REPLACEMENT,
26
26
  buildInvalidToolCallSelfHealResult,
@@ -38,7 +38,7 @@ import {
38
38
  sanitizeOutboundResponsesInput,
39
39
  selectResponsesConversationState,
40
40
  updateResponsesConversationState
41
- } from "./chunk-DUK4OQNO.js";
41
+ } from "./chunk-SYXOBWOC.js";
42
42
  import "./chunk-EOARMOVD.js";
43
43
  import "./chunk-HS7MLR74.js";
44
44
  import {
@@ -46,12 +46,12 @@ import {
46
46
  getAllToolRuns,
47
47
  resolveAgentRecommendedSkillNames,
48
48
  resolveAgentRequiredPackIds
49
- } from "./chunk-AG2AZ6GX.js";
49
+ } from "./chunk-LPIYPEME.js";
50
50
  import "./chunk-5UTFL4QJ.js";
51
51
  import "./chunk-NF64D32W.js";
52
52
  import "./chunk-3L2WKC3W.js";
53
53
  import "./chunk-3VNWWVKB.js";
54
- import "./chunk-PQFHGD77.js";
54
+ import "./chunk-2OASQKU2.js";
55
55
  import "./chunk-KQHGZWSV.js";
56
56
  import "./chunk-J4MOO56S.js";
57
57
  import "./chunk-6Z7MY3V7.js";
@@ -80,11 +80,11 @@ import "./chunk-63W5N6P3.js";
80
80
  import "./chunk-VF4K2QE6.js";
81
81
  import {
82
82
  getDocState
83
- } from "./chunk-QWL5QZGU.js";
84
- import "./chunk-RRPWH4LX.js";
83
+ } from "./chunk-TR22GEUU.js";
84
+ import "./chunk-RVE4DCV3.js";
85
85
  import {
86
86
  getTableState
87
- } from "./chunk-7U6P3PHS.js";
87
+ } from "./chunk-DOTZ5GTO.js";
88
88
  import {
89
89
  getCurrentSpaceId,
90
90
  getCurrentSpaceIdRaw,
@@ -109,12 +109,12 @@ import {
109
109
  shouldBlockForGptPro,
110
110
  updateTokens,
111
111
  updateToolMessage
112
- } from "./chunk-TWQWYIMJ.js";
112
+ } from "./chunk-YWIEQS6H.js";
113
113
  import "./chunk-MC4XLIJ7.js";
114
114
  import "./chunk-3BMYXEUW.js";
115
115
  import "./chunk-YYLHWIW6.js";
116
116
  import "./chunk-AGGIDPCZ.js";
117
- import "./chunk-PVZT43MU.js";
117
+ import "./chunk-YTLRHRH3.js";
118
118
  import {
119
119
  createCliChatTurnStream,
120
120
  getCliChatSession,
@@ -167,7 +167,7 @@ import {
167
167
  resolveRuntimeToolSurfaceForAgent
168
168
  } from "./chunk-IIVGDG4I.js";
169
169
  import "./chunk-FDTR4QJ6.js";
170
- import "./chunk-UZGQNTVW.js";
170
+ import "./chunk-GNCCNNZD.js";
171
171
  import "./chunk-6OZ36FXI.js";
172
172
  import {
173
173
  getModelContextWindow,
@@ -8,12 +8,12 @@ import {
8
8
  toolQueryFunc,
9
9
  toolQueryFunctionSchema,
10
10
  toolRegistry
11
- } from "./chunk-AG2AZ6GX.js";
11
+ } from "./chunk-LPIYPEME.js";
12
12
  import "./chunk-5UTFL4QJ.js";
13
13
  import "./chunk-NF64D32W.js";
14
14
  import "./chunk-3L2WKC3W.js";
15
15
  import "./chunk-3VNWWVKB.js";
16
- import "./chunk-PQFHGD77.js";
16
+ import "./chunk-2OASQKU2.js";
17
17
  import "./chunk-KQHGZWSV.js";
18
18
  import "./chunk-J4MOO56S.js";
19
19
  import "./chunk-6Z7MY3V7.js";
@@ -24,16 +24,16 @@ import "./chunk-FZGV4FGK.js";
24
24
  import "./chunk-MEYIRKDN.js";
25
25
  import "./chunk-63W5N6P3.js";
26
26
  import "./chunk-VF4K2QE6.js";
27
- import "./chunk-QWL5QZGU.js";
28
- import "./chunk-RRPWH4LX.js";
29
- import "./chunk-7U6P3PHS.js";
27
+ import "./chunk-TR22GEUU.js";
28
+ import "./chunk-RVE4DCV3.js";
29
+ import "./chunk-DOTZ5GTO.js";
30
30
  import "./chunk-ZJ7UHBJS.js";
31
- import "./chunk-TWQWYIMJ.js";
31
+ import "./chunk-YWIEQS6H.js";
32
32
  import "./chunk-MC4XLIJ7.js";
33
33
  import "./chunk-3BMYXEUW.js";
34
34
  import "./chunk-YYLHWIW6.js";
35
35
  import "./chunk-AGGIDPCZ.js";
36
- import "./chunk-PVZT43MU.js";
36
+ import "./chunk-YTLRHRH3.js";
37
37
  import "./chunk-BFDFRLLQ.js";
38
38
  import "./chunk-5RGU3J7P.js";
39
39
  import "./chunk-6YTOJY35.js";
@@ -49,7 +49,7 @@ import "./chunk-Q554LLSI.js";
49
49
  import "./chunk-KHCLMKZZ.js";
50
50
  import "./chunk-IIVGDG4I.js";
51
51
  import "./chunk-FDTR4QJ6.js";
52
- import "./chunk-UZGQNTVW.js";
52
+ import "./chunk-GNCCNNZD.js";
53
53
  import "./chunk-6OZ36FXI.js";
54
54
  import "./chunk-HKNXJGEC.js";
55
55
  import "./chunk-P5EVSOPA.js";
@@ -7,7 +7,8 @@ import {
7
7
  canUsePlatformChatProvider,
8
8
  parsePlatformChatCompletionResponse,
9
9
  resolvePlatformChatProviderConfig
10
- } from "./chunk-GO3Z72MT.js";
10
+ } from "./chunk-H4AHY5BU.js";
11
+ import "./chunk-GMZLP5DV.js";
11
12
  import "./chunk-CQ3WA2NE.js";
12
13
  import "./chunk-N7J63Q6C.js";
13
14
  import "./chunk-PUOC4YRO.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  updateContentTitle
3
- } from "./chunk-7U6P3PHS.js";
3
+ } from "./chunk-DOTZ5GTO.js";
4
4
  import "./chunk-ZJ7UHBJS.js";
5
5
  import {
6
6
  isAssistantToolStub,
7
7
  selectAllMsgs
8
- } from "./chunk-TWQWYIMJ.js";
8
+ } from "./chunk-YWIEQS6H.js";
9
9
  import {
10
10
  BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
11
11
  BUILTIN_TITLE_LLM_CONFIG
@@ -15,7 +15,7 @@ import "./chunk-YYLHWIW6.js";
15
15
  import "./chunk-AGGIDPCZ.js";
16
16
  import {
17
17
  runLlm
18
- } from "./chunk-PVZT43MU.js";
18
+ } from "./chunk-YTLRHRH3.js";
19
19
  import "./chunk-BFDFRLLQ.js";
20
20
  import "./chunk-5RGU3J7P.js";
21
21
  import "./chunk-6YTOJY35.js";
package/chunk-Q5FJJ6XI.js DELETED
@@ -1,103 +0,0 @@
1
- // packages/agent-runtime/devinOAuth.ts
2
- import { existsSync, readFileSync } from "node:fs";
3
- import { homedir } from "node:os";
4
- import { join } from "node:path";
5
- var DEVIN_CONNECT_URL = "https://server.codeium.com/exa.api_server_pb.ApiServerService/GetChatMessage";
6
- function buildDevinAuthUrl(orgId) {
7
- const cleanOrg = orgId?.trim();
8
- if (cleanOrg) {
9
- return `https://app.devin.ai/org/${encodeURIComponent(cleanOrg)}/settings/keys`;
10
- }
11
- return "https://app.devin.ai/settings/keys";
12
- }
13
- function extractDevinToken(input) {
14
- const raw = input?.trim();
15
- if (!raw) return null;
16
- if (/^https?:\/\//i.test(raw)) {
17
- try {
18
- const url = new URL(raw);
19
- const queryToken = url.searchParams.get("token") || url.searchParams.get("access_token") || url.searchParams.get("auth_token");
20
- if (queryToken?.trim()) return queryToken.trim();
21
- if (url.hash) {
22
- const hashParams = new URLSearchParams(url.hash.replace(/^#/, ""));
23
- const hashToken = hashParams.get("token") || hashParams.get("access_token") || hashParams.get("auth_token");
24
- if (hashToken?.trim()) return hashToken.trim();
25
- }
26
- } catch {
27
- }
28
- }
29
- return raw || null;
30
- }
31
- function parseDevinCredentialsToml(content) {
32
- for (const line of content.split(/\r?\n/)) {
33
- const cogMatch = line.match(/(cog_[A-Za-z0-9_-]+)/);
34
- if (cogMatch?.[1]) {
35
- return cogMatch[1].trim();
36
- }
37
- const match = line.match(
38
- /^\s*(?:windsurf_api_key|devin_api_key|api_key|api_token|token)\s*=\s*"([^"]+)"\s*$/i
39
- );
40
- if (match?.[1]) {
41
- return match[1].trim();
42
- }
43
- }
44
- return null;
45
- }
46
- function detectLocalDevinCredentials(options) {
47
- const baseHome = options?.homeDir || homedir();
48
- const xdgData = process.env.XDG_DATA_HOME;
49
- const candidateCliPaths = [
50
- xdgData ? join(xdgData, "devin", "credentials.toml") : null,
51
- join(baseHome, ".local", "share", "devin", "credentials.toml"),
52
- process.env.APPDATA ? join(process.env.APPDATA, "devin", "credentials.toml") : null
53
- ].filter((p) => Boolean(p));
54
- for (const credPath of candidateCliPaths) {
55
- if (existsSync(credPath)) {
56
- try {
57
- const content = readFileSync(credPath, "utf-8");
58
- const token = parseDevinCredentialsToml(content);
59
- if (token) {
60
- return {
61
- found: true,
62
- token,
63
- source: "devin-cli",
64
- sourcePath: credPath
65
- };
66
- }
67
- } catch {
68
- }
69
- }
70
- }
71
- const codeiumPath = join(baseHome, ".codeium", "config.json");
72
- if (existsSync(codeiumPath)) {
73
- try {
74
- const parsed = JSON.parse(readFileSync(codeiumPath, "utf-8"));
75
- const token = parsed.apiKey || parsed.api_key;
76
- if (token?.trim()) {
77
- return {
78
- found: true,
79
- token: token.trim(),
80
- source: "codeium-config",
81
- sourcePath: codeiumPath
82
- };
83
- }
84
- } catch {
85
- }
86
- }
87
- return { found: false };
88
- }
89
- function buildDevinOAuthCredential(token, now = Date.now()) {
90
- return {
91
- provider: "devin",
92
- accessToken: token.trim(),
93
- obtainedAt: now
94
- };
95
- }
96
-
97
- export {
98
- DEVIN_CONNECT_URL,
99
- buildDevinAuthUrl,
100
- extractDevinToken,
101
- detectLocalDevinCredentials,
102
- buildDevinOAuthCredential
103
- };