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
@@ -5,18 +5,19 @@ import {
5
5
  pickDefined,
6
6
  printCliError,
7
7
  resolveCliContext
8
- } from "./chunk-NA35QHCF.js";
8
+ } from "./chunk-HSSRGGXJ.js";
9
9
  import {
10
10
  hasFlag,
11
11
  hasHelpArg
12
- } from "./chunk-ETI2NYVF.js";
13
- import "./chunk-AEOE4Z6Q.js";
12
+ } from "./chunk-PHXD6JTX.js";
13
+ import "./chunk-LWKP7AWH.js";
14
14
  import "./chunk-Z77CRGTW.js";
15
15
  import "./chunk-SV5IJK6K.js";
16
16
  import "./chunk-VF4K2QE6.js";
17
- import "./chunk-62CATUYY.js";
18
- import "./chunk-GO3Z72MT.js";
19
- import "./chunk-Q5FJJ6XI.js";
17
+ import "./chunk-4NNTATRH.js";
18
+ import "./chunk-H4AHY5BU.js";
19
+ import "./chunk-FV3JEYR3.js";
20
+ import "./chunk-GMZLP5DV.js";
20
21
  import "./chunk-ZNFJWEN4.js";
21
22
  import "./chunk-4MK3I7Y4.js";
22
23
  import "./chunk-CQ3WA2NE.js";
@@ -26,7 +27,7 @@ import "./chunk-MRIHM22T.js";
26
27
  import "./chunk-PUOC4YRO.js";
27
28
  import "./chunk-IIVGDG4I.js";
28
29
  import "./chunk-FDTR4QJ6.js";
29
- import "./chunk-UZGQNTVW.js";
30
+ import "./chunk-GNCCNNZD.js";
30
31
  import "./chunk-6OZ36FXI.js";
31
32
  import "./chunk-2MBTWINN.js";
32
33
  import "./chunk-HKNXJGEC.js";
@@ -6,7 +6,7 @@ import {
6
6
  parseFlagWithOptionalValue,
7
7
  runCloudflareOAuthLogin,
8
8
  upsertEnvVariable
9
- } from "./chunk-GPCZ7UXG.js";
9
+ } from "./chunk-LJ5VW2UJ.js";
10
10
  import "./chunk-ESHYE7WU.js";
11
11
  import {
12
12
  ANTHROPIC_OAUTH_AUTHORIZE_URL,
@@ -40,6 +40,7 @@ import {
40
40
  generatePkcePair,
41
41
  normalizeAnthropicTokenPayload,
42
42
  readJsonBody,
43
+ refreshAntigravityOAuthToken,
43
44
  renderDeviceCodeDisplay,
44
45
  runAntigravityOAuthLogin,
45
46
  runOpenAiCodexBrowserPkce,
@@ -47,23 +48,29 @@ import {
47
48
  startCallbackServer,
48
49
  validateXAIEndpoint,
49
50
  xaiOAuthDiscovery
50
- } from "./chunk-53HEEOTT.js";
51
+ } from "./chunk-Z5625XML.js";
51
52
  import "./chunk-JBTJAPUF.js";
53
+ import {
54
+ extractGoogleValidationLink
55
+ } from "./chunk-BMQ2MJUK.js";
52
56
  import "./chunk-2F7RJC6L.js";
53
57
  import "./chunk-GLKOYSRU.js";
54
58
  import {
55
59
  buildDevinAuthUrl,
56
60
  buildDevinOAuthCredential,
57
61
  detectLocalDevinCredentials,
58
- extractDevinToken
59
- } from "./chunk-Q5FJJ6XI.js";
62
+ extractDevinToken,
63
+ fetchAntigravityCloudCodeCompletion
64
+ } from "./chunk-FV3JEYR3.js";
65
+ import "./chunk-GMZLP5DV.js";
60
66
  import "./chunk-5ZUL4CUO.js";
61
- import "./chunk-UZGQNTVW.js";
67
+ import "./chunk-GNCCNNZD.js";
62
68
  import "./chunk-6OZ36FXI.js";
63
69
  import "./chunk-GQBOR3G6.js";
64
70
  import "./chunk-OIVSQH2O.js";
65
71
  import {
66
- createOAuthTokenStore
72
+ createOAuthTokenStore,
73
+ resolveFreshAccessToken
67
74
  } from "./chunk-ONXOABJR.js";
68
75
  import "./chunk-W7XHHYWM.js";
69
76
  import {
@@ -759,7 +766,7 @@ This authorizes model API access only. It does NOT log you into the Nolo platfor
759
766
  To manage agents, docs, spaces, and other Nolo resources, run "nolo login" first.
760
767
 
761
768
  Usage:
762
- nolo auth antigravity [--browser] [--no-browser] [--sync-to-server] [--help]
769
+ nolo auth antigravity [--browser] [--no-browser] [--verify] [--sync-to-server] [--help]
763
770
 
764
771
  Opens a browser to https://accounts.google.com (OIDC PKCE loopback on 127.0.0.1:51121).
765
772
  After approval, the flow provisions a Cloud Code Assist project and stores the
@@ -771,6 +778,8 @@ oh-my-pi; Google does not publish a public Cloud Code Assist client registration
771
778
  Options:
772
779
  --browser Use the browser PKCE flow (default for antigravity).
773
780
  --no-browser Print the authorization URL only.
781
+ --verify Check the current Google one-time verification challenge
782
+ and open the validation link in a browser (no re-auth).
774
783
  ${SYNC_HELP_LINE}
775
784
  --help, -h Show this help and exit.
776
785
 
@@ -975,6 +984,7 @@ async function runAuthProviderCommand(provider, args, _ctx, deps = {}) {
975
984
  const useBrowser = args.includes("--browser");
976
985
  const noBrowser = args.includes("--no-browser") || deps.noBrowserByDefault;
977
986
  const syncOnly = args.includes("--sync-only");
987
+ const verify = args.includes("--verify");
978
988
  const generateToken = args.includes("--generate-token");
979
989
  const writeToEnvRaw = parseFlagWithOptionalValue(args, "--write-to-env");
980
990
  const writeToEnvPath = typeof writeToEnvRaw === "string" ? writeToEnvRaw : writeToEnvRaw === true ? ".env" : void 0;
@@ -990,6 +1000,88 @@ async function runAuthProviderCommand(provider, args, _ctx, deps = {}) {
990
1000
  await syncCredentialToServer(provider, credential, deps);
991
1001
  return 0;
992
1002
  }
1003
+ if (verify) {
1004
+ if (provider !== "antigravity") {
1005
+ error.error(`[nolo] --verify is only supported for "nolo auth antigravity".`);
1006
+ return 1;
1007
+ }
1008
+ const credential = tokenStore.read(provider);
1009
+ if (!credential?.accessToken) {
1010
+ error.error(
1011
+ `[nolo] No local antigravity credential. Run: nolo auth antigravity`
1012
+ );
1013
+ return 1;
1014
+ }
1015
+ output.log(
1016
+ `[nolo] Checking the current verification challenge (one lightweight request)...`
1017
+ );
1018
+ let accessToken = null;
1019
+ let refreshError;
1020
+ try {
1021
+ accessToken = await resolveFreshAccessToken({
1022
+ provider,
1023
+ store: tokenStore,
1024
+ refresh: deps.refreshAntigravityToken ?? refreshAntigravityOAuthToken
1025
+ });
1026
+ } catch (err) {
1027
+ refreshError = toErrorMessage(err);
1028
+ if (/invalid_grant|unauthorized_client|revoked|invalid_token|refresh[_ ]token[^.]*(expired|invalid|revoked)|expired[^.]*refresh/i.test(
1029
+ refreshError
1030
+ )) {
1031
+ error.error(
1032
+ `[nolo] The antigravity refresh token is no longer valid (${refreshError}). Re-run \`nolo auth antigravity\` to re-authorize this account.`
1033
+ );
1034
+ return 1;
1035
+ }
1036
+ }
1037
+ let result;
1038
+ try {
1039
+ result = await fetchAntigravityCloudCodeCompletion({
1040
+ agentConfig: { model: "gemini-3.1-pro" },
1041
+ accessToken: accessToken ?? credential.accessToken,
1042
+ metadata: credential.metadata ?? null,
1043
+ openAiBody: { messages: [{ role: "user", content: "hi" }] },
1044
+ fetchImpl: deps.fetchImpl ?? fetch
1045
+ });
1046
+ } catch (err) {
1047
+ const msg = toErrorMessage(err);
1048
+ if (/projectId|metadata\.projectId|Re-run `nolo auth/i.test(msg)) {
1049
+ error.error(
1050
+ `[nolo] The stored antigravity credential is incomplete (${msg}). Re-run \`nolo auth antigravity\` to re-authorize.`
1051
+ );
1052
+ } else {
1053
+ error.error(
1054
+ `[nolo] Could not reach the antigravity provider: ${msg}. Check your network and retry.`
1055
+ );
1056
+ }
1057
+ return 1;
1058
+ }
1059
+ if (result.status >= 200 && result.status < 300) {
1060
+ output.log(
1061
+ `[nolo] \u2713 The credential is working \u2014 no verification is required right now. You can retry your agent.`
1062
+ );
1063
+ return 0;
1064
+ }
1065
+ const { url: validationUrl } = extractGoogleValidationLink(
1066
+ JSON.stringify(result.body ?? {})
1067
+ );
1068
+ if (result.status === 403 && validationUrl) {
1069
+ output.log(
1070
+ `[nolo] Google requires a one-time account verification for ${credential.accountId ?? "this account"}.`
1071
+ );
1072
+ output.log(`[nolo] ${validationUrl}`);
1073
+ const opener = noBrowser ? void 0 : deps.openBrowser ?? defaultOpenBrowser;
1074
+ const opened = opener ? await opener(validationUrl) : false;
1075
+ output.log(
1076
+ opened ? `[nolo] \u2713 Opened it in your browser \u2014 complete the verification there (sign in with the same Google account), then retry your agent.` : `[nolo] Copy the URL above into a browser signed into ${credential.accountId ?? "that account"}, complete the verification, then retry your agent.`
1077
+ );
1078
+ return 0;
1079
+ }
1080
+ error.error(
1081
+ `[nolo] The provider returned HTTP ${result.status} without a verification link \u2014 this is not the one-time-verification case --verify handles.` + (refreshError ? ` (token refresh also failed earlier: ${refreshError})` : "") + ` Response detail: ${JSON.stringify(result.body ?? {}).slice(0, 400)}`
1082
+ );
1083
+ return 1;
1084
+ }
993
1085
  const flowDeps = {
994
1086
  ...deps.fetchImpl ? { fetchImpl: deps.fetchImpl } : {},
995
1087
  ...deps.sleep ? { sleep: deps.sleep } : {},
@@ -4,12 +4,12 @@ import {
4
4
  } from "./chunk-YPREESF4.js";
5
5
  import {
6
6
  handleSendMessage
7
- } from "./chunk-TWQWYIMJ.js";
7
+ } from "./chunk-YWIEQS6H.js";
8
8
  import "./chunk-MC4XLIJ7.js";
9
9
  import "./chunk-3BMYXEUW.js";
10
10
  import "./chunk-YYLHWIW6.js";
11
11
  import "./chunk-AGGIDPCZ.js";
12
- import "./chunk-PVZT43MU.js";
12
+ import "./chunk-YTLRHRH3.js";
13
13
  import "./chunk-BFDFRLLQ.js";
14
14
  import "./chunk-5RGU3J7P.js";
15
15
  import {
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-IIVGDG4I.js";
7
7
  import {
8
8
  isAntigravityOAuthAgent
9
- } from "./chunk-UZGQNTVW.js";
9
+ } from "./chunk-GNCCNNZD.js";
10
10
  import {
11
11
  getModelAbility
12
12
  } from "./chunk-ACTMNVHM.js";